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][