SA-MP Forums Archive
Help with vip - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: SA-MP Scripting and Plugins (https://sampforum.blast.hk/forumdisplay.php?fid=8)
+--- Forum: Scripting Help (https://sampforum.blast.hk/forumdisplay.php?fid=12)
+---- Forum: Help Archive (https://sampforum.blast.hk/forumdisplay.php?fid=89)
+---- Thread: Help with vip (/showthread.php?tid=272455)



Help with vip - Crusher_Men - 28.07.2011

@Edit

Here is the full FS

pawn Код:
#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;
}
I have some notes in the middle of the script... //
Im not english so some part of the script is in Portuguese...


Re: Help with vip - Rafa - 28.07.2011

i think this is much eazy way to make vip some player
im using this:
pawn Код:
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;
}
u can make just admin can give the rights and stuff...


Re: Help with vip - Crusher_Men - 28.07.2011

Nope.. it still doesn't work...

I've already try this
pawn Код:
#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



Re: Help with vip - Rafa - 28.07.2011

dude do u make up at the script
pawn Код:
new IsPlayerVip [MAX_PLAYERS];
if yes tell me what errors giving to u ?


Re: Help with vip - Markx - 28.07.2011

Okay look, LuxAdmin uses dcmd, so you cant make a command with zcmd it must be dcmd then. So make it:

pawn Код:
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;
}
Go and find "OnPlayerCommandText" (CTRL+F) and add this line if its not added yet:

pawn Код:
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


Re: Help with vip - Crusher_Men - 28.07.2011

Quote:
Originally Posted by Markx
Посмотреть сообщение
Of curse i've already read that...
When i put the dcmd it gives me more 10 errors..

error: 017: undefined symbol "dcmd_setvip"
error: 017: undefined symbol "dcmd_setvip"
warning: 219: local variable "Level" shadows a variable at a preceding level
warning: 219: local variable "playerid" shadows a variable at a preceding level
error: 017: undefined symbol "params"
error: 035: argument type mismatch (argument 1)
error: 035: argument type mismatch (argument 1)
argument type mismatch (argument 1)
undefined symbol "PlayerInfo"
warning: 215: expression has no effect
error: 001: expected token: ";", but found "]"
error: 029: invalid expression, assumed zero
error fatal: 107: too many error messages on one line

Can it be a missing include?

@Edit..
LOL i've put the cmd inside OnPLayerComandText..
I just had to drag it out side the Public

But what do I need to put in a VIP sistem?
Levels, cmds, ??, ??

And what to save and how? I still can't understand Dini...
So.. What to i have to do to make a good sistem?