[Tutorial] Random server poruke

Započeo Đ J Ø ₥ Ⱡ ₳, Mart 05, 2025, 10:32:31 PRE PODNE

prethodna tema - sledeća tema

0 članova i 2 gostiju pregledaju ovu temu.

Kako dodati random server poruke na vas server?
* citati pazljivo ceo tutorijal za shvatanje! *

1. Potrebno je napraviti listu poruka u jednu varijablu koja ce se zvati listaPoruka.

new listaPoruka[][70] = {

 "Za snalazenje po Los Santosu koristite /gps.", // 1. poruka
 "Ne trazite uzastopno novac od Admina, bicete kaznjeni.", // 2. poruka 
 "GPS mozete kupiti u marketu po povoljnoj ceni.", // 3. poruka 
 "Radnja servera se odvija u San Fierru, Las Venturasu i Los Santosu." // 4. poruka 

};
Ovim smo napravili varijablu listaPoruka koja sadrzi 4 razlicite poruke koje ce se ispisivati u chat na svakih 5 minuta.

new - kreira varijablu

listaPoruka - naziv varijable

[][70] - u prve kockaste zagrade se pise broj poruka, u druge kockaste zagrade se pise koliko maksimalno moze imati karaktera svaka poruka.

U ovom slucaju, mi ne pisemo nista u prve kockaste zagrade jer zelimo da broj poruka bude neogranicen.

Hajde da predjemo na drugi deo, a to je da napravimo funkciju koja ce ispisivati poruke u chat.

Potrebno je kreirati tajmer koji ce se odigravati na svakih 5 minuta pomocu SetTimer() funkcije.

SetTimer("RandPoruke", 300000, true);
Ovu liniju koda mozemo staviti tamo gde skripta pocinje, odnosno u OnGameModeInit deo.

SetTimer - funkcija koja ima tri parametra i koja zapocinje tajmer.

1. parametar - unosi se ime tajmera radi lakseg snalazenja.

2. parametar - unosi se vreme tajmera u milisekundama (60.000 milisekundi = 1 minut)

3. parametar - unosi se true/false, unecete true ako hocete da se tajmer uzastopno ponavlja
dok server radi, a false ako zelite da se ta radnja jednom dogodi.

Kada smo napravili tajmer, potrebno je kreirati funkciju u kojoj ce se nalaziti dogadjaj nakon zavrsetka tajmera.

Potrebno je prvo napraviti forward, pa onda public (bilo gde u skripti, ali VAN OSTALIH FUNKCIJA).

forward RandPoruke();
public RandPoruke()
{
	// dogadjaj
	return true;
}

Sada trebamo dodati dogadjaj u funkciju RandPoruke, a to je u ovom slucaju ispis random poruke u chat.

forward RandPoruke();
public RandPoruke()
{
	new izabranaPoruka = random(sizeof(listaPoruka));
	SendClientMessageToAll(-1, listaPoruka[izabranaPoruka]);
	return true;
}

random() funkcija bira nasumican broj od 0 do kolicine poruka (sizeof()) u varijabli listaPoruka (u ovom slucaju random broj moze biti i 0, 1, 2, a isto tako i 3.)
0 - prva poruka
1 - druga poruka
2 - treca poruka
3 - cetvrta poruka

SendClientMessageToAll() funkcija ima dva parametra, ona sluzi za prikaz poruke u chat svim igracima na serveru. 

