CMD:gov(playerid, params[])
{
if(IsPlayerConnected(playerid))
{
if(GetPlayerOrg(playerid) == 1 || GetPlayerOrg(playerid) == 2 || GetPlayerOrg(playerid) == 3 || GetPlayerOrg(playerid) == 4 || GetPlayerOrg(playerid) == 5 || GetPlayerOrg(playerid) == 6 || GetPlayerOrg(playerid) == 22)
{
if(PlayerInfo[playerid][pCargo] < 4)
return SendClientMessage(playerid, COLOR_GREY, "Voce precisa ter pelo menos cargo 4 para usar este comando!");
if(PlayerInfo[playerid][pMuted] == 1)
return SendClientMessage(playerid, TEAM_CYAN_COLOR, "Vocк nгo pode Anunciar, pois foi calado");
if(PlayerInfo[playerid][pJailed] != 0)
return SendClientMessage(playerid, TEAM_CYAN_COLOR, "Vocк nгo pode Anunciar, pois foi preso!");
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
if(sscanf(params, "s", result))
return SendClientMessage(playerid, COLOR_GRAD2, "USE: /gov [Texto]");
if(TentouDivulgar(result))
{
if(cdivulgar[playerid] >= 4)
{
SendClientMessage(playerid, COLOR_LIGHTBLUE,"Aqui vocк nгo pode anunciar servidores!");
PlayerPlaySound(playerid, 1133, 0.0, 0.0, 0.0);
Kick(playerid);
}
format(Str, sizeof(Str), "AdmAviso: [%d]%s tentou divulgar: %s.", playerid, PlayerName(playerid), result);
ABroadCast(COLOR_YELLOW, Str, 1);
DivulgouLog(Str);
cdivulgar[playerid] += 1;
return 1;
}
if(panunciogang == 1)
return SendClientMessage(playerid,COLOR_GRAD2,"Espere 20 segundos para poder anunciar novamente!");
format(Str, sizeof(Str), "Anuncio: %s, Oficial: %s - ID [%d] - Telefone (%d)", result, PlayerName(playerid), playerid, PlayerInfo[playerid][pPnumber]);
if(GetPlayerOrg(playerid) == 1) SendClientMessageToAll(COR_PM, Str);
else if(GetPlayerOrg(playerid) == 2) SendClientMessageToAll(COR_PC, Str);
else if(GetPlayerOrg(playerid) == 3) SendClientMessageToAll(COR_FBI, Str);
else if(GetPlayerOrg(playerid) == 4) SendClientMessageToAll(COR_BOPE, Str);
else if(GetPlayerOrg(playerid) == 5) SendClientMessageToAll(COR_TECMO, Str);
else if(GetPlayerOrg(playerid) == 6) SendClientMessageToAll(COR_EXERCITO, Str);
format(Str, sizeof(Str), "Anuncio: %s, Mйdico: %s - ID [%d] - Telefone (%d)", result, PlayerName(playerid), playerid, PlayerInfo[playerid][pPnumber]);
if(GetPlayerOrg(playerid) == 22) SendClientMessageToAll(COR_SAMU, Str);
print(Str);
SBizzInfo[7][sbTill] += 30;
ExtortionSBiz(7, 30);
panunciomerce = 1;
TempoAnmerce = SetTimer("Anunciomerce", 20000, 0);
}
}
return 1;
}
Olб pessoal, sou novo no forum, mas ja estudei alguma coisa de pawn, estou aprendendo processador de comandos em ZCMD, e gostaria que me informassem se esse cуdigo abaixo esta correto, fiz com base em strcmp...
Se puderem ajudar, agradeзo... pawn Код:
|
new length = strlen(cmdtext);
while ((idx < length) && (cmdtext[idx] <= ' '))
{
idx++;
}
new offset = idx;
new result[64];
while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
{
result[idx - offset] = cmdtext[idx];
idx++;
}
new result[128];
if(sscanf(params, "s", result)) return SendClientMessage(playerid, COLOR_GRAD2, "USE: /gov [Texto]");
if(IsPlayerConnected(playerid))
CMD:gov(playerid, params[])
{
if(GetPlayerOrg(playerid) == 1 || GetPlayerOrg(playerid) == 2 || GetPlayerOrg(playerid) == 3 || GetPlayerOrg(playerid) == 4 || GetPlayerOrg(playerid) == 5 || GetPlayerOrg(playerid) == 6 || GetPlayerOrg(playerid) == 22)
{
if(PlayerInfo[playerid][pCargo] < 4)
return SendClientMessage(playerid, COLOR_GREY, "Voce precisa ter pelo menos cargo 4 para usar este comando!");
if(PlayerInfo[playerid][pMuted] == 1)
return SendClientMessage(playerid, TEAM_CYAN_COLOR, "Vocк nгo pode Anunciar, pois foi calado");
if(PlayerInfo[playerid][pJailed] != 0)
return SendClientMessage(playerid, TEAM_CYAN_COLOR, "Vocк nгo pode Anunciar, pois foi preso!");
new result[128];
if(sscanf(params, "s[128]", result))
return SendClientMessage(playerid, COLOR_GRAD2, "USE: /gov [Texto]");
if(TentouDivulgar(result))
{
if(cdivulgar[playerid] >= 4)
{
SendClientMessage(playerid, COLOR_LIGHTBLUE,"Aqui vocк nгo pode anunciar servidores!");
PlayerPlaySound(playerid, 1133, 0.0, 0.0, 0.0);
Kick(playerid);
}
format(Str, sizeof(Str), "AdmAviso: [%d]%s tentou divulgar: %s.", playerid, PlayerName(playerid), result);
ABroadCast(COLOR_YELLOW, Str, 1);
DivulgouLog(Str);
cdivulgar[playerid] += 1;
return 1;
}
if(panunciogang == 1)
return SendClientMessage(playerid,COLOR_GRAD2,"Espere 20 segundos para poder anunciar novamente!");
format(Str, sizeof(Str), "Anuncio: %s, Oficial: %s - ID [%d] - Telefone (%d)", result, PlayerName(playerid), playerid, PlayerInfo[playerid][pPnumber]);
if(GetPlayerOrg(playerid) == 1) SendClientMessageToAll(COR_PM, Str);
else if(GetPlayerOrg(playerid) == 2) SendClientMessageToAll(COR_PC, Str);
else if(GetPlayerOrg(playerid) == 3) SendClientMessageToAll(COR_FBI, Str);
else if(GetPlayerOrg(playerid) == 4) SendClientMessageToAll(COR_BOPE, Str);
else if(GetPlayerOrg(playerid) == 5) SendClientMessageToAll(COR_TECMO, Str);
else if(GetPlayerOrg(playerid) == 6) SendClientMessageToAll(COR_EXERCITO, Str);
format(Str, sizeof(Str), "Anuncio: %s, Mйdico: %s - ID [%d] - Telefone (%d)", result, PlayerName(playerid), playerid, PlayerInfo[playerid][pPnumber]);
if(GetPlayerOrg(playerid) == 22) SendClientMessageToAll(COR_SAMU, Str);
print(Str);
SBizzInfo[7][sbTill] += 30;
ExtortionSBiz(7, 30);
panunciomerce = 1;
TempoAnmerce = SetTimer("Anunciomerce", 20000, 0);
}
return 1;
}
Veja este Tutorial:
https://sampforum.blast.hk/showthread.php?tid=339051 Para mais informaзхes sobre sscanf vб para o final do Tуpico principal, espero ter ajudado ![]() |
hm vlw, vou dar uma olhada....
Tipo, eu olhei o cуd em strcmp, e entendi que dependendo do numero de caracteres que ele digita, й cobrado um dinheiro Ex: 1 caractere й 10,00R$ Se ele digitar: ANUNCIO Vai cobrar dele 7x10,00R$ = 70,00R$ teria como faze isso ? Vou dar uma procurada no forum sobre isso.. se caso eu nao achar, volto aki ^^ |
hm vlw, vou dar uma olhada....
Tipo, eu olhei o cуd em strcmp, e entendi que dependendo do numero de caracteres que ele digita, й cobrado um dinheiro Ex: 1 caractere й 10,00R$ Se ele digitar: ANUNCIO Vai cobrar dele 7x10,00R$ = 70,00R$ teria como faze isso ? Vou dar uma procurada no forum sobre isso.. se caso eu nao achar, volto aki ^^ |
CMD:gov(playerid, params[])
{
if(GetPlayerOrg(playerid) == 1 || GetPlayerOrg(playerid) == 2 || GetPlayerOrg(playerid) == 3 || GetPlayerOrg(playerid) == 4 || GetPlayerOrg(playerid) == 5 || GetPlayerOrg(playerid) == 6 || GetPlayerOrg(playerid) == 22)
{
if(PlayerInfo[playerid][pCargo] < 4)
return SendClientMessage(playerid, COLOR_GREY, "Voce precisa ter pelo menos cargo 4 para usar este comando!");
if(PlayerInfo[playerid][pMuted] == 1)
return SendClientMessage(playerid, TEAM_CYAN_COLOR, "Vocк nгo pode Anunciar, pois foi calado");
if(PlayerInfo[playerid][pJailed] != 0)
return SendClientMessage(playerid, TEAM_CYAN_COLOR, "Vocк nгo pode Anunciar, pois foi preso!");
new result[128];
if(sscanf(params, "s[128]", result))
return SendClientMessage(playerid, COLOR_GRAD2, "USE: /gov [Texto]");
if(TentouDivulgar(result))
{
if(cdivulgar[playerid] >= 4)
{
SendClientMessage(playerid, COLOR_LIGHTBLUE,"Aqui vocк nгo pode anunciar servidores!");
PlayerPlaySound(playerid, 1133, 0.0, 0.0, 0.0);
Kick(playerid);
}
format(Str, sizeof(Str), "AdmAviso: [%d]%s tentou divulgar: %s.", playerid, PlayerName(playerid), result);
ABroadCast(COLOR_YELLOW, Str, 1);
DivulgouLog(Str);
cdivulgar[playerid] += 1;
return 1;
}
if(panunciogang == 1)
return SendClientMessage(playerid,COLOR_GRAD2,"Espere 20 segundos para poder anunciar novamente!");
format(Str, sizeof(Str), "Anuncio: %s, Oficial: %s - ID [%d] - Telefone (%d)", result, PlayerName(playerid), playerid, PlayerInfo[playerid][pPnumber]);
if(GetPlayerOrg(playerid) == 1) SendClientMessageToAll(COR_PM, Str);
else if(GetPlayerOrg(playerid) == 2) SendClientMessageToAll(COR_PC, Str);
else if(GetPlayerOrg(playerid) == 3) SendClientMessageToAll(COR_FBI, Str);
else if(GetPlayerOrg(playerid) == 4) SendClientMessageToAll(COR_BOPE, Str);
else if(GetPlayerOrg(playerid) == 5) SendClientMessageToAll(COR_TECMO, Str);
else if(GetPlayerOrg(playerid) == 6) SendClientMessageToAll(COR_EXERCITO, Str);
format(Str, sizeof(Str), "Anuncio: %s, Mйdico: %s - ID [%d] - Telefone (%d)", result, PlayerName(playerid), playerid, PlayerInfo[playerid][pPnumber]);
if(GetPlayerOrg(playerid) == 22) SendClientMessageToAll(COR_SAMU, Str);
print(Str);
GivePlayerMoney(playerid, -strlen(result)*10);
SBizzInfo[7][sbTill] += 30;
ExtortionSBiz(7, 30);
panunciomerce = 1;
TempoAnmerce = SetTimer("Anunciomerce", 20000, 0);
}
return 1;
}
Acrescentando o cуdigo do Paulor, vai ficar assim:
pawn Код:
|
format(Str, sizeof(Str), "Vocк gastou %d R$ pelo anuncio.", strlen(result)*10)