Pretraga

Pritisnite Enter za pretragu ili Escape za zatvaranje

Zaključano

[TuT] Test reakcije - mnozenje

Započeo [CH]Lenon
pre 11 godina
2,564
pregleda
6
postova
Ova tema je zaključana. Samo moderatori i administratori mogu odgovarati.
Lenonâ„¢
Godfather
pre 11 godina
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
Made Man
pre 11 godina
Lijepo je sve,jednostavno,fino objasnjeno 😄
Samo tako nastavi 🙂
Hellyato
Shot Caller
pre 11 godina
Dobro si objasnio  😉
Lenonâ„¢
Godfather
pre 11 godina
Hvala. 🙂
emir124
Street Runner
pre 11 godina
odlicno objasnjeno
Razor55
Shot Caller
pre 11 godina
Zar vi ljudi neznate citati pravila?
"Ne refreshajte teme starije od 10 dana."

LOCK

Morate biti prijavljeni da biste odgovorili na ovu temu.

Prijava