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 :)
Dobro si objasnio ;)
Hvala. :)
odlicno objasnjeno
Zar vi ljudi neznate citati pravila?
"Ne refreshajte teme starije od 10 dana."
LOCK