[TuT] Test reakcije - mnozenje

Započeo [CH]Lenon
14. Jul 2014. Zaključano
2,586
pregleda
6
postova
Lenonâ„¢
5
Godfather
14. Jul 2014.
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;
        Rezultat = (Broj1=random(20))*(Broj2=random(20));
        format(string,sizeof string," 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;
        GetPlayerName(playerid, ime, sizeof(ime));
        new novac = random(10000);
        GivePlayerMoney(playerid, novac);
        format(string,sizeof string," %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. 🙂
TheToretto
4
Made Man
14. Jul 2014.
Lijepo je sve,jednostavno,fino objasnjeno 😄
Samo tako nastavi 🙂
Hellyato
4
Shot Caller
14. Jul 2014.
Dobro si objasnio  😉
Lenonâ„¢
5
Godfather
14. Jul 2014.
Hvala. 🙂
emir124
2
Street Runner
5. Avg. 2014.
odlicno objasnjeno
Razor55
4
Shot Caller
5. Avg. 2014.
Zar vi ljudi neznate citati pravila?
"Ne refreshajte teme starije od 10 dana."

LOCK

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava

© 2026 SmartShark. All rights reserved.

Powered by Momentum|v2026.3.001 Alpha