Szerző Téma: Inventory Rendszer segítségkérés  (Megtekintve 532 alkalommal)

Nem elérhető Ryoto

Inventory Rendszer segítségkérés
« Dátum: 2018. Április 22. - 17:41:09 »
0
Sziasztok.Kivettem a LYLRP modból az inventory rendszert és egy gondom akadt vele.Az inventorymban a jobb kézben van nálam egy fegyver 100 tölténnyel..A töltényt ellövöm, az inventoryban ugyanúgy megmarad a használat előtti töltények száma.Vagyis a 100.Ezt szeretném megoldani hogy fogyjon az inventoryban is a töltények száma.A script ittvan.
 
 

#include <a_samp>
#include <fixchars>
#include <streamer>
#include <sscanf2>
#include <Dini>
#include <foreach>
#include <core>
#include <float>
#include <a_npc>
#include <zcmd>
#include <utils>
#include <progress>
#include <a_angles>
//Timerhez-:
#define tsecond(%1) \\
   (%1 * 1000)
 
//Szinek
#define NARANCS            0xff8c00AA
#define PIROS            0xFF0000AA
#define ZOLD            0x33AA33AA
#define LILA             0xC2A2DAAA
#define CITROM            0xFFFF00AA
#define FONTOS             0x007bffAA
#define UZENET             0x5de8e1AA
#define RADIO             0x5ccdf2AA
#define KEK             0x1373C1FF
#define SOTETKEK          0x0000FFFF
#define VILAGOSKEK          0x2BCDFDFF
#define SOTETZOLD          0x008000FF
#define VILAGOSZOLD         0x00FF00FF
#define ROZSASZIN          0xFF00FFFF
#define AQUA             0x00FFFFFF
#define FEKETE             0x000000FF
#define FEHER             0xFFFFFFFF
#define SZURKE             0x808080FF
#define BORDO             0x800000FF
#define COLOR_ASKQ 0xFF0000FF
#define COLOR_ZOLD 0x33BB44BB
#define COLOR_AFK 0xAFAFAFAA
#define COLOR_GRAD1 0xB4B5B7FF
#define COLOR_GRAD2 0xBFC0C2FF
#define COLOR_GRAD3 0xCBCCCEFF
#define COLOR_GRAD4 0xD8D8D8FF
#define COLOR_GRAD5 0xE3E3E3FF
#define COLOR_GRAD6 0xF0F0F0FF
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x9EC73DAA
#define COLOR_GROVE 0x00FF00FF
#define COLOR_RED 0xAA3333AA
#define COLOR_WARNING 0xFB0000FF
#define COLOR_PINK 0xFF66FFAA
#define COLOR_ORANGE 0xFF9900AA
#define COLOR_LIGHTRED 0xFF0606FF
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_LIGHTGREEN 0x9ACD32AA
#define COLOR_YELLOW 0xDABB3EAA
#define COLOR_LOGIN 0x00FFFFFF
#define COLOR_YELLOW2 0xF5DEB3AA
#define COLOR_WHITE0xFFFFFFAA
#define COLOR_FADE1 0xE6E6E6E6
#define COLOR_FADE2 0xC8C8C8C8
#define COLOR_FADE3 0xAAAAAAAA
#define COLOR_FADE4 0x8C8C8C8C
#define COLOR_FADE5 0x6E6E6E6E
#define COLOR_PURPLE 0xC2A2DAAA
#define COLOR_DBLUE 0x2641FEAA
#define COLOR_ALLDEPT 0xFF8282AA
#define COLOR_NEWS 0x458E1DAA
#define COLOR_OOC 0x33AA33AA
#define COLOR_ADD 0x63FF60AA
#define COLOR_INVIS 0xAFAFAF00
#define COLOR_SPEC 0xBFC0C200
#define COLOR_BLUE 0x2641FEAA
#define COLOR_DARKNICERED 0x9D000096
#define COLOR_LIGHT_BLUE 0x9FB1EEAA
#define COLOR_WHITE 0xFFFFFFFF
#define COLOR_MEGALLO 0x9900FFFF
//Könnyitések:
stock bool:FALSE = false;
#define PRESSED(%0) \\
(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
#define chrtolower(%1) \\
(((%1) > 0x40 && (%1) <= 0x5A) ? ((%1) | 0x20) : (%1))
#define SCM SendClientMessage
#define SCMToAll SendClientMessageToAll
#define SendFormatMessage(%1,%2,%3,%4) do{new sendfstring[1024];format(sendfstring,1024,(%3),%4);Msg(%1,(%2),sendfstring,false);}while(FALSE)
#define SendFormatMessageToAll(%1,%2,%3) do{new sendfstring[1024];format(sendfstring,1024,(%2),%3);MsgToAll((%1),sendfstring,false);}while(FALSE)
#define SFMToAll(%1,%2,%3) do{new sendfstring[1024];format(sendfstring,1024,(%2),%3);MsgToAll((%1),sendfstring);}while(FALSE)
#define SFM(%1,%2,%3,%4) do{new sendfstring[1024];format(sendfstring,1024,(%3),%4);Msg(%1,(%2),sendfstring);}while(FALSE)
//-----INVENTORY RENDSZER-----
#define MAX_INVENTORY_SLOTS 7//7 Slot van, 2 a jobb és bal kéz + 4 zseb + Hát(fegyvernek)
#define MAX_TARGY 1000 //Felvehető tárgyak egyenlőre ennyi, lehet majd bőviteni
#define NINCS -1
#define INV_SLOT_BALKEZ 0
#define INV_SLOT_JOBBKEZ 1
#define INV_SLOT_BALZSEB 2
#define INV_SLOT_JOBBZSEB 3
#define INV_SLOT_BALFARZSEB 4
#define INV_SLOT_JOBBFARZSEB 5
#define INV_SLOT_HAT 6
#define INV_TARGYAK_SZAMA 64
#define CUCC_SEMMI 0
#define CUCC_PENZ 1
#define CUCC_SZENDVICS 2
#define CUCC_ITAL 3
#define CUCC_HAZKULCS 4
#define CUCC_KOCSIKULCS 5
#define CUCC_AJTOKULCS 6
#define CUCC_KAPUKULCS 7
#define CUCC_BANKKARTYA 8
#define CUCC_LSD 9
#define CUCC_MARIHUANA 10
#define CUCC_FU 11
#define CUCC_CIGI 12
#define CUCC_FUVESCIGI 13
#define CUCC_TEKERTFU 14
#define CUCC_CP 15
#define CUCC_CSIGA 16
#define CUCC_VASTAGPAPIR 17
#define CUCC_MARISCIGI 18
#define CUCC_GYUJTO 19
#define CUCC_ZSEBLAMPA 20
#define CUCC_BILINCS 21
//FEGYVEREK 22-től 60-ig
#define CUCC_BILINCSKULCS 61
#define CUCC_KOTEL 62
#define CUCC_KOTELVAGOKES 63
 
#define ISZABALY_BARMI 0
#define ISZABALY_CSAKKISDOLGOK 1
#define ISZABALY_CSAKFEGYVER 2
#define INV_MUV_MOZGATAS 0
#define INV_MUV_ELDOBAS 1
#define INV_MUV_ATADAS 2
#define SEMMI NINCS
#define KISDOLOG 0
#define NAGYDOLOG 1
#define FEGYVER 2
//Dialogok
#define DIALOG_INV_MENU 10
#define DIALOG_INV_MUVELET 11
#define DIALOG_INV_MUV_ATADAS 12
#define DIALOG_INV_MUV_MOZGATAS 13
#define DIALOG_INV_MUV_MENNYIT 14
//Vége
//NE FELEJTSD EL A Nullazasba betenni az új enumváltozót!
new iPlayerWeapon[MAX_PLAYERS];
new iNewPlayerWeapon[MAX_PLAYERS];
//Földről fel lehet venni a tárgyakat
enum TargyInfo
{
bool:tVan,
tObj,
tTargy,
tDarab,
tSpec,
Float:tPosX,
Float:tPosY,
Float:tPosZ,
tVW,
tInt,
    Text3D:tLabel
}
new tInfo[MAX_TARGY][TargyInfo];
//Inventory
enum iInfo
{
iTargy,
iDarab,
iSpec
};
new pInventory[MAX_PLAYERS][MAX_INVENTORY_SLOTS][iInfo];
new tNevek[INV_TARGYAK_SZAMA][64] = {
{\"Semmi\"},
{\"Pénz\"},
{\"Szendvics\"},
{\"Ital\"},
{\"Házkulcs\"},
{\"Kocsikulcs\"},
{\"Ajtókulcs\"},
{\"Kapukulcs\"},
{\"Bankkártya\"},
{\"LSD\"},
{\"Marihuánás cigaretta\"},
{\"Fű\"},
{\"Cigaretta\"},
{\"Füves cigaretta\"},
{\"Fű betekerve\"},
{\"Cigipapír\"},
{\"Csiga\"},
{\"Vastag papír\"},
{\"Marihuána\"},
{\"Öngyújtó\"},
{\"Zseblámpa\"},
{\"Bilincs\"},
{\"Brass Knuckles\"}, // wtf?
{\"Golf Club\"}, //
{\"Night Stick\"}, //
{\"Knife\"}, //
{\"Baseball Bat\"}, //
{\"Shovel\"}, //
{\"Pool Cue\"}, //
{\"Katana\"}, //
{\"Chainsaw\"}, //
{\"Flowers\"}, //
{\"Cane\"}, //
{\"Grenade\"}, //
{\"Teargas\"}, //
{\"Molotov\"}, //
{\"Colt 45\"}, //
{\"Colt 45 (Silenced)\"}, //
{\"Desert Eagle\"}, //
{\"Normal Shotgun\"}, //
{\"Sawnoff Shotgun\"}, //
{\"Combat Shotgun\"}, //
{\"Micro Uzi (Mac 10)\"}, //
{\"MP5\"}, //
{\"AK47\"}, //
{\"M4\"}, //
{\"Tec9\"}, //
{\"Country Rifle\"}, //
{\"Sniper Rifle\"}, //
{\"Rocket Launcher\"}, //
{\"Heat-Seeking Rocket Launcher\"}, //
{\"Flamethrower\"}, // 37
{\"Minigun\"}, // 38
{\"Satchel Charge\"}, //
{\"Detonator\"}, //
{\"Spray Can\"}, //
{\"Fire Extinguisher\"}, //
{\"Camera\"}, // 43
{\"Night Vision Goggles\"}, //
{\"Infrared Vision Goggles\"}, //
{\"Parachute\"}, // 60
{\"Bilincskulcs\"},
{\"Kötél\"},
{\"Kötélvágókés\"}
};
new iTargyInfok[INV_TARGYAK_SZAMA][4] = {
//Mennyi fér el egy sloton, súly(grammban), kisdolog,nagydolog, objekt
{0, 0, SEMMI, NINCS},//Semmi
{1000000, 1, KISDOLOG,1212},//Pénz
{1, 500, KISDOLOG,2880},//Szendvics
{1, 250, KISDOLOG,1546},//Ital
{1, 1, KISDOLOG,1955},//Házkulcs
{1, 1, KISDOLOG,1955},//Kocsikulcs
{1, 1, KISDOLOG,1955},//Ajtókulcs
{1, 1, KISDOLOG,2886},//Kapukulcs
{1, 1, KISDOLOG,1581},//Bankkártya
{10, 1, KISDOLOG,1576},//LSD
{10, 1, KISDOLOG,1485},//Marihuánás cigaretta
{10, 1, KISDOLOG,1576},//Fű
{10, 1, KISDOLOG,3044},//Cigaretta
{10, 1, KISDOLOG,1485},//Füves cigaretta
{10, 1, KISDOLOG,1485},//Fű betekerve
{10, 1, KISDOLOG,NINCS},//Csigapapír
{10, 1, KISDOLOG,NINCS},//Csiga
{10, 1, KISDOLOG,NINCS},//Vastag papír
{10, 1, KISDOLOG,1576},//Marihuána
{3, 1, KISDOLOG,1672},//Öngyújtó
{1, 500, NAGYDOLOG,18641},//Zseblámpa
{10, 150, KISDOLOG,19418},//Bilincs
{1,3000,FEGYVER,331},//Fegyverek..start
{1,3000,FEGYVER,333},
{1,3000,FEGYVER,334},
{1,3000,FEGYVER,335},
{1,3000,FEGYVER,336},
{1,3000,FEGYVER,337},
{1,3000,FEGYVER,338},
{1,3000,FEGYVER,339},
{1,3000,FEGYVER,341},
{1,3000,FEGYVER,325},
{1,3000,FEGYVER,326},
{1,3000,FEGYVER,342},
{1,3000,FEGYVER,343},
{1,3000,FEGYVER,344},
{1,3000,FEGYVER,346},
{1,3000,FEGYVER,347},
{1,3000,FEGYVER,348},
{1,3000,FEGYVER,349},
{1,3000,FEGYVER,350},
{1,3000,FEGYVER,351},
{1,3000,FEGYVER,352},
{1,3000,FEGYVER,353},
{1,3000,FEGYVER,355},
{1,3000,FEGYVER,356},
{1,3000,FEGYVER,372},
{1,3000,FEGYVER,357},
{1,3000,FEGYVER,358},
{1,3000,FEGYVER,359},
{1,3000,FEGYVER,360},
{1,3000,FEGYVER,361},
{1,3000,FEGYVER,362},
{1,3000,FEGYVER,363},
{1,3000,FEGYVER,364},
{1,3000,FEGYVER,365},
{1,3000,FEGYVER,366},
{1,3000,FEGYVER,367},
{1,3000,FEGYVER,368},
{1,3000,FEGYVER,369},
{1,3000,FEGYVER,371},//Fegyverek..end
{10, 200, KISDOLOG,1955},//Bilincskulcs
{1, 500, KISDOLOG,19087},//Kötél
{10, 100, KISDOLOG,19583}//Kötélvágókés
};
new bool:iSlotKellObjekt[MAX_INVENTORY_SLOTS] = {
true,true,false,false,false,false,true
};
new iSlotAslot[MAX_INVENTORY_SLOTS] = {
5,6,NINCS,NINCS,NINCS,NINCS,1
};
new iSlotokNeve[MAX_INVENTORY_SLOTS][] = {
{\"Bal kéz\"},
{\"Jobb kéz\"},
{\"Bal zseb\"},
{\"Jobb zseb\"},
{\"Bal farzseb\"},
{\"Jobb farzseb\"},
{\"Hát\"}
};
new iSlotSzabaly[MAX_INVENTORY_SLOTS] = {
ISZABALY_BARMI,
ISZABALY_BARMI,
ISZABALY_CSAKKISDOLGOK,
ISZABALY_CSAKKISDOLGOK,
ISZABALY_CSAKKISDOLGOK,
ISZABALY_CSAKKISDOLGOK,
ISZABALY_CSAKFEGYVER
};
new aWeaponNames[][32] = {
{\"Unarmed (Fist)\"}, // 0
{\"Brass Knuckles\"}, // 1
{\"Golf Club\"}, // 2
{\"Night Stick\"}, // 3
{\"Knife\"}, // 4
{\"Baseball Bat\"}, // 5
{\"Shovel\"}, // 6
{\"Pool Cue\"}, // 7
{\"Katana\"}, // 8
{\"Chainsaw\"}, // 9
{\"Purple Dildo\"}, // 10
{\"Big White Vibrator\"}, // 11
{\"Medium White Vibrator\"}, // 12
{\"Small White Vibrator\"}, // 13
{\"Flowers\"}, // 14
{\"Cane\"}, // 15
{\"Grenade\"}, // 16
{\"Teargas\"}, // 17
{\"Molotov\"}, // 18
{\" \"}, // 19
{\" \"}, // 20
{\" \"}, // 21
{\"Colt 45\"}, // 22
{\"Colt 45 (Silenced)\"}, // 23
{\"Desert Eagle\"}, // 24
{\"Normal Shotgun\"}, // 25
{\"Sawnoff Shotgun\"}, // 26
{\"Combat Shotgun\"}, // 27
{\"Micro Uzi (Mac 10)\"}, // 28
{\"MP5\"}, // 29
{\"AK47\"}, // 30
{\"M4\"}, // 31
{\"Tec9\"}, // 32
{\"Country Rifle\"}, // 33
{\"Sniper Rifle\"}, // 34
{\"Rocket Launcher\"}, // 35
{\"Heat-Seeking Rocket Launcher\"}, // 36
{\"Flamethrower\"}, // 37
{\"Minigun\"}, // 38
{\"Satchel Charge\"}, // 39
{\"Detonator\"}, // 40
{\"Spray Can\"}, // 41
{\"Fire Extinguisher\"}, // 42
{\"Camera\"}, // 43
{\"Night Vision Goggles\"}, // 44
{\"Infrared Vision Goggles\"}, // 45
{\"Parachute\"}, // 46
{\"Fake Pistol\"} // 47
};
enum InventoryTemp
{
invSlotrol,
invTargy,
invMuvelet,
invErtek
};
new InvTemp[MAX_PLAYERS][InventoryTemp];
 
forward SaveTargyak();//Tárgymentés
main() {}
//Inventory és tárgyrendszer adminparancsai
CMD:targyak(playerid,params[])
{
SendClientMessage(playerid,COLOR_YELLOW,\"=============Tárgy típusok=============\");
for(new i=0; i<INV_TARGYAK_SZAMA; i++)
{
    SendFormatMessage(playerid,COLOR_YELLOW,\"%d | %s\",i,tNevek);
}
Msg(playerid,COLOR_YELLOW,\"=======================================\");
return 1;
}
CMD:ujtargy(playerid,params[])
{
new id,spec,darab;
if(sscanf(params,\"ddd\",id,darab,spec)) return Msg(playerid,COLOR_LIGHTRED,\"/ujtargy [id] [darab] [spec] | Ha nincs spec akkor 0. | /targyak az IDkért\");
new targy = NINCS, Float:x, Float:y, Float:z, tempa[128];
if(id < 0 || id >=INV_TARGYAK_SZAMA ) return Msg(playerid,COLOR_LIGHTRED,\"Nem létező tárgy\");
GetPlayerPos(playerid,x,y,z);
for(new i=0; i<MAX_TARGY; i++)
{
   if(targy == NINCS && !tInfo[tVan])
   {
       targy = i;
   }
}
tInfo[targy][tVan] = true;
tInfo[targy][tTargy] = id;
tInfo[targy][tDarab] = darab;
tInfo[targy][tPosX] = x;
tInfo[targy][tPosY] = y;
tInfo[targy][tPosZ] = z;
tInfo[targy][tSpec] = spec;
tInfo[targy][tInt] = GetPlayerInterior(playerid);
tInfo[targy][tVW] = GetPlayerVirtualWorld(playerid);
format(tempa,128,\"{0080FF}===TÁRGY===\\n{FFFFFF}ID: %d\\n%s\\n%d darab\\nSpecInfó: %d\\nHasználat: \'C\'\",targy,tNevek[tInfo[targy][tTargy]],tInfo[targy][tDarab],tInfo[targy][tSpec]);
tInfo[targy][tLabel] = CreateDynamic3DTextLabel(tempa, COLOR_WHITE, x,y,z, 20.0, INVALID_VEHICLE_ID, INVALID_VEHICLE_ID, 0, tInfo[targy][tVW], tInfo[targy][tInt]);
SFM(playerid,COLOR_LIGHTGREEN,\"Létrehozva: ID:%d | %s | Mennyiség:%d | Spec:%d\",targy,tNevek[tInfo[targy][tTargy]],darab,spec);
tInfo[targy][tObj] = CreateDynamicObject(iTargyInfok[tInfo[targy][tTargy]][3],tInfo[targy][tPosX],tInfo[targy][tPosY],tInfo[targy][tPosZ]-1.0,90.0,0.0,0.0,tInfo[targy][tVW],tInfo[targy][tInt],NINCS);
return 1;
}
CMD:toroltargy(playerid,params[])
{
new id;
if(sscanf(params,\"d\",id)) return Msg(playerid,COLOR_LIGHTRED,\"/toroltargy [id]\");
if(!tInfo[id][tVan]) return Msg(playerid,COLOR_LIGHTRED,\"Nem létező tárgy\");
new targy = id;
tInfo[targy][tVan] = false;
tInfo[targy][tTargy] = CUCC_SEMMI;
tInfo[targy][tDarab] = 0;
tInfo[targy][tPosX] = NINCS;
tInfo[targy][tPosY] = NINCS;
tInfo[targy][tPosZ] = NINCS;
tInfo[targy][tInt] = GetPlayerInterior(playerid);
tInfo[targy][tVW] = GetPlayerVirtualWorld(playerid);
if(IsValidDynamicObject(tInfo[targy][tObj])) DestroyDynamicObject(tInfo[targy][tObj]);
DestroyDynamic3DTextLabel(tInfo[targy][tLabel]);
SFM(playerid,COLOR_LIGHTGREEN,\"%d(%s) törölve\",id,tNevek[id]);
new tFile[64];
format(tFile,sizeof(tFile),\"/LYL/Targyak/%d.ini\",targy);
dini_Remove(tFile);
return 1;
}
//Inventory rendszer
CMD:inventory(playerid,params[])
{
new szoveg[512] = \"\";
for(new i=0;i<MAX_INVENTORY_SLOTS;i++)
{
   if(pInventory[playerid][i][iTargy] == CUCC_SEMMI)
   {
       format(szoveg,sizeof(szoveg),\"%s%s (slot %d): Üres\\n\",szoveg,iSlotokNeve[i], i);
   } else {
       if(pInventory[playerid][i][iSpec] > 0)
       {
          format(szoveg,sizeof(szoveg),\"%s%s (slot %d): %s | %d darab | Speciális infó: %d\\n\",szoveg,iSlotokNeve, i, tNevek[pInventory[playerid][iTargy]],pInventory[playerid][iDarab],pInventory[playerid][iSpec]);
       } else {
          format(szoveg,sizeof(szoveg),\"%s%s (slot %d): %s | %d darab\\n\",szoveg,iSlotokNeve, i, tNevek[pInventory[playerid][iTargy]],pInventory[playerid][iDarab]);
       }
   }
}
ShowPlayerDialog(playerid,DIALOG_INV_MENU,DIALOG_STYLE_LIST,\"{FFFFFF}Inventory\",szoveg,\"Okés\",\"Kilépés\");
return 1;
}
/*
CMD:motoz(playerid,params[])
{
    new pid;
if(sscanf(params,\"u\",pid)) return Msg(playerid,COLOR_LIGHTRED,\"/motoz [Player(id)]\");
if(!IsPlayerConnected(pid))return NemOnline(playerid);
if(IsPlayerNPC(pid)) return HagydNPC(playerid);
if(pInfo[pid][pKezFent] || pInfo[pid][pAnimban] > 0 || pInfo[pid][pCuffed] || pInfo[pid][pKotozve])
{
   new szoveg[128];
   SendFormatMessage(playerid,COLOR_LIGHTGREEN,\"=====================%s inventoryja=====================\",GetPlayerName(pid));
   for(new i=0;i<MAX_INVENTORY_SLOTS;i++)
   {
      if(pInventory[pid][i][iTargy] == CUCC_SEMMI)
      {
          format(szoveg,sizeof(szoveg),\"%s (slot %d): Üres\",iSlotokNeve[i], i);
      } else {
          if(pInventory[pid][i][iSpec] > 0)
          {
             format(szoveg,sizeof(szoveg),\"%s (slot %d): %s | %d darab | Speciális infó: %d\",iSlotokNeve, i, tNevek[pInventory[pid][iTargy]],pInventory[pid][iDarab],pInventory[pid][iSpec]);
          } else {
             format(szoveg,sizeof(szoveg),\"%s (slot %d): %s | %d darab\",iSlotokNeve, i, tNevek[pInventory[pid][iTargy]],pInventory[pid][iDarab]);
          }
      }
      Msg(playerid,COLOR_LIGHTBLUE,szoveg,false);
      ApplyAnimation(playerid,\"SPRAYCAN\",\"spraycan_full\",3.0,0,0,0,0,0);
   }
   Msg(playerid,COLOR_LIGHTGREEN,\"===============================================================\",false);
} else {
   Msg(playerid,COLOR_LIGHTRED,\"Nincs feltéve a keze, vagy nincs animban/megbilincselve/megkötözve\");
}
return 1;
}
*/
public OnGameModeInit()
{
    LoadTargyak();
      SetTimer(\"InventoryTimer\",tsecond(1),true);
return 1;
}
public OnGameModeExit()
{
    SaveTargyak();
return 1;
}
public OnPlayerConnect(playerid)
{
return 1;
}
public SaveTargyak()
{
for(new i=0;i<MAX_TARGY;i++)
{
    if(tInfo[tVan])
    {
        SaveTargy(i);
    }
}
return 1;
}
stock LoadTargyak()
{
new loadedtargy = 0;
for(new i = 0; i <MAX_TARGY; i++)
{
   new tFile[32];
   format(tFile,sizeof(tFile),\"/LYL/Targyak/%d.ini\",i);
   if(dini_Exists(tFile))
   {
      LoadTargy(i);
      loadedtargy++;
   }
}
if(loadedtargy < 1) print(\"Nem lett tárgy betöltve\");
return 1;
}
stock SaveTargy(targy)
{
new tFile[64];
format(tFile,sizeof(tFile),\"/LYL/Targyak/%d.ini\",targy);
if(!dini_Exists(tFile))
{
    dini_Create(tFile);
}
dini_IntSet(tFile,\"Targy\",tInfo[targy][tTargy]);
dini_IntSet(tFile,\"Darab\",tInfo[targy][tDarab]);
dini_IntSet(tFile,\"Spec\",tInfo[targy][tSpec]);
dini_FloatSet(tFile,\"PosX\",tInfo[targy][tPosX]);
dini_FloatSet(tFile,\"PosY\",tInfo[targy][tPosY]);
dini_FloatSet(tFile,\"PosZ\",tInfo[targy][tPosZ]);
dini_IntSet(tFile,\"Int\",tInfo[targy][tInt]);
dini_IntSet(tFile,\"VW\",tInfo[targy][tVW]);
return 1;
}
stock LoadTargy(targy)
{
new tFile[64],h,mi,s,y,m,d,tempa[128];
getdate(y,m,d);
gettime(h,mi,s);
format(tFile,sizeof(tFile),\"/LYL/Targyak/%d.ini\",targy);
tInfo[targy][tVan] = true;
tInfo[targy][tTargy] = dini_Int(tFile,\"Targy\");
tInfo[targy][tDarab] = dini_Int(tFile,\"Darab\");
tInfo[targy][tSpec] = dini_Int(tFile,\"Spec\");
tInfo[targy][tPosX] = dini_Float(tFile,\"PosX\");
tInfo[targy][tPosY] = dini_Float(tFile,\"PosY\");
tInfo[targy][tPosZ] = dini_Float(tFile,\"PosZ\");
tInfo[targy][tVW] = dini_Int(tFile,\"VW\");
tInfo[targy][tInt] = dini_Int(tFile,\"Int\");
format(tempa,128,\"{0080FF}===TÁRGY===\\n{FFFFFF}ID: %d\\n%s\\n%d darab\\nSpecInfó: %d\\nHasználat: \'C\'\",targy,tNevek[tInfo[targy][tTargy]],tInfo[targy][tDarab],tInfo[targy][tSpec]);
tInfo[targy][tLabel] = CreateDynamic3DTextLabel(tempa, COLOR_WHITE, tInfo[targy][tPosX], tInfo[targy][tPosY], tInfo[targy][tPosZ], 20.0, INVALID_VEHICLE_ID, INVALID_VEHICLE_ID, 0, tInfo[targy][tVW], tInfo[targy][tInt]);
tInfo[targy][tObj] = CreateDynamicObject(iTargyInfok[tInfo[targy][tTargy]][3],tInfo[targy][tPosX],tInfo[targy][tPosY],tInfo[targy][tPosZ]-1.0,90.0,0.0,0.0,tInfo[targy][tVW],tInfo[targy][tInt],NINCS);
printf(\"[LYL-RPG %d.%02d.%02d. %02d:%02d]: Tárgy %d(%s) betöltve\",y,m,d,h,mi,targy,tNevek[tInfo[targy][tTargy]]);
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
return 1;
}
public OnPlayerSpawn(playerid)
{
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(PRESSED(KEY_CROUCH))
{
    if(IsPlayerNPC(playerid))return 1;
   new hovategyem = NINCS, kivt = NINCS;
   for(new i = 0; i<MAX_TARGY; i++)
   {
       if(tInfo[tVan] && IsPlayerInRangeOfPoint(playerid, 0.5, tInfo[tPosX], tInfo[tPosY], tInfo[tPosZ]) &&
                tInfo[tInt] == GetPlayerInterior(playerid) && tInfo[tVW] == GetPlayerVirtualWorld(playerid))
            {
                if(kivt == NINCS)
                {
            kivt = i;
         }
            }
   }
   if(kivt == NINCS) return 1;
    if(IsPlayerInAnyVehicle(playerid)) return Msg(playerid,COLOR_LIGHTRED,\"Kocsiból nem fog menni\");
   if(iTargyInfok[tInfo[kivt][tTargy]][2] == FEGYVER)
   {
       hovategyem = INV_SLOT_JOBBKEZ;
       if(pInventory[playerid][INV_SLOT_BALKEZ][iTargy] != CUCC_SEMMI) return Msg(playerid,COLOR_LIGHTRED,\"Csak akkor tudod felvenni, ha a bal kezed is üres\");
      if(pInventory[playerid][hovategyem][iTargy] != tInfo[kivt][tTargy] && pInventory[playerid][hovategyem][iTargy] != CUCC_SEMMI) return Msg(playerid,COLOR_LIGHTRED,\"Nem szabad a jobbkezed\");
   }
   for(new t = INV_SLOT_BALKEZ; t<= INV_SLOT_JOBBKEZ;t++)
   {
       if(hovategyem == NINCS && ((pInventory[playerid][t][iTargy] == tInfo[t][tTargy] && pInventory[playerid][t][iDarab] < iTargyInfok[tInfo[t][tTargy]][0] ) || pInventory[playerid][t][iTargy] == CUCC_SEMMI))
       {
          hovategyem = t;
       }
   }
   if(hovategyem == NINCS) return Msg(playerid,COLOR_LIGHTRED,\"Nincs hova tegyem a tárgyat, szabadítsd fel az egyik kezed\");
   pInventory[playerid][hovategyem][iTargy] = tInfo[kivt][tTargy];
   new hova = INV_SLOT_JOBBKEZ;
   new slot = kivt;
   if(iTargyInfok[tInfo[slot][tTargy]][2] == FEGYVER)
   {
            new weaponid = GetWeaponModelIDFromName(tNevek[ pInventory[playerid][hova][iTargy] ]);
      pInventory[playerid][hova][iTargy] = pInventory[playerid][slot][iTargy];
      pInventory[playerid][hova][iDarab] = 1;
      pInventory[playerid][hova][iSpec] += tInfo[kivt][tSpec];
      if(pInventory[playerid][slot][iSpec] < 1) pInventory[playerid][slot][iTargy] = CUCC_SEMMI;
      GivePlayerWeapon(playerid, weaponid, pInventory[playerid][hova][iSpec]);
      SetPlayerArmedWeapon(playerid, weaponid);
      DestroyDynamic3DTextLabel(tInfo[kivt][tLabel]);
      tInfo[kivt][tVan] = false;
      tInfo[kivt][tTargy] = CUCC_SEMMI;
      tInfo[kivt][tDarab] = 0;
      tInfo[kivt][tSpec] = NINCS;
      tInfo[kivt][tPosX] = NINCS;
      tInfo[kivt][tPosY] = NINCS;
      tInfo[kivt][tPosZ] = NINCS;
      tInfo[kivt][tInt] = NINCS;
      tInfo[kivt][tVW] = NINCS;
      if(IsValidDynamicObject(tInfo[kivt][tObj])) DestroyDynamicObject(tInfo[kivt][tObj]);
      new tFile[64];
      format(tFile,sizeof(tFile),\"/LYL/Targyak/%d.ini\",kivt);
      dini_Remove(tFile);
      new szoveg[128];
      format(szoveg,sizeof(szoveg),\"felvett némi %s-t a földről\",tNevek[pInventory[playerid][hovategyem][iTargy]]);
      return 1;
   }
   if((pInventory[playerid][hovategyem][iDarab] + tInfo[kivt][tDarab]) > iTargyInfok[tInfo[kivt][tTargy]][0])
   {
      pInventory[playerid][hovategyem][iDarab] = iTargyInfok[tInfo[kivt][tTargy]][0];
      new mennyimarad = tInfo[kivt][tDarab] - pInventory[playerid][hovategyem][iDarab];
      tInfo[kivt][tDarab] = mennyimarad;
      pInventory[playerid][hovategyem][iSpec] = tInfo[kivt][tSpec];
      new tempa[128];
      DestroyDynamic3DTextLabel(tInfo[kivt][tLabel]);
      format(tempa,128,\"{0080FF}===TÁRGY===\\n{FFFFFF}ID: %d\\n%s\\n%d darab\\nSpecInfó: %d\\nHasználat: \'C\'\",kivt,tNevek[tInfo[kivt][tTargy]],mennyimarad,tInfo[kivt][tSpec]);
      tInfo[kivt][tLabel] = CreateDynamic3DTextLabel(tempa, COLOR_WHITE, tInfo[kivt][tPosX], tInfo[kivt][tPosY], tInfo[kivt][tPosZ], 20.0, INVALID_VEHICLE_ID, INVALID_VEHICLE_ID, 0, tInfo[kivt][tVW], tInfo[kivt][tInt]);
      Msg(playerid,COLOR_LIGHTGREEN,\"Nem fért el mind a kezedben, így maradt a földön is\");
      new szoveg[128];
      format(szoveg,sizeof(szoveg),\"felvett némi %s-t a földről\",tNevek[pInventory[playerid][hovategyem][iTargy]]);
      return 1;
   }
   pInventory[playerid][hovategyem][iDarab] = tInfo[kivt][tDarab];
   pInventory[playerid][hovategyem][iSpec] = tInfo[kivt][tSpec];
   DestroyDynamic3DTextLabel(tInfo[kivt][tLabel]);
   tInfo[kivt][tVan] = false;
   tInfo[kivt][tTargy] = CUCC_SEMMI;
   tInfo[kivt][tDarab] = 0;
   tInfo[kivt][tSpec] = NINCS;
   tInfo[kivt][tPosX] = NINCS;
   tInfo[kivt][tPosY] = NINCS;
   tInfo[kivt][tPosZ] = NINCS;
   tInfo[kivt][tInt] = NINCS;
   tInfo[kivt][tVW] = NINCS;
   if(IsValidDynamicObject(tInfo[kivt][tObj])) DestroyDynamicObject(tInfo[kivt][tObj]);
   new tFile[64];
   format(tFile,sizeof(tFile),\"/LYL/Targyak/%d.ini\",kivt);
   dini_Remove(tFile);
   new szoveg[128];
   format(szoveg,sizeof(szoveg),\"felvett némi %s-t a földről\",tNevek[pInventory[playerid][hovategyem][iTargy]]);
   return 1;
}
return 1;
}
public OnPlayerUpdate(playerid)
{
    if(IsPlayerNPC(playerid))return 1;
    iNewPlayerWeapon[playerid] = GetPlayerWeapon(playerid);
if(iNewPlayerWeapon[playerid] != iPlayerWeapon[playerid])
{
   OnPlayerWeaponChange(playerid, iNewPlayerWeapon[playerid], iPlayerWeapon[playerid]);
   iPlayerWeapon[playerid] = iNewPlayerWeapon[playerid];
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_INV_MENU)
{
    if(!response) return 1;
   if(pInventory[playerid][listitem][iTargy] == CUCC_SEMMI) return Msg(playerid,COLOR_LIGHTRED,\"Ezen a sloton nincs semmi\");
   InvTemp[playerid][invTargy] = pInventory[playerid][listitem][iTargy];
   InvTemp[playerid][invSlotrol] = listitem;
   ShowPlayerDialog(playerid,DIALOG_INV_MUVELET,DIALOG_STYLE_LIST,\"{FFFFFF}Milyen műveletet végeznél ezzel az itemmel?\",\"Mozgatás másik slotra\\nEldobás\\nÁtadás másik játékosnak\\nHasználat\",\"Okés\",\"Kilépés\");
}
if(dialogid == DIALOG_INV_MUVELET)
{
    if(!response)
   {
      InvTemp[playerid][invTargy] = CUCC_SEMMI;
         InvTemp[playerid][invSlotrol] = NINCS;
         return 1;
      }
    switch(listitem)
    {
        case 0://Mozgatás
        {
                InvTemp[playerid][invMuvelet] = INV_MUV_MOZGATAS;
                ShowPlayerDialog(playerid,DIALOG_INV_MUV_MENNYIT,DIALOG_STYLE_INPUT,\"{FFFFFF}Mozgatás\",\"Mennyit szeretnél átmozgatni a másik slotra ebből az itemből?\",\"Okés\",\"Kilépés\");
        }
        case 1://Eldobás
        {
                InvTemp[playerid][invMuvelet] = INV_MUV_ELDOBAS;
                ShowPlayerDialog(playerid,DIALOG_INV_MUV_MENNYIT,DIALOG_STYLE_INPUT,\"{FFFFFF}Eldobás\",\"Mennyit szeretnél eldobni ebből az itemből?\",\"Okés\",\"Kilépés\");
        }
        case 2://Átadás
        {
                InvTemp[playerid][invMuvelet] = INV_MUV_ATADAS;
                ShowPlayerDialog(playerid,DIALOG_INV_MUV_MENNYIT,DIALOG_STYLE_INPUT,\"{FFFFFF}Átadás\",\"Mennyit szeretnél átadni másik játékosnak ebből az itemből?\",\"Okés\",\"Kilépés\");
        }
        case 4://Használat
        {
            new slot=InvTemp[playerid][invSlotrol];
         if(InvTemp[playerid][invTargy] == CUCC_SZENDVICS)
         {
             ApplyAnimation(playerid,\"FOOD\",\"EAT_Burger\",3.0,0,0,0,0,0);
             pInventory[playerid][slot][iDarab]--;
             if(pInventory[playerid][slot][iDarab] <= 0)
             {
               pInventory[playerid][slot][iTargy] = CUCC_SEMMI;
                    pInventory[playerid][slot][iSpec] = 0;
                    pInventory[playerid][slot][iDarab] = 0;
             }
         }
         else if(InvTemp[playerid][invTargy] == CUCC_ITAL)
         {
             ApplyAnimation(playerid,\"VENDING\",\"VEND_Drink_P\",3.0,0,0,0,0,0);
             pInventory[playerid][slot][iDarab]--;
             if(pInventory[playerid][slot][iDarab] <= 0)
             {
               pInventory[playerid][slot][iTargy] = CUCC_SEMMI;
                    pInventory[playerid][slot][iSpec] = 0;
                    pInventory[playerid][slot][iDarab] = 0;
             }
         }
         else if(InvTemp[playerid][invTargy] == CUCC_HAZKULCS)
         {
         }
         else if(InvTemp[playerid][invTargy] == CUCC_KAPUKULCS)
         {
         } else if(InvTemp[playerid][invTargy] == CUCC_LSD)
         {
         } else if(InvTemp[playerid][invTargy] == CUCC_MARIHUANA)
         {
         } else if(InvTemp[playerid][invTargy] == CUCC_FUVESCIGI)
         {            }
         else return Msg(playerid,COLOR_LIGHTRED,\"Ezt az itemet nem tudod mire használni\"), InvTemp[playerid][invTargy] = CUCC_SEMMI, InvTemp[playerid][invMuvelet] = NINCS, InvTemp[playerid][invSlotrol] = NINCS;
            }
    }
}
if(dialogid == DIALOG_INV_MUV_MENNYIT)
{
    if(!response) return InvTemp[playerid][invTargy] = CUCC_SEMMI, InvTemp[playerid][invMuvelet] = NINCS, InvTemp[playerid][invSlotrol] = NINCS;
   if(!strlen(inputtext)) return ShowPlayerDialog(playerid,DIALOG_INV_MUV_MENNYIT,DIALOG_STYLE_INPUT,\"{FFFFFF}Hahaha\",\"Vicces vagy... Tehát akkor most mennyit is?\",\"Okés\",\"Kilépés\");
   if(iTargyInfok[ pInventory[playerid][InvTemp[playerid][invSlotrol]][iTargy] ][2] == FEGYVER && (strval(inputtext) < 1 || pInventory[playerid][InvTemp[playerid][invSlotrol]][iSpec] < strval(inputtext)))
   {
       Msg(playerid,COLOR_LIGHTRED,\"Nincs ennyi tölténye, vagy kevesebbet írtál mint 1\");
       return 1;
   }
   if(iTargyInfok[ pInventory[playerid][InvTemp[playerid][invSlotrol]][iTargy] ][2] != FEGYVER && (strval(inputtext) < 1 || pInventory[playerid][InvTemp[playerid][invSlotrol]][iDarab] < strval(inputtext)))
   {
       Msg(playerid,COLOR_LIGHTRED,\"Nincs ennyi belőle, vagy kevesebbet írtál mint 1\");
       return 1;
   }
   InvTemp[playerid][invErtek] = strval(inputtext);
   switch(InvTemp[playerid][invMuvelet])
   {
       case INV_MUV_MOZGATAS:
       {
           if(!response)
           {
            InvTemp[playerid][invTargy] = CUCC_SEMMI;
            InvTemp[playerid][invMuvelet] = NINCS;
            InvTemp[playerid][invSlotrol] = NINCS;
            InvTemp[playerid][invErtek] = NINCS;
           }
            new szoveg[512] = \"\";
         for(new i=0;i<MAX_INVENTORY_SLOTS;i++)
         {
            if(pInventory[playerid][i][iTargy] == CUCC_SEMMI)
            {
                format(szoveg,sizeof(szoveg),\"%s%s (slot %d): Üres\\n\",szoveg,iSlotokNeve[i], i);
            } else {
                if(pInventory[playerid][i][iSpec] > 0)
                {
                   format(szoveg,sizeof(szoveg),\"%s%s (slot %d): %s | %d darab | Speciális infó: %d\\n\",szoveg,iSlotokNeve, i, tNevek[pInventory[playerid][iTargy]],pInventory[playerid][iDarab],pInventory[playerid][iSpec]);
                } else {
                   format(szoveg,sizeof(szoveg),\"%s%s (slot %d): %s | %d darab\\n\",szoveg,iSlotokNeve, i, tNevek[pInventory[playerid][iTargy]],pInventory[playerid][iDarab]);
                }
            }
         }
         ShowPlayerDialog(playerid,DIALOG_INV_MUV_MOZGATAS,DIALOG_STYLE_LIST,\"{FFFFFF}Mozgatás - Hova szeretnéd mozgatni\",szoveg,\"Okés\",\"Kilépés\");
       }
       case INV_MUV_ELDOBAS:
       {
           if(!response)
           {
            InvTemp[playerid][invTargy] = CUCC_SEMMI;
            InvTemp[playerid][invMuvelet] = NINCS;
            InvTemp[playerid][invSlotrol] = NINCS;
            InvTemp[playerid][invErtek] = NINCS;
           }
           new slot = InvTemp[playerid][invSlotrol],mennyit = InvTemp[playerid][invErtek],szoveg[128];
         new targy = NINCS, Float:x, Float:y, Float:z, tempa[128];
         GetPlayerPos(playerid,x,y,z);
         for(new i=0; i<MAX_TARGY; i++)
         {
            if(targy == NINCS && !tInfo[i][tVan])
            {
                targy = i;
            }
         }
               if(iTargyInfok[ pInventory[playerid][slot][iTargy] ][2] == FEGYVER)
               {
                  tInfo[targy][tVan] = true;
            tInfo[targy][tTargy] = pInventory[playerid][slot][iTargy];
            tInfo[targy][tDarab] = 1;
            tInfo[targy][tSpec] = pInventory[playerid][slot][iSpec];
            tInfo[targy][tPosX] = x;
            tInfo[targy][tPosY] = y;
            tInfo[targy][tPosZ] = z;
            tInfo[targy][tInt] = GetPlayerInterior(playerid);
            tInfo[targy][tVW] = GetPlayerVirtualWorld(playerid);
            format(tempa,128,\"{0080FF}===TÁRGY===\\n{FFFFFF}ID: %d\\n%s\\n%d darab\\nSpecInfó: %d\\nHasználat: \'C\'\",targy,tNevek[tInfo[targy][tTargy]],tInfo[targy][tDarab],tInfo[targy][tSpec]);
            tInfo[targy][tLabel] = CreateDynamic3DTextLabel(tempa, COLOR_WHITE, tInfo[targy][tPosX], tInfo[targy][tPosY], tInfo[targy][tPosZ], 20.0, INVALID_VEHICLE_ID, INVALID_VEHICLE_ID, 0, tInfo[targy][tVW], tInfo[targy][tInt]);
            tInfo[targy][tObj] = CreateDynamicObject(iTargyInfok[tInfo[targy][tTargy]][3],x,y,z-1.0,90.0,0.0,0.0,tInfo[targy][tVW],tInfo[targy][tInt],NINCS);
            pInventory[playerid][slot][iSpec] -= mennyit;
            if(pInventory[playerid][slot][iSpec] == 0) pInventory[playerid][slot][iTargy] = CUCC_SEMMI;
            InvTemp[playerid][invTargy] = CUCC_SEMMI;
            InvTemp[playerid][invMuvelet] = NINCS;
            InvTemp[playerid][invSlotrol] = NINCS;
            InvTemp[playerid][invErtek] = NINCS;
               } else {
            tInfo[targy][tVan] = true;
            tInfo[targy][tTargy] = pInventory[playerid][slot][iTargy];
            tInfo[targy][tDarab] = mennyit;
            tInfo[targy][tSpec] = pInventory[playerid][slot][iSpec];
            tInfo[targy][tPosX] = x;
            tInfo[targy][tPosY] = y;
            tInfo[targy][tPosZ] = z;
            tInfo[targy][tInt] = GetPlayerInterior(playerid);
            tInfo[targy][tVW] = GetPlayerVirtualWorld(playerid);
            format(tempa,128,\"{0080FF}===TÁRGY===\\n{FFFFFF}ID: %d\\n%s\\n%d darab\\nSpecInfó: %d\\nHasználat: \'C\'\",targy,tNevek[tInfo[targy][tTargy]],tInfo[targy][tDarab],tInfo[targy][tSpec]);
            tInfo[targy][tLabel] = CreateDynamic3DTextLabel(tempa, COLOR_WHITE, tInfo[targy][tPosX], tInfo[targy][tPosY], tInfo[targy][tPosZ], 20.0, INVALID_VEHICLE_ID, INVALID_VEHICLE_ID, 0, tInfo[targy][tVW], tInfo[targy][tInt]);
            tInfo[targy][tObj] = CreateDynamicObject(iTargyInfok[tInfo[targy][tTargy]][3],x,y,z-1.0,90.0,0.0,0.0,tInfo[targy][tVW],tInfo[targy][tInt],NINCS);
            format(szoveg,sizeof(szoveg),\"eldobott némi %s-t\",tNevek[tInfo[targy][tTargy]]);
            pInventory[playerid][slot][iDarab] -= mennyit;
            if(pInventory[playerid][slot][iDarab] == 0) pInventory[playerid][slot][iTargy] = CUCC_SEMMI;
            InvTemp[playerid][invTargy] = CUCC_SEMMI;
            InvTemp[playerid][invMuvelet] = NINCS;
            InvTemp[playerid][invSlotrol] = NINCS;
            InvTemp[playerid][invErtek] = NINCS;
         }
       }
       case INV_MUV_ATADAS:
       {
           if(!response)
           {
            InvTemp[playerid][invTargy] = CUCC_SEMMI;
            InvTemp[playerid][invMuvelet] = NINCS;
            InvTemp[playerid][invSlotrol] = NINCS;
            InvTemp[playerid][invErtek] = NINCS;
           }
          ShowPlayerDialog(playerid,DIALOG_INV_MUV_ATADAS,DIALOG_STYLE_INPUT,\"{FFFFFF}Átadás\",\"Kinek szeretnéd átadni? (ID/Névrészlet)\",\"Okés\",\"Kilépés\");
       }
   }
}
if(dialogid == DIALOG_INV_MUV_ATADAS)
{
   new kinek = ReturnUser(inputtext),slot = InvTemp[playerid][invSlotrol],mennyit = InvTemp[playerid][invErtek];
   if(!IsPlayerConnected(kinek))return SendClientMessage(playerid, -1,\"Nincs online a játékos\");
   if(kinek == playerid) return Msg(playerid,COLOR_LIGHTRED,\"Magadnak akarod átadni? Pff....\");
   if(GetDistanceBetweenPlayers(playerid,kinek) > 3.0) return Msg(playerid,COLOR_LIGHTRED,\"Nincs a közeledben\");
   new hovategyem = NINCS;
   for(new t = INV_SLOT_BALKEZ; t<= INV_SLOT_JOBBKEZ;t++)
   {
       if(hovategyem == NINCS && (pInventory[kinek][t][iTargy] == pInventory[playerid][slot][iTargy] || pInventory[kinek][t][iTargy] == CUCC_SEMMI))
       {
          hovategyem = t;
       }
   }
   if(iTargyInfok[ pInventory[playerid][slot][iTargy] ][2] == FEGYVER)
        {
        if(mennyit > pInventory[playerid][slot][iSpec]) return Msg(playerid,COLOR_LIGHTRED,\"Ennyi töltény nincs benne\");
      if((pInventory[kinek][INV_SLOT_JOBBKEZ][iTargy] == CUCC_SEMMI || pInventory[playerid][INV_SLOT_JOBBKEZ][iTargy] == pInventory[kinek][hovategyem][iTargy]) && pInventory[kinek][INV_SLOT_BALKEZ][iTargy] == CUCC_SEMMI)
      {
         hovategyem = INV_SLOT_JOBBKEZ;
         pInventory[kinek][hovategyem][iTargy] = pInventory[playerid][slot][iTargy];
         pInventory[kinek][hovategyem][iDarab] = 1;
         pInventory[kinek][hovategyem][iSpec] += mennyit;
         pInventory[playerid][slot][iSpec] -= mennyit;
         if(pInventory[playerid][slot][iSpec] < 1)
         {
            pInventory[playerid][slot][iTargy] = CUCC_SEMMI;
                    pInventory[playerid][slot][iSpec] = 0;
                    pInventory[playerid][slot][iDarab] = 0;
         }
         SendClientMessage(playerid, -1,\"átadott valakinek egy fegyvert\");
      }
   } else {
      if(mennyit > pInventory[playerid][slot][iDarab]) return Msg(playerid,COLOR_LIGHTRED,\"Ennyi nincs is nálad\");
      if(hovategyem == NINCS)return Msg(playerid,COLOR_LIGHTRED,\"Nincs szabad keze\");
      pInventory[kinek][hovategyem][iTargy] = pInventory[playerid][slot][iTargy];
      new mennyilenne = pInventory[kinek][hovategyem][iDarab] + mennyit;
      if(mennyilenne > iTargyInfok[ pInventory[playerid][slot][iTargy] ][0]) return Msg(playerid,COLOR_LIGHTRED,\"Ennyi nem fér el a kezében\");
      pInventory[kinek][hovategyem][iDarab] += mennyit;
      pInventory[playerid][slot][iDarab] -= mennyit;
      if( pInventory[playerid][slot][iDarab] <= 0)
      {
          pInventory[playerid][slot][iTargy] = CUCC_SEMMI;
      }
      new text[128];
      format(text,sizeof(text),\"átad %s-nek némi %s-t\",GetName(kinek),tNevek[pInventory[kinek][hovategyem][iTargy]]);
      SendClientMessage(playerid,-1, text);
   }
   InvTemp[playerid][invTargy] = CUCC_SEMMI;
   InvTemp[playerid][invMuvelet] = NINCS;
   InvTemp[playerid][invSlotrol] = NINCS;
   InvTemp[playerid][invErtek] = NINCS;
   return 1;
}
if(dialogid == DIALOG_INV_MUV_MOZGATAS)
{
   new slot = InvTemp[playerid][invSlotrol],mennyit = InvTemp[playerid][invErtek],hova = listitem,szoveg[128];
   InvTemp[playerid][invTargy] = CUCC_SEMMI;
   InvTemp[playerid][invMuvelet] = NINCS;
   InvTemp[playerid][invSlotrol] = NINCS;
   InvTemp[playerid][invErtek] = NINCS;
   if(slot == hova) return Msg(playerid,COLOR_LIGHTRED,\"Nem mozgathatod ugyanoda ahonnan szeretnéd mozgatni...\");
   if(pInventory[playerid][hova][iTargy] != pInventory[playerid][slot][iTargy] && pInventory[playerid][hova][iTargy] != CUCC_SEMMI) return Msg(playerid,COLOR_LIGHTRED,\"Ez a slot nem üres, és nem is olyan tárgyat tartalmaz, mint amilyet te szeretnél oda mozgatni\");
   new mennyilenne = pInventory[playerid][hova][iDarab] + mennyit;
   if(iTargyInfok[ pInventory[playerid][slot][iTargy] ][2] != FEGYVER && mennyilenne > iTargyInfok[ pInventory[playerid][slot][iTargy] ][0]) return Msg(playerid,COLOR_LIGHTRED,\"Ennyi nem fér el az általad megadott sloton\");
   if(iSlotSzabaly[hova] != ISZABALY_BARMI)
   {
      if(iSlotSzabaly[hova] == ISZABALY_CSAKFEGYVER)
      {
          if(iTargyInfok[ pInventory[playerid][slot][iTargy] ][2] != FEGYVER) return Msg(playerid,COLOR_LIGHTRED,\"Ezt nem rakhatod ide\");
      }
      if(iSlotSzabaly[hova] == ISZABALY_CSAKKISDOLGOK)
      {
          if(iTargyInfok[ pInventory[playerid][slot][iTargy] ][2] != KISDOLOG) return Msg(playerid,COLOR_LIGHTRED,\"Ezt nem rakhatod ide\");
      }
   }
   if(iTargyInfok[ pInventory[playerid][slot][iTargy] ][2] == FEGYVER && (hova != INV_SLOT_JOBBKEZ && hova != INV_SLOT_HAT)) return Msg(playerid,COLOR_LIGHTRED,\"Fegyvert csak jobb kézbe/hátadra rakhatsz\");
   if(iTargyInfok[ pInventory[playerid][INV_SLOT_JOBBKEZ][iTargy] ][2] == FEGYVER && hova == INV_SLOT_BALKEZ) return Msg(playerid,COLOR_LIGHTRED,\"Őhh fegyverhasználatnál másik kéz üres!\");
        if(iTargyInfok[ pInventory[playerid][slot][iTargy] ][2] == FEGYVER)
        {
            if(pInventory[playerid][slot][iTargy] != pInventory[playerid][hova][iTargy] && pInventory[playerid][hova][iTargy] != CUCC_SEMMI) return Msg(playerid,COLOR_LIGHTRED,\"Persze... Majd ráragasztod technokollal a másik tipusra\");
            if(hova != INV_SLOT_HAT)
            {
           if(pInventory[playerid][INV_SLOT_JOBBKEZ][iTargy] != CUCC_SEMMI) return Msg(playerid,COLOR_LIGHTRED,\"Balkéz legyen üres ha fegyvert akarsz használni\");
         new weaponid = GetWeaponModelIDFromName(tNevek[ pInventory[playerid][slot][iTargy] ]);
         new szov[128];
         format(szov,sizeof(szov),\"elővett egy %s-t\",tNevek[ pInventory[playerid][slot][iTargy] ]);
         pInventory[playerid][hova][iDarab] = 1;
         pInventory[playerid][slot][iDarab] = 0;
         pInventory[playerid][hova][iTargy] = pInventory[playerid][slot][iTargy];
         pInventory[playerid][hova][iSpec] += mennyit;
         pInventory[playerid][slot][iSpec] -= mennyit;
         if(pInventory[playerid][slot][iSpec] < 1) pInventory[playerid][slot][iTargy] = CUCC_SEMMI;
         GivePlayerWeapon(playerid, weaponid, pInventory[playerid][slot][iSpec]);
         SetPlayerArmedWeapon(playerid, weaponid);
      } else {
         new szov[128];
         format(szov,sizeof(szov),\"elrakott egy %s-t\",tNevek[ pInventory[playerid][slot][iTargy] ]);
         pInventory[playerid][hova][iTargy] = pInventory[playerid][slot][iTargy];
         pInventory[playerid][hova][iDarab] = 1;
         pInventory[playerid][slot][iDarab] = 0;
         pInventory[playerid][hova][iSpec] += mennyit;
         pInventory[playerid][slot][iSpec] -= mennyit;
         if(pInventory[playerid][slot][iSpec] < 1) pInventory[playerid][slot][iTargy] = CUCC_SEMMI;
         SetPlayerArmedWeapon(playerid, 0);
      }
   } else {
      pInventory[playerid][hova][iTargy] = pInventory[playerid][slot][iTargy];
      pInventory[playerid][hova][iDarab] = pInventory[playerid][hova][iDarab] + mennyit;
      pInventory[playerid][slot][iDarab] -= mennyit;
      if(pInventory[playerid][slot][iDarab] < 1) pInventory[playerid][slot][iTargy] = CUCC_SEMMI;
      format(szoveg,sizeof(szoveg),\"áttett némi %s-t a %s-éből a %s-ébe\",tNevek[pInventory[playerid][hova][iTargy]],iSlotokNeve[slot],iSlotokNeve[hova]);
      if(iSlotKellObjekt[slot])
      {
            if(IsPlayerAttachedObjectSlotUsed(playerid, slot)) RemovePlayerAttachedObject(playerid, 4);
      }
      if(iSlotKellObjekt[hova])
      {
          if(iTargyInfok[pInventory[playerid][hova][iTargy]][3] != NINCS)
          {
            SetPlayerAttachedObject(playerid, hova, iTargyInfok[pInventory[playerid][hova][iTargy]][3],iSlotAslot[hova],0.1,0.0,-0.025,0.0,180.0);
         }
      }
      SendClientMessage(playerid,1,szoveg);
   }
   return 1;
}
return 0;
}
forward InventoryTimer();
public InventoryTimer()
{
for(new i = 0; i<MAX_PLAYERS;i++)
{
   if(IsPlayerConnected(i) && !IsPlayerNPC(i))
   {
       Streamer_Update(i);
       if(IsPlayerConnected(i) && !IsPlayerNPC(i))
       {
          for(new a = 0; a<MAX_INVENTORY_SLOTS;a++)
          {
              if(pInventory[a][iDarab] < 1)
              {
                 pInventory[a][iTargy] = CUCC_SEMMI;
                 pInventory[a][iDarab] = 0;
                 pInventory[a][iSpec] = 0;
              }
            if(pInventory[a][iTargy] == CUCC_SEMMI && IsPlayerAttachedObjectSlotUsed(i, a))
            {
               RemovePlayerAttachedObject(i, a);
            }
            if(pInventory[a][iTargy] != CUCC_SEMMI && iSlotKellObjekt[a])
            {
                if(iTargyInfok[pInventory[a][iTargy]][3] != NINCS)
                {
                    if(iTargyInfok[pInventory[a][iTargy]][2] == FEGYVER)
                    {
                        if(a == INV_SLOT_HAT)
                        {
                           SetPlayerAttachedObject(i, a, iTargyInfok[ pInventory[a][iTargy] ][3],iSlotAslot[a],0.199999, -0.139999, 0.030000, 0.500007, -115.000000, 0.000000, 1.000000, 1.000000, 1.000000);
                     } else {
                        if(IsPlayerAttachedObjectSlotUsed(i, a)) { RemovePlayerAttachedObject(i, a); }
                     }
                  } else {
                     SetPlayerAttachedObject(i, a, iTargyInfok[pInventory[a][iTargy]][3],iSlotAslot[a],0.1,0.0,-0.025,0.0,180.0);
                  }
               }
            }
         }
      }
   }
}
return 1;
}
forward Float:GetDistanceBetweenPlayers(p1,p2);
public Float:GetDistanceBetweenPlayers(p1,p2)
{
new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
if(!IsPlayerConnected(p1) || !IsPlayerConnected(p2))
{
   return -1.00;
}
GetPlayerPos(p1,x1,y1,z1);
GetPlayerPos(p2,x2,y2,z2);
return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
}
forward OnPlayerWeaponChange(playerid, newweapon, oldweapon);//Fegyverváltáskor hívódik meg
public OnPlayerWeaponChange(playerid, newweapon, oldweapon)
{
    if(IsPlayerNPC(playerid))return 1;
if(newweapon != oldweapon)
{
    if(iTargyInfok[pInventory[playerid][INV_SLOT_JOBBKEZ][iTargy]][2]== FEGYVER)
    {
      SetPlayerArmedWeapon(playerid, GetWeaponModelIDFromName(tNevek[ pInventory[playerid][INV_SLOT_JOBBKEZ][iTargy] ]));
   }
}
return 1;
}
stock Nullazas(playerid)
{
    for(new i = 0; i < MAX_INVENTORY_SLOTS; i++)
    {
        pInventory[playerid][iTargy] = CUCC_SEMMI;
        pInventory[playerid][iDarab] = 0;
        pInventory[playerid][iSpec] = 0;
    }
InvTemp[playerid][invTargy] = CUCC_SEMMI;
InvTemp[playerid][invMuvelet] = NINCS;
InvTemp[playerid][invErtek] = NINCS;
return 1;
}
stock LoadPlayerInventory(playerid)
{
new iFile[64],szoveg[64];
format(iFile,sizeof(iFile),\"/LYL/Jatekosok/%s_inventory.ini\",GetPlayerName(playerid));
for(new i = 0; i<MAX_INVENTORY_SLOTS;i++)
{
   format(szoveg,sizeof(szoveg),\"Slot%d_targy\",i);
   pInventory[playerid][iTargy] = dini_Int(iFile,szoveg);
   format(szoveg,sizeof(szoveg),\"Slot%d_darab\",i);
   pInventory[playerid][iDarab] = dini_Int(iFile,szoveg);
   format(szoveg,sizeof(szoveg),\"Slot%d_spec\",i);
   pInventory[playerid][iSpec] = dini_Int(iFile,szoveg);
}
return 1;
}
stock SavePlayerInventory(playerid)
{
new iFile[64],szoveg[64];
format(iFile,sizeof(iFile),\"/LYL/Jatekosok/%s_inventory.ini\",GetPlayerName(playerid));
if(!dini_Exists(iFile))
{
    dini_Create(iFile);
}
for(new i = 0; i<MAX_INVENTORY_SLOTS;i++)
{
   format(szoveg,sizeof(szoveg),\"Slot%d_targy\",i);
   dini_IntSet(iFile,szoveg, pInventory[playerid][iTargy]);
   format(szoveg,sizeof(szoveg),\"Slot%d_darab\",i);
   dini_IntSet(iFile,szoveg, pInventory[playerid][iDarab]);
   format(szoveg,sizeof(szoveg),\"Slot%d_spec\",i);
   dini_IntSet(iFile,szoveg, pInventory[playerid][iSpec]);
}
Msg(playerid,COLOR_ORANGE,\"Inventory mentve\");
printf(\"%s inventory-ja mentésre került\",GetPlayerName(playerid));
return 1;
}
stock Msg(playerid,szin,szoveg[])
{
new str[1024];
format(str,sizeof(str),\"%s\",szoveg);
SCM(playerid,szin,str);
return 1;
}
stock MsgToAll(szin,szoveg[])
{
new str[1024];
format(str,sizeof(str),\"%s\",szoveg);
SCMToAll(szin,str);
return 1;
}
stock GetName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
return name;
}
GetWeaponModelIDFromName(wname[])
{
    for(new i = 0; i < 48; i++) {
        if (i == 19 || i == 20 || i == 21) continue;
   if (strfind(aWeaponNames, wname, true) != -1) {
      return i;
   }
}
return -1;
}
//Játékmód vége

 
Amennyiben valaki segit előre is köszönöm a segitséget :D
« Utoljára szerkesztve: 2018. Április 22. - 19:42:26 írta Alcatraz123@ »

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal