Podrian ayudarme con el sistema de vip?
#1

Hola,bueno tengo un sistema de vip del LuxAdmin que funciona.Pero yo quiero que si un user llega a una cantidad de score el vip se le de solo,y no tenga que usar vip

Por ejemplo

Oro - 1000 score
plata - 2000 score
premium - 3000 score

Aca les dejo el codigo de /setvip si necesitan otra cosa se los doy.No necesito el codigo completo con un ejemplo ya basta.

pawn Код:
dcmd_setvip(playerid,params[])
{
    if(AccInfo[playerid][LoggedIn] == 1)
    {
        if(AccInfo[playerid][Level] >= 5 || IsPlayerAdmin(playerid))
        {
            new tmp [256];
            new tmp2[256];
            new Index;
            tmp  = strtok(params,Index);
            tmp2 = strtok(params,Index);
            if(!strlen(params)) return
            SendClientMessage(playerid, LIGHTBLUE2, "Uso: /setvip [ID del Jugador] [Tipo de Cuenta (0-3)]") &&
            SendClientMessage(playerid, orange, "Funcion: Establece un Tipo de Cuenta a Determinado Jugador (0-Normal,1-Plata,2-Oro,3-Premium)");

            new player1, type, playername[MAX_PLAYER_NAME], adminname[MAX_PLAYER_NAME], string[128];
            player1 = strval(tmp);
            if(!strlen(tmp2)) return
            SendClientMessage(playerid, LIGHTBLUE2, "Uso: /setvip [ID del Jugador] [Tipo de Cuenta (0-3)]") &&
            SendClientMessage(playerid, orange, "Funcion: Establece un Tipo de Cuenta a Determinado Jugador (0-Normal,1-Plata,2-Oro,3-Premium)");
            type = strval(tmp2);

            if(IsPlayerConnected(player1) && player1 != INVALID_PLAYER_ID)
            {
                if(AccInfo[player1][LoggedIn] == 1)
                {
                if(type > 3)
                return SendClientMessage(playerid,red,"ERROR: Tipo de Cuenta Invalida!");
                if(type == AccInfo[player1][pVip])
                return SendClientMessage(playerid,red,"ERROR: El Jugador ya tiene Esta Membrecia!");
                SendCommandToAdmins(playerid,"SetVip");
                GetPlayerName(player1, playername, sizeof(playername));
                GetPlayerName(playerid, adminname, sizeof(adminname));
                new year,month,day;
                new hour,minute,second;
                getdate(year, month, day);
                gettime(hour,minute,second);
               
                switch(type)
                {
                    case 1: AccType = "Plata";
                    case 2: AccType = "Oro";
                    case 3: AccType = "Premium";
                }
                if(type > 0)
                format(string,sizeof(string),"|- Administrador %s ha Establecido tu Cuenta a Membrecia: %s",adminname,AccType);
                else
                format(string,sizeof(string),"|- Administrador %s ha Establecido tu Cuenta a: 'Cuenta Normal!",adminname);
                SendClientMessage(player1,0x66C178AA,string);
                if(type > AccInfo[player1][pVip])
                GameTextForPlayer(player1,"Promovido", 2000, 3);
                else GameTextForPlayer(player1,"Degradado", 2000, 3);

                format(string,sizeof(string),"Usted ha dado %s Membrecia: %s en '%d/%d/%d' Fecha '%d:%d:%d'", playername, AccType, day, month, year, hour, minute, second);
                SendClientMessage(playerid,0x00C378AA,string);
                format(string,sizeof(string),"Administrador %s ha echo a %s Membrecia: %s",adminname, playername, AccType);
                SaveIn("AdminLog",string);
                dUserSetINT(PlayerName2(player1)).("Membrecia",(type));
                AccInfo[player1][pVip] = type;
                return PlayerPlaySound(player1,1057,0.0,0.0,0.0);
                }
                else return SendClientMessage(playerid,red,"ERROR: Este Jugador no Esta Registrado o Logueado!");
            }
            else return ErrorMessages(playerid, 2);
        }
        else return ErrorMessages(playerid, 1);
    }
    else return SendClientMessage(playerid,red,"ERROR: Usted debe estar registrado para utilizar estos comandos");
}
Reply
#2

