-
Hali, egy olyan gondom lenne, hogy a rendszer egyszeűen nem törli a pickupot..
Kód:
switch(PlayerInfo[playerid][pMunka1])
{
case MUNKA_UTTISZTITO:
{
MunkaPickup[p][0] = CreateDynamicPickup(1239, 24,1643.0325,-1898.7905,13.7909, 0);
}
case 24:
{
DestroyDynamicPickup(MunkaPickup[p][0]);
}
}
ez a kódrész 1 másodperces timer alatt van ami természetesen ismétlődő, ha felveszem a 24-es id-jű munkát nem törli a rendszer a pickupot..
-
a [p] pontosan mit takarna?
-
azokat elfelejtettem átírni, de a timeren belül van egy foreach és az lenne
-
OnPlayerPickUpDynamicPickup(playerid, pickupid);
használd ezt.
és akkor lefogod tudni kérni hogy melyik pickup és akkor fogod tudni törölni is
-
és ehhez nem kell timer?
-
Ez akkor hívódik meg amikor, felvesz egy pickupot, ezért ID alapján le kell kérdezned, hogy melyiket vette fel.
-
Nem kell hozzá.
public OnPlayerPickUpDynamicPickup(playerid, pickupid) {
if(pickupid == /*a te pickupod amit törölni szeretnél */) {
DestroyDynamicPickup(...);
}
return 1;
}
-
de ha paranccsal állítom át a munkát akkor nem tűnik el hiába írom oda.. :slap:
ha reconnectelek akkor nincs ott ugye mert nem is hozza létre
-
ha parancsal szeretnéd akkor a parancshoz is oda kell rakni hogy törölje a pickupot értelem szerűen [bár nem tudom milyen elvetemült dologra készülsz de menni fog :-)]
annyi hogy meg kell találd hogy melyik az a pickup józan paraszti ésszel arra tudok gondolni hogy MunkaPickup[MUNKAID][0] kellene törölni de nem tudom pontosan hogy te hogy írtad meg.
-
igen van egy változó munkapickup néven és így hoztam létre
munkapickup[playerid][0] = Createdynamicpickup.....
ez eddig oké de tegyük felegy paranccsal átírom a munka id-met akkor ott marad hiába van 1 sec-es timer alatt az ellenőrzés
az if pedig így van:
if(playerinfo[playerid][munka] != 1)
akkor ugye destroydynamicpickup(munkapickup[playerid][0])
és hát nem törli
-
if(egyezik(cmd,\"/setmunka\"))
{
if(params < 1)
{
SendClientMessage(playerid,-1,\"/setmunka MunkaID\");
return 1;
}
DestroyDynamicPickup(munkapickup[playerid][0]);
PlayerInfo[playerid][munka] = strval(param[1]);
munkapickup[playerid][0] = CreateDynamicPickup(......);
return 1;
}
Nem tudom mennyire fogod átlátni.
de ne timerbe rakd szerintem ez nem olyan akarna lenni amibe timerbe kéne legyen.
Én úgy csinálnám meg hogy ha a játékos munkába lép akkor létrehozza a pickupot, ha menet közbe változik a munkája (admin vált neki vagy munkát vált) akkor törölném a pickupot és létrehoznám az új pickupot neki.
a parancs kb mutatja hogy kb hogy gondolom.
-
Köszi a tippet megpróbálom!! :)