Balkan SA:MP

PAWN skriptanje, gamemodovi, filterskripte, include fajlovi, mape, pluginovi => Razgovor u vezi PAWN - skriptanja => Temu započeo: Kaka poslato Jun 22, 2017, 10:53:31 PRE PODNE

Naslov: Oko kviza
Poruka od: Kaka poslato Jun 22, 2017, 10:53:31 PRE PODNE
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): /
Naslov: Odg: Oko kviza
Poruka od: Arkoo poslato Jun 22, 2017, 11:27:21 PRE PODNE
Bilo bi lakse da igrac upise /odgovor [text] bez dialoga (bar po meni lakse :D)
Naslov: Odg: Oko kviza
Poruka od: Kaka poslato Jun 22, 2017, 17:19:39 POSLE PODNE
pa dobro moze i to svejedno
Naslov: Odg: Oko kviza
Poruka od: Slade poslato Jun 22, 2017, 20:01:43 POSLE PODNE
Pa napravis pitanja i odgovore, i provjeris dal se odgovor na pitanje koji je igrac dao poklapa sa tacnim odgovorom, nije to tesko napisati
Naslov: Odg: Oko kviza
Poruka od: Tosic ツ poslato Jun 22, 2017, 21:49:27 POSLE PODNE
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
Naslov: Odg: Oko kviza
Poruka od: Slade poslato Jun 22, 2017, 22:43:31 POSLE PODNE
[pawn]#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"}
};[/pawn]

Eto ti primjer kako ćeš definisat pitanja, još trebaš napravit random pitanje.
Naslov: Odg: Oko kviza
Poruka od: Slade poslato Jun 22, 2017, 22:57:34 POSLE PODNE
Edit: Obrisite gornji post

Evo ti kod provjeri dal radi:

[pawn]#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;
}
[/pawn]
Naslov: Odg: Oko kviza
Poruka od: Kaka poslato Jun 23, 2017, 21:32:56 POSLE PODNE
Hvala ti mnogo, radi, može LOCK