Utiliza la variable

pawn Код:
AccInfo[playerid][pVip]
con el operador = para asignarle un valor , ejemplo

pawn Код:
if(GetPlayerScore(playerid) == 1000) AccInfo[playerid][pVip] = 1 // Si llega a 1000 score se le dara oro
https://sampwiki.blast.hk/wiki/Control_Structures#Operators
https://sampwiki.blast.hk/wiki/GetPlayerScore
Reply
#3

Quote:
Originally Posted by xeon_inside
Посмотреть сообщение
Utiliza la variable

pawn Код:
AccInfo[player1][pVip]
con el operador = para asignarle un valor , ejemplo

pawn Код:
if(GetPlayerScore(playerid) == 1000) AccInfo[player1][pVip] = 1 // Si llega a 1000 score se le dara oro
https://sampwiki.blast.hk/wiki/Control_Structures#Operators
https://sampwiki.blast.hk/wiki/GetPlayerScore
Muchas gracias!Lo intentare asi
Reply
#4

Conosco el sistema y serнa de esta forma.
Solo define el Stock en el Spawnear asн: stock Vip(playerid); asн se verifica si esta logueado y si tiene el score se le dara el nivel Vip y se guardara


pawn Код:
stock Vip(playerid)
{
if(PlayerInfo[playerid][LoggedIn] == 1)
{
new Score;
Score=GetPlayerScore(playerid);
if(2000 < Score >= 3000 )//Premium
{
if(PlayerInfo[playerid][pVip] < 3)
{
dUserSetINT(PlayerName2(playerid)).("Membrecia",(3));
PlayerInfo[playerid][pVip] = 3;
}
return 1;
}
else if(1000 < Score >= 2000 )//Plata
{
if(PlayerInfo[playerid][pVip] < 2)
{
dUserSetINT(PlayerName2(playerid)).("Membrecia",(2));
PlayerInfo[playerid][pVip] = 2;
}
return 1;
}
else if(Score >= 1000 )//Oro
{
if(PlayerInfo[playerid][pVip] < 1)
{
dUserSetINT(PlayerName2(playerid)).("Membrecia",(1));
PlayerInfo[playerid][pVip] = 1;
}
}
}
return 1;
}
Reply
#5

Quote:
Originally Posted by PolloLoko
Посмотреть сообщение
Conosco el sistema y serнa de esta forma.
Solo define el Stock en el Spawnear asн: stock Vip(playerid); asн se verifica si esta logueado y si tiene el score se le dara el nivel Vip y se guardara


pawn Код:
stock Vip(playerid)
{
if(PlayerInfo[playerid][LoggedIn] == 1)
{
new Score;
Score=GetPlayerScore(playerid);
if(2000 < Score >= 3000 )//Premium
{
if(PlayerInfo[playerid][pVip] < 3)
{
dUserSetINT(PlayerName2(playerid)).("Membrecia",(3));
PlayerInfo[playerid][pVip] = 3;
}
return 1;
}
else if(1000 < Score >= 2000 )//Plata
{
if(PlayerInfo[playerid][pVip] < 2)
{
dUserSetINT(PlayerName2(playerid)).("Membrecia",(2));
PlayerInfo[playerid][pVip] = 2;
}
return 1;
}
else if(Score >= 1000 )//Oro
{
if(PlayerInfo[playerid][pVip] < 1)
{
dUserSetINT(PlayerName2(playerid)).("Membrecia",(1));
PlayerInfo[playerid][pVip] = 1;
}
}
}
return 1;
}
Me funciono,solo tube que cambiar PlayerInfo por AccInfo que es la variable de mi sistema.Gracias a los 2 y solucionado
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)