Como tiro /comprarnivel? -
eoqtrabhir - 17.05.2018
No meu gm tem um comando lб pra comprar nivel eu tirei a funзгo de ter que pagar e pro player subir de nнvel tem sempre que dar /comprarnivel para o level ser atualizado e usar /melhorar pra melhorar algumas coisas como faзo pro player subir de nнvel e ir melhorando toda vez que acumular os respeitos necessбrios sem ter que escrever /comprarnivel e /melhorar
Код:
CMD:comprarnivel(playerid, params[])
{
if (gPlayerLogged[playerid] != 0)
{
//PlayerInfo[playerid][pCash] = GetPlayerMoney(playerid);
if(PlayerInfo[playerid][pLevel] >= 0)
{
new gstring[128];
new nxtlevel = PlayerInfo[playerid][pLevel]+1;
new costlevel = nxtlevel*levelcost;//10k for testing purposes
new expquantidade = nxtlevel*levelexp;
/*if(GetPlayerMoney(playerid) < costlevel)
{
format(gstring, 128, " Vocк nгo tem: (R$%s) !",ConvertMoney(costlevel));
SendClientMessage(playerid, COLOR_GRAD1, gstring);
return true;
}
else */if (PlayerInfo[playerid][pExp] < expquantidade)
{
format(gstring, 128, " Vocк precisa de %d pontos de respeito, Vocк tem: [%d] !",expquantidade,PlayerInfo[playerid][pExp]);
SendClientMessage(playerid, COLOR_GRAD1, gstring);
return true;
}
else
{
format(gstring, sizeof(gstring), "~g~Nivel adquirido~n~~w~Agora seu Nivel e %d", nxtlevel);
PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
PlayerPlayMusic(playerid);
//GiveDinheiro(playerid, (-costlevel));
PlayerInfo[playerid][pLevel]++;
ScoreLevel(playerid);
PlayerInfo[playerid][pExp] -= expquantidade;
PlayerInfo[playerid][gPupgrade] = PlayerInfo[playerid][gPupgrade]+2;
GameTextForPlayer(playerid, gstring, 5000, 1);
format(gstring, 128, " Vocк adquiriu o nнvel %d, Digite /melhorar", nxtlevel, ConvertMoney(costlevel));
SendClientMessage(playerid, COLOR_GRAD1, gstring);
format(gstring, 128, " Vocк tem %d pontos de melhora",PlayerInfo[playerid][gPupgrade]);
SendClientMessage(playerid, COLOR_GRAD2, gstring);
}
}
return true;
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, " Vocк nгo estб logado !");
}
return true;
}
Код:
CMD:melhorar(playerid, gunid[])
{
new gstring[128];
if(isnull(gunid))
{
format(gstring, sizeof(gstring), "USE: /melhorar [pontos] (Vocк tem %d pontos de melhora)",PlayerInfo[playerid][gPupgrade]);
SendClientMessage(playerid, COLOR_WHITE, "|______________[ UPGRADES ]______________|");
SendClientMessage(playerid, COLOR_GRAD2,gstring);
if(PlayerInfo[playerid][pLevel] == 2)
{
SendClientMessage(playerid, COLOR_GRAD3, "Nнvel 2 Melhorias: Alcool, Drogas");
}
else if(PlayerInfo[playerid][pLevel] == 3)
{
SendClientMessage(playerid, COLOR_GRAD3, "Nнvel 3 Melhorias: Alcool, Drogas, Comercio");
}
else if(PlayerInfo[playerid][pLevel] == 3)
{
SendClientMessage(playerid, COLOR_GRAD3, "Nнvel 4 Melhorias: Alcool, Drogas, Avareza, Comercio");
}
else if(PlayerInfo[playerid][pLevel] >= 5)
{
SendClientMessage(playerid, COLOR_GRAD3, "Nнvel 5 Melhorias: Alcool, Drogas, Avareza, Comercio, PainKillers");
}
SendClientMessage(playerid, COLOR_GRAD5, "Extra: Vida");
return true;
}
if (PlayerInfo[playerid][gPupgrade] >= 1)
{
if (PlayerInfo[playerid][pLevel] >= 1 && (strcmp(gunid, "Vida", true, strlen(gunid)) == 0))
{
if (PlayerInfo[playerid][pSHealth] < 100)
{
PlayerInfo[playerid][pSHealth] = PlayerInfo[playerid][pSHealth]+10.0;
format(gstring, 128, "Atualizaзгo: vocк vai nascer com %.2f de vida (+10)",PlayerInfo[playerid][pSHealth]);
}
else
{
SendClientMessage(playerid, COLOR_GRAD6, " Vocк jб estб no mбximo de vida");
return true;
}
}
else if (PlayerInfo[playerid][pLevel] >= 2 && (strcmp(gunid, "Alcool", true, strlen(gunid)) == 0))
{
if (PlayerInfo[playerid][pAlcoholPerk] < 3)
{
PlayerInfo[playerid][pAlcoholPerk] += 1;
format(gstring, 128, "Nova Atualizaзгo: Agora seu nнvel de alcool й %d.",PlayerInfo[playerid][pAlcoholPerk]);
PlayerInfo[playerid][gPupgrade]--;
}
else
{
SendClientMessage(playerid, COLOR_GRAD6, " Seu nнvel de alcool jб estб no mбximo !");
return true;
}
}
else if (PlayerInfo[playerid][pLevel] >= 2 && (strcmp(gunid, "Drogas", true, strlen(gunid)) == 0))
{
if (PlayerInfo[playerid][pDrugPerk] < 3)
{
PlayerInfo[playerid][pDrugPerk] += 1;
format(gstring, 128, "Nova Atualizaзгo: Agora seu nнvel de drogas й %d.",PlayerInfo[playerid][pDrugPerk]);
PlayerInfo[playerid][gPupgrade]--;
}
else
{
SendClientMessage(playerid, COLOR_GRAD6, " Seu nнvel de drogas jб estб no mбximo !");
return true;
}
}
else if (PlayerInfo[playerid][pLevel] >= 3 && (strcmp(gunid, "Avareza", true, strlen(gunid)) == 0))
{
if (PlayerInfo[playerid][pMiserPerk] < 3)
{
PlayerInfo[playerid][pMiserPerk] += 1;
format(gstring, 128, "Nova Atualizaзгo: Agora sua avareza й nнvel %d.",PlayerInfo[playerid][pMiserPerk]);
PlayerInfo[playerid][gPupgrade]--;
}
else
{
SendClientMessage(playerid, COLOR_GRAD6, " Sua atualizaзгo de Avareza estб no mбximo !");
return true;
}
}
else if (PlayerInfo[playerid][pLevel] >= 4 && (strcmp(gunid, "Comercio", true, strlen(gunid)) == 0))
{
if (PlayerInfo[playerid][pTraderPerk] < 3)
{
PlayerInfo[playerid][pTraderPerk] += 1;
format(gstring, 128, "Nova Atualizaзгo: Agora seu Comйrcio й nнvel %d.",PlayerInfo[playerid][pTraderPerk]);
PlayerInfo[playerid][gPupgrade]--;
}
else
{
SendClientMessage(playerid, COLOR_GRAD6, " Sua atualizaзгo de comйrcio estб no mбximo !");
return true;
}
}
else if (PlayerInfo[playerid][pLevel] >= 5 && (strcmp(gunid, "painkillers", true, strlen(gunid)) == 0))
{
if (PlayerInfo[playerid][pPainPerk] < 3)
{
PlayerInfo[playerid][pPainPerk] += 1;
format(gstring, 128, "Nova Atualizaзгo: Seu nнvel de Pain Killers agora й %d.",PlayerInfo[playerid][pPainPerk]);
PlayerInfo[playerid][gPupgrade]--;
}
else
{
SendClientMessage(playerid, COLOR_GRAD6, " Sua atualizaзгo de Pain Killers jб estб no mбximo !");
return true;
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD6, " Atualizaзгo desconhecida");
return true;
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD6, " Vocк tem 0 Pontos de Melhoria");
return true;
}
SendClientMessage(playerid, COLOR_GRAD6, gstring);
PlayerInfo[playerid][gPupgrade]--;
return true;
}
Re: Como tiro /comprarnivel? -
FerrariL - 17.05.2018
Crie uma funзгo para ser chamada a cada PayDay,e verifica se o player possui dinheiro para comprar o nнvel,caso ele possua й setado o novo nнvel. OBS: Vocк pode colocar esta funcionalidade dentro do PayDay,sem necessidade de criaзгo de outro Timer.
Re: Como tiro /comprarnivel? -
iTakelot - 17.05.2018
na callbeck que й chamada ao player quando se adquiri o respeito, crie uma condicional que verifique o respeito do player . ex if(respeito == x) { -- } boa sorte !