Szerző Téma: pickup törlés  (Megtekintve 1382 alkalommal)

pickup törlés
« Dátum: 2016. október 27. - 20:45:06 »
0 Show voters
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..

pickup törlés
« Válasz #1 Dátum: 2016. október 28. - 08:11:10 »
0 Show voters
a [p] pontosan mit takarna?

pickup törlés
« Válasz #2 Dátum: 2016. október 28. - 15:20:34 »
0 Show voters
azokat elfelejtettem átírni, de a  timeren belül van egy foreach és az lenne

pickup törlés
« Válasz #3 Dátum: 2016. október 28. - 16:39:13 »
0 Show voters
OnPlayerPickUpDynamicPickup(playerid, pickupid);
használd ezt.
és akkor lefogod tudni kérni hogy melyik pickup és akkor fogod tudni törölni is

pickup törlés
« Válasz #4 Dátum: 2016. november 01. - 09:09:38 »
0 Show voters
és ehhez nem kell timer?

pickup törlés
« Válasz #5 Dátum: 2016. november 01. - 09:38:50 »
0 Show voters
Ez akkor hívódik meg amikor, felvesz egy pickupot, ezért ID alapján le kell kérdezned, hogy melyiket vette fel.

pickup törlés
« Válasz #6 Dátum: 2016. november 01. - 09:40:41 »
0 Show voters
Nem kell hozzá.
 

public OnPlayerPickUpDynamicPickup(playerid, pickupid) {
    if(pickupid == /*a te pickupod amit törölni szeretnél */) {
        DestroyDynamicPickup(...);
    }
    return 1;
}

pickup törlés
« Válasz #7 Dátum: 2016. november 03. - 12:44:53 »
0 Show voters
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
« Utoljára szerkesztve: 2016. november 03. - 13:06:28 írta baglion02 »

pickup törlés
« Válasz #8 Dátum: 2016. november 03. - 16:18:04 »
0 Show voters
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.

pickup törlés
« Válasz #9 Dátum: 2016. november 03. - 16:42:34 »
0 Show voters
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

pickup törlés
« Válasz #10 Dátum: 2016. november 03. - 16:58:58 »
0 Show voters

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.

pickup törlés
« Válasz #11 Dátum: 2016. november 03. - 17:07:17 »
0 Show voters
Köszi a tippet megpróbálom!! :)

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal