25.06.2012, 22:20
pawn Код:
/ This is a comment
// uncomment the line below if you want to write a filterscript
//#define FILTERSCRIPT
#include <a_samp>
#include <ZCMD>
#include <sscanf2>
#include "../include/streamer.inc"
#define COLOR_YELLOW 0xFFFF00AA
#define SHS_PASS "irp"
#define LoopPlayers(%1,%2) for(new %1 = 0; %1 < %2; %1++)
#define MAX_DMP 400
#define MAX_LABELS 800
#define cmdp:(%1) CMD:%1(playerid, params[])
#define DIALOG_SHSLOGIN 16001
#define MAX_DOORS 1000
forward LoadAll();
new SHSLoggedIn[MAX_PLAYERS];
new CreatedVehs[100];
new Float:GFFP[MAX_PLAYERS][5];
new GIFP[MAX_PLAYERS][5];
enum dInfo
{
Float:dPosX,
Float:dPosY,
Float:dPosZ,
dModel,
dColor,
dVw,
dInt,
dCreated,
dCreate,
};
new DMPInfo[MAX_DMP][dInfo];
enum lInfo
{
Float:lPosX,
Float:lPosY,
Float:lPosZ,
Float:lDistance,
lColor,
lVw,
lInt,
lText[42],
Text3D:lCreate,
}
new LabelInfo[MAX_LABELS][lInfo];
enum ddInfo
{
Float:ddExteriorX,
Float:ddExteriorY,
Float:ddExteriorZ,
Float:ddExteriorA,
Float:ddInteriorX,
Float:ddInteriorY,
Float:ddInteriorZ,
Float:ddInteriorA,
ddInt,
ddIntVW,
ddExtVw,
ddExtInt,
ddName[32],
ddLevel,
ddAdmin,
ddVehicleAble,
ddPickupType,
ddColor,
ddLock,
Text3D:ddLabel,
ddCreate,
}
new DoorInfo[MAX_DOORS][ddInfo];
public OnFilterScriptInit()
{
SetTimer("LoadAll",3000,false);
for(new v = 0; v < sizeof(CreatedVehs); v++)
{
CreatedVehs[v] = INVALID_VEHICLE_ID;
}
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
}
public OnPlayerConnect(playerid)
{
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
if(SHSLoggedIn[playerid] == 1) { SHSLoggedIn[playerid] = 0; SCM(playerid,"Disconnected from SHS,Stuff saved at scriptfiles/logs/shs.txt");}
return 1;
}
public OnPlayerSpawn(playerid)
{
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
return 1;
}
public OnVehicleSpawn(vehicleid)
{
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}
public OnPlayerText(playerid, text[])
{
return 1;
}
//---------------------------------------------------[ZCMD Commands]------------------------------------------------------------
cmdp:(shslogin)
{
if(SHSLoggedIn[playerid] == 1) return SCM(playerid,"You are already logged into SHS !");
ShowPlayerDialog(playerid,DIALOG_SHSLOGIN,DIALOG_STYLE_INPUT,"Login SHS","Please enter the server's SHS Default password","Okey","");
return 1;
}
cmdp:(mpos)
{
if(SHSLoggedIn[playerid] == 0) return SCM(playerid,"You must log in SHS before using it commands ( /shslogin ) ");
new input[24],saveinput[256];
if(sscanf(params,"s[24]",input)) return SCM(playerid,"USAGE: /mpos [savename]");
GetPlayerPosData(playerid);
format(saveinput,sizeof(saveinput),"X [%f] Y[%f] Z[%f] I[%i] VW[%i] %s",GFFP[playerid][0],GFFP[playerid][1],GFFP[playerid][2],GIFP[playerid][0],GIFP[playerid][1],input);
SCM(playerid,saveinput);
Log("/logs/mpos.txt",saveinput);
return 1;
}
cmdp:(svw)
{
if(SHSLoggedIn[playerid] == 0) return SCM(playerid,"You must log in SHS before using it commands ( /shslogin ) ");
new id,vwid;
if(sscanf(params,"ri",id,vwid)) return SCM(playerid,"USAGE: /svw [playerid/partofname] [virtualworld]");
if(!IsPlayerConnected(id)) return SCM(playerid,"Wrong player ID");
SetPlayerVirtualWorld(id,vwid);
new string[256];
format(string,sizeof(string),"[%d-%d-%d] %s has set %s's virtual world to %i.",GetDay(),GetMonth(),GetYear(),GetPName(playerid),GetPName(id),vwid);
Log("/logs/shscmds.txt",string);
if(id == playerid)
{
format(string,sizeof(string),"You have set your own virtual world to %i",vwid);
SCM(playerid,string);
return 1;
}else{
format(string,sizeof(string),"You have set %s's virtual world to %i",GetPName(id),vwid);
SCM(playerid,string);
format(string,sizeof(string),"%s Has set your virtual world to %i",GetPName(playerid),vwid);
SCM(id,string);
}
return 1;
}
cmdp:(sint)
{
if(SHSLoggedIn[playerid] == 0) return SCM(playerid,"You must log in SHS before using it commands ( /shslogin ) ");
new id,interior;
if(sscanf(params,"ri",id,interior)) return SCM(playerid,"USAGE: /svw [playerid/partofname] [interior]");
if(!IsPlayerConnected(id)) return SCM(playerid,"Wrong player ID");
SetPlayerInterior(id,interior);
new string[256];
format(string,sizeof(string),"[%d-%d-%d] %s has set %s's interior to %i.",GetDay(),GetMonth(),GetYear(),GetPName(playerid),GetPName(id),interior);
Log("/logs/shscmds.txt",string);
if(id == playerid)
{
SetPlayerInterior(id,interior);
format(string,sizeof(string),"You have set your own interior to %i",interior);
SCM(playerid,string);
return 1;
}else{
SetPlayerInterior(id,interior);
format(string,sizeof(string),"You have set %s's interior to %i",GetPName(id),interior);
SCM(playerid,string);
format(string,sizeof(string),"%s Has set your interior to %i",GetPName(playerid),interior);
SCM(id,string);
}
return 1;
}
//-----------------------------------------------------[ZCMD Commands / Dynamic Map Icons]--------------------------------------------------------
cmdp:(dmp)
{
if(SHSLoggedIn[playerid] == 0) return SCM(playerid,"You must log in SHS before using it commands ( /shslogin ) ");
new input[32],id,value;
if(sscanf(params,"s[32]dD",input,id,value))
{
SCM(playerid,"USAGE: /dmp [name] [dmpid] [(optional)value]");
return SCM(playerid,"Available names : [NON _ CASE SENSITIVE] Position, Model, Color, VirtualWorld, Interior, Delete");
}
if(id < 0 || id > MAX_DMP) return SCM(playerid,"ID Must be from 0 till 400");
if(strcmp(input,"position",true) == 0)
{
GetPlayerPosData(playerid);
DMPInfo[id][dPosX] = GFFP[playerid][0];
DMPInfo[id][dPosY] = GFFP[playerid][1];
DMPInfo[id][dPosZ] = GFFP[playerid][2];
DMPInfo[id][dInt] = GIFP[playerid][0];
DMPInfo[id][dVw] = GIFP[playerid][1];
SaveDMPS();
LoadDMPS();
SCM(playerid,"You have set the position.");
}
if(strcmp(input,"model",true) == 0)
{
DMPInfo[id][dModel] = value;
SaveDMPS();
LoadDMPS();
SCM(playerid,"You have set the model.");
}
if(strcmp(input,"color",true) == 0)
{
DMPInfo[id][dColor] = value;
SaveDMPS();
LoadDMPS();
SCM(playerid,"You have set the color.");
}
if(strcmp(input,"virtualworld",true) == 0)
{
DMPInfo[id][dVw] = value;
SaveDMPS();
LoadDMPS();
SCM(playerid,"You have set the virtual world.");
}
if(strcmp(input,"interior",true) == 0)
{
DMPInfo[id][dInt] = value;
SaveDMPS();
LoadDMPS();
SCM(playerid,"You have set the interior.");
}
if(strcmp(input,"delete",true) == 0)
{
DMPInfo[id][dPosX] = 0;
DMPInfo[id][dPosY] = 0;
DMPInfo[id][dPosZ] = 0;
DMPInfo[id][dInt] = 0;
DMPInfo[id][dVw] = 0;
DMPInfo[id][dModel] = 0;
DMPInfo[id][dColor] = 0;
DMPInfo[id][dVw] = 0;
DMPInfo[id][dCreated] = 0;
SCM(playerid,"You have deleted the dmp!");
SaveDMPS();
LoadDMPS();
}
return 1;
}
cmdp:(dmpnext)
{
if(SHSLoggedIn[playerid] == 0) return SCM(playerid,"You must log in SHS before using it commands ( /shslogin ) ");
new input[24];
SCM(playerid,"Next available dynamic map icon : ");
for(new d = 0; d <= MAX_DMP; d++)
{
if(DMPInfo[d][dPosX] == 0 && DMPInfo[d][dPosY] == 0 && DMPInfo[d][dPosZ] == 0)
{
format(input,sizeof(input),"Next : %d",d);
SCM(playerid,input);
break;
}
}
return 1;
}
cmdp:(dmpclose)
{
if(SHSLoggedIn[playerid] == 0) return SCM(playerid,"You must log in SHS before using it commands ( /shslogin ) ");
GetPlayerPosData(playerid);
new input[64];
SCM(playerid,"Listin closest DMPS....");
for(new d = 0; d <= MAX_DMP; d++)
{
if(IsPlayerInRangeOfPoint(playerid,15.0,DMPInfo[d][dPosX],DMPInfo[d][dPosY],DMPInfo[d][dPosZ]))
{
format(input,sizeof(input),"DMP %d ( model %d ) is near to you.",d,DMPInfo[d][dModel]);
SCM(playerid,input);
}
}
return 1;
}
//-----------------------------------------------------------------[ZCMD/Dynamic 3D Text Labels]------------------------------------------------
cmdp:(3dlabel)
{
if(SHSLoggedIn[playerid] == 0) return SCM(playerid,"You must log in SHS before using it commands ( /shslogin ) ");
new input[32],id,value;
if(sscanf(params,"s[32]dD",input,id,value))
{
SCM(playerid,"USAGE: /3dlabel [name] [labelID] [(optional)value]");
SCM(playerid,"/3dtext to edit the text");
return SCM(playerid,"Available names : [NON _ CASE SENSITIVE] Position, Color, VirtualWorld, Interior, Distance, Delete");
}
if(id < 0 || id > MAX_LABELS) return SCM(playerid,"ID Must be from 0 till 800");
if(strcmp(input,"position",true) == 0)
{
GetPlayerPosData(playerid);
LabelInfo[id][lPosX] = GFFP[playerid][0];
LabelInfo[id][lPosY] = GFFP[playerid][1];
LabelInfo[id][lPosZ] = GFFP[playerid][2];
LabelInfo[id][lInt] = GIFP[playerid][0];
LabelInfo[id][lVw] = GIFP[playerid][1];
SaveLabels();
LoadLabels();
SCM(playerid,"You have set the position !");
}
if(strcmp(input,"color",true) == 0)
{
if(value > 6 || value < 0) return SCM(playerid,"Color must be from 0 till 6");
LabelInfo[id][lColor] = value;
SaveLabels();
LoadLabels();
SCM(playerid,"You have set the color !");
}
if(strcmp(input,"VirtualWorld",true) == 0)
{
LabelInfo[id][lVw] = value;
SaveLabels();
LoadLabels();
SCM(playerid,"You have set the virtual world !");
}
if(strcmp(input,"interior",true) == 0)
{
LabelInfo[id][lInt] = value;
SaveLabels();
LoadLabels();
SCM(playerid,"You have set the interior !");
}
if(strcmp(input,"distance",true) == 0)
{
LabelInfo[id][lDistance] = value;
SaveLabels();
LoadLabels();
SCM(playerid,"You have set the distance !");
}
if(strcmp(input,"delete",true) == 0)
{
LabelInfo[id][lPosX] = 0;
LabelInfo[id][lPosY] = 0;
LabelInfo[id][lPosZ] = 0;
LabelInfo[id][lInt] = 0;
LabelInfo[id][lVw] = 0;
LabelInfo[id][lColor] = 0;
SaveLabels();
LoadLabels();
SCM(playerid,"You have deleted the label !");
}
return 1;
}
cmdp:(3dnext)
{
if(SHSLoggedIn[playerid] == 0) return SCM(playerid,"You must log in SHS before using it commands ( /shslogin ) ");
new input[24];
SCM(playerid,"Next available dynamic 3d text labels : ");
for(new l = 0; l <= MAX_LABELS; l++)
{
if(LabelInfo[l][lPosX] == 0 && LabelInfo[l][lPosY] == 0 &&LabelInfo[l][lPosZ] == 0)
{
format(input,sizeof(input),"Next : %d",l);
SCM(playerid,input);
break;
}
}
return 1;
}
cmdp:(3dtext)
{
if(SHSLoggedIn[playerid] == 0) return SCM(playerid,"You must log in SHS before using it commands ( /shslogin ) ");
new input[42],id;
if(sscanf(params,"is[42]",id,input))
{
SCM(playerid,"USAGE: /3dtext [labelID] [text]");
return 1;
}
if(id < 0 || id > MAX_LABELS) return SCM(playerid,"ID Must be from 0 till 800");
strmid(LabelInfo[id][lText],input,0,strlen(input),255);
SCM(playerid,"You have set the text !");
SaveLabels();
LoadLabels();
return 1;
}
cmdp:(3dclose)
{
if(SHSLoggedIn[playerid] == 0) return SCM(playerid,"You must log in SHS before using it commands ( /shslogin ) ");
new input[42];
SCM(playerid,"Listin closest 3d text labels ....");
for(new l = 0; l <= MAX_LABELS; l++)
{
if(IsPlayerInRangeOfPoint(playerid,7.0,LabelInfo[l][lPosX],LabelInfo[l][lPosY],LabelInfo[l][lPosZ]))
{
format(input,sizeof(input),"Label %d is near to you.",l);
SCM(playerid,input);
}
}
return 1;
}
//--------------------------------------------------------[ZCMD / Dynamic Doors]--------------------------------------------------------------------
cmdp:(door)
{
if(SHSLoggedIn[playerid] == 0) return SCM(playerid,"You must log in SHS before using it commands ( /shslogin ) ");
new input[32],id,value;
if(sscanf(params,"s[32]dD",input,id,value))
{
SCM(playerid,"USAGE: /door [name] [doorID] [(optional)value]");
SCM(playerid,"/doorname to edit the text");
return SCM(playerid,"Available names : [NON _ CASE SENSITIVE] Exterior, Color, Interior, Delete, Lock, PickupType, Level, VehicleAble, Admin");
}
if(id < 0 || id > MAX_DOORS) return SCM(playerid,"ID Must be from 0 till 1000");
if(strcmp(input,"exterior",true) == 0)
{
GetPlayerPosData(playerid);
DoorInfo[id][ddExteriorX] = GFFP[playerid][0];
DoorInfo[id][ddExteriorY] = GFFP[playerid][1];
DoorInfo[id][ddExteriorZ] = GFFP[playerid][2];
DoorInfo[id][ddExteriorA] = GFFP[playerid][3];
DoorInfo[id][ddExtVw] = GIFP[playerid][1];
DoorInfo[id][ddExtInt] = GIFP[playerid][0];
SaveDoors();
LoadDoors();
SCM(playerid,"You have set the exterior !");
}
if(strcmp(input,"interior",true) == 0)
{
GetPlayerPosData(playerid);
DoorInfo[id][ddInteriorX] = GFFP[playerid][0];
DoorInfo[id][ddInteriorY] = GFFP[playerid][1];
DoorInfo[id][ddInteriorZ] = GFFP[playerid][2];
DoorInfo[id][ddInteriorA] = GFFP[playerid][3];
DoorInfo[id][ddIntVW] = id+1000;
DoorInfo[id][ddInt] = GIFP[playerid][0];
SetPlayerVirtualWorld(playerid,id+1000);
SaveDoors();
LoadDoors();
SCM(playerid,"You have set the interior !");
}
if(strcmp(input,"color",true) == 0)
{
//0-9
if(value < 0 || value > 9) return SCM(playerid,"Color must be from 0 till 9");
DoorInfo[id][ddColor] = value;
SaveDoors();
LoadDoors();
SCM(playerid,"You have set the color !");
}
if(strcmp(input,"Lock",true) == 0)
{
if(DoorInfo[id][ddLock] == 0)
{
DoorInfo[id][ddLock] = 1;
GameTextForPlayer(playerid,"~n~ ~n~ Door ~r~ Locked",3000,3);
return 1;
}
if(DoorInfo[id][ddLock] == 1)
{
DoorInfo[id][ddLock] = 0;
GameTextForPlayer(playerid,"~n~ ~n~ Door ~g~ Unlocked",3000,3);
return 1;
}
}
if(strcmp(input,"PickupType",true) == 0)
{
if(value < 0 || value > 14) return SCM(playerid,"Pickup ID must be from 0 till 14");
DoorInfo[id][ddPickupType] = value;
SaveDoors();
LoadDoors();
SCM(playerid,"You have set the pickup model !");
}
if(strcmp(input,"Level",true) == 0)
{
DoorInfo[id][ddLevel] = value;
SaveDoors();
SCM(playerid,"You have set the Level !");
}
if(strcmp(input,"Admin",true) == 0)
{
if(DoorInfo[id][ddAdmin] == 0)
{
DoorInfo[id][ddAdmin] = 1;
SCM(playerid,"The door will now work for (RCON)admins only !");
SaveDoors();
return 1;
}
if(DoorInfo[id][ddAdmin] == 1)
{
DoorInfo[id][ddAdmin] = 0;
SCM(playerid,"The door will now work for all players !");
SaveDoors();
return 1;
}
}
if(strcmp(input,"VehicleAble",true) == 0)
{
DoorInfo[id][ddVehicleAble] = value;
SCM(playerid,"You have set vehicle able !");
SaveDoors();
return 1;
}
if(strcmp(input,"Delete",true) == 0)
{
DoorInfo[id][ddInteriorX] = 0;
DoorInfo[id][ddInteriorY] = 0;
DoorInfo[id][ddInteriorZ] = 0;
DoorInfo[id][ddInteriorA] = 0;
DoorInfo[id][ddIntVW] = 0;
DoorInfo[id][ddInt] = 0;
DoorInfo[id][ddExteriorX] = 0;
DoorInfo[id][ddExteriorY] = 0;
DoorInfo[id][ddExteriorZ] = 0;
DoorInfo[id][ddExteriorA] = 0;
DoorInfo[id][ddIntVW] = 0;
DoorInfo[id][ddInt] = 0;
DoorInfo[id][ddColor] = 0;
DoorInfo[id][ddAdmin] = 0;
DoorInfo[id][ddLevel] = 0;
DoorInfo[id][ddPickupType] = 0;
SaveDoors();
LoadDoors();
SCM(playerid,"You have set the interior !");
}
return 1;
}
cmdp:(dnext)
{
if(SHSLoggedIn[playerid] == 0) return SCM(playerid,"You must log in SHS before using it commands ( /shslogin ) ");
SCM(playerid,"Next available door ID :");
new input[32];
for(new index = 0; index < MAX_DOORS; index++)
{
if(DoorInfo[index][ddExteriorX] == 0 && DoorInfo[index][ddExteriorY] != 0 && DoorInfo[index][ddExteriorZ] == 0 && DoorInfo[index][ddExteriorA] == 0)
{
format(input,sizeof(input),"%d",index);
SCM(playerid,input);
break;
}
}
return 1;
}
cmdp:(dname)
{
if(SHSLoggedIn[playerid] == 0) return SCM(playerid,"You must log in SHS before using it commands ( /shslogin ) ");
new input[32],id;
if(sscanf(params,"is[32]",id,input)) return SCM(playerid,"USAGE: /dname [doorID] [text(DOOR_NAME)]");
if(id < 0 || id > MAX_DOORS) return SCM(playerid,"Door id must be from 0 till 1000");
strmid(DoorInfo[id][ddName],input,0,strlen(input),255);
SCM(playerid,"You have set the door's name !");
SaveDoors();
LoadDoors();
return 1;
}
cmdp:(dgoto)
{
if(SHSLoggedIn[playerid] == 0) return SCM(playerid,"You must log in SHS before using it commands ( /shslogin ) ");
new id;
if(sscanf(params,"i",id)) return SCM(playerid,"USAGE: /dgoto [doorID]");
if(id < 0 || id > MAX_DOORS) return SCM(playerid,"Door id must be from 0 till 1000");
if(DoorInfo[id][ddExteriorX] == 0) return SCM(playerid,"Door doesnt exist !");
SetPlayerPos(playerid,DoorInfo[id][ddExteriorX],DoorInfo[id][ddExteriorY],DoorInfo[id][ddExteriorZ]);
SetPlayerFacingAngle(playerid,DoorInfo[id][ddExteriorA]);
SetPlayerVirtualWorld(playerid,DoorInfo[id][ddExtVw]);
SetPlayerInterior(playerid,DoorInfo[id][ddExtInt]);
SCM(playerid,"You have been teleported !");
return 1;
}
cmdp:(enter)
{
for(new index = 0; index < sizeof(DoorInfo); index++)
{
if(IsPlayerInRangeOfPoint(playerid,3.0,DoorInfo[index][ddExteriorX],DoorInfo[index][ddExteriorY],DoorInfo[index][ddExteriorZ]) && GetPlayerVirtualWorld(playerid) == DoorInfo[index][ddExtVw] && GetPlayerInterior(playerid) == DoorInfo[index][ddExtInt])
{
if(DoorInfo[index][ddAdmin] > 0 && !IsPlayerAdmin(playerid)) return SCM(playerid,"This door is enabled for admins only !");
if(GetPlayerScore(playerid) < DoorInfo[index][ddLevel]) return SCM(playerid,"Your level isnt high enough to enter this door !");
if(DoorInfo[index][ddLock] > 0) return SCM(playerid,"This door is locked !");
SetPlayerInterior(playerid,DoorInfo[index][ddInt]);
SetPlayerVirtualWorld(playerid,DoorInfo[index][ddIntVW]);
if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER && DoorInfo[index][ddVehicleAble] > 0)
{
new vid = GetPlayerVehicleID(playerid);
SetVehiclePos(vid,DoorInfo[index][ddInteriorX],DoorInfo[index][ddInteriorY],DoorInfo[index][ddInteriorZ]);
SetVehicleZAngle(vid,DoorInfo[index][ddInteriorA]);
SetVehicleVirtualWorld(vid,DoorInfo[index][ddIntVW]);
LinkVehicleToInterior(vid,DoorInfo[index][ddInt]);
return 1;
}else{
SetPlayerPos(playerid,DoorInfo[index][ddInteriorX],DoorInfo[index][ddInteriorY],DoorInfo[index][ddInteriorZ]);
SetPlayerFacingAngle(playerid,DoorInfo[index][ddInteriorA]);
}
}
}
return 1;
}
cmdp:(exit)
{
for(new index = 0; index < sizeof(DoorInfo); index++)
{
if(IsPlayerInRangeOfPoint(playerid,3.0,DoorInfo[index][ddInteriorX],DoorInfo[index][ddInteriorY],DoorInfo[index][ddInteriorZ]) && GetPlayerVirtualWorld(playerid) == DoorInfo[index][ddIntVW] && GetPlayerInterior(playerid) == DoorInfo[index][ddInt])
{
SetPlayerInterior(playerid,DoorInfo[index][ddExtInt]);
SetPlayerVirtualWorld(playerid,DoorInfo[index][ddExtVw]);
if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER && DoorInfo[index][ddVehicleAble] > 0)
{
new vid = GetPlayerVehicleID(playerid);
SetVehiclePos(vid,DoorInfo[index][ddExteriorX],DoorInfo[index][ddExteriorY],DoorInfo[index][ddExteriorZ]);
SetVehicleZAngle(vid,DoorInfo[index][ddExteriorA]);
SetVehicleVirtualWorld(vid,DoorInfo[index][ddExtVw]);
LinkVehicleToInterior(vid,DoorInfo[index][ddExtInt]);
return 1;
}else{
SetPlayerPos(playerid,DoorInfo[index][ddExteriorX],DoorInfo[index][ddExteriorY],DoorInfo[index][ddExteriorZ]);
SetPlayerFacingAngle(playerid,DoorInfo[index][ddExteriorA]);
}
}
}
return 1;
}
cmdp:(cv)
{
if(SHSLoggedIn[playerid] == 0) return SCM(playerid,"You must log in SHS before using it commands ( /shslogin ) ");
new model,c1,c2;
if(sscanf(params,"iii",model,c1,c2)) return SCM(playerid,"USAGE: /cv [modelID] [color1] [color2]");
for (new iii; iii < sizeof(CreatedVehs); iii++)
{
if(CreatedVehs[iii] == INVALID_VEHICLE_ID)
{
GetPlayerPosData(playerid);
CreatedVehs[iii] = CreateVehicle(model,GFFP[playerid][0],GFFP[playerid][1]+2,GFFP[playerid][2],GFFP[playerid][3],c1,c2,1200);
LinkVehicleToInterior(iii,GIFP[playerid][0]);
SetVehicleVirtualWorld(iii,GIFP[playerid][1]);
SCM(playerid,"Vehicle created !");
break;
}
}
return 1;
}
cmdp:(dvs)
{
if(SHSLoggedIn[playerid] == 0) return SCM(playerid,"You must log in SHS before using it commands ( /shslogin ) ");
for(new i = 0; i < sizeof(CreatedVehs); i++)
{
if(CreatedVehs[i] != INVALID_VEHICLE_ID)
{
DestroyVehicle(CreatedVehs[i]);
CreatedVehs[i] = INVALID_VEHICLE_ID;
}
}
SCM(playerid,"Destroyed all created ( /cv ) vehicles");
return 1;
}
cmdp:(dv)
{
if(SHSLoggedIn[playerid] == 0) return SCM(playerid,"You must log in SHS before using it commands ( /shslogin ) ");
if(!IsPlayerInAnyVehicle(playerid)) return SCM(playerid,"You are not in any vehicle !");
new bool:bl = false, ind = INVALID_VEHICLE_ID;
if(IsPlayerInAnyVehicle(playerid))
{
for(new i = 0; i < sizeof(CreatedVehs); i++)
{
if(!bl)
{
if(CreatedVehs[i] == GetPlayerVehicleID(playerid))
{
bl = true;
ind = i;
}
}
}
if(ind != INVALID_VEHICLE_ID)
{
new carid = GetPlayerVehicleID(playerid);
DestroyVehicle(carid);
CreatedVehs[ind] = INVALID_VEHICLE_ID;
return SCM(playerid,"Vehicle destroyed !");
}
}
return 1;
}
cmdp:(getv)
{
if(SHSLoggedIn[playerid] == 0) return SCM(playerid,"You must log in SHS before using it commands ( /shslogin ) ");
new id;
if(sscanf(params,"i",id)) return SCM(playerid,"USAGE: /getv [vehicleid]");
GetPlayerPosData(playerid);
SetVehiclePos(id,GFFP[playerid][0],GFFP[playerid][1],GFFP[playerid][2]);
SetVehicleZAngle(id,GFFP[playerid][3]);
LinkVehicleToInterior(id,GIFP[playerid][0]);
SetVehicleVirtualWorld(id,GIFP[playerid][1]);
return 1;
}
cmdp:(shshelp)
{
SCM(playerid,"Basic : /cv [ create vehicle ] | /dvs [ destroy all /cv vehicles ] | /dv [ destroy specefic vehicle ]");
SCM(playerid,"Basic2: /mpos [ get and save your pos to a log ] | /shslogin login to shs");
SCM(playerid,"DMP : /dmp [ edit dmp ] | /dmpclose [ nearest dmps ] | /dmpnext [ next DMP ID Available ]");
SCM(playerid,"3DTextLabels : /3dlabel [ edit dynamic 3dtext label ] | /3dnext [ find next 3d ID Available ] | /3dclose [ nearest labels ]");
SCM(playerid,"Doors : /door [ edit a door ] | /dnext [ next door ID available ] | /dname [ edit doors name ] | /dgoto [ goto specefic door ]");
return 1;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if(SHSLoggedIn[playerid] == 1) { SCM(playerid,"/dl to see vehicle info");}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_SHSLOGIN)
{
if(response)
{
if(strcmp(inputtext,SHS_PASS,true) == 0)
{
SHSLoggedIn[playerid] = 1;
SCM(playerid,"You are logged into SHS !");
}else return SCM(playerid,"Wrong password !");
}
}
return 1;
}
forward SCM(playerid,string[]);
public SCM(playerid,string[])
{
SendClientMessage(playerid,COLOR_YELLOW,string);
return 1;
}
forward Log(logtype[],string[]);
public Log(logtype[],string[])
{
new File: LogFile = fopen(logtype,io_append);
new stringformat[256];
format(stringformat,sizeof(stringformat),"%s\r\n",string);
fwrite(LogFile,stringformat);
fclose(LogFile);
return 1;
}
public LoadAll()
{
LoadDMPS();
LoadLabels();
LoadDoors();
printf("All DMPS , 3DTextLabels, And Doors loaded !");
return 1;
}
SaveDMPS()
{
new szFileInput[1024],File:fHandle = fopen("/cfgs/dmp.ini",io_write);
for(new d = 0; d < MAX_DMP; d++)
{
format(szFileInput,sizeof(szFileInput),"%f|%f|%f|%i|%i|%i|%i|%i\r\n",
DMPInfo[d][dPosX],
DMPInfo[d][dPosY],
DMPInfo[d][dPosZ],
DMPInfo[d][dModel],
DMPInfo[d][dColor],
DMPInfo[d][dVw],
DMPInfo[d][dInt],
DMPInfo[d][dCreated]
);
fwrite(fHandle,szFileInput);
}
return fclose(fHandle);
}
LoadDMPS()
{
if(!fexist("/cfgs/dmp.ini")) return 1;
new szFileInput[1024],File:fHandle = fopen("/cfgs/dmp.ini",io_read),index = 0;
while(index < sizeof(DMPInfo) && fread(fHandle,szFileInput))
{
sscanf(szFileInput,"p<|>fffiiiii",
DMPInfo[index][dPosX],
DMPInfo[index][dPosY],
DMPInfo[index][dPosZ],
DMPInfo[index][dModel],
DMPInfo[index][dColor],
DMPInfo[index][dVw],
DMPInfo[index][dInt],
DMPInfo[index][dCreated]
);
DestroyDynamicMapIcon(DMPInfo[index][dCreate]);
if(DMPInfo[index][dPosX] != 0 && DMPInfo[index][dPosY] != 0 && DMPInfo[index][dPosZ] != 0)
{
DMPInfo[index][dCreate] = CreateDynamicMapIcon(DMPInfo[index][dPosX],DMPInfo[index][dPosY],DMPInfo[index][dPosZ],DMPInfo[index][dModel],DMPInfo[index][dColor],DMPInfo[index][dVw],DMPInfo[index][dInt],-1,100.0);
}
++index;
}
return fclose(fHandle);
}
SaveLabels()
{
new szFileInput[1024],File:fHandle = fopen("/cfgs/3dlabels.ini",io_write);
for(new l = 0; l < MAX_LABELS; l++)//Note:this is AEL not AY
{
format(szFileInput,sizeof(szFileInput),"%f|%f|%f|%f|%i|%i|%i|%s\r\n",
LabelInfo[l][lPosX],
LabelInfo[l][lPosY],
LabelInfo[l][lPosZ],
LabelInfo[l][lDistance],
LabelInfo[l][lColor],
LabelInfo[l][lVw],
LabelInfo[l][lInt],
LabelInfo[l][lText]
);
fwrite(fHandle,szFileInput);
}
return fclose(fHandle);
}
LoadLabels()
{
if(!fexist("/cfgs/3dlabels.ini")) return 1;
new szFileInput[2520],File:fHandle = fopen("/cfgs/3dlabels.ini",io_read),index = 0;
while(index < sizeof(LabelInfo) && fread(fHandle,szFileInput))
{
sscanf(szFileInput,"p<|>ffffiiis[42]",
LabelInfo[index][lPosX],
LabelInfo[index][lPosY],
LabelInfo[index][lPosZ],
LabelInfo[index][lDistance],
LabelInfo[index][lColor],
LabelInfo[index][lVw],
LabelInfo[index][lInt],
LabelInfo[index][lText]
);
DestroyDynamic3DTextLabel(LabelInfo[index][lCreate]);
if(LabelInfo[index][lPosX] != 0 && LabelInfo[index][lPosY] != 0 && LabelInfo[index][lPosZ] != 0)
{
if(LabelInfo[index][lColor] == 0)
{
LabelInfo[index][lCreate] = CreateDynamic3DTextLabel(LabelInfo[index][lText],-1,LabelInfo[index][lPosX],LabelInfo[index][lPosY],LabelInfo[index][lPosZ],LabelInfo[index][lDistance],INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0,LabelInfo[index][lVw],LabelInfo[index][lInt],-1,LabelInfo[index][lDistance]);
}
if(LabelInfo[index][lColor] == 1)
{
LabelInfo[index][lCreate] = CreateDynamic3DTextLabel(LabelInfo[index][lText],COLOR_YELLOW,LabelInfo[index][lPosX],LabelInfo[index][lPosY],LabelInfo[index][lPosZ],LabelInfo[index][lDistance],INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0,LabelInfo[index][lVw],LabelInfo[index][lInt],-1,LabelInfo[index][lDistance]);
}
if(LabelInfo[index][lColor] == 2)
{
LabelInfo[index][lCreate] = CreateDynamic3DTextLabel(LabelInfo[index][lText],0x00FF00FF,LabelInfo[index][lPosX],LabelInfo[index][lPosY],LabelInfo[index][lPosZ],LabelInfo[index][lDistance],INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0,LabelInfo[index][lVw],LabelInfo[index][lInt],-1,LabelInfo[index][lDistance]);
}
if(LabelInfo[index][lColor] == 3)
{
LabelInfo[index][lCreate] = CreateDynamic3DTextLabel(LabelInfo[index][lText],0xFF0000FF,LabelInfo[index][lPosX],LabelInfo[index][lPosY],LabelInfo[index][lPosZ],LabelInfo[index][lDistance],INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0,LabelInfo[index][lVw],LabelInfo[index][lInt],-1,LabelInfo[index][lDistance]);
}
if(LabelInfo[index][lColor] == 4)
{
LabelInfo[index][lCreate] = CreateDynamic3DTextLabel(LabelInfo[index][lText],0xFF8000FF,LabelInfo[index][lPosX],LabelInfo[index][lPosY],LabelInfo[index][lPosZ],LabelInfo[index][lDistance],INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0,LabelInfo[index][lVw],LabelInfo[index][lInt],-1,LabelInfo[index][lDistance]);
}
if(LabelInfo[index][lColor] == 5)
{
LabelInfo[index][lCreate] = CreateDynamic3DTextLabel(LabelInfo[index][lText],0x000000FF,LabelInfo[index][lPosX],LabelInfo[index][lPosY],LabelInfo[index][lPosZ],LabelInfo[index][lDistance],INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0,LabelInfo[index][lVw],LabelInfo[index][lInt],-1,LabelInfo[index][lDistance]);
}
if(LabelInfo[index][lColor] == 6)
{
LabelInfo[index][lCreate] = CreateDynamic3DTextLabel(LabelInfo[index][lText],0x8000FFFF,LabelInfo[index][lPosX],LabelInfo[index][lPosY],LabelInfo[index][lPosZ],LabelInfo[index][lDistance],INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0,LabelInfo[index][lVw],LabelInfo[index][lInt],-1,LabelInfo[index][lDistance]);
}
}
++index;
}
return fclose(fHandle);
}
SaveDoors()
{
new szFileInput[1024],File:fHandle = fopen("/cfgs/doors.ini",io_write);
for(new d = 0; d < MAX_DOORS; d++)
{
format(szFileInput,sizeof(szFileInput),"%f|%f|%f|%f|%f|%f|%f|%f|%i|%i|%i|%i|%s|%i|%i|%i|%i|%i|%i\r\n",
DoorInfo[d][ddExteriorX],
DoorInfo[d][ddExteriorY],
DoorInfo[d][ddExteriorZ],
DoorInfo[d][ddExteriorA],
DoorInfo[d][ddInteriorX],
DoorInfo[d][ddInteriorY],
DoorInfo[d][ddInteriorZ],
DoorInfo[d][ddInteriorA],
DoorInfo[d][ddInt],
DoorInfo[d][ddIntVW],
DoorInfo[d][ddExtVw],
DoorInfo[d][ddExtInt],
DoorInfo[d][ddName],
DoorInfo[d][ddLevel],
DoorInfo[d][ddAdmin],
DoorInfo[d][ddVehicleAble],
DoorInfo[d][ddPickupType],
DoorInfo[d][ddColor],
DoorInfo[d][ddLock]
);
fwrite(fHandle,szFileInput);
}
return fclose(fHandle);
}
LoadDoors()
{
if(!fexist("/cfgs/doors.ini")) return 1;
new szFileInput[1024],File:fHandle = fopen("/cfgs/doors.ini",io_read),index = 0,string[82];
while(index < sizeof(DoorInfo) && fread(fHandle,szFileInput))
{
sscanf(szFileInput,"p<|>ffffffffiiiis[32]iiiiii",
DoorInfo[index][ddExteriorX],
DoorInfo[index][ddExteriorY],
DoorInfo[index][ddExteriorZ],
DoorInfo[index][ddExteriorA],
DoorInfo[index][ddInteriorX],
DoorInfo[index][ddInteriorY],
DoorInfo[index][ddInteriorZ],
DoorInfo[index][ddInteriorA],
DoorInfo[index][ddInt],
DoorInfo[index][ddIntVW],
DoorInfo[index][ddExtVw],
DoorInfo[index][ddExtInt],
DoorInfo[index][ddName],
DoorInfo[index][ddLevel],
DoorInfo[index][ddAdmin],
DoorInfo[index][ddVehicleAble],
DoorInfo[index][ddPickupType],
DoorInfo[index][ddColor],
DoorInfo[index][ddLock]
);
DestroyDynamicPickup(DoorInfo[index][ddCreate]);
DestroyDynamic3DTextLabel(DoorInfo[index][ddLabel]);
if(DoorInfo[index][ddExteriorX] != 0 && DoorInfo[index][ddExteriorY] != 0 && DoorInfo[index][ddExteriorZ] != 0 && DoorInfo[index][ddExteriorA] != 0)
{
switch(DoorInfo[index][ddPickupType])
{
case 0: { DoorInfo[index][ddCreate] = CreateDynamicPickup(1239,23,DoorInfo[index][ddExteriorX],DoorInfo[index][ddExteriorY],DoorInfo[index][ddExteriorZ],DoorInfo[index][ddExtVw],DoorInfo[index][ddExtInt],-1,50.0); }
case 1: { DoorInfo[index][ddCreate] = CreateDynamicPickup(1241,23,DoorInfo[index][ddExteriorX],DoorInfo[index][ddExteriorY],DoorInfo[index][ddExteriorZ],DoorInfo[index][ddExtVw],DoorInfo[index][ddExtInt],-1,50.0); }
case 2: { DoorInfo[index][ddCreate] = CreateDynamicPickup(1242,23,DoorInfo[index][ddExteriorX],DoorInfo[index][ddExteriorY],DoorInfo[index][ddExteriorZ],DoorInfo[index][ddExtVw],DoorInfo[index][ddExtInt],-1,50.0); }
case 3: { DoorInfo[index][ddCreate] = CreateDynamicPickup(1272,23,DoorInfo[index][ddExteriorX],DoorInfo[index][ddExteriorY],DoorInfo[index][ddExteriorZ],DoorInfo[index][ddExtVw],DoorInfo[index][ddExtInt],-1,50.0); }
case 4: { DoorInfo[index][ddCreate] = CreateDynamicPickup(1273,23,DoorInfo[index][ddExteriorX],DoorInfo[index][ddExteriorY],DoorInfo[index][ddExteriorZ],DoorInfo[index][ddExtVw],DoorInfo[index][ddExtInt],-1,50.0); }
case 5: { DoorInfo[index][ddCreate] = CreateDynamicPickup(1313,23,DoorInfo[index][ddExteriorX],DoorInfo[index][ddExteriorY],DoorInfo[index][ddExteriorZ],DoorInfo[index][ddExtVw],DoorInfo[index][ddExtInt],-1,50.0); }
case 6: { DoorInfo[index][ddCreate] = CreateDynamicPickup(1258,23,DoorInfo[index][ddExteriorX],DoorInfo[index][ddExteriorY],DoorInfo[index][ddExteriorZ],DoorInfo[index][ddExtVw],DoorInfo[index][ddExtInt],-1,50.0); }
case 7: { DoorInfo[index][ddCreate] = CreateDynamicPickup(1318,23,DoorInfo[index][ddExteriorX],DoorInfo[index][ddExteriorY],DoorInfo[index][ddExteriorZ],DoorInfo[index][ddExtVw],DoorInfo[index][ddExtInt],-1,50.0); }
case 8: { DoorInfo[index][ddCreate] = CreateDynamicPickup(1559,23,DoorInfo[index][ddExteriorX],DoorInfo[index][ddExteriorY],DoorInfo[index][ddExteriorZ],DoorInfo[index][ddExtVw],DoorInfo[index][ddExtInt],-1,50.0); }
case 9: { DoorInfo[index][ddCreate] = CreateDynamicPickup(2894,23,DoorInfo[index][ddExteriorX],DoorInfo[index][ddExteriorY],DoorInfo[index][ddExteriorZ],DoorInfo[index][ddExtVw],DoorInfo[index][ddExtInt],-1,50.0); }
case 10: { DoorInfo[index][ddCreate] = CreateDynamicPickup(1279,23,DoorInfo[index][ddExteriorX],DoorInfo[index][ddExteriorY],DoorInfo[index][ddExteriorZ],DoorInfo[index][ddExtVw],DoorInfo[index][ddExtInt],-1,50.0); }
case 11: { DoorInfo[index][ddCreate] = CreateDynamicPickup(1274,23,DoorInfo[index][ddExteriorX],DoorInfo[index][ddExteriorY],DoorInfo[index][ddExteriorZ],DoorInfo[index][ddExtVw],DoorInfo[index][ddExtInt],-1,50.0); }
case 12: { DoorInfo[index][ddCreate] = CreateDynamicPickup(1275,23,DoorInfo[index][ddExteriorX],DoorInfo[index][ddExteriorY],DoorInfo[index][ddExteriorZ],DoorInfo[index][ddExtVw],DoorInfo[index][ddExtInt],-1,50.0); }
case 13: { DoorInfo[index][ddCreate] = CreateDynamicPickup(1316,23,DoorInfo[index][ddExteriorX],DoorInfo[index][ddExteriorY],DoorInfo[index][ddExteriorZ],DoorInfo[index][ddExtVw],DoorInfo[index][ddExtInt],-1,50.0); }
case 14: { DoorInfo[index][ddCreate] = CreateDynamicPickup(1314,23,DoorInfo[index][ddExteriorX],DoorInfo[index][ddExteriorY],DoorInfo[index][ddExteriorZ],DoorInfo[index][ddExtVw],DoorInfo[index][ddExtInt],-1,50.0); }
}
format(string,sizeof(string)," %s \n ID : %d",DoorInfo[index][ddName],index);
switch(DoorInfo[index][ddColor])
{
case 0: { DoorInfo[index][ddLabel] = CreateDynamic3DTextLabel(string,-1,DoorInfo[index][ddExteriorX],DoorInfo[index][ddExteriorY],DoorInfo[index][ddExteriorZ]+0.5,50.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0,DoorInfo[index][ddExtVw],DoorInfo[index][ddExtInt],-1,50.0); }
case 1: { DoorInfo[index][ddLabel] = CreateDynamic3DTextLabel(string,0x8000FFFF,DoorInfo[index][ddExteriorX],DoorInfo[index][ddExteriorY],DoorInfo[index][ddExteriorZ]+0.5,50.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0,DoorInfo[index][ddExtVw],DoorInfo[index][ddExtInt],-1,50.0); }
case 2: { DoorInfo[index][ddLabel] = CreateDynamic3DTextLabel(string,0xFFFF80FF,DoorInfo[index][ddExteriorX],DoorInfo[index][ddExteriorY],DoorInfo[index][ddExteriorZ]+0.5,50.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0,DoorInfo[index][ddExtVw],DoorInfo[index][ddExtInt],-1,50.0); }
case 3: { DoorInfo[index][ddLabel] = CreateDynamic3DTextLabel(string,0x80FF00FF,DoorInfo[index][ddExteriorX],DoorInfo[index][ddExteriorY],DoorInfo[index][ddExteriorZ]+0.5,50.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0,DoorInfo[index][ddExtVw],DoorInfo[index][ddExtInt],-1,50.0); }
case 4: { DoorInfo[index][ddLabel] = CreateDynamic3DTextLabel(string,0x00FFFFFF,DoorInfo[index][ddExteriorX],DoorInfo[index][ddExteriorY],DoorInfo[index][ddExteriorZ]+0.5,50.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0,DoorInfo[index][ddExtVw],DoorInfo[index][ddExtInt],-1,50.0); }
case 5: { DoorInfo[index][ddLabel] = CreateDynamic3DTextLabel(string,0x0080C0FF,DoorInfo[index][ddExteriorX],DoorInfo[index][ddExteriorY],DoorInfo[index][ddExteriorZ]+0.5,50.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0,DoorInfo[index][ddExtVw],DoorInfo[index][ddExtInt],-1,50.0); }
case 6: { DoorInfo[index][ddLabel] = CreateDynamic3DTextLabel(string,0xFF0000FF,DoorInfo[index][ddExteriorX],DoorInfo[index][ddExteriorY],DoorInfo[index][ddExteriorZ]+0.5,50.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0,DoorInfo[index][ddExtVw],DoorInfo[index][ddExtInt],-1,50.0); }
case 7: { DoorInfo[index][ddLabel] = CreateDynamic3DTextLabel(string,0x0000A0FF1,DoorInfo[index][ddExteriorX],DoorInfo[index][ddExteriorY],DoorInfo[index][ddExteriorZ]+0.5,50.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0,DoorInfo[index][ddExtVw],DoorInfo[index][ddExtInt],-1,50.0); }
case 8: { DoorInfo[index][ddLabel] = CreateDynamic3DTextLabel(string,0xFFFFFFFF,DoorInfo[index][ddExteriorX],DoorInfo[index][ddExteriorY],DoorInfo[index][ddExteriorZ]+0.5,50.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0,DoorInfo[index][ddExtVw],DoorInfo[index][ddExtInt],-1,50.0); }
case 9: { DoorInfo[index][ddLabel] = CreateDynamic3DTextLabel(string,0x000000FF,DoorInfo[index][ddExteriorX],DoorInfo[index][ddExteriorY],DoorInfo[index][ddExteriorZ]+0.5,50.0,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0,DoorInfo[index][ddExtVw],DoorInfo[index][ddExtInt],-1,50.0); }
}
}
++index;
}
return fclose(fHandle);
}
stock GetPName(playerid)
{
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
return name;
}
stock GetPlayerPosData(playerid)
{
GetPlayerPos(playerid,GFFP[playerid][0],GFFP[playerid][1],GFFP[playerid][2]);
GetPlayerFacingAngle(playerid,GFFP[playerid][3]);
GIFP[playerid][0] = GetPlayerInterior(playerid);
GIFP[playerid][1] = GetPlayerVirtualWorld(playerid);
return 1;
}
stock GetDay()
{
new y,m,day;
getdate(y,m,day);
return day;
}
stock GetMonth()
{
new y,month,d;
getdate(y,month,d);
return month;
}
stock GetYear()
{
new year,m,d;
getdate(year,m,d);
return year;
}