Problem(error/warning): Cekao sam da se nakupi da kazem problema pa da okacim i sve od jednom resim da ne pravim dzaba topici 1 po 1 nego mi je lakse ovako. Imam nekoliko problema sto se tice skripte "Komande itd itd" pa bih voleo ukoliko mi neko moze pomoci.
1. Kada naprimer idem /editor i promenim skin na primer ne zelim da mi zatvori dialog i sve nego zelim tipa kad promenim skin za r1 da mi prikaze dialog gde pisu sve skinovi da kazem da me vrati dialog unazad.
2. Zone imam mnogo problema, ja sam uspeo da napravim kreiranje, zauzmi cmd itd itd ali prekida zauzimanje i ako sam unutar zone, nece da rade da kazem te kordinate zauzimanja, mogu da zauzimam i van zone i unutar zone, prekida mi zauzimanje i van zone i unutar zone takodje OnPlayerLeaveDynamicArea sam pokusao ali ne pravi veliku razliku sto se toga tice, radi bolje ali opet je zeznuto da kazem.
3. Menjanje boje f chata, menja boju f chata i radi savrseno medjutim zelim da napravim kada ja na primer stavim da bude boja F3FF02 da on automatski sacuva i 0xF3FF02, zasto, kada ja unesem F3FF02 onda na /f chat lepo radi medjutim ono vreme na timestamp bude belo a ostalo u boji i zato to zelim da i timestamp bude u boji tog chata ako me razumete.
4. Kada ja promenim poziciju sverca (INGAME Komandom) zelim da dodam da stari picup i label obrise i da kreira novi, pokusavao sam tu i tamo da napravim to medjutim ne ide mi bas pa eto bio bih zahvalan ako mi neko bude pomogao.
I to je to sto se tice da kazem moji problema koje ne znam koje kako da uradim i postoje eto poput zone koje me da kazem "Jebu u mozak. Ukoliko vam bude trebalo deo skripte da vidite na sta mislim itd itd, napisite u replay i dostavicu ima puno linija da bi vam ispisao ovde da mi je lakse 1 po 1, od kud znam mozda znate pa vam necu morati ni slati.
Deo skripte:///
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): //
1. Ne razumem o cemu je rec? /editor je dialog za selekciju skinova? Ako jeste, samo kada zavrsi kod za promenu skina, stavis da ti prikaze taj isti dialog za selekciju
2. Koristi funkciju streamer-a ( CreateDynamicRectangle ) za kreiranje zona, zatim u timeru za zauzimanje zone proveris prvo da li je u dinamicnoj zoni ( IsPlayerInDynamicArea )
3. Boja timestamp-a ce ti biti u boji drugog argumenta funkcije SendClientMessage, tako da stavi svoju boju u formatu 0xF3FF02FF kao drugi argument funkcije SendClientMessage i bice ti u toj boji timestamp
4. [pawn]new nekiPickup; //Deklarisemo novi pickup
//Uzecu u obzir da si kreirao pickup
obrisiPickup(playerid) {
if(IsValidDynamicPickup(nekiPickup)) //Proverava da li taj pickup postoji
DestroyDynamicPickup(nekiPickup); //Ako postoji, unisti ga
new Float:Pos[3]; //Nova promenljiva da uzmemo poziciju igraca gde ce pickup biti
GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]); //Uzimamo poziciju igraca
nekiPickup = CreateDynamicPickup(modelid, type, Pos[0], Pos[1], Pos[2], worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = STREAMER_PICKUP_SD, STREAMER_TAG_AREA areaid = STREAMER_TAG_AREA -1, priority = 0); //Samo ga kreiramo na te koordinate
return 1;
}[/pawn]
Ako ti nesto od ovoga ne bude bilo jasno, pitaj :D
3. Koliko sam shvatio zelis da embed boju stavis u string.
new color = 0xFFFF00FF; // Zuta
format(string, sizeof string, "{%06x}Bla bla", color >>> 8);
SendClientMessage(playerid, -1, string);
[pawn]format(arank, sizeof(arank), "{%06x}LSPD", BojaInfo[pFBoja][1] >>> 8);[/pawn]
Ahaaaaaaaa znaci tako, klk sam ja glup zapravo to sad vidim, hvala vam. Resio sam 1, 3 i 4. Jos samo 2 i gotovo sve, kad budem imao vreme probacu to sto je vo1d napisao nadam se da ce radit tako
ako ti radi obrnuto mozda negdje na provjeri imas !IsPlayerRangeOfPoint ili slicno pa ti kontra radi, u svakom slucaju posalji funkciju zauzimanja
Citat: Grella™ poslato Novembar 05, 2021, 10:24:37 PRE PODNE
ako ti radi obrnuto mozda negdje na provjeri imas !IsPlayerRangeOfPoint ili slicno pa ti kontra radi, u svakom slucaju posalji funkciju zauzimanja
[pawn]
forward GangZone(playerid);
public GangZone(playerid)
{
if(IsPlayerInDynamicArea(playerid, GZ[zonaid[playerid]][gZoneRectAngle]))
{
new id = zonaid[playerid];
new string[256];
GangZoneStopFlashForAll(ZonaID[id]);
PlayerTextDrawHide(playerid, ZauzimanjeTD[0][playerid]);
PlayerTextDrawHide(playerid, ZauzimanjeTD[1][playerid]);
PlayerTextDrawHide(playerid, ZauzimanjeTD[2][playerid]);
PlayerTextDrawHide(playerid, ZauzimanjeTD[3][playerid]);
PlayerTextDrawHide(playerid, ZauzimanjeTD[4][playerid]);
zonaid[playerid] -= 1;
zonatime[playerid] -= 1;
KillTimer(zonatimer[playerid]);
zauzimaplayer[playerid] = 0;
DeletePVar(playerid, "zauzima");
GZ[id][Zauzima] = 0;
SCM(playerid,NS_CRVENA,"[ERROR]: "SIVA"Zauzimanje je prekinuto zato sto ste izasli iz okvira zauzimanja.");
new sttatus[64];
if(GZ[id][zonaTeam] == 1) { sttatus = "The Vinci Family"; }
if(PlayerInfo[playerid][pClan] > 0)
{
format(string,sizeof(string),"[TERITORIJA] "BELA"Niste uspeli da zauzmete teritoriju (%d) koja je u posedu %s.",id,sttatus);
SendFamilyMessage(PlayerInfo[playerid][pClan],NS_CRVENA,string);
}
if(GZ[id][zonaTeam] == 1) //---TVF
{
format(string,sizeof(string),"[TERITORIJA] "BELA"Organizacija %s nije uspjela da zauzme vasu teritoriju (%d).", ImeOrganizacije(PlayerInfo[playerid][pClan]), id);
SendFamilyMessage(2,NS_CRVENA,string);
}
return true;
}
zonatime[playerid] -= 1;
if(zonatime[playerid] > 240 && zonatime[playerid] < 301)
{
if(zonas[playerid] == 1)
{
zonas[playerid] = 60;
}
zonas[playerid] -= 1;
new text2[126];
format(text2, sizeof(text2), "04:%d",zonas[playerid]);
PlayerTextDrawSetString(playerid,ZauzimanjeTD[2][playerid], text2);
PlayerTextDrawShow(playerid, ZauzimanjeTD[2][playerid]);
}
if(zonatime[playerid] > 180 && zonatime[playerid] < 240)
{
if(zonas[playerid] == 1)
{
zonas[playerid] = 60;
}
zonas[playerid] -= 1;
new text2[126];
format(text2, sizeof(text2), "03:%d",zonas[playerid]);
PlayerTextDrawSetString(playerid,ZauzimanjeTD[2][playerid], text2);
PlayerTextDrawShow(playerid, ZauzimanjeTD[2][playerid]);
}
if(zonatime[playerid] > 120 && zonatime[playerid] < 180)
{
if(zonas[playerid] == 1)
{
zonas[playerid] = 60;
}
zonas[playerid] -= 1;
new text2[126];
format(text2, sizeof(text2), "02:%d",zonas[playerid]);
PlayerTextDrawSetString(playerid,ZauzimanjeTD[2][playerid], text2);
PlayerTextDrawShow(playerid, ZauzimanjeTD[2][playerid]);
}
if(zonatime[playerid] > 60 && zonatime[playerid] < 120)
{
if(zonas[playerid] == 1)
{
zonas[playerid] = 60;
}
zonas[playerid] -= 1;
new text2[126];
format(text2, sizeof(text2), "01:%d",zonas[playerid]);
PlayerTextDrawSetString(playerid,ZauzimanjeTD[2][playerid], text2);
PlayerTextDrawShow(playerid, ZauzimanjeTD[2][playerid]);
}
if(zonatime[playerid] > 0 && zonatime[playerid] < 60)
{
if(zonas[playerid] == 1)
{
zonas[playerid] = 60;
}
zonas[playerid] -= 1;
new text2[126];
format(text2, sizeof(text2), "00:%d",zonas[playerid]);
PlayerTextDrawSetString(playerid,ZauzimanjeTD[2][playerid], text2);
PlayerTextDrawShow(playerid, ZauzimanjeTD[2][playerid]);
}
if(zonatime[playerid] < 1)
{
PlayerTextDrawHide(playerid, ZauzimanjeTD[0][playerid]);
PlayerTextDrawHide(playerid, ZauzimanjeTD[1][playerid]);
PlayerTextDrawHide(playerid, ZauzimanjeTD[2][playerid]);
PlayerTextDrawHide(playerid, ZauzimanjeTD[3][playerid]);
PlayerTextDrawHide(playerid, ZauzimanjeTD[4][playerid]);
new rand = random(3);
switch(rand)
{
case 0:
{
new rasda = random(500)+1000;
va_SendClientMessage(playerid,NS_YELLOW, "[INFO] "BELA"Zauzeli ste teritoriju i dobili "HZELENA"%dg materijala"BELA".", rasda);
PlayerInfo[playerid][pMats] += rasda;
}
case 1:
{
new rasda = random(500)+1000;
va_SendClientMessage(playerid,NS_YELLOW, "[INFO] "BELA"Zauzeli ste teritoriju i dobili "HZELENA"%dg droge"BELA".", rasda);
PlayerInfo[playerid][pDroga] += rasda;
}
case 2:
{
new rasda = random(30000)+20000;
va_SendClientMessage(playerid,NS_YELLOW, "[INFO] "BELA"Zauzeli ste teritoriju i dobili "HZELENA"$%d novca"BELA".", rasda);
g_NovacPlus(playerid, rasda);
}
}
KillTimer(zonatimer[playerid]);
zauzimaplayer[playerid] = 0;
DeletePVar(playerid, "zauzima");
new clan = PlayerInfo[playerid][pClan];
new lider = PlayerInfo[playerid][pLider];
new id = zonaid[playerid];
GZ[id][Zauzima] = 0;
GangZoneStopFlashForAll(ZonaID[id]);
new string[256];
new sttatus[64];
if(GZ[id][zonaTeam] == 1) { sttatus = "The Vinci Family"; }
if(PlayerInfo[playerid][pClan] > 0)
{
format(string,sizeof(string),"[TERITORIJA] "BELA"Zauzeli ste teritoriju (%d) koja je bila u posjedu %s.",id,sttatus);
SendFamilyMessage(PlayerInfo[playerid][pClan],NS_CRVENA,string);
}
if(GZ[id][zonaTeam] == 2 && clan == 2 || lider == 2)
{
format(string,sizeof(string),"[TERITORIJA] "BELA"Organizacija TVF je zauzela teritoriju (%d) koja je bila u vasem posjedu.", id);
SendFamilyMessage(GZ[id][zonaTeam],NS_CRVENA,string);
GZ[id][zonaTeam] = 1;
DestroyDynamic3DTextLabel(ZonaLabel[id]);
GangZoneHideForAll(ZonaID[id]);
GangZoneShowForAll(ZonaID[id],0xe80d0dEE);
new status[64];
format(status,sizeof(status),"The Vinci Family");
format(string,sizeof(string),"{157DEC}[ {FFFFFF}TERITORIJA {157DEC}]\nTeritorija je u vlasnistvu bande {FFFFFF}%s\n{157DEC}Ako zelis da je zauzmes kucaj {FFFFFF}/zauzmi",status);
ZonaLabel[id] = CreateDynamic3DTextLabel(string ,0x33CCFFAA,GZ[id][gPickupx], GZ[id][gPickupy], GZ[id][gPickupz], 25, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 30.0);
SacuvajZonu(id);
}
}
return 1;
}
return 1;
}[/pawn]
if(IsPlayerInDynamicArea(playerid, GZ[zonaid[playerid]][gZoneRectAngle])) tb ovdje vrsi provjeru ako je u arei prekida zauzimanje
[pawn]if(!IsPlayerInDynamicArea(playerid, GZ[zonaid[playerid]][gZoneRectAngle])) //ako igrac nije na zoni
if(IsPlayerInDynamicArea(playerid, GZ[zonaid[playerid]][gZoneRectAngle])) //ako je igrac u zoni[/pawn]