Hey , i have another problem with a vip system , it works when i try to give vip to others all comands works but when player leave server and join again he has no longer vip , it doesnt save . I try to resolv the problem but didn't succeded.Here its the code.
Код:
#include <a_samp>
#include <dudb>
#include <ladmin>
#include <CPLoader>
#include <lethaldudb2>
#include <JunkBusterFS>
#define blue 0x375FFFFF
#define red 0xFF0000AA
#define green 0x33FF33AA
#define yellow 0xFFFF00AA
#define grey 0xC0C0C0AA
#define blue1 0x2641FEAA
#define lightblue 0x33CCFFAA
#define orange 0xFF9900AA
#define black 0x2C2727AA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_PINK 0xFF66FFAA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_BLUE 0x0000BBAA
#define COLOR_PURPLE 0x800080AA
#define COLOR_BLACK 0x000000AA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_GREEN1 0x33AA33AA
#define COLOR_BROWN 0xA52A2AAA
#define COLOR_ULTRARED 0xE60000FF
#define ENABLE_SPEC
// Spec
#define ADMIN_SPEC_TYPE_NONE 0
#define ADMIN_SPEC_TYPE_PLAYER 1
#define ADMIN_SPEC_TYPE_VEHICLE 2
// DCMD
#define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
enum PlayerData
{
Vip,
Level,
SpecID,
SpecType
};
new Float:Pos[MAX_PLAYERS][4];
new name[MAX_PLAYER_NAME];
new PlayerInfo[MAX_PLAYERS][PlayerData];
new avcc[MAX_PLAYERS];
AntiDeAMX()
{
new a[][] =
{
"Unarmed (Fist)",
"Brass K"
};
#pragma unused a
}
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Blank Filterscript by your name here");
print("--------------------------------------\n");
AntiDeAMX();
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
public OnPlayerConnect(playerid)
{
avcc[playerid]=0;
PlayerInfo[playerid][Vip] = (dUserINT(PlayerName2(playerid)).("Vip"));
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
PlayerInfo[playerid][Vip] = 0;
avcc[playerid]=0;
#if defined ENABLE_SPEC
for(new x=0; x<MAX_PLAYERS; x++)
if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] == playerid)
AdvanceSpectate(x);
#endif
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
#if defined ENABLE_SPEC
for(new x=0; x<MAX_PLAYERS; x++)
if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] == playerid)
AdvanceSpectate(x);
#endif
return 1;
}
forward ACC(playerid);
public ACC(playerid)
{
if (avcc[playerid]==1)
{
if (IsPlayerInAnyVehicle(playerid)&&(GetPlayerState(playerid)==PLAYER_STATE_DRIVER))
{
new vehicleid;
vehicleid = GetPlayerVehicleID(playerid);
new rand = random(126)+0;
new rand1 = random(126)+0;
ChangeVehicleColor(vehicleid, rand, rand1);
}
}
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
dcmd(saveskin,8,cmdtext);
dcmd(outskin,7,cmdtext);
dcmd(vipgoto,7,cmdtext);
dcmd(givevip,7,cmdtext);
dcmd(scoatevip,9,cmdtext);
dcmd(spawnme,7,cmdtext);
dcmd(carcolor,8,cmdtext);
dcmd(vips,4,cmdtext);
#if defined ENABLE_SPEC
dcmd(spec,4,cmdtext);
dcmd(specoff,8,cmdtext);
#endif
new cmd[256], string[128], tmp[256], idx;
cmd = strtok(cmdtext, idx);
if(strcmp(cmdtext, "/ltunedcar2", true)==0 || strcmp(cmdtext, "/ltc2", true)==0) {
if(PlayerInfo[playerid][Vip] == 1) {
if(IsPlayerInAnyVehicle(playerid)) {
SendClientMessage(playerid,red,"Error: You already have a vehicle");
} else {
new Float:X,Float:Y,Float:Z,Float:Angle,VehiclulRt; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
VehiclulRt = CreateVehicle(560,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,VehiclulRt,0); AddVehicleComponent(VehiclulRt, 1028); AddVehicleComponent(VehiclulRt, 1030); AddVehicleComponent(VehiclulRt, 1031); AddVehicleComponent(VehiclulRt, 1138); AddVehicleComponent(VehiclulRt, 1140); AddVehicleComponent(VehiclulRt, 1170);
AddVehicleComponent(VehiclulRt, 1028); AddVehicleComponent(VehiclulRt, 1030); AddVehicleComponent(VehiclulRt, 1031); AddVehicleComponent(VehiclulRt, 1138); AddVehicleComponent(VehiclulRt, 1140); AddVehicleComponent(VehiclulRt, 1170);
AddVehicleComponent(VehiclulRt, 1080); AddVehicleComponent(VehiclulRt, 1086); AddVehicleComponent(VehiclulRt, 1087); AddVehicleComponent(VehiclulRt, 1010); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); ChangeVehiclePaintjob(VehiclulRt,1);
SetVehicleVirtualWorld(VehiclulRt, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(VehiclulRt, GetPlayerInterior(playerid));
}
} else SendClientMessage(playerid,red,"ERROR: You are not V.I.P Member or Administrator.");
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmdtext, "/ltunedcar3", true)==0 || strcmp(cmdtext, "/ltc3", true)==0) {
if(PlayerInfo[playerid][Vip] == 1) {
if(IsPlayerInAnyVehicle(playerid)) {
SendClientMessage(playerid,red,"Error: You already have a vehicle");
} else {
new Float:X,Float:Y,Float:Z,Float:Angle,VehiclulRt; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
VehiclulRt = CreateVehicle(560,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,VehiclulRt,0); AddVehicleComponent(VehiclulRt, 1028); AddVehicleComponent(VehiclulRt, 1030); AddVehicleComponent(VehiclulRt, 1031); AddVehicleComponent(VehiclulRt, 1138); AddVehicleComponent(VehiclulRt, 1140); AddVehicleComponent(VehiclulRt, 1170);
AddVehicleComponent(VehiclulRt, 1080); AddVehicleComponent(VehiclulRt, 1086); AddVehicleComponent(VehiclulRt, 1087); AddVehicleComponent(VehiclulRt, 1010); PlayerPlaySound(playerid,1133,0.0,0.0,0.0); ChangeVehiclePaintjob(VehiclulRt,2);
SetVehicleVirtualWorld(VehiclulRt, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(VehiclulRt, GetPlayerInterior(playerid));
}
} else SendClientMessage(playerid,red,"ERROR: You are not V.I.P Member or Administrator.");
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmdtext, "/ltunedcar4", true)==0 || strcmp(cmdtext, "/ltc4", true)==0) {
if(PlayerInfo[playerid][Vip] == 1) {
if(IsPlayerInAnyVehicle(playerid)) {
SendClientMessage(playerid,red,"Error: You already have a vehicle");
} else {
new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
carid = CreateVehicle(559,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0);
AddVehicleComponent(carid,1065); AddVehicleComponent(carid,1067); AddVehicleComponent(carid,1162); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
}
} else SendClientMessage(playerid,red,"ERROR: You are not V.I.P Member or Administrator.");
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmdtext, "/ltunedcar5", true)==0 || strcmp(cmdtext, "/ltc5", true)==0) {
if(PlayerInfo[playerid][Vip] == 1) {
if(IsPlayerInAnyVehicle(playerid)) {
SendClientMessage(playerid,red,"Error: You already have a vehicle");
} else {
new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
carid = CreateVehicle(565,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0);
AddVehicleComponent(carid,1046); AddVehicleComponent(carid,1049); AddVehicleComponent(carid,1053); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
}
} else SendClientMessage(playerid,red,"ERROR: You are not V.I.P Member or Administrator.");
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmdtext, "/ltunedcar6", true)==0 || strcmp(cmdtext, "/ltc6", true)==0) {
if(PlayerInfo[playerid][Vip] == 1) {
if(IsPlayerInAnyVehicle(playerid)) {
SendClientMessage(playerid,red,"Error: You already have a vehicle");
} else {
new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
carid = CreateVehicle(558,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0);
AddVehicleComponent(carid,1088); AddVehicleComponent(carid,1092); AddVehicleComponent(carid,1139); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
}
} else SendClientMessage(playerid,red,"ERROR: You are not V.I.P Member or Administrator.");
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmdtext, "/ltunedcar7", true)==0 || strcmp(cmdtext, "/ltc7", true)==0) {
if(PlayerInfo[playerid][Vip] == 1) {
if(IsPlayerInAnyVehicle(playerid)) {
SendClientMessage(playerid,red,"Error: You already have a vehicle");
} else {
new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
carid = CreateVehicle(561,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0);
AddVehicleComponent(carid,1055); AddVehicleComponent(carid,1058); AddVehicleComponent(carid,1064); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
}
} else SendClientMessage(playerid,red,"ERROR: You are not V.I.P Member or Administrator.");
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmdtext, "/ltunedcar8", true)==0 || strcmp(cmdtext, "/ltc8", true)==0) {
if(PlayerInfo[playerid][Vip] == 1) {
if(IsPlayerInAnyVehicle(playerid)) {
SendClientMessage(playerid,red,"Error: You already have a vehicle");
} else {
new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
carid = CreateVehicle(562,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0);
AddVehicleComponent(carid,1034); AddVehicleComponent(carid,1038); AddVehicleComponent(carid,1147); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,1);
SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
}
} else SendClientMessage(playerid,red,"ERROR: You are not V.I.P Member or Administrator.");
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmdtext, "/ltunedcar9", true)==0 || strcmp(cmdtext, "/ltc9", true)==0) {
if(PlayerInfo[playerid][Vip] == 1) {
if(IsPlayerInAnyVehicle(playerid)) {
SendClientMessage(playerid,red,"Error: You already have a vehicle");
} else {
new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
carid = CreateVehicle(567,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0);
AddVehicleComponent(carid,1102); AddVehicleComponent(carid,1129); AddVehicleComponent(carid,1133); AddVehicleComponent(carid,1186); AddVehicleComponent(carid,1188); ChangeVehiclePaintjob(carid,1); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1085); AddVehicleComponent(carid,1087); AddVehicleComponent(carid,1086);
SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
}
} else SendClientMessage(playerid,red,"ERROR: You are not V.I.P Member or Administrator.");
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmdtext, "/ltunedcar10", true)==0 || strcmp(cmdtext, "/ltc10", true)==0) {
if(PlayerInfo[playerid][Vip] == 1) {
if(IsPlayerInAnyVehicle(playerid)) {
SendClientMessage(playerid,red,"Error: You already have a vehicle");
} else {
new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
carid = CreateVehicle(558,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0);
AddVehicleComponent(carid,1092); AddVehicleComponent(carid,1166); AddVehicleComponent(carid,1165); AddVehicleComponent(carid,1090);
AddVehicleComponent(carid,1094); AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1087); AddVehicleComponent(carid,1163);//SPOILER
AddVehicleComponent(carid,1091); ChangeVehiclePaintjob(carid,2);
SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
}
} else SendClientMessage(playerid,red,"ERROR: You are not V.I.P Member or Administrator.");
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmdtext, "/ltunedcar11", true)==0 || strcmp(cmdtext, "/ltc11", true)==0) {
if(PlayerInfo[playerid][Vip] == 1) {
if(IsPlayerInAnyVehicle(playerid)) {
SendClientMessage(playerid,red,"Error: You already have a vehicle");
} else {
new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
carid = CreateVehicle(557,X,Y,Z,Angle,1,1,-1); PutPlayerInVehicle(playerid,carid,0);
AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1081);
SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
}
} else SendClientMessage(playerid,red,"ERROR: You are not V.I.P Member or Administrator.");
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmdtext, "/ltunedcar12", true)==0 || strcmp(cmdtext, "/ltc12", true)==0) {
if(PlayerInfo[playerid][Vip] == 1) {
if(IsPlayerInAnyVehicle(playerid)) {
SendClientMessage(playerid,red,"Error: You already have a vehicle");
} else {
new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
carid = CreateVehicle(535,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0);
ChangeVehiclePaintjob(carid,1); AddVehicleComponent(carid,1109); AddVehicleComponent(carid,1115); AddVehicleComponent(carid,1117); AddVehicleComponent(carid,1073); AddVehicleComponent(carid,1010);
AddVehicleComponent(carid,1087); AddVehicleComponent(carid,1114); AddVehicleComponent(carid,1081); AddVehicleComponent(carid,1119); AddVehicleComponent(carid,1121);
SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
}
} else SendClientMessage(playerid,red,"ERROR: You are not V.I.P Member or Administrator.");
return 1; }
//------------------------------------------------------------------------------
if(strcmp(cmdtext, "/ltunedcar13", true)==0 || strcmp(cmdtext, "/ltc13", true)==0) {
if(PlayerInfo[playerid][Vip] == 1) {
if(IsPlayerInAnyVehicle(playerid)) SendClientMessage(playerid,red,"Error: You already have a vehicle");
else {
new Float:X,Float:Y,Float:Z,Float:Angle,carid; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
carid = CreateVehicle(562,X,Y,Z,Angle,1,-1,-1); PutPlayerInVehicle(playerid,carid,0);
AddVehicleComponent(carid,1034); AddVehicleComponent(carid,1038); AddVehicleComponent(carid,1147);
AddVehicleComponent(carid,1010); AddVehicleComponent(carid,1073); ChangeVehiclePaintjob(carid,0);
SetVehicleVirtualWorld(carid, GetPlayerVirtualWorld(playerid)); LinkVehicleToInterior(carid, GetPlayerInterior(playerid));
}
} else SendClientMessage(playerid,red,"ERROR: You are not V.I.P Member or Administrator.");
return 1; }
if ( strcmp ( cmd , "/acc", true)==0)
{
if(PlayerInfo[playerid][Vip] >= 1)
{
new acctime;
if (avcc[playerid]==0)
{
avcc[playerid]=1;
acctime=SetTimerEx("ACC",100,1,"i",playerid);
SendClientMessage(playerid, COLOR_ULTRARED, "AutoVehicleChangeColor System is actived.For Dezactived type again /acc.");
}else if (avcc[playerid]==1)
{
avcc[playerid]=0;
KillTimer(acctime);
SendClientMessage(playerid, COLOR_ULTRARED,"AutoVehicleChangeColor System is Dezactived.For actived type again /acc.");
}
}else return SendClientMessage(playerid,red,"ERROR: You are not V.I.P Member or Administrator.");
return 1;
}
if ( strcmp ( cmd , "/weather", true)==0)
{
if(PlayerInfo[playerid][Vip] == 1 ) {
new tmp2[256], Index; tmp = strtok(cmdtext,Index), tmp2 = strtok(cmdtext,Index);
if(!strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /weather [weather id]");
new weather = strval(tmp2);
format(string, sizeof(string), "You have set you weather to '%d", weather); SendClientMessage(playerid,blue,string);
SetPlayerWeather(playerid,weather); PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
} else return SendClientMessage(playerid,red,"ERROR: You are not V.I.P Member or Administrator.");
return 1;
}
if(strcmp(cmdtext, "/dw", true)==0)
{
if(PlayerInfo[playerid][Vip] == 1 )
{
FS_GivePlayerWeapon(playerid, 8, 99999);
FS_GivePlayerWeapon(playerid, 18, 99999);
FS_GivePlayerWeapon(playerid, 24, 99999);
FS_GivePlayerWeapon(playerid, 26, 99999);
FS_GivePlayerWeapon(playerid, 28, 99999);
FS_GivePlayerWeapon(playerid, 31, 99999);
FS_GivePlayerWeapon(playerid, 34, 99999);
FS_GivePlayerWeapon(playerid, 35, 99999);
FS_GivePlayerWeapon(playerid, 46, 99999);
FS_SetPlayerHealth(playerid,100);
SendClientMessage(playerid,COLOR_GREEN, "Did you get a set of special weapons because you are V.I.P !");
} else return SendClientMessage(playerid,red,"ERROR: You are not donator or V.I.P.");
return 1;
}
if(strcmp(cmdtext,"/vcmds",true)==0)
{
SendClientMessage(playerid, 0x33CCFFAA, "|=====================|Vcmds|========================|");
SendClientMessage(playerid, 0x33CCFFAA, "|Vip Commands|-> /vipgoto /cmenu /setmytime /spec /name");
SendClientMessage(playerid, 0x33CCFFAA, "|Vip Commands|-> /spawnme /vcar /ltc [1-13] /name");
SendClientMessage(playerid, 0x33CCFFAA, "|Vip Commands|-> /saveskin /useskin /weather");
SendClientMessage(playerid, 0x33CCFFAA, "|Vip Commands|-> /carcolor /vcmds /mytime /dw");
SendClientMessage(playerid, 0x33CCFFAA, "|Scrieti cu ! pentru VIP Chat! ");
SendClientMessage(playerid, 0x33CCFFAA, "|=====================================================|");
return 1;
}
if ( strcmp ( cmd , "/name", true)==0)
{
if(IsPlayerAdmin(playerid)) {
new tmp2[256], Index; tmp = strtok(cmdtext,Index), tmp2 = strtok(cmdtext,Index);
if(!strlen(tmp2)) return SendClientMessage(playerid, red, "USAGE: /name [name]");
new length = strlen(tmp2);
if(length < 3 || length > MAX_PLAYER_NAME) return SendClientMessage(playerid,red,"ERROR: Incorrect Name Length");
format(string, sizeof(string), "You have set \"%s's\" name to \"%s\" ", pName(playerid), tmp2); SendClientMessage(playerid,blue,string);
SetPlayerName(playerid, tmp2);
OnPlayerConnect(playerid);
} else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
return 1;
}
if ( strcmp ( cmd , "/mytime", true)==0)
{
if(PlayerInfo[playerid][Vip] == 1) {
new tmp2[256], Index; tmp = strtok(cmdtext,Index), tmp2 = strtok(cmdtext,Index);
if(!strlen(tmp2) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /mytime [time]");
new time = strval(tmp2);
format(string, sizeof(string), "You have set you time to '%d", time); SendClientMessage(playerid,blue,string);
SetPlayerTime(playerid,time,0);
PlayerPlaySound(playerid,1057,0.0,0.0,0.0);
} else return SendClientMessage(playerid,red,"ERROR: You are not V.I.P Member or Administrator.");
return 1;
}
if ( strcmp ( cmd , "/vcar", true)==0)
{
if(PlayerInfo[playerid][Vip] == 1) {
if(IsPlayerInAnyVehicle(playerid)) {
SendClientMessage(playerid,red,"Error: You already have a vehicle");
} else {
new Float:X,Float:Y,Float:Z,Float:Angle,VehiclulRt; GetPlayerPos(playerid,X,Y,Z); GetPlayerFacingAngle(playerid,Angle);
VehiclulRt = CreateVehicle(409,X,Y,Z,Angle,0,0,0);
PutPlayerInVehicle(playerid,VehiclulRt,0);
PlayerPlaySound(playerid,1133,0.0,0.0,0.0);
TuneLCar(VehiclulRt);
SetVehicleVirtualWorld(VehiclulRt, GetPlayerVirtualWorld(playerid));
LinkVehicleToInterior(VehiclulRt, GetPlayerInterior(playerid));
}
} else return SendClientMessage(playerid,red,"ERROR: You are not V.I.P Member or Administrator.");
return 1;
}
if ( strcmp ( cmd , "/mycolor", true)==0)
{
if(PlayerInfo[playerid][Vip] >= 1)
{
new tmp2[256], Index; tmp = strtok(cmdtext,Index), tmp2 = strtok(cmdtext,Index);
if(!strlen(tmp2) || !IsNumeric(tmp2)) {
SendClientMessage(playerid, red, "USAGE: /mycolour [Colour]");
return SendClientMessage(playerid, red, "Colours: 0=black 1=white 2=red 3=orange 4=yellow 5=green 6=blue 7=purple 8=brown 9=pink");
}
new Colour = strval(tmp2), colour[24];
if(Colour > 9) return SendClientMessage(playerid, red, "Colours: 0=black 1=white 2=red 3=orange 4=yellow 5=green 6=blue 7=purple 8=brown 9=pink");
switch (Colour)
{
case 0: { SetPlayerColor(playerid,black); colour = "Black"; }
case 1: { SetPlayerColor(playerid,COLOR_WHITE); colour = "White"; }
case 2: { SetPlayerColor(playerid,red); colour = "Red"; }
case 3: { SetPlayerColor(playerid,orange); colour = "Orange"; }
case 4: { SetPlayerColor(playerid,orange); colour = "Yellow"; }
case 5: { SetPlayerColor(playerid,COLOR_GREEN1); colour = "Green"; }
case 6: { SetPlayerColor(playerid,COLOR_BLUE); colour = "Blue"; }
case 7: { SetPlayerColor(playerid,COLOR_PURPLE); colour = "Purple"; }
case 8: { SetPlayerColor(playerid,COLOR_BROWN); colour = "Brown"; }
case 9: { SetPlayerColor(playerid,COLOR_PINK); colour = "Pink"; }
}
}else return SendClientMessage(playerid,red,"ERROR: You are not V.I.P Member or Administrator.");
return 1;
}
return 0;
}
dcmd_givevip(playerid,params[]) {
if(IsPlayerAdmin(playerid)) {
new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /givevip [playerid]");
new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
player1 = strval(tmp);
if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
if(PlayerInfo[player1][Vip] == 1) return SendClientMessage(playerid,red,"ERROR: Player is already V.I.P member");
GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
new year,month,day; getdate(year, month, day); new hour,minute,second; gettime(hour,minute,second);
format(string,sizeof(string),"Administrator %s has set you V.I.P member",adminname);
SendClientMessage(player1,blue,string);
GameTextForPlayer(player1,"Promoted", 2000, 3);
dUserSetINT(PlayerName2(player1)).("Vip",(1));
PlayerInfo[player1][Vip] = 1;
return PlayerPlaySound(player1,1057,0.0,0.0,0.0);
} else return SendClientMessage(playerid, red, "Player is not connected");
} else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
}
dcmd_scoatevip(playerid,params[]) {
if(IsPlayerAdmin(playerid)) {
new tmp[256], tmp2[256], Index; tmp = strtok(params,Index), tmp2 = strtok(params,Index);
if(!strlen(params)) return SendClientMessage(playerid, red, "USAGE: /scoatevip [playerid]");
new player1, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
player1 = strval(tmp);
if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID) {
if(PlayerInfo[player1][Vip] == 0) return SendClientMessage(playerid,red,"ERROR: Player is already simple player");
GetPlayerName(player1, playername, sizeof(playername)); GetPlayerName(playerid, adminname, sizeof(adminname));
new year,month,day; getdate(year, month, day); new hour,minute,second; gettime(hour,minute,second);
format(string,sizeof(string),"Administrator %s has set you to Player Status ",adminname);
SendClientMessage(player1,blue,string);
GameTextForPlayer(player1,"Demoted", 2000, 3);
dUserSetINT(PlayerName2(player1)).("Vip",(0));
PlayerInfo[player1][Vip] = 0;
return PlayerPlaySound(player1,1057,0.0,0.0,0.0);
} else return SendClientMessage(playerid, red, "Player is not connected");
} else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
}
dcmd_vipgoto(playerid,params[]) {
if( PlayerInfo[playerid][Vip] == 1) {
if(!strlen(params)) return SendClientMessage(playerid,red,"USAGE: /vipgoto [playerid]");
new player1, string[128];
if(!IsNumeric(params)) player1 = ReturnPlayerID(params);
else player1 = strval(params);
if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID && player1 != playerid) {
new Float:x, Float:y, Float:z; GetPlayerPos(player1,x,y,z); SetPlayerInterior(playerid,GetPlayerInterior(player1));
SetPlayerVirtualWorld(playerid,GetPlayerVirtualWorld(player1));
if(GetPlayerState(playerid) == 2) {
SetVehiclePos(GetPlayerVehicleID(playerid),x+3,y,z); LinkVehicleToInterior(GetPlayerVehicleID(playerid),GetPlayerInterior(player1));
SetVehicleVirtualWorld(GetPlayerVehicleID(playerid),GetPlayerVirtualWorld(player1));
} else SetPlayerPos(playerid,x+2,y,z);
format(string,sizeof(string),"You have teleported to \"%s\"", pName(player1));
return SendClientMessage(playerid,blue,string);
} else return SendClientMessage(playerid, red, "Player is not connected or is yourself");
} else return SendClientMessage(playerid,red,"ERROR: You are not V.I.P member or Administrator.");
}
//==========================[ Spectate Commands ]===============================
#if defined ENABLE_SPEC
dcmd_spec(playerid,params[]) {
if(PlayerInfo[playerid][Vip] == 1) {
if(!strlen(params) || !IsNumeric(params)) return SendClientMessage(playerid, red, "USAGE: /spec [playerid]");
new specplayerid = strval(params);
if(IsPlayerConnected(specplayerid) && specplayerid != INVALID_PLAYER_ID) {
if(specplayerid == playerid) return SendClientMessage(playerid, red, "ERROR: You cannot spectate yourself");
if(GetPlayerState(specplayerid) == PLAYER_STATE_SPECTATING && PlayerInfo[specplayerid][SpecID] != INVALID_PLAYER_ID) return SendClientMessage(playerid, red, "Spectate: Player spectating someone else");
if(GetPlayerState(specplayerid) != 1 && GetPlayerState(specplayerid) != 2 && GetPlayerState(specplayerid) != 3) return SendClientMessage(playerid, red, "Spectate: Player not spawned");
StartSpectate(playerid, specplayerid);
GetPlayerPos(playerid,Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]);
GetPlayerFacingAngle(playerid,Pos[playerid][3]);
return SendClientMessage(playerid,blue,"Now Spectating");
} else return SendClientMessage(playerid,red,"ERROR: Player is not connected");
} else return SendClientMessage(playerid,red,"ERROR: You are not V.I.P Member or Administrator");
}
dcmd_specoff(playerid,params[]) {
#pragma unused params
if(PlayerInfo[playerid][Vip] == 1) {
if(PlayerInfo[playerid][SpecType] != ADMIN_SPEC_TYPE_NONE) {
StopSpectate(playerid);
SetTimerEx("PosAfterSpec",3000,0,"d",playerid);
return SendClientMessage(playerid,blue,"No Longer Spectating");
} else return SendClientMessage(playerid,red,"ERROR: You are not spectating");
} else return SendClientMessage(playerid,red,"ERROR: You are not V.I.P Member or Administrator");
}
#endif
dcmd_carcolor(playerid,params[]) {
if(PlayerInfo[playerid][Vip] == 1) {
new tmp2[256], tmp3[256], Index; tmp2 = strtok(params,Index); tmp3 = strtok(params,Index);
if(!strlen(tmp2) || !strlen(tmp3) || !IsNumeric(tmp2)) return SendClientMessage(playerid, red, "USAGE: /carcolour [colour1] [colour2]");
new colour1, colour2, string[128];
if(!strlen(tmp2)) colour1 = random(126); else colour1 = strval(tmp2);
if(!strlen(tmp3)) colour2 = random(126); else colour2 = strval(tmp3);
if(IsPlayerInAnyVehicle(playerid)) {
format(string, sizeof(string), "You have changed tou colour to color %d,%d'", pName(playerid), colour1, colour2 ); SendClientMessage(playerid,blue,string);
return ChangeVehicleColor(GetPlayerVehicleID(playerid), colour1, colour2);
} else return SendClientMessage(playerid,red,"ERROR: You are not in a vehicle");
} else return SendClientMessage(playerid,red,"ERROR: You are not a high enough level to use this command");
}
dcmd_spawnme(playerid,params[]) {
#pragma unused params
if(PlayerInfo[playerid][Vip] == 1) {
SendClientMessage(playerid,blue,"You have ReSpawned ");
SetPlayerPos(playerid, 0.0, 0.0, 0.0);
return SpawnPlayer(playerid);
} else return SendClientMessage(playerid,red,"ERROR: You are not V.I.P or Administrator.");
}
stock IsNumeric(string[])
{
for (new i = 0, j = strlen(string); i < j; i++)
{
if (string[i] > '9' || string[i] < '0') return 0;
}
return 1;
}
dcmd_saveskin(playerid,params[]) {
#pragma unused params
if(PlayerInfo[playerid][Vip] == 1) {
new string[128], SkinID;
SkinID = GetPlayerSkin(playerid);
dUserSetINT(PlayerName2(playerid)).("Skin",SkinID);
format(string, sizeof(string), "You have successfully saved this skin (ID %d)",SkinID);
SendClientMessage(playerid,yellow,string);
SendClientMessage(playerid,yellow,"Type /outskin for leave the skin.");
} else return SendClientMessage(playerid,red,"ERROR: You are not V.I.P member or Administrator.");
return 1;
}
dcmd_outskin(playerid,params[]) {
#pragma unused params
if(PlayerInfo[playerid][Vip] == 1) {
dUserSetINT(PlayerName2(playerid)).("Skin",-1);
} else return SendClientMessage(playerid,red,"ERROR: You are not V.I.P member or Administrator.");
return 1;
}
stock pName(playerid)
{
GetPlayerName(playerid, name, sizeof(name));
return name;
}
stock ReturnPlayerID(PlayerName[])
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(strfind(pName(i),PlayerName,true)!=-1) return i;
}
}
return INVALID_PLAYER_ID;
}
stock PlayerName2(playerid) {
GetPlayerName(playerid, name, sizeof(name));
return name;
}
forward TuneLCar(VehicleID);
public TuneLCar(VehicleID)
{
ChangeVehicleColor(VehicleID,0,0);
AddVehicleComponent(VehicleID, 1010); AddVehicleComponent(VehicleID, 1087);
}
#if defined ENABLE_SPEC
public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
new x = 0;
while(x!=MAX_PLAYERS) {
if( IsPlayerConnected(x) && GetPlayerState(x) == PLAYER_STATE_SPECTATING &&
PlayerInfo[x][SpecID] == playerid && PlayerInfo[x][SpecType] == ADMIN_SPEC_TYPE_PLAYER )
{
SetPlayerInterior(x,newinteriorid);
}
x++;
}
}
//==============================================================================
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING && PlayerInfo[playerid][SpecID] != INVALID_PLAYER_ID)
{
if(newkeys == KEY_JUMP) AdvanceSpectate(playerid);
else if(newkeys == KEY_SPRINT) ReverseSpectate(playerid);
}
return 1;
}
//==============================================================================
public OnPlayerEnterVehicle(playerid, vehicleid) {
for(new x=0; x<MAX_PLAYERS; x++) {
if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] == playerid) {
TogglePlayerSpectating(x, 1);
PlayerSpectateVehicle(x, vehicleid);
PlayerInfo[x][SpecType] = ADMIN_SPEC_TYPE_VEHICLE;
}
}
return 1;
}
//==============================================================================
public OnPlayerStateChange(playerid, newstate, oldstate) {
switch(newstate) {
case PLAYER_STATE_ONFOOT: {
switch(oldstate) {
case PLAYER_STATE_DRIVER: OnPlayerExitVehicle(playerid,255);
case PLAYER_STATE_PASSENGER: OnPlayerExitVehicle(playerid,255);
}
}
}
return 1;
}
#endif
#if defined ENABLE_SPEC
stock StartSpectate(playerid, specplayerid)
{
for(new x=0; x<MAX_PLAYERS; x++) {
if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] == playerid) {
AdvanceSpectate(x);
}
}
SetPlayerInterior(playerid,GetPlayerInterior(specplayerid));
TogglePlayerSpectating(playerid, 1);
if(IsPlayerInAnyVehicle(specplayerid)) {
PlayerSpectateVehicle(playerid, GetPlayerVehicleID(specplayerid));
PlayerInfo[playerid][SpecID] = specplayerid;
PlayerInfo[playerid][SpecType] = ADMIN_SPEC_TYPE_VEHICLE;
}
else {
PlayerSpectatePlayer(playerid, specplayerid);
PlayerInfo[playerid][SpecID] = specplayerid;
PlayerInfo[playerid][SpecType] = ADMIN_SPEC_TYPE_PLAYER;
}
new string[100], Float:hp, Float:ar;
GetPlayerName(specplayerid,string,sizeof(string));
GetPlayerHealth(specplayerid, hp); GetPlayerArmour(specplayerid, ar);
format(string,sizeof(string),"~n~~n~~n~~n~~n~~n~~n~~n~~w~%s - id:%d~n~< sprint - jump >~n~hp:%0.1f ar:%0.1f $%d", string,specplayerid,hp,ar,GetPlayerMoney(specplayerid) );
GameTextForPlayer(playerid,string,25000,3);
return 1;
}
stock StopSpectate(playerid)
{
TogglePlayerSpectating(playerid, 0);
PlayerInfo[playerid][SpecID] = INVALID_PLAYER_ID;
PlayerInfo[playerid][SpecType] = ADMIN_SPEC_TYPE_NONE;
GameTextForPlayer(playerid,"~n~~n~~n~~w~Spectate mode ended",1000,3);
return 1;
}
stock AdvanceSpectate(playerid)
{
if(ConnectedPlayers() == 2) { StopSpectate(playerid); return 1; }
{
if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING && PlayerInfo[playerid][SpecID] != INVALID_PLAYER_ID)
for(new x=PlayerInfo[playerid][SpecID]+1; x<=MAX_PLAYERS; x++)
{
if(x == MAX_PLAYERS) x = 0;
if(IsPlayerConnected(x) && x != playerid)
{
if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] != INVALID_PLAYER_ID || (GetPlayerState(x) != 1 && GetPlayerState(x) != 2 && GetPlayerState(x) != 3))
{
continue;
}
else
{
StartSpectate(playerid, x);
break;
}
}
}
}
return 1;
}
stock ReverseSpectate(playerid)
{
if(ConnectedPlayers() == 2) { StopSpectate(playerid); return 1; }
if(GetPlayerState(playerid) == PLAYER_STATE_SPECTATING && PlayerInfo[playerid][SpecID] != INVALID_PLAYER_ID)
{
for(new x=PlayerInfo[playerid][SpecID]-1; x>=0; x--)
{
if(x == 0) x = MAX_PLAYERS;
if(IsPlayerConnected(x) && x != playerid)
{
if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] != INVALID_PLAYER_ID || (GetPlayerState(x) != 1 && GetPlayerState(x) != 2 && GetPlayerState(x) != 3))
{
continue;
}
else
{
StartSpectate(playerid, x);
break;
}
}
}
}
return 1;
}
//-------------------------------------------
forward PosAfterSpec(playerid);
public PosAfterSpec(playerid)
{
SetPlayerPos(playerid,Pos[playerid][0],Pos[playerid][1],Pos[playerid][2]);
SetPlayerFacingAngle(playerid,Pos[playerid][3]);
}
#endif
//==============================================================================
public OnPlayerExitVehicle(playerid, vehicleid)
{
#if defined ENABLE_SPEC
for(new x=0; x<MAX_PLAYERS; x++) {
if(GetPlayerState(x) == PLAYER_STATE_SPECTATING && PlayerInfo[x][SpecID] == playerid && PlayerInfo[x][SpecType] == ADMIN_SPEC_TYPE_VEHICLE) {
TogglePlayerSpectating(x, 1);
PlayerSpectatePlayer(x, playerid);
PlayerInfo[x][SpecType] = ADMIN_SPEC_TYPE_PLAYER;
}
}
#endif
return 1;
}
forward ConnectedPlayers();
public ConnectedPlayers()
{
new Connected;
for(new i = 0; i < MAX_PLAYERS; i++) if(IsPlayerConnected(i)) Connected++;
return Connected;
}
dcmd_vips(playerid, params[])
{
#pragma unused params
new string[128];
if(IsPlayerConnected(playerid))
{
for (new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(PlayerInfo[i][Vip] >= 1)
{
format(string, sizeof(string),"Vips : %s(%d)", PlayerName2(i), i);
SendClientMessage(playerid, green, string);
//ShowPlayerDialog(playerid, ADMIN_LIST, DIALOG_STYLE_LIST,"Online Admins: (command unstable)", string, "Send PM", "Close");
}
}
}
}
return 1;
}
public OnPlayerText(playerid, text[])
{
if(text[0] == '!' && PlayerInfo[playerid][Vip] == 1) {
new string[128]; GetPlayerName(playerid,string,sizeof(string));
format(string,sizeof(string),"Vip Chat: %s: %s",string,text[1]); MessageToVip(green,string);
return 0;
}
return 1;
}
forward MessageToVip(color,const string[]);
public MessageToVip(color,const string[])
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) == 1) if (PlayerInfo[i][Vip] == 1) SendClientMessage(i, color, string);
}
return 1;
}