Talán így:
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:[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.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:@ZsoxAz 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:[pawn]DestroyPickup(pickup3);pickup3 = -1;[/pawn]