Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //=-=-=-=-=-=-=-=-=-= DINAMICNO KREIRANJE PICKUPA BY SHOMY =-=-=-=-=-=-=-=-=-=//
- // = INCLUDE = //
- #include < a_samp >
- #include < YSI\y_ini >
- #include < YSI\y_commands >
- #include < sscanf2 >
- // = DEFINE = //
- #undef MAX_PLAYERS
- #define MAX_PLAYERS 300
- #undef MAX_PICKUPS
- #define MAX_PICKUPS 250
- #define PFile "/Pickups/%d.ini"
- #define SCM SendClientMessage
- // = ENUM = //
- enum pInfo
- {
- Float:UlazX,
- Float:UlazY,
- Float:UlazZ,
- Float:IzlazX,
- Float:IzlazY,
- Float:IzlazZ,
- Model,
- pInterior,
- pText[80],
- BojaTexta,
- pVWU,
- pVWI
- }
- // = NEW = //
- new PickupInfo[MAX_PICKUPS][pInfo];
- new Text3D:label[sizeof(PickupInfo)];
- new ipickup,upickup,PravljeniPickupIzlaz,PravljeniPickup;
- new bool:PritisnuoEnter[MAX_PLAYERS];
- // = PUBLICS = //
- public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
- {
- if(newkeys == KEY_SECONDARY_ATTACK )
- {
- for(new i; i < MAX_PICKUPS; i++)
- {
- if(IsPlayerInRangeOfPoint(playerid, 2.5, PickupInfo[i][UlazX], PickupInfo[i][UlazY], PickupInfo[i][UlazZ]))
- {
- if(!PritisnuoEnter[playerid])
- {
- SetPlayerPos(playerid, PickupInfo[i][IzlazX], PickupInfo[i][IzlazY], PickupInfo[i][IzlazZ]);
- SetPlayerInterior(playerid, PickupInfo[i][pInterior]);
- SetPlayerVirtualWorld(playerid, PickupInfo[i][pVWI]);
- SCM(playerid, -1, "Ucitavanje objekata, sacekajte...");
- TogglePlayerControllable(playerid, 0);
- SetTimerEx("AntiEnterSpam", 5000, false, "i", playerid);
- PritisnuoEnter[playerid] = true;
- }
- else return SCM(playerid, -1, "Sacekajte da se ucitaju objekti !");
- }
- else if(IsPlayerInRangeOfPoint(playerid, 2.5, PickupInfo[i][IzlazX], PickupInfo[i][IzlazY], PickupInfo[i][IzlazZ]))
- {
- if(!PritisnuoEnter[playerid])
- {
- SetPlayerPos(playerid, PickupInfo[i][UlazX], PickupInfo[i][UlazY], PickupInfo[i][UlazZ]);
- SetPlayerInterior(playerid, 0);
- SetPlayerVirtualWorld(playerid, PickupInfo[i][pVWU]);
- SCM(playerid, -1, "Ucitavanje objekata, sacekajte...");
- TogglePlayerControllable(playerid, 0);
- SetTimerEx("AntiEnterSpam", 5000, false, "i", playerid);
- PritisnuoEnter[playerid] = true;
- }
- else return SCM(playerid, -1, "Sacekajte da se ucitaju objekti !");
- }
- }
- }
- return 1;
- }
- public OnFilterScriptInit()
- {
- for(new id = 0; id < sizeof(PickupInfo); id++)
- {
- new pFile[50];
- format(pFile, sizeof(pFile), PFile, id);
- if(fexist(pFile))
- {
- INI_ParseFile(pFile, "UcitajPickups", .bExtra = true, .extra = id);
- upickup = CreatePickup(PickupInfo[id][Model], 1, PickupInfo[id][UlazX], PickupInfo[id][UlazY], PickupInfo[id][UlazZ], -1);
- ipickup = CreatePickup(PickupInfo[id][Model], 1, PickupInfo[id][IzlazX], PickupInfo[id][IzlazY], PickupInfo[id][IzlazZ], -1);
- new str[80];
- format(str,sizeof(str), "%s", PickupInfo[id][pText]);
- label[upickup] = Create3DTextLabel(str, PickupInfo[PravljeniPickup][BojaTexta], PickupInfo[id][UlazX], PickupInfo[id][UlazY], PickupInfo[id][UlazZ], 10.0, 0, 0);
- }
- }
- return 1;
- }
- public OnPlayerPickUpPickup(playerid, pickupid)
- {
- if(pickupid == upickup) return 0;
- if(pickupid == ipickup) return 0;
- if(pickupid == PravljeniPickupIzlaz) return 0;
- return 1;
- }
- forward UcitajPickups(id, name[], value[]);
- public UcitajPickups(id, name[], value[])
- {
- INI_Float("Ulaz X", PickupInfo[id][UlazX]);
- INI_Float("Ulaz Y", PickupInfo[id][UlazY]);
- INI_Float("Ulaz Z", PickupInfo[id][UlazZ]);
- INI_Float("Izlaz X", PickupInfo[id][IzlazX]);
- INI_Float("Izlaz Y", PickupInfo[id][IzlazY]);
- INI_Float("Izlaz Z", PickupInfo[id][IzlazZ]);
- INI_Int("Model", PickupInfo[id][Model]);
- INI_Int("Interior", PickupInfo[id][pInterior]);
- INI_Int("Text", PickupInfo[id][pText]);
- INI_Hex("Boja Texta", PickupInfo[id][BojaTexta]);
- INI_Int("Virtual World Ulaz", PickupInfo[id][pVWU]);
- INI_Int("Virtual World Izlaz", PickupInfo[id][pVWI]);
- return 1;
- }
- forward AntiEnterSpam(playerid);
- public AntiEnterSpam(playerid)
- {
- TogglePlayerControllable(playerid, 1);
- PritisnuoEnter[playerid] = false;
- SCM(playerid, -1, "Objekti ucitani.");
- return 1;
- }
- // = CMDS = //
- YCMD:kreirajpickup(playerid, params[], help)
- {
- #pragma unused help
- if(IsPlayerAdmin(playerid))
- {
- new model,text[80],inte,Float:iX,Float:iY,Float:iZ,Float:X,Float:Y,Float:Z,bt,vw;
- if(sscanf(params, "dfffddHs[80]", model, iX, iY, iZ, inte, vw, bt, text)) return SCM(playerid, -1, "Koristite /kreirajpickup [Model] [Izlaz X] [Izlaz Y] [Izlaz Z] [Interior] [Virtual World] [Boja Texta] [Text]");
- else if(model > 19999 || model < 1) return SCM(playerid, -1, "Model ne moze biti manji od 1 ili veci od 19999");
- GetPlayerPos(playerid, X,Y,Z);
- PravljeniPickup = CreatePickup(model, 1, X,Y,Z, -1);
- new str[80];
- format(str,sizeof(str), "%s", text);
- label[PravljeniPickup] = Create3DTextLabel(str, bt, X,Y,Z, 10.0, 0, 0);
- PickupInfo[PravljeniPickup][BojaTexta] = bt;
- PravljeniPickupIzlaz = CreatePickup(model, 1, iX,iY,iZ, -1);
- PickupInfo[PravljeniPickup][UlazX] = X;
- PickupInfo[PravljeniPickup][UlazY] = Y;
- PickupInfo[PravljeniPickup][UlazZ] = Z;
- PickupInfo[PravljeniPickup][IzlazX] = iX;
- PickupInfo[PravljeniPickup][IzlazY] = iY;
- PickupInfo[PravljeniPickup][IzlazZ] = iZ;
- PickupInfo[PravljeniPickup][Model] = model;
- PickupInfo[PravljeniPickup][pInterior] = inte;
- PickupInfo[PravljeniPickup][pText] = text;
- PickupInfo[PravljeniPickup][pVWU] = GetPlayerVirtualWorld(playerid);
- PickupInfo[PravljeniPickup][pVWI] = vw;
- SavePickup(PravljeniPickup);
- }
- else return SCM(playerid, -1, "Niste RCON Admin !");
- return 1;
- }
- YCMD:movepickup(playerid, params[], help)
- {
- #pragma unused help
- if(IsPlayerAdmin(playerid))
- {
- new pFile[50], id, Float:iX,Float:iY,Float:iZ,Float:X,Float:Y,Float:Z, inte, vw;
- if(sscanf(params, "dfffdd", id, iX, iY, iZ, inte, vw)) return SCM(playerid, -1, "Koristite /movepickup [ID] [Izlaz X] [Izlaz Y] [Izlaz Z] [Interior] [Virtual World]");
- format(pFile,sizeof(pFile), PFile, id);
- if(fexist(pFile))
- {
- GetPlayerPos(playerid, X,Y,Z);
- DestroyPickup(id);
- Delete3DTextLabel(label[id]);
- PravljeniPickup = CreatePickup(PickupInfo[id][Model], 1, X,Y,Z, -1);
- new str[80];
- format(str,sizeof(str), "%s", PickupInfo[id][pText]);
- label[PravljeniPickup] = Create3DTextLabel(str, PickupInfo[PravljeniPickup][BojaTexta], X,Y,Z, 10.0, 0, 0);
- PravljeniPickupIzlaz = CreatePickup(PickupInfo[id][Model], 1, iX,iY,iZ, -1);
- PickupInfo[PravljeniPickup][UlazX] = X;
- PickupInfo[PravljeniPickup][UlazY] = Y;
- PickupInfo[PravljeniPickup][UlazZ] = Z;
- PickupInfo[PravljeniPickup][IzlazX] = iX;
- PickupInfo[PravljeniPickup][IzlazY] = iY;
- PickupInfo[PravljeniPickup][IzlazZ] = iZ;
- PickupInfo[PravljeniPickup][pInterior] = inte;
- PickupInfo[PravljeniPickup][pVWU] = GetPlayerVirtualWorld(playerid);
- PickupInfo[PravljeniPickup][pVWI] = vw;
- SavePickup(PravljeniPickup);
- }
- else return SCM(playerid, -1, "Taj ID Pickupa ne postoji !");
- }
- else return SCM(playerid, -1, "Niste RCON Admin !");
- return 1;
- }
- YCMD:unistipickup(playerid, params[], help)
- {
- #pragma unused help
- if(IsPlayerAdmin(playerid))
- {
- new pFile[50], id, str[20];
- if(sscanf(params, "d", id)) return SCM(playerid, -1, "Koristite /unistipickup [ID]");
- format(pFile,sizeof(pFile), PFile, id);
- if(fexist(pFile))
- {
- fremove(pFile);
- DestroyPickup(id);
- Delete3DTextLabel(label[id]);
- format(str,sizeof(str), "Unistili ste pickup ID %d.", id);
- SCM(playerid, -1, str);
- }
- else return SCM(playerid, -1, "Taj ID Pickupa ne postoji !");
- }
- else return SCM(playerid, -1, "Niste RCON Admin !");
- return 1;
- }
- YCMD:infopickup(playerid, params[], help)
- {
- #pragma unused help
- if(IsPlayerAdmin(playerid))
- {
- for(new id; id < MAX_PICKUPS; id++)
- {
- if(IsPlayerInRangeOfPoint(playerid, 2.0, PickupInfo[id][UlazX],PickupInfo[id][UlazY],PickupInfo[id][UlazZ]))
- {
- new pFile[50];
- format(pFile, sizeof(pFile), PFile, id);
- if(fexist(pFile))
- {
- new str[165];
- format(str,sizeof(str), "Pickup ID - %d | Model - %d | Pozicija Ulaza - %f,%f,%f | Pozicija Izlaza - %f,%f,%f", id, PickupInfo[id][Model], PickupInfo[id][UlazX],PickupInfo[id][UlazY],PickupInfo[id][UlazZ], PickupInfo[id][IzlazX],PickupInfo[id][IzlazY],PickupInfo[id][IzlazZ]);
- SCM(playerid, -1, str);
- }
- }
- }
- }
- return 1;
- }
- // = STOCK = //
- stock SavePickup(id)
- {
- new pFile[100];
- format(pFile,sizeof(pFile), PFile, id);
- new INI:File = INI_Open(pFile);
- INI_WriteFloat(File, "Ulaz X", PickupInfo[id][UlazX]);
- INI_WriteFloat(File, "Ulaz Y", PickupInfo[id][UlazY]);
- INI_WriteFloat(File, "Ulaz Z", PickupInfo[id][UlazZ]);
- INI_WriteFloat(File, "Izlaz X", PickupInfo[id][IzlazX]);
- INI_WriteFloat(File, "Izlaz Y", PickupInfo[id][IzlazY]);
- INI_WriteFloat(File, "Izlaz Z", PickupInfo[id][IzlazZ]);
- INI_WriteInt(File, "Model", PickupInfo[id][Model]);
- INI_WriteInt(File, "Interior", PickupInfo[id][pInterior]);
- INI_WriteInt(File, "Text", PickupInfo[id][pText]);
- INI_WriteHex(File, "Boja Texta", PickupInfo[id][BojaTexta]);
- INI_WriteInt(File, "Virtual World Ulaz", PickupInfo[id][pVWU]);
- INI_WriteInt(File, "Virtual World Izlaz", PickupInfo[id][pVWI]);
- INI_Close(File);
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement