#define FILTERSCRIPT
#include <a_samp>
#include <dini>
//#include <dutils>
#include <sscanf>
#include <zcmd>
//COLOUR DEFINES
#define vipcolor1 0xC0C0C0AA //ERRO = CINZA
#define vipcolor2 0xFF8000AA //VIP COLOR = VIP = ORANGE
#define vipcolor3 0x00FF00AA //JUST ANOTHER COLOR = GREEN
//===========================NEWS===============================================
new veiculoVIP[MAX_VEHICLES];
enum System
{
Jogador[24],
McVIP
};
new
PlayerInfo[MAX_PLAYERS][System],
sStr[128];
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" McVIP by Mc Crusher ");
print("--------------------------------------\n");
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
public OnGameModeInit()
{
return 1;
}
public OnGameModeExit()
{
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
return 1;
}
public OnPlayerConnect(playerid)
{
CallSetVip(playerid);
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
CallSaveVip(playerid);
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;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
/*
=================================================GMX============================
CMD:gmx(playerid, params[])
{
#pragma unused params
if(PlayerInfo[playerid][McVIP] < 9) return SendClientMessage(playerid,vipcolor1,"(INFO)Vocк Precisa Ser Nнvel 9 Para Usar Este Comando!");
SendRconCommand("gmx");
return true;
}
*/
return 0; //END DO NOT DEL
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
if(veiculoVIP[GetPlayerVehicleID(playerid)] == 1 && PlayerInfo[playerid][McVIP] == 0)
{
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, -1, "voce nao e vip xd");
return 1;
}
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
new pCarro = GetPlayerVehicleID(playerid);
if(newstate == PLAYER_STATE_DRIVER)
{
if(veiculoVIP[pCarro] == 1 && PlayerInfo[playerid][McVIP] == 0) {
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid, -1, "voce nao e vip !");
return 1;
}
else { }
}
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveCheckpoint(playerid)
{
return 1;
}
public OnPlayerEnterRaceCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveRaceCheckpoint(playerid)
{
return 1;
}
public OnRconCommand(cmd[])
{
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
return 1;
}
public OnObjectMoved(objectid)
{
return 1;
}
public OnPlayerObjectMoved(playerid, objectid)
{
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}
public OnVehicleMod(playerid, vehicleid, componentid)
{
return 1;
}
public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
{
return 1;
}
public OnVehicleRespray(playerid, vehicleid, color1, color2)
{
return 1;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}
public OnPlayerExitedMenu(playerid)
{
return 1;
}
public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
{
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
return 1;
}
public OnRconLoginAttempt(ip[], password[], success)
{
return 1;
}
public OnPlayerUpdate(playerid)
{
return 1;
}
public OnPlayerStreamIn(playerid, forplayerid)
{
return 1;
}
public OnPlayerStreamOut(playerid, forplayerid)
{
return 1;
}
public OnVehicleStreamIn(vehicleid, forplayerid)
{
return 1;
}
public OnVehicleStreamOut(vehicleid, forplayerid)
{
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
return 1;
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}
CallSaveVip(playerid)
{
GetPlayerName(playerid, PlayerInfo[playerid][Jogador], 23);
format(sStr, sizeof(sStr), "%s.ini", PlayerInfo[playerid][Jogador]);
if(fexist(sStr))
{
dini_IntSet(sStr, "McVIP", PlayerInfo[playerid][McVIP]);
}
else dini_Create(sStr);
return true;
}
CallSetVip(playerid)
{
GetPlayerName(playerid, PlayerInfo[playerid][Jogador], 23);
format(sStr, sizeof(sStr), "%s.ini", PlayerInfo[playerid][Jogador]);
if(fexist(sStr))
{
PlayerInfo[playerid][McVIP] = dini_Int(sStr, "McVIP");
}
return true;
}
CMD:darvip(playerid, params[])
{
new string[100],Id,VipNivel,NomedoCara[MAX_PLAYER_NAME],NomedoCara2[MAX_PLAYER_NAME];
if(sscanf(params, "ud", Id, VipNivel)) return SendClientMessage(playerid, vipcolor3,"[ INFO ]{FFFFFF} Correto: /darvip [ ID ] [ Level 0-10 ].");
if(!IsPlayerConnected(Id)) return SendClientMessage(playerid, vipcolor1, "[ ERROR ]{FFFFFF} Jogador nгo conectado.");
if(VipNivel > 10 || VipNivel < 0) return SendClientMessage(playerid, vipcolor1,"[ ERRO ]{FFFFFF} Bote Maior Que 1 e Menor Que 10!");
if(PlayerInfo[Id][level] == VipNivel) return SendClientMessage(playerid, vipcolor3,"[ ERRO ]{FFFFFF} Este Player Jб Tem Este Nнvel.");
GetPlayerName(playerid, NomedoCara, sizeof(NomedoCara));
GetPlayerName(Id, NomedoCara2, sizeof(NomedoCara2));
format(string, sizeof(string), "Vocк Recebeu Do Admin {FFFF00}%s, {FFFFFF}Level {FFFF00}%i",NomedoCara,VipLevel);
SendClientMessage(Id, 0xFFFFFFFF, string);
format(string, sizeof(string), "Vocк Presenteou O Jogador {FFFF00}%s, {FFFFFF}Level {FFFF00}%i",NomedoCara2,AdminNivel);
SendClientMessage(playerid, 0xFFFFFFFF, string);
PlayerInfo[Id][McVIP] = VipLevel;
SalvarDados(Id);
return true;
}
//=========================================VIPS=================================
CMD:vips(playerid,params)
{
if(!strlen(params)) return SendClientMessage(playerid,-1,"/vervip [id]");
new sStr[60];
GetPlayerName(strval(params),sStr,sizeof(sStr));
format(sStr,sizeof(sStr),"%s tem o level %i",sStr,PlayerInfo[strval(params)][McVIP]);
SendClientMessage(playerid,-1,sStr);
return true;
}
//=====================================MY VIP===================================
CMD:myvip(playerid,params[])
{
new sStr[60];
format(sStr,sizeof(sStr),"Seu level й %i",PlayerInfo[playerid][McVIP]);
SendClientMessage(playerid,-1,sStr);
return true;
}
//=======================================VIP CARS===============================
//==============================================================================
CMD:vhydra(playerid, params[])
{
if(PlayerInfo[playerid][VIP] != 1) return SendClientMessage(playerid,0xD8D8D8FF,".::[INFO] Vocк nгo й VIP .!");
new Float:Pos[4], carro;
new Text3D:vehicle3Dtext;
GetPlayerPos(playerid,Pos[0],Pos[1],Pos[2]);
GetPlayerFacingAngle(playerid,Pos[3]);
carro = CreateVehicle(520,Pos[0],Pos[1],Pos[2],Pos[3],-1,-1,9000000);
vehicle3Dtext = Create3DTextLabel( "Veiculo VIP", 0xB4B5B7FF, 30.0,40.0,50.0,40.0,0);
Attach3DTextLabelToVehicle(vehicle3Dtext, carro, 0.0,-0.0,0.5);
PutPlayerInVehicle( playerid, carro, 0) ;
LinkVehicleToInterior(carro, GetPlayerInterior(playerid));
TogglePlayerControllable(playerid,true);
veiculoVIP[carro] = 1;
return 1;
}
CMD:viprights(playerid, params[])
{
new targetid, level;
if(sscanf(params, "ui", targetid, level)) return SendClientMessage(playerid, COLOR_ORANGE, "USAGE: /viprights [playerid] [level]");
if(!IsPlayerConnected(targetid)) return SendClientMessage(playerid, COLOR_WHITE,"That player id is incorrect.");
SendClientMessage(targetid, 0xFFFFFFFF, "You have got VIP rights.");
IsPlayerVip[targetid] = level;
SetPlayerScore(targetid, GetPlayerScore(targetid)+1);
return 1;
}
#define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
new IsPlayerVip [MAX_PLAYERS];
dcmd_setvip(playerid, params[])
{
new string[100],Id,Level,playerid[MAX_PLAYER_NAME],id[MAX_PLAYER_NAME];
if(sscanf(params, "ud", Id, VipNivel)) return SendClientMessage(playerid, vipcolor3,"Correto: /setvip [ID] [Level 0-10].");
if(!IsPlayerConnected(Id)) return SendClientMessage(playerid, vipcolor1, "Player offline.");
if(VipNivel < 0 || VipNivel > 10) return SendClientMessage(playerid, vipcolor3,"Use /setvip [id] [0-10]");
if(JogadorInfo[Id][Vip] == VipLevel) return SendClientMessage(playerid, vipcolor1,"This Player already have this level.");
GetPlayerName(playerid, playerid, sizeof(playerid));
GetPlayerName(Id, playerid2, sizeof(playerid2));
format(string, sizeof(string), "You received from admin %s, Level %i",playerid2,AdminNivel);
SendClientMessage(Id, vipcolor2, string);
format(string, sizeof(string), "You give player %s, Level %i",playerid2,Adminlevel);
SendClientMessage(playerid, vipcolor2, string);
PlayerInfo[Id][Vip] = VipLevel;
Save(Id);
return true;
}
dcmd(setvip,6,cmdtext);
I would suggest you to read about both command processors here:
Zcmd: https://sampforum.blast.hk/showthread.php?tid=91354 Dcmd: https://sampforum.blast.hk/showthread.php?tid=48239 @Wiki: https://sampwiki.blast.hk/wiki/Fast_Commands |