//=-=-=-=-=-=-=-=-= • DINAMICNO PRAVLJENJE POKLONA BY SHOMY • =-=-=-=-=-=-=-=-// /* NAPOMENA: Da bi koristili ovu FilterScriptu, MORATE imati folder "Pokloni", u Vasem scriptfiles folderu ! */ //=-= • INCLUDE • =-=// #include < a_samp > #include < YSI\y_ini > #include < YSI\y_commands > #include < sscanf2 > //=-= • DEFINE • =-=// #undef MAX_PLAYERS #define MAX_PLAYERS 300 // • NAMESTITE OVO KAKO VAMA ODGOVARA • // #define MAX_POKLONI 150 #define PFile "/Pokloni/%d.ini" //=-= • BOJE • =-=// #define COL_SERVER "{FF1414}" #define BELA "{FFFFFF}" //=-= • SKRACENICE • =-=// #define SCM SendClientMessage #define SCMTA SendClientMessageToAll //=-= • ENUM • =-=// enum pInfo { Float:PosX, Float:PosY, Float:PosZ, Model, pID } //=-= • NEW • =-=// new PoklonInfo[MAX_POKLONI][pInfo]; new Text3D:poklonlabel; new PravljeniPoklon; new RandomDobijanje[][6] = { { 5000 }, { 3000 }, { 4000 }, { 3500 }, { 2500 } }; //=-= • PUBLICS • =-=// public OnFilterScriptInit() { LoadPoklon(); return 1; } forward PoklonOcitavanje(id, name[], value[]); public PoklonOcitavanje(id, name[], value[]) { INI_Float("Pozicija X", PoklonInfo[id][PosX]); INI_Float("Pozicija Y", PoklonInfo[id][PosY]); INI_Float("Pozicija Z", PoklonInfo[id][PosZ]); INI_Int("Model", PoklonInfo[id][Model]); INI_Int("ID", PoklonInfo[id][pID]); return 1; } forward BrisanjeObjecta(playerid); public BrisanjeObjecta(playerid) { for(new i = 1; i < MAX_POKLONI; i++) { if(IsPlayerInRangeOfPoint(playerid, 1.0, PoklonInfo[i][PosX], PoklonInfo[i][PosY], PoklonInfo[i][PosZ])) { DestroyObject(PravljeniPoklon); Delete3DTextLabel(poklonlabel); new rand = random(sizeof(RandomDobijanje)); GivePlayerMoney(playerid, RandomDobijanje[rand][0]); SCM(playerid, -1, ""COL_SERVER"[INFO] "BELA"Otvorili ste poklon !"); new poklonfile[64]; format(poklonfile,sizeof(poklonfile), PFile, i); fremove(poklonfile); } } return 1; } //=-= • STOCK • =-=// stock SacuvajPoklon(id) { new pFile[60]; format(pFile, sizeof(pFile ), PFile,id); new INI:File = INI_Open(pFile); INI_WriteFloat(File, "Pozicija X", PoklonInfo[id][PosX]); INI_WriteFloat(File, "Pozicija Y", PoklonInfo[id][PosY]); INI_WriteFloat(File, "Pozicija Z", PoklonInfo[id][PosZ]); INI_WriteInt(File, "Model", PoklonInfo[id][Model]); INI_WriteInt(File, "ID", PoklonInfo[id][pID]); INI_Close(File); return 1; } stock LoadPoklon() { for(new i = 1; i < MAX_POKLONI; i++) { new pFile[50]; format(pFile, sizeof(pFile), PFile, i); if(fexist(pFile)) { INI_ParseFile(pFile, "PoklonOcitavanje", .bExtra = true, .extra = i); PravljeniPoklon = CreateObject(PoklonInfo[i][Model], PoklonInfo[i][PosX],PoklonInfo[i][PosY],PoklonInfo[i][PosZ], 0.0, 0.0, 0.0, 300.0); poklonlabel = Create3DTextLabel(""COL_SERVER"(( POKLON ))\n"BELA"Da ga otvorite kucajte\n/otvoripoklon", 0x008080FF, PoklonInfo[i][PosX],PoklonInfo[i][PosY],PoklonInfo[i][PosZ], 5.0, 0, 0); } } } PlayAnim(playerid, animlib[], animname[], Float:fDelta, loop, lockx, locky, freeze, time, forcesync) { ApplyAnimation(playerid, animlib, animname, fDelta, loop, lockx, locky, freeze, time, forcesync); } //=-= • CMD • =-=// YCMD:napravipoklon(playerid, params[], help) { #pragma unused help if(IsPlayerAdmin(playerid)) { new boja, Float:X,Float:Y,Float:Z; if(sscanf(params, "d", boja)) { SCM(playerid, -1, ""COL_SERVER"[GRESKA] "BELA"Koristite /napravipoklon [Boja]"); SCM(playerid, -1, ""COL_SERVER"[GRESKA] "BELA"Boja 1 - Crvena || Boja 2 - Narandzasta || Boja 3 - Crna || Boja 4 - Sarena"); } if(boja < 1 || boja > 4) return SCM(playerid, -1, ""COL_SERVER"[GRESKA] "BELA"ID Boje ne moze biti manji od 1 ili veci od 4 !"); SCM(playerid, -1, ""COL_SERVER"[INFO] "BELA"Stvorili ste poklon !"); GetPlayerPos(playerid, X,Y,Z); if(boja == 1) { PravljeniPoklon = CreateObject(19057, X,Y,Z, 0.0, 0.0, 0.0, 300.0); } if(boja == 2) { PravljeniPoklon = CreateObject(19055, X,Y,Z, 0.0, 0.0, 0.0, 300.0); } if(boja == 3) { PravljeniPoklon = CreateObject(19058, X,Y,Z, 0.0, 0.0, 0.0, 300.0); } if(boja == 4) { PravljeniPoklon = CreateObject(19056, X,Y,Z, 0.0, 0.0, 0.0, 300.0); } SetPlayerPos(playerid, X,Y,Z+3); PoklonInfo[PravljeniPoklon][PosX] = X; PoklonInfo[PravljeniPoklon][PosY] = Y; PoklonInfo[PravljeniPoklon][PosZ] = Z; if(boja == 1) { PoklonInfo[PravljeniPoklon][Model] = 19057; } else if(boja == 2) { PoklonInfo[PravljeniPoklon][Model] = 19055; } else if(boja == 3) { PoklonInfo[PravljeniPoklon][Model] = 19058; } else if(boja == 4) { PoklonInfo[PravljeniPoklon][Model] = 19056; } poklonlabel = Create3DTextLabel(""COL_SERVER"(( POKLON ))\n"BELA"Da ga otvorite kucajte\n/otvoripoklon", 0x008080FF, X,Y,Z, 5.0, 0, 0); SacuvajPoklon(PravljeniPoklon); } return 1; } YCMD:otvoripoklon(playerid, params[], help) { for(new i = 1; i < MAX_POKLONI; i++) { if(IsPlayerInRangeOfPoint(playerid, 1.0, PoklonInfo[i][PosX], PoklonInfo[i][PosY], PoklonInfo[i][PosZ])) { SetTimerEx("BrisanjeObjecta", 2200, false, "i", playerid); PlayAnim(playerid, "BOMBER", "BOM_Plant", 4.0, 0, 0, 0, 0, 0, 1); } } return 1; }