Započeo // xunder
•3. Dec. 2015.• Zaključano[Tut] Koriscenje y_va (iz YSI packa)
1,964
pregleda
1
postova
Godfather
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosAktivan Član
9 / 250 XP
Početnik(1)
2,044
Postovi:
55
Teme:
Pridružio se:Sep. 2013
3. Dec. 2015.
Uvod
Ovo je tutorial u kome objasnjavam y_va include koji dolazi u sklopu "Y Server Includes" koje je napravio Y-Less. Od tuda de to "Y" xD.
No da se vratim na temu.
Za sta sluzi?
Ono sto vas zanima je to da skrati kod, i da vise ne morate svaki put formatirati i slati outpute. 😛
Tako da umjesto ovoga
dobijate ovo
KORISCENJE
Koriscenje je veoma lako.
Znam da mnogi od vas preskacu neke dijelove teksta pa da ne pisem bez veze idemo ovako
Prvo vam treba include, downloadujte YSI pack i stavite u pawno>includes,
potom u skripti stavite #include ili #include "YSI\y_va".
Naravno bice vam potrebno i a_samp include (no to svi znaju hehe).
Pa da krenemo sa definisanjem SCMF funkcije
va_start<X> - Kako dobiti ovo "X". Lakooo 😛
Dakle imamo ovo
Dakle koliko ima parametara toliki je broj X.
Primjeri neki
BZVZ
Tu su jos i va_strlen i va_getstring, ali to nekom drugom prilikom
Ovo je tutorial u kome objasnjavam y_va include koji dolazi u sklopu "Y Server Includes" koje je napravio Y-Less. Od tuda de to "Y" xD.
No da se vratim na temu.
Za sta sluzi?
Ono sto vas zanima je to da skrati kod, i da vise ne morate svaki put formatirati i slati outpute. 😛
Tako da umjesto ovoga
new str, playername;
GetPlayerName(playerid, playername, sizeof playername);
format(str, 128, "Vase ime je: %s", playername);
SendClientMessage(playerid, color, str);
dobijate ovo
new playername;
GetPlayerName(playerid, playername, sizeof playername);
SCMF(playerid, color, "Vase ime je: %s", playername);
KORISCENJE
Koriscenje je veoma lako.
Znam da mnogi od vas preskacu neke dijelove teksta pa da ne pisem bez veze idemo ovako
Prvo vam treba include, downloadujte YSI pack i stavite u pawno>includes,
potom u skripti stavite #include ili #include "YSI\y_va".
Naravno bice vam potrebno i a_samp include (no to svi znaju hehe).
Pa da krenemo sa definisanjem SCMF funkcije
stock SCMF(id, color, const fmt[], va_args<>) /*koristite va_args<> kao zamjenu za sve parametre koje koristite u f-ji*/{
new str; //naravno moramo kreirati string da bi napravili format
va_format(str, sizeof str, fmt, va_start<3>); //ovde se mora koristiti va_format a umjesto {Float, _}:... koristimo va_start
return SendClientMessage(id, color, str); //saljemo formatiranu poruku
}
va_start<X> - Kako dobiti ovo "X". Lakooo 😛
Dakle imamo ovo
SendClientMessage(id, color, string);
Dakle `id` = 1 (va_start<1>)
`color` = 2 (va_start<2>)
`string` = 3 (va_start<3>)
Dakle koliko ima parametara toliki je broj X.
Primjeri neki
* ORGINALNI POST SA Y_VA TOPICA OD Y-LESSA
stock SendClientMessageToAllEx(colour, const fmat[], va_args<>)
{
new
str;
va_format(str, sizeof (str), fmat, va_start<2>);
return SendClientMessageToAll(colour, str);
}
stock SendPlayerMessageToPlayerEx(playerid, senderid, const fmat[], va_args<>)
{
new
str;
va_format(str, sizeof (str), fmat, va_start<3>);
return SendPlayerMessageToPlayer(playerid, senderid, str);
}
stock SendPlayerMessageToAllEx(senderid, const fmat[], va_args<>)
{
new
str;
va_format(str, sizeof (str), fmat, va_start<2>);
return SendPlayerMessageToAll(senderid, str);
}
stock GameTextForPlayerEx(playerid, const fmat[], time, style, va_args<>)
{
new
str;
va_format(str, sizeof (str), fmat, va_start<4>);
return GameTextForPlayer(playerid, str, time, style);
}
stock GameTextForAllEx(const fmat[], time, style, va_args<>)
{
new
str;
va_format(str, sizeof (str), fmat, va_start<3>);
return GameTextForAll(str, time, style);
}
stock printEx(const fmat[], va_args<>)
{
new
str;
va_format(str, sizeof (str), fmat, va_start<1>);
return print(str);
}
BZVZ
Tu su jos i va_strlen i va_getstring, ali to nekom drugom prilikom
Morate biti prijavljeni da biste odgovorili na ovu temu.
Prijava