Započeo pokerface
•28. Okt. 2019.Airdrop Problem.
641
pregleda
6
postova
Made Man
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
368
Postovi:
31
Teme:
Pridružio se:Dec. 2018
28. Okt. 2019.
Problem(error/warning): Glup sam da otkrijem gdje je problem. Naime, kada pritisnem tipku F objekt se ne uništava, a inaće objekt kad sleti kreira dva ista iz nekoga razloga.
Dio skripte:
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): [ code ]vaš odgovor[ /code ]
Slika/video ingame problema(obavezno ako je ingame problem): link slike
Dio skripte:
public OnObjectMoved(objectid)
{
switch(GetObjectModel(objectid))
{
case 1681:
{
// Avion, kreiraj ga i unisti.
foreach(new i : SupplyDrops)
{
if(SupplyData == objectid)
{
DestroyObject(SupplyData);
SupplyData = -1;
break;
}
}
}
case 2975:
{
// ovo je kutija ili drop, provjeri dali je kreiraj i unisti.
foreach(new i : SupplyDrops)
{
if(SupplyData == objectid)
{
new Float: x, Float: y, Float: z;
GetObjectPos(objectid, x, y, z);
SupplyData = CreateDynamicObject(2975, x, y, z-0.1, 0, 0, 0, -1, -1, -1, 210.0, 0.0);
SupplyData = Create3DTextLabel("Supply Package\n(Press F to unpack)", -1, x, y, z+0.1, 40.0, 0, 0);
DestroyObject(SupplyData); SupplyData = -1;
SupplyData = SetTimerEx("RemoveDrop", DROP_LIFE * 60000, false, "i", i);
if(IsPlayerConnected(SupplyData)) SendClientMessage(SupplyData, 0x3498DBFF, "SUPPLY DROP: {FFFFFF}Drop complete.");
break;
}
}
}
}
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(newkeys & KEY_SECONDARY_ATTACK)
{
foreach(new i : SupplyDrops)
{
new obb = SupplyData;
if(IsValidDynamicObject(obb))
{
new Float:oX, Float:oY, Float:oZ;
GetDynamicObjectPos(obb,oX, oY, oZ);
if(IsPlayerInRangeOfPoint(playerid, 5, oX, oY, oZ))
{
DestroyDynamicObject(SupplyData);
SupplyData = -1;
Delete3DTextLabel(SupplyData);
KillTimer(SupplyData);
SupplyData = SupplyData = -1;
SupplyData = Text3D: -1;
SendClientMessage(playerid, 0xFF9900AA, "* You're equipped from package containing: Desert Deagle (120 ammo), Shotgun (80 ammo).");
GivePlayerWeapon(playerid, 24, 120); GivePlayerWeapon(playerid, 25, 80);
new next;
Iter_SafeRemove(SupplyDrops, i, next);
break;
}
}
}
}
return 1;
}
Debug iz server_log(ukoliko je u pitanju crashanje servera - crashdetect log): [ code ]vaš odgovor[ /code ]
Slika/video ingame problema(obavezno ako je ingame problem): link slike
Godfather
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
241 / 250 XP
Početnik(0)
2,043
Postovi:
83
Teme:
Pridružio se:Jan. 2014
28. Okt. 2019.
1. Koristiš OnObjectMoved, dakle koristiš obične objekte (CreateObject, MoveObject), a dole na F provjeravaš dinamične.
2. Kreiraš novi objekat pod OnObjectMoved, i zato ti se kreiraju dva objekta, OnObjectMoved ne uništava objekat, samo poziva callback da je MoveObject završen, ako želiš nešto da učiniš sa njime.
Riješenja:
1. Ako koristiš dinamične objekte, callback je OnDynamicObjectMoved.
2. if(SupplyData == objectid) ti je provjera na kraju micanja, a kreiraš taj objekat, probaj provjeru zamjeniti is boxObj u paraObj jer taj i uništavaš.
Ovdje sam gledao samo da odgovorim na taj problem što imaš, nisam gledao suštinski kod i da li ćeš mimo toga imati koji problem u sistemu, ali se da riješiti kada se riješi i to sa objektima.
2. Kreiraš novi objekat pod OnObjectMoved, i zato ti se kreiraju dva objekta, OnObjectMoved ne uništava objekat, samo poziva callback da je MoveObject završen, ako želiš nešto da učiniš sa njime.
Riješenja:
1. Ako koristiš dinamične objekte, callback je OnDynamicObjectMoved.
2. if(SupplyData == objectid) ti je provjera na kraju micanja, a kreiraš taj objekat, probaj provjeru zamjeniti is boxObj u paraObj jer taj i uništavaš.
Ovdje sam gledao samo da odgovorim na taj problem što imaš, nisam gledao suštinski kod i da li ćeš mimo toga imati koji problem u sistemu, ali se da riješiti kada se riješi i to sa objektima.
Made Man
Balkan SA:MP
SA-MP Doprinos
Balkan SA:MP
SA-MP DoprinosNovi Član
90 / 100 XP
Početnik(0)
368
Postovi:
31
Teme:
Pridružio se:Dec. 2018
29. Okt. 2019.
Slade wrote on October 28, 2019, 8:00 pm:
1. Koristiš OnObjectMoved, dakle koristiš obične objekte (CreateObject, MoveObject), a dole na F provjeravaš dinamične.
2. Kreiraš novi objekat pod OnObjectMoved, i zato ti se kreiraju dva objekta, OnObjectMoved ne uništava objekat, samo poziva callback da je MoveObject završen, ako želiš nešto da učiniš sa njime.
Riješenja:
1. Ako koristiš dinamične objekte, callback je OnDynamicObjectMoved.
2. if(SupplyData == objectid) ti je provjera na kraju micanja, a kreiraš taj objekat, probaj provjeru zamjeniti is boxObj u paraObj jer taj i uništavaš.
Ovdje sam gledao samo da odgovorim na taj problem što imaš, nisam gledao suštinski kod i da li ćeš mimo toga imati koji problem u sistemu, ali se da riješiti kada se riješi i to sa objektima.
2. Kreiraš novi objekat pod OnObjectMoved, i zato ti se kreiraju dva objekta, OnObjectMoved ne uništava objekat, samo poziva callback da je MoveObject završen, ako želiš nešto da učiniš sa njime.
Riješenja:
1. Ako koristiš dinamične objekte, callback je OnDynamicObjectMoved.
2. if(SupplyData == objectid) ti je provjera na kraju micanja, a kreiraš taj objekat, probaj provjeru zamjeniti is boxObj u paraObj jer taj i uništavaš.
Ovdje sam gledao samo da odgovorim na taj problem što imaš, nisam gledao suštinski kod i da li ćeš mimo toga imati koji problem u sistemu, ali se da riješiti kada se riješi i to sa objektima.
@Slade
1. Prebaci sam sve na obično kreiranje objeckta pa na dinamično nakon toga, a rezultat je isti. Nema promjerna.
2. Stavio sam u case 2975: kod ispod. Ali onda kada dođem blize objekta F tipka ne reagira, jer naravno objeckt kao da ne postoji a tamo je.
DestroyObject(SupplyData); SupplyData = -1;3. Ovo što si rekao za if(SupplyData == objectid) sam isto probao i stavio "paraObj", međutim objekt padobrana ostane a kutija nestane.
Morate biti prijavljeni da biste odgovorili na ovu temu.
Prijava