new SzirenaObject[MAX_VEHICLES];
CMD:szirenafelrak(playerid, params[]){ SzirenaObject[VID] = CreateObject(18646, 10.0, 10.0, 10.0, 0, 0, 0); AttachObjectToVehicle(SzirenaObject[VID], VID, 0.0, 0.75, 0.275, 0.0, 0.1, 0.0);}CMD:szirenalevesz(playerid, params[]){ DestroyObject(SzirenaObject[VID]);}
Hozd létre újra mikor törlöd és úgy tûnik majd mintha csak levetted volna.Csak egy kis logika.
Igen ezt így csináltam, csak utána úgy érzékeli, hogy még mindig rajta van az az adott dolog.
Igen ezt így csináltam, csak utána úgy érzékeli, hogy még mindig rajta van az az adott dolog. Az se rossz akkor, mondjuk ezt ki kellene próbálnom hogy törlöm és rögtön létrehozom az objectet és az AttachObjectToVehicle használata nélkül is úgy érzékeli mintha rajta lenne, mert akkor az egy újabb samp bug (hiba). [/quote]Véleményem szerint nem samp bug.Létrehoztunk egy objectet hozzá illesztettük a kocsihozMi az objectet töröljük és nem a kocsiról, szóval logikus, ha újra létrehozod megint rajta lesz.
Létrehoztunk egy objectet hozzá illesztettük a kocsihozMi az objectet töröljük és nem a kocsiról, szóval logikus, ha újra létrehozod megint rajta lesz.
new SzirenaObject[MAX_VEHICLES]; CMD:felrak(playerid, params[]){newVID = GetPlayerVehicleID(playerid);if(VID){if(SzirenaObject[VID] != -1) DestroyObject(SzirenaObject[VID]);SzirenaObject[VID] = SzirenaObject[VID] = CreateObject(18646, 0.0, 0.0, 0.0, 0, 0, 0);AttachObjectToVehicle(SzirenaObject[VID], VID, 0.0, 0.75, 0.275, 0.0, 0.1, 0.0);}return 1;}CMD:levesz(playerid, params[]){newVID = GetPlayerVehicleID(playerid);if(VID){DestroyObject(SzirenaObject[VID]);SzirenaObject[VID] = -1;new Float:vx, Float:vy, Float:vz;GetVehiclePos(VID, vx, vy, vz);SzirenaObject[VID] = CreateObject(18646, vx, vy, vz + 0.5, 0, 0, 0);}return 1;}
Létrehoztunk egy objectet hozzá illesztettük a kocsihozMi az objectet töröljük és nem a kocsiról, szóval logikus, ha újra létrehozod megint rajta lesz. Kurvára nem logikus.Én kipróbáltam hogy törlöm és újra létrehozom az objectet és nem marad rajt, lehet ti más sa-mp verziót használtok másra nem tudok gondolni. new SzirenaObject[MAX_VEHICLES]; CMD:felrak(playerid, params[]){newVID = GetPlayerVehicleID(playerid);if(VID){if(SzirenaObject[VID] != -1) DestroyObject(SzirenaObject[VID]);SzirenaObject[VID] = SzirenaObject[VID] = CreateObject(18646, 0.0, 0.0, 0.0, 0, 0, 0);AttachObjectToVehicle(SzirenaObject[VID], VID, 0.0, 0.75, 0.275, 0.0, 0.1, 0.0);}return 1;}CMD:levesz(playerid, params[]){newVID = GetPlayerVehicleID(playerid);if(VID){DestroyObject(SzirenaObject[VID]);SzirenaObject[VID] = -1;new Float:vx, Float:vy, Float:vz;GetVehiclePos(VID, vx, vy, vz);SzirenaObject[VID] = CreateObject(18646, vx, vy, vz + 0.5, 0, 0, 0);}return 1;} [/quote]Nem értem..Mért ne lenne logikus?!
Nem értem..Mért ne lenne logikus?!
CreateObject(..AttachObjectToVehicle(...DestroyObject(...CreateObject(...
Hozd létre újra mikor törlöd és úgy tûnik majd mintha csak levetted volna.Csak egy kis logika. [/quote] Igen ezt így csináltam, csak utána úgy érzékeli, hogy még mindig rajta van az az adott dolog. [/quote] Létrehoztunk egy objectet hozzá illesztettük a kocsihozMi az objectet töröljük és nem a kocsiról, szóval logikus, ha újra létrehozod megint rajta lesz. [/quote]Nem, nem lesz rajt csak akkor ha az object létrehozása után újból használjátok az AttachObjectToVehicle funkciót!
Létrehoztunk egy objectet hozzá illesztettük a kocsihozMi az objectet töröljük és nem a kocsiról, szóval logikus, ha újra létrehozod megint rajta lesz. [/quote]Nem, nem lesz rajt csak akkor ha az object létrehozása után újból használjátok az AttachObjectToVehicle funkciót!
if(!strcmp(\"/edit\", cmd, true)){ tmp = strtok(cmdtext, idx); if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, CBLUE, \"|- ((Hiba)) Nem vagy jármûben. -|\"); if(!strlen(tmp)) return SendClientMessage(playerid, CBLUE, \"|- ((Hiba)) Használat: /edit [objectid] -|\");new i, bool:OtherObject; for(i = 0; i < MAX_OBJECTS_PER_EDIT; i++){ if(PlayerData[playerid][ObjectID] == -1) break; OtherObject = true; if(i == (MAX_OBJECTS_PER_EDIT - 1)) return SendClientMessage(playerid, CBLUE, \"|- ((Hiba)) Elérte a maximum objectet. -|\");} new Obj = CreateObject(strval(tmp), 0.0, 0.0, -10.0, 0.0, 0.0, 0.0), vId = GetPlayerVehicleID(playerid), str[148]; if(OtherObject){ PlayerData[playerid][ObjectModel] = strval(tmp); PlayerData[playerid][EditionID] = i; PlayerData[playerid][ObjectID] = Obj; format(str, sizeof str, \"|- Módosítol az objecten {F40B74}%d{4E76B1}, edition id {F40B74}%d{4E76B1}. Használat KEY_LEFT, KEY_RIGHT és KEY_FIRE hogy betudd állítani magadnak. -|\", strval(tmp), i); SendClientMessage(playerid, CBLUE, str); SendClientMessage(playerid, CBLUE, \"|- Használat {F40B74}/X /Y és /Z{4E76B1} hogy változtasd a koordinátát. -|\"); SendClientMessage(playerid, CBLUE, \"|- Használat {F40B74}/RX /RY és /RZ{4E76B1} ezzel tudod változtatni a forgatási irányokat. -|\"); SendClientMessage(playerid, CBLUE, \"|- Használat {F40B74}/EDITION{4E76B1} választhatsz az ocjectek közül, melyeket leraktál. -|\"); SendClientMessage(playerid, CBLUE, \"|- Használat {F40B74}/FREEZE{4E76B1} és {F40B74}/UNFREEZE{4E76B1} ez segít jobban beállítani a koordinátát. -|\"); SendClientMessage(playerid, CBLUE, \"|- Használat {F40B74}/STOP{4E76B1} abba hagytad az object lerakást. -|\"); SendClientMessage(playerid, CBLUE, \"|- Használat {F40B74}/PAUSE{4E76B1} Megállítottad az object mozgatását. -|\"); SendClientMessage(playerid, CBLUE, \"|- Használat {F40B74}/BACK{4E76B1} Már tudod mozgatni az objectet. -|\"); SendClientMessage(playerid, CBLUE, \"|- Használat {F40B74}/SAVEOBJ{4E76B1} lementi a koordinátát \\\"editions.pwn\\\". -|\"); ShowPlayerDialog(playerid, 0, DIALOG_STYLE_MSGBOX, \"Információ\", \"Szeretnél ugyan olyan objectumot létrehozni az utolsóban?\", \"Igen\", \"Nem\"); return true;} PlayerData[playerid][VehicleID] = vId;PlayerData[playerid][ObjectModel] = strval(tmp);PlayerData[playerid][EditionID] = i;PlayerData[playerid][OffSetX][PlayerData[playerid][EditionID]] = 0.0;PlayerData[playerid][OffSetY][PlayerData[playerid][EditionID]] = 0.0;PlayerData[playerid][OffSetZ][PlayerData[playerid][EditionID]] = 0.0;PlayerData[playerid][OffSetRX][PlayerData[playerid][EditionID]] = 0.0;PlayerData[playerid][OffSetRY][PlayerData[playerid][EditionID]] = 0.0;PlayerData[playerid][OffSetRZ][PlayerData[playerid][EditionID]] = 0.0;PlayerData[playerid][ObjectID] = Obj;PlayerData[playerid][TimerID] = SetTimerEx(\"GetKeys\", 30, true, \"i\", playerid); format(str, sizeof str, \"|- Editing the object {F40B74}%d{4E76B1}, edition id {F40B74}%d{4E76B1}. Use KEY_LEFT, KEY_RIGHT and KEY_FIRE to adjust the offset\'s -|\", strval(tmp), i); SendClientMessage(playerid, CBLUE, str);SendClientMessage(playerid, CBLUE, \"|- Használat {F40B74}/X /Y és /Z{4E76B1} hogy változtasd a koordinátát. -|\");SendClientMessage(playerid, CBLUE, \"|- Használat {F40B74}/RX /RY és /RZ{4E76B1} ezzel tudod változtatni a forgatási irányokat. -|\");SendClientMessage(playerid, CBLUE, \"|- Használat {F40B74}/EDITION{4E76B1} választhatsz az ocjectek közül, melyeket leraktál. -|\");SendClientMessage(playerid, CBLUE, \"|- Használat {F40B74}/FREEZE{4E76B1} és {F40B74}/UNFREEZE{4E76B1} ez segít jobban beállítani a koordinátát. -|\");SendClientMessage(playerid, CBLUE, \"|- Használat {F40B74}/STOP{4E76B1} abba hagytad az object lerakást.. -|\");SendClientMessage(playerid, CBLUE, \"|- Használat {F40B74}/SAVEOBJ{4E76B1} lementi a koordinátát \\\"editions.pwn\\\". -|\"); return true;}
Én használok és egy másik objectet szeretnék rárakni.
#define MAX_ATTACHED_OBJECTS 10new AttachObject[MAX_VEHICLES][MAX_ATTACHED_OBJECTS];// Ide már for ciklus is kell mivel ellenõrizni kell létezik-e az adott object tárolva valamelyik cellában, ha igen ha nem, akkor az meg ez történjen.