Oko kviza

Započeo Kaka, Jun 22, 2017, 10:53:31 PRE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Skripta koju koristim: UP
Detaljan opis problema: Hoću da napravim kao neki kviz na serveru i da napravim nekoliko pitanja iz raznih oblasti i da random vreme izbaci to pitanje i kada ja ukucam npr /odgovor da mi izbaci dialog sa ponudjenim odgovorima i ako odgovori tacno dobije odredjenu sumu novca, al' nikako nmg da skontam kako to da napravim, ako bi mogao neko da mi objasni il ako ima u nekom modu nesto slicno tome pa da vidim, bio bih zahvalan samo da mi neko objasni odprilike kako to da uradim
Dio skripte: /
Neke slike/video za lakse dobivanje pomoci(neobavezno): /
Poslednja Izmena: Jun 23, 2017, 22:23:43 POSLE PODNE od MEDO

Bilo bi lakse da igrac upise /odgovor [text] bez dialoga (bar po meni lakse :D)

pa dobro moze i to svejedno

Pa napravis pitanja i odgovore, i provjeris dal se odgovor na pitanje koji je igrac dao poklapa sa tacnim odgovorom, nije to tesko napisati

Najbolje i najjednostavnije ti je da na jednu global promenljivu stavljas pitanje a na drugu odgovor. Npr imas komandu /napravipitanje pitanje odgovor. Igrac kuca odgovor sa /odgovor i onda proveravas da li se uneto poklapa sa sadrzajem promenljive. Ako se poklapa dobije pare a promenljiva za kviz na nulu ili ako ke bolean onda false i sa tim ugasis kviz. Lako je ali tu imas veliki problem sa razmacima

#DEFINE BROJPITANJA 2 //Broj tvojih pitanja (koliko ih ima)
new bool:aktivnopitanje; // Ako je true, znači da je već postavljeno pitanje i timer ga nece dati, ako je false, timer postavlja pitanje

enum questions
{
    Pitanje[128],
    Odgovor[32],
    Aktivno //Ovo ti sluzi za provjeru da li je to pitanje aktivno (taj broj pitanja), ako jeste provjerava odgovor istog
}

new
    Pitanje[BROJPITANJA][questions] = {
    // pitanje, odgovor
        {"Koja zivotinja jede mrkvu?", "Zec"},
        {"Ko je kralj zivotinja?", "Lav"}
};


Eto ti primjer kako ćeš definisat pitanja, još trebaš napravit random pitanje.

Edit: Obrisite gornji post

Evo ti kod provjeri dal radi:

#DEFINE BROJPITANJA 2 //Broj tvojih pitanja (koliko ih ima)
new bool:aktivnopitanje; // Ako je true, znači da je već postavljeno pitanje i timer ga nece dati, ako je false, timer postavlja pitanje
new QuestionAnswer[32] = "";
new globalstring[256];

enum questions
{
    Ask[128],
    Odgovor[32]
}

new
    Pitanje[BROJPITANJA][questions] = {
    // pitanje, odgovor
        {"Koja zivotinja jede mrkvu?", "Zec"},
        {"Ko je kralj zivotinja?", "Lav"}
};

public OnGameModeInit()
{
aktivnopitanje = false;
SetTimer("AskingTimer", 60000, 1);
}

forward AskingTimer();
public AskingTimer()
{
if(!aktivnopitanje)
{
new questionnum = random(BROJPITANJA);
format(QuestionAnswer, sizeof(QuestionAnswer), "%s", Pitanje[questionnum][Odgovor]);
format(globalstring, sizeof(globalstring), "Pitanje: %s (/odgovor)", Pitanje[questionnum][Ask]);
SendClientMessageToAll(-1, globalstring);
aktivnopitanje = true;
}
}

YCMD:odgovor(playerid, params[], help)
{
if(!aktivnopitanje) return SendClientMessage( playerid, -1, "Nema postavljenih pitanja.");
if(!strcmp(QuestionAnswer, params, false))
{
aktivnopitanje = false;
SendClientMessage( playerid, -1, "Cestitamo, dobio si 300$ zbog tacnog odgovora. (%s)", QuestionAnswer);
GivePlayerMoney( playerid , 300 );
}
return 1;
}

Hvala ti mnogo, radi, može LOCK