[TuT] Test reakcije - mnozenje

Započeo [CH]Lenon, Jul 14, 2014, 08:11:23 PRE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

Pozdrav, danas ću da Vam prestavim jednostavan sistem testa reakcije sa množenjem dva broja!

Da počnemo...


Potrebno vam je da imate include "a_samp", taj include vam dolazi u paketu windows servera (po naški, kućni server :) ).
"Kućni" server možete preuzeti ovdje: sa-mp.com/download.php


Prvo ćemo definisati varijable koje su nam potrebne da bi nam test reakcije radio, na vrh skripte (ili gdje vam se nalaze i ostale definicije) stavite sljedeće:

new Broj1;
new Broj2;
new Rezultat;
new ReakcijaAktivna;

Broj1 - prvi faktor/čimbenik
Broj2 - drugi faktor/čimbenik
Rezultat - umnožak/produkt
ReakcijaAktivna - varijabla sa kojom cemo provjeravati da li je test reakicije aktivan

Sada Vam je potreban public koji ćete pokretati sa timerom kako ne bi stalno morali praviti i onda stalno kucati neku komandu za pokretanje testa reakcije:


forward TestReakcije;
public TestReakcije()
{
        new string[128];
        Rezultat = (Broj1=random(20))*(Broj2=random(20));
        format(string,sizeof string,"[REAKCIJA] Koliko je %d * %d ? Ukucaj tacan rezultat i osvoji nagradu!",Broj1, Broj2);
        SendClientMessageToAll(-1,string);
        ReakcijaAktivna = 1;
        return 1;
}

string - detaljno objašnjenje imate ovdje: forum.sa-mp.com/showthread.php?t=284112
Rezultat - ovdje odreÄ'ujemo koja nam je vrijednost umnožka/produkta
Broj1 = random(20) - postavljamo vrijednost prvog faktora/čimbenika, ta vrijednost će biti nasumičan broj od broja 0 do broja 20, nasumični izbor broja nam omogućava funkcija "random"
Broj2 = random(20) - postavljamo vrijednost drugog faktora/čimbenika, ta vrijednost će biti nasumičan broj od broja 0 do broja 20, nasumični izbor broja nam omogućava funkcija "random"
format - formatira nam dužinu poruke koja će biti poslana preko funkcije SendClientMessageToAll
SendClientMessageToAll - funkcija za slanje poruke


Sada je potrebno da pod OnPlayetText provjerimo da li je igrač ukucao tačan rezultat, uradite sljedeće:


if(strval(text) == Rezultat && ReakcijaAktivna == 1)
{
        new ime[MAX_PLAYER_NAME];
        GetPlayerName(playerid, ime, sizeof(ime));
        new novac = random(10000);
        GivePlayerMoney(playerid, novac);
        format(string,sizeof string,"[REAKCIJA] %s je prvi odgovorio tacno i dobio %d$! Rezultat je %d!",ime, novac, Rezultat);
        SendClientMessageToAll(-1,string);
        ReakcijaAktivna = 0;
return 0;
}

if(strval(text) == Rezultatt && ReakcijaAktivna == 1) - provjera da li je ukucani broj jednak umnožku/produktu i da li je reakcija aktivna
ime - varijabla za uzimanje dužine igračevog imena
GetPlayerName - funkcija sa kojom uzimamo igračevo ime
novac - iznos novca koji će igrač dobiti kao nagradu za tačan odgovor, u našem slučaju taj iznos je nasumičan i kreće se od 0 do 10000
GivePlayerMoney - funkcija za davanje novca igraču


Zadnji korak je da public TestReakcije pokrećete sa timerom koji će se ponavljati svakih 10 minuta, naravo Vi sebi možete izmjeniti period ponavljanja. Pod OnGameModeInit dodajte sljedeće:


SetTimer("TestReakcije", 600000, 1);

SetTimer - funkcija pomoću koje pokrećemu neku drugu funkciju nakon odreÄ'enog perioda, u naÅ¡em slučaju nakon 10 minuta




To bi bilo to, ukoliko Vam je nešto nije jasno ili ste uočili neku grešku, obratite se u ovoj temi. :)

Lijepo je sve,jednostavno,fino objasnjeno :D
Samo tako nastavi :)
KOPAJ KRIPTOVALUTU TELEFONOM! >>> SAZNAJ VIŠE <<<
POČNI RADITI KAO PREDAVAČ ENGLESKOG JEZIKA! >>> SAZNAJ VIŠE <<<




Zar vi ljudi neznate citati pravila?
"Ne refreshajte teme starije od 10 dana."

LOCK