Talán így:Szerintem tökmindegy, hogy az else if-et 1 vagy 2 sorba írom. Más változást nem látok abban amit írtál.
Csakis ennek a változónak az értéknövelésénél keresd a hibát,
[pawn]
Work[playerid]
[/pawn]
mivel gondolom a pickupok jók ezért egy teszt erejéig próbáld ki így:
[/quote]
Az csak egy példa, de amikor a 3. vizsgálatnál a belsõ feltételt if(Work[playerid] == 3) kivettem, akkor sem hajtódott végre az utasítás. Tehát valahol a return van rossz helyen, vagy az egész szerkezete nem jó.
De ezekkel lehet csak össze zavarlak és arra véled a dolgot hogy nem jó az else if szerkezet akkor próbáld a switch case párost:A case sorokra ezt a hibát írja:
[pawn]
public OnPlayerPickUpPickup(playerid, pickupid)
{
switch(pickupid)
{
case pickup1:
{
SendClientMessage(playerid,0x800080AA,\"Felvetted az 1-est!\");
}
case pickup2:
{
SendClientMessage(playerid,0x800080AA,\"Felvetted az 2-est!\");
}
case pickup3:
{
SendClientMessage(playerid,0x800080AA,\"Felvetted az 3-ast!\");
}
}
return 1;
}
[/pawn]
Több ötletem nincs, ebben a témában, másnak tökéletesen mûködik.
Ebben semmi furcsaság nincs.Na, ezt se tudtam. :o
Ha te létrehozol egy pickupot annak lesz egy azonosító száma ami 0-tól kezdõdik.
és te törölsz belõlük egyet mondjuk a 3 azonosító számmal rendelkezõt (pickup3), majd létrehozol egyet akkor az a 3-as azonosító számot fogja megkapni, és ezért megfog jelenni az üzenet, az újonnan létrehozott pickupnál.
Röviden ne törölj olyan pickupot amihez társítasz valami dolgot az OnPlayerPickUpPickup alatt.
if(!bCreated[pickupid]) return bCreated[pickupid];
#define MAX_PICKUPS (2048)[/quote]
streamer esetében is 0 -tól kezdõdik és tart addig míg létrehozunk pickupot.
Ezért mikor törlésre kerül a pickup mi lenne ha olyan értéket adnánk a változónak ami valószínûleg nem lehet érvényes pickupid, mondjuk
\"-1\" vagy \"INVALID_OBJECT_ID (0xFFFF) (65535)\".
Röviden itt lenne a kód csak nem teszteltem: (de megfogom tenni estére, és ha mûködik megírom azt a verziót is ahol megmarad az eredeti native funkció név használat a scriptben)
[pawn]
stock
_DestroyPickup(&pickup)
{
DestroyPickup(pickup);
pickup = -1;
}
[/pawn]
Edit:
@Zsox
Az egyszerûség kedvéért, ahol törlöd a pickup3 változó által tárolt pickupot, írj oda egy plussz sort:
[pawn]
DestroyPickup(pickup3);
pickup3 = -1;
[/pawn]
Az egyszerûség kedvéért, ahol törlöd a pickup3 változó által tárolt pickupot, írj oda egy plussz sort:Úgy tûnik jó lesz, köszi!
[pawn]
DestroyPickup(pickup3);
pickup3 = -1;
[/pawn]