Djurine kućne čarolije - D_Ikone - Mapicon Streamer

Započeo zerocoolos, April 27, 2010, 15:12:10 POSLE PODNE

prethodna tema - sledeća tema

0 članova i 1 gost pregledaju ovu temu.

zerocoolos

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

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:
D_Ikone.inc
Poslednja Izmena: Jul 01, 2019, 23:35:20 POSLE PODNE od Mister Naithan

nastoe

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 ;)
Poslednja Izmena: April 27, 2010, 23:15:23 POSLE PODNE od JoeBullet v2.1

zerocoolos

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...
Mnogi me znaju, a mnogi misle da znaju.

M-Gun