Comando "darvip" em ZCMD -
presidiario - 10.12.2014
Re: alguem dar uma forзa aki -
MultiKill - 10.12.2014
Primeiramente saiba como usar zcmd e sscanf.
No zcmd o comando й separado dos parвmetros, e o comando no zcmd nгo passa de uma callback, os parвmetros do comando ficam armazenados no params na callback que й o comando.
O sscanf separa strings pelo espaзo que hб, e armazena em strings, variбveis que vocк escolheu.
Se vocк nгo saber usar ambos nгo vai conseguir, vocк pode usar strtok no zcmd, mas vocк tem que saber como usar.
Olhe este link.
Re: alguem dar uma forзa aki -
presidiario - 10.12.2014
af man nгo to conseguindo passar ;/
Re: alguem dar uma forзa aki -
MultiKill - 10.12.2014
Sabe qual й o problema?
Vocк sу quer copiar e colar, para fazer isso vocк precisa recriar o comando e para recriar vocк precisa saber usar sscanf ou strtok.
Exemplo:
pawn Код:
if(strcmp(cmd, "/msg", true) == 0)
{
new tmp1[128], tmp[128];
tmp1 = strtok(cmdtext, idx);
if(!strlen(tmp1)) return SendClientMessage(playeridn -1, "Use: /msg [id] [mensagem]");
if(!IsPlayerConnected(strval(tmp1)) return SendClientMessage(playeridn -1, "Jogador nгo conectado.");
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playeridn -1, "Use: /msg [id] [mensagem]");
SendClientMessage(strval(tmp1), -1, tmp);
return 1;
}
// zcmd
//STRTOK
CMD:msg(playerid, params[])
{
new id[128], msg_[128], ix;
id = strtok(params, ix);
if(!strlen(id)) return SendClientMessage(playerid, -1, "Use: /msg [id] [mensagem]");
if(!IsPlayerConnected(strval(id)) return SendClientMessage(playerid, -1, "Jogador nгo conectado.");
msg_ = strtok(params, ix);
if(!strlen(ix)) return SendClientMessage(playerid, -1, "Use: /msg [id] [mensagem]");
SendClientMessage(strval(id), -1, msg);
return 1;
}
// SSCANF
CMD:msg(playerid, params[])
{
new id, msg[128];
if(sscanf(params, "us[128]", id, msg)) return SendClientMessage(playerid, -1, "Use: /msg [id] [mensagem]");
if(!IsPlayerConnected(id) return SendClientMessage(playerid, -1, "Jogador nгo conectado.");
SendClientMessage(id, -1, msg);
return 1;
}
Re: alguem dar uma forзa aki -
[BOPE]Seu._.Madruga - 10.12.2014
Comando pronto abaixo, se ajudei responda no tуpico. Espero ter ajudado!
Ajudei?
+Rep
PHP код:
CMD:darvip(playerid, params[]) {
new idplayer, meses, aname[MAX_PLAYER_NAME], pname[MAX_PLAYER_NAME];
if(PlayerDados[playerid][pAdmin] < 2) return SendClientMessage(playerid, 0xFF0000AA, "Vocк precisa ser admin nivel 2 para usar este comando!");
if(sscanf(params, "id", idplayer, meses)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}USE: /darvip [id] [meses]");
if(!IsPlayerConnected(idplayer)) return SendClientMessage(playerid, -1, "[ ERRO ] {FF0000}Este player nгo estб conectado!");
GetPlayerName(idplayer, pname, sizeof(pname));
GetPlayerName(playerid, aname, sizeof(aname));
if(meses < 1) return SendClientMessage(playerid, -1, "[ ERRO] {FF0000}Vocк nгo pode definir para 0 meses!");
format(string, sizeof(string), "[ INFO ] {00FF00}%s vocк deu para o(a) player %s %d mes(es) de VIP", aname, pname, meses);
SendClientMessage(playerid, -1, string);
format(string, sizeof(string), "[ VIP ] O(A) administrador(a) %s te deu %d mes(es) de VIP com R$%d e %d Niveis, Aproveite Nossos beneficios!", aname, meses, 15000000*meses, 3*meses);
SendClientMessage(idplayer, -1, string);
getdate(year, month, day);
gettime(hour,minute,second);
format(string, sizeof(string), "%s deu vip de %d mes(es) a(o) player %s (%d/%d/%d - %d:%d)", aname, meses, pname,day, month, year,hour, minute);
VipsLog(string);
PlayerDados[idplayer][pLevel] += 3*meses;
PlayerDados[idplayer][pVIP] = 1;
PlayerDados[idplayer][pTimeVIP] = 0;
GivePlayerMoney(idplayer, 15000000*meses);
ScoreLevel(idplayer);
PlayerDados[idplayer][pDiaVIP] = day;
PlayerDados[idplayer][pMesVIP] = month+level;
PlayerDados[idplayer][pAnoVIP] = year;
if(PlayerDados[idplayer][pMesVIP] > 12)
{
PlayerDados[idplayer][pMesVIP] -= 12;
PlayerDados[idplayer][pAnoVIP]++;
}
OnPlayerSave(idplayer);
return 1;
}