Evo poÅ¡to mi je danas u pauzi izmedju uÄenja bilo dosadno napravio sam streamer za mapicone, nije nista spektakularno, ali ovo moze pomoci mnogima da shvate kako da naprave include+da shvate princip rada streamera. Takodjer sam ovaj streamer napravio iz razloga sto postoji potreba za streamanjem mapicona jer nema potrebe da budu stalno kreirane, a takodjer sam vidio npr kada se naprave mapicone sa SetPlayerMapIcon i to npr oko 80-ak i kada imate puno vozila oko sebe, jednostavno samp client vam nece dosta toga htjeti pokazati na karti(npr cp-ove).
O streameru:Vrsta streamera: MapIcon streamer
Verzija: 1.0
Autor: Zoran aka Djuro_Zerocoolos
Funkcije:D_KreirajIkonu(Float:x, Float:y, Float:z, tipmarkera, boja);//kreiranje ikone
D_UnistiIkonu(idikone);//unistavanje ikone
UnistiSveIkone(playerid);//unistavanje svih ikona za odredjenog igraca
Kako postaviti streamer:-stavite D_Ikone.inc file u \pawno\include
-Definirajte u svom modu include - #include <D_Ikone>
-posto je streamer plug and play, nista vise nije potrebno za postavljanje streamera
Definiranje postavki u D_Ikone:#define MAX_BROJ_IKONA 100 - ovdje postavljate maksimalan broj mapikona u svom modu
#define VrijemeProvjereIkona 1000 - ovdje podesite vrijeme provjere mapikona
#define UDALJENOST_STREAMANJA 200.0 - udaljenost na kojoj se streamaju mapikona
#define MAX_PRIKAZANIH_IGRACU 15 -koliko ce maksimalno biti prikazano mapikona
Kako kreirati mapicone u modu:-Obrisite sve SetPlayerMapIcon iz moda
-MapIcone se ne kreiraju sa ovim streamerom za samo jednog igraca vec ih kreirate za sve igrace odjednom
-u OnGameModeInit kreirajte mapicone koje zelite da se prikazuju igracu i to sa:
D_KreirajIkonu(Float:x, Float:y, Float:z, tipmarkera, boja);//x,y i z kordinata + tip markera i boja markera
Vrste MapIcona mozete pogledati na: http://wiki.sa-mp.com/wiki/MapIcons (http://wiki.sa-mp.com/wiki/MapIcons)
Kada ste to sve napravili, vas mapicon streamer ce streamati vas mapicone.
Streamer sam testirao i za sada nema poznatih bugova, a ukoliko zelite vidjeti koliko vam trenutno streama mapikona pripremio sam vam i debug u inc. fileu, samo trebate obrisati /* i */ u "stock ProvjeriIkone(playerid)" i logirati se kao rcon admin!
Sva pitanja/sugestije/prijave bugova ovdje pišite! Download link:
(http://solidfiles.com/info_imgs/l9aG.jpg) (http://solidfiles.com/d/l9aG)
Jako pametno napravljeno, cek icone se pojavljuju na radius udaljenost igraca do icone? I koliko je max. broj icona?
Jos jedna dobra stvar od zorana, sve tvoje stvari su kvalitetne i potrebne u zivotu ;D
inace ti je nepisano pravilo da se macroi pisu sve velikim slovima(u svim programski i skripterskim jezicima) zbog toga da se razlikuju od ostalih simbola ;)
i jos jedno: sva imena simbola na engleskom jeziku ;)
i jos jedno: koristi GetPVarInt i SetPVarInt
i jos jedno:
new Float:LokacijaIkoneX[MAX_BROJ_IKONA];
new Float:LokacijaIkoneY[MAX_BROJ_IKONA];
new Float:LokacijaIkoneZ[MAX_BROJ_IKONA];
new TipIkone[MAX_BROJ_IKONA];
new BojaIkone[MAX_BROJ_IKONA];
new bool:JelIkonaKreirana[MAX_BROJ_IKONA];
mogo si svest na citljiviji kod
enum E_ICON_INFO
{
Float: E_ICON_X,
Float: E_ICON_Y,
Float: E_ICON_Z,
E_ICON_TYPE,
bool: E_ICON_CREATED,
E_ICON_COLOR
};
new IconInfo[MAX_ICONS][E_ICON_INFO];
i jos
public ProvjeraIkonaTimer()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
ProvjeriIkone(i);
}
}
return 1;
}
Ne treba ti IsPlayerConnected jer u ProvjeriIkone, u IsPlayerInRangeOfPoint je ugraden vec IsPlayerConnected
al inace ostalo je dobro ;)
EDIT:
vidio sam fatalnu error, ali i jedan od najcescih:
Off-By-One Error(OBOE)
linija: 72(nisam trazio dalje jel ima)
Uglavnom skraceno konkretno to je sljedece (MAX_BROJ_IKONA+1)
tu bi zapravo trebalo biti (MAX_BROJ_IKONA)
objasnjenje:
recimo da je MAX_BROJ_IKONA 24 posto se pocinje brojati od 0 a zadnji slot je jednak 0 tj. terminator onda se i dobije 24.
Ovo sto si ti dodao 1 cini to da loopa do 25 sto nismo zeljeli jer smo definirali MAX_BROJ_IKONA kao 24. Ovo u PAWN-u kolko se mogu sjetiti nije tolko opasno(ne mogu se sjetit neke opasne situacije, pogotovo ovdje jer ce u terminatoru uvijek biti 0 kao vrijednost(u PAWNu)), ali u ostalim jezicima to je jako opasno i treba se izbjegavati, a jako je dobro to ciniti i ovdje ;)
u pravu si joe, to mi je ostalo otprije jer sam provjeravao od kreiranih ikona pa eto... to cu prepraviti...
uhh...lijep posao djuro....super stremer...
Citat: °|Chris|° poslato April 27, 2010, 21:38:59 POSLE PODNE
Jos jedna dobra stvar od zorana, sve tvoje stvari su kvalitetne i potrebne u zivotu ;D
potpis hehe :D