GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: baglion02 - 2016. Október 27. - 20:45:06

Cím: pickup törlés
Írta: baglion02 - 2016. Október 27. - 20:45:06
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..
Cím: pickup törlés
Írta: Kyosuke_Hiroshi - 2016. Október 28. - 08:11:10
a [p] pontosan mit takarna?
Cím: pickup törlés
Írta: baglion02 - 2016. Október 28. - 15:20:34
azokat elfelejtettem átírni, de a  timeren belül van egy foreach és az lenne
Cím: pickup törlés
Írta: Kyosuke_Hiroshi - 2016. Október 28. - 16:39:13
OnPlayerPickUpDynamicPickup(playerid, pickupid);
használd ezt.
és akkor lefogod tudni kérni hogy melyik pickup és akkor fogod tudni törölni is
Cím: pickup törlés
Írta: baglion02 - 2016. November 01. - 09:09:38
és ehhez nem kell timer?
Cím: pickup törlés
Írta: Fred[HUN] - 2016. November 01. - 09:38:50
Ez akkor hívódik meg amikor, felvesz egy pickupot, ezért ID alapján le kell kérdezned, hogy melyiket vette fel.
Cím: pickup törlés
Írta: Memphis - 2016. November 01. - 09:40:41
Nem kell hozzá.
 

public OnPlayerPickUpDynamicPickup(playerid, pickupid) {
    if(pickupid == /*a te pickupod amit törölni szeretnél */) {
        DestroyDynamicPickup(...);
    }
    return 1;
}
Cím: pickup törlés
Írta: baglion02 - 2016. November 03. - 12:44:53
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
Cím: pickup törlés
Írta: Kyosuke_Hiroshi - 2016. November 03. - 16:18:04
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.
Cím: pickup törlés
Írta: baglion02 - 2016. November 03. - 16:42:34
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
Cím: pickup törlés
Írta: Kyosuke_Hiroshi - 2016. November 03. - 16:58:58

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.
Cím: pickup törlés
Írta: baglion02 - 2016. November 03. - 17:07:17
Köszi a tippet megpróbálom!! :)