Prvi parametar sluzi za boju (-1 za belu boju, inace se unosi HEX boja - imate listu boja na https://pawnokit.ru/en/colorgen). 

Drugi parametar sluzi za unos poruke koju zelimo prikazati i pise se pod navodnicima ".

listaPoruka[izabranaPoruka] uzima izvucenu random poruku iz varijable.

-

To bi bio kraj ovog tutorijala, napravili smo uspesne random poruke koje se prikazuju na svakih 5 minuta u chat.

Nadam se da ste nesto naucili iz ovog tutorijala, vidimo se u sledecem! : D

Umesto New postavi Const
Forward ti nije potreban

Ovo ostalo je ok sobzirom da nema tu neke komplikacije.
HTML / CSS / Javascript / Inspect : Entry Masterclass.
ReactJS / Tailwind CSS / PWA / Axios / SCSS / Redux, ViteJS : Entry Masterclass.
C / C++ / C# / C-objective - kroz Pawn Lang : Entry Masterclass
Grupisano Pravljenje Objekata : Filterscript.


Sta je to web development?
To je nesto ono kao, kako bih to rekao, izgubis volju za zivotom i zelis da se ubijes, ali to je okej.
Onda jednostavno shvatis da si bio glup i resis problem, das sam sebi lajk,
skuvas NES 3u1 i pripremis se za sledeci projekat.

Citat: markosimic poslato Mart 05, 2025, 13:39:01 POSLE PODNEUmesto New postavi Const
Forward ti nije potreban

Ovo ostalo je ok sobzirom da nema tu neke komplikacije.
pozz Marko, ako ne bih stavio forward izbacio bi mi error jer funkcija nije forwardovana.
Hvala u svakom slucaju : D

Citat: 𓆩đɉꝋᵯłⱥ𓆪 poslato Mart 05, 2025, 19:30:52 POSLE PODNEpozz Marko, ako ne bih stavio forward izbacio bi mi error jer funkcija nije forwardovana.
Hvala u svakom slucaju : D

Moja greska, u mom gamemode postoji napravljeno da sam napravi potrebne forwarde kako ne bih pisao svaki put.

 



Kada provucem na nekom drugom gamemode koji to nema, izbacuje warning, error nikako ne moze izbaciti :)

Svakako lep tutorijal.

static const listaPoruka[][70] = {
    "Za snalazenje po Los Santosu koristite /gps.", 
    "Ne trazite uzastopno novac od Admina, bicete kaznjeni.", 
    "GPS mozete kupiti u marketu po povoljnoj ceni.", 
    "Radnja servera se odvija u San Fierru, Las Venturasu i Los Santosu."
};

hook OnGameModeInit()
{
    SetTimer("RandPoruke", 300000, true);
    return 1;
}

forward RandPoruke();
public RandPoruke()
{
	new izabranaPoruka = random(sizeof(listaPoruka));
	SendClientMessageToAll(-1, listaPoruka[izabranaPoruka]);
    return 1;
}
HTML / CSS / Javascript / Inspect : Entry Masterclass.
ReactJS / Tailwind CSS / PWA / Axios / SCSS / Redux, ViteJS : Entry Masterclass.
C / C++ / C# / C-objective - kroz Pawn Lang : Entry Masterclass
Grupisano Pravljenje Objekata : Filterscript.


Sta je to web development?
To je nesto ono kao, kako bih to rekao, izgubis volju za zivotom i zelis da se ubijes, ali to je okej.
Onda jednostavno shvatis da si bio glup i resis problem, das sam sebi lajk,
skuvas NES 3u1 i pripremis se za sledeci projekat.

#include <ysilib\YSI_Coding\y_hooks>
#include <ysilib\YSI_Coding\y_timers>

task PorukeUChat[900000]()
{
    new string[144],
    BROJ_PORUKA = 3,
    randmsg = random(BROJ_PORUKA);
    switch(randmsg)
    {
        case 0: string = "[MONACO-ANTICHEAT] Ukoliko primetite da neko krsi neko pravilo/cituje prijavite igraca na /report !";
        case 1: string = "[MONACO-HELP] Za da vidite listu komandi ukucajte komandu /help !";
        case 2: string = "[MONACO-HELP] Za da vidite listu admina ukucajte /admini";
    }
    SendClientMessageToAll(0xFF0000, string);
    return 1;
}


Ko koristi YSI eto od mene jedna ;d

Citat: MaEsTrOo poslato Mart 05, 2025, 21:19:51 POSLE PODNE
#include <ysilib\YSI_Coding\y_hooks>
#include <ysilib\YSI_Coding\y_timers>

task PorukeUChat[900000]()
{
    new string[144],
    BROJ_PORUKA = 3,
    randmsg = random(BROJ_PORUKA);
    switch(randmsg)
    {
        case 0: string = "[MONACO-ANTICHEAT] Ukoliko primetite da neko krsi neko pravilo/cituje prijavite igraca na /report !";
        case 1: string = "[MONACO-HELP] Za da vidite listu komandi ukucajte komandu /help !";
        case 2: string = "[MONACO-HELP] Za da vidite listu admina ukucajte /admini";
    }
    SendClientMessageToAll(0xFF0000, string);
    return 1;
}


Ko koristi YSI eto od mene jedna ;d
sve na jednom mestu, milina <3