02.08.2013, 09:52
voce pode fazeer de duas formas! Variavel global ou variavel do player! a diferenзa й que a global fica salva na memoria do servidor, enquanto a do player fica na memoria do player
vou dar os dois exemplos
outra coisa, voce estava mostrando a dialog para o player que digita o comando
vou dar os dois exemplos
pawn Код:
//coloque isto no topo do GM depois das include e dos #define
new plyvende[MAX_PLAYERS];
CMD:verderak(playerid, params[])
{
new idP;
if(sscanf(params, "i", idP)) return SCM(playerid, -1,"{F40000}››{FFFFFF} Uso correto: /venderak [id]");
if(plyvende[idP] != INVALID_PLAYER_ID) return SCM(playerid, -1,"Esse player ja tem uma oferta!");
format(formato, sizeof(formato),"{FFFFFF}%s estб lhe vendendo uma Ak-47 pelo valor de R$1000, aceitar?", VerNome(playerid));
ShowPlayerDialog(idP, 658, DIALOG_STYLE_MSGBOX, "Venda de Arma", formato, "Aceitar", "Cancelar");
plyvende[idP] = playerid;
return 1;
}
if(dialogid == 658) // Venda de Armas
{
if(response)
{
SCM(playerid, 0x6895FFAA,"Vocк aceitou comprar uma Ak47 pelo preзo de R$1000.");
GivePlayerWeapon(playerid, 30, 1000);
GivePlayerMoney(plyvende[playerid], 1000);
GivePlayerMoney(playerid, - 1000);
plyvende[playerid] = INVALID_PLAYER_ID;
}
else
{
SCM(playerid, -1,"Vocк recusou a oferta ilegal de arma.");
}
}
//ou
//voce tem de colocar isso em OnPlayerConnect porque a funcao GetPVarInt quando nao tem um valor atribuido retorna a 0, mas no caso, 0 й o id do primeiro player, entao nao funcionaria corretamente!
SetPVarInt(playerid,"plyvende",INVALID_PLAYER_ID);
CMD:verderak(playerid, params[])
{
new idP;
if(sscanf(params, "i", idP)) return SCM(playerid, -1,"{F40000}››{FFFFFF} Uso correto: /venderak [id]");
if(GetPVarInt(idP,"plyvende") != INVALID_PLAYER_ID) return SCM(playerid, -1,"Esse player ja tem uma oferta!");
format(formato, sizeof(formato),"{FFFFFF}%s estб lhe vendendo uma Ak-47 pelo valor de R$1000, aceitar?", VerNome(playerid));
ShowPlayerDialog(idP, 658, DIALOG_STYLE_MSGBOX, "Venda de Arma", formato, "Aceitar", "Cancelar");
SetPVarInt(idP,"plyvende",playerid);
return 1;
}
if(dialogid == 658) // Venda de Armas
{
if(response)
{
SCM(playerid, 0x6895FFAA,"Vocк aceitou comprar uma Ak47 pelo preзo de R$1000.");
GivePlayerWeapon(playerid, 30, 1000);
GivePlayerMoney(GetPVarInt(playerid,"plyvende"), 1000);
GivePlayerMoney(playerid, - 1000);
SetPVarInt(playerid,"plyvende",INVALID_PLAYER_ID);
}
else
{
SCM(playerid, -1,"Vocк recusou a oferta ilegal de arma.");
}
}
