Problema loop. -
fdsda - 15.12.2015
[I]
Meu loop esta com um problema, nao sei oque pode ser..
pawn Код:
if(dialogid == 3)
{
if(!response)
{
SendClientMessage(playerid,0xff5555ff,"SMS Cancelado.");
return 1;
}
new id;
if(PlayerInfo[playerid][pCreditos] == 0)
return SendClientMessage(playerid, -1, "Vocк nгo possui Crйditos.");
new playeridName[20], idName[20], String[128];
GetPlayerName(playerid, playeridName, 20);
GetPlayerName(id, idName, 20);
format(String, 128, "%s ID:%i Torpedгo: %s", playeridName, playerid, inputtext);
SendClientMessage(gPMDestinationID[playerid], 0xaaffaaff, String); //Envia a mensagem ao id que foi digitado
for(new i; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && PlayerInfo[i][pAdmin] > 0)
{
printf("PLAYER ID %d | Admin level = %d", i, PlayerInfo[i][pAdmin]);
format(String, sizeof(String), "{00F51D} %s {FFFFFF}enviou para {F5AB00}%s: {00F51D}%s", playeridName, idName, inputtext);
SendClientMessage(i, COLOR_PCC, String);
}
}
PlayerInfo[playerid][pCreditos]--;
format(String, 128, "Torpedгo enviado a %s, gasto 1 Crйditos. Seus Crйditos: %i.", idName, PlayerInfo[playerid][pCreditos]);
SendClientMessage(playerid, COLOR_CV, String);
return 1;
}[/i]
ele apenas envia ao player que a mensagem enviada vai para todos que estiverem com o id 0.
EX:
Код:
id 0 - joao
id 1 - marcos
id 2 - fabricio
o id 1 vai enviar a mensagem pro id 2.
ao inves de aparecer "marcos enviou parar fabricio: taltaltal aparece marcos enviou para joao porem a mensagem vai pro fabricio, mas o nome fica errado. alguem? pls
Re: Problema loop. -
iTzSwaaT - 15.12.2015
posta o seu comando de enviar torpedo
Re: Problema loop. -
humildadeforever - 15.12.2015
Vamos fazer uma breve anбlise do cуdigo para que possamos identificar o problema.
Obviamente, como o problema estб na mensagem de envio, vamos comeзar pela formataзгo da mensagem.
PHP код:
format(String, sizeof(String), "{00F51D} %s {FFFFFF}enviou para {F5AB00}%s: {00F51D}%s", playeridName, idName, inputtext);
Como vocк disse, o problema estб no nome do destinatбrio, certo?
Vemos que na formataзгo acima:
playeridName = Jogador que estб enviando a mensagem (remetente);
idName = Jogador que vai receber a mensagem (destinatбrio);
inputtext =Mensagem a ser enviada.
Pois bem. Nota-se que o problema estб na
idName. Entгo vamos voltar um pouquinho e ver o que foi feito com ela no decorrer do cуdigo.
Uau! Encontramos isto:
PHP код:
GetPlayerName(id, idName, 20);
Okay! Estamos obtendo o nome do jogador
id e armazenando ele na
idName. Agora precisamos descobrir quem й, ou melhor, qual o valor de
id. Voltemos mais um pouquinho no cуdigo e...
Acho que descobrimos o problema, certo? Vocк criou a variбvel
id e nгo atribuiu um valor a ela, sendo assim, seu valor й nulo (
0), por isso o destinatбrio da mensagem aparece como se fosse o ID 0.
E por que o jogador correto estб recebendo a mensagem?
Bom, isso estб nessa parte do cуdigo:
PHP код:
format(String, 128, "%s ID:%i Torpedгo: %s", playeridName, playerid, inputtext);
SendClientMessage(gPMDestinationID[playerid], 0xaaffaaff, String); //Envia a mensagem ao id que foi digitado
Sendo assim, creio que uma provбvel soluзгo seria:
PHP код:
GetPlayerName(gPMDestinationID[playerid], idName, 20);
Cуdigo completo:
PHP код:
if(dialogid == 3)
{
if(!response) return SendClientMessage(playerid,0xff5555ff,"SMS Cancelado.");
if(PlayerInfo[playerid][pCreditos] == 0) return SendClientMessage(playerid, -1, "Vocк nгo possui Crйditos.");
new playeridName[20], idName[20], String[128];
GetPlayerName(playerid, playeridName, 20);
GetPlayerName(gPMDestinationID[playerid], idName, 20);
format(String, 128, "%s ID:%i Torpedгo: %s", playeridName, playerid, inputtext);
SendClientMessage(gPMDestinationID[playerid], 0xaaffaaff, String); //Envia a mensagem ao id que foi digitado
for(new i; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && PlayerInfo[i][pAdmin] > 0)
{
printf("PLAYER ID %d | Admin level = %d", i, PlayerInfo[i][pAdmin]);
format(String, sizeof(String), "{00F51D} %s {FFFFFF}enviou para {F5AB00}%s: {00F51D}%s", playeridName, idName, inputtext);
SendClientMessage(i, COLOR_PCC, String);
}
}
PlayerInfo[playerid][pCreditos]--;
format(String, 128, "Torpedгo enviado a %s, gasto 1 Crйditos. Seus Crйditos: %i.", idName, PlayerInfo[playerid][pCreditos]);
SendClientMessage(playerid, COLOR_CV, String);
return 1;
}
Espero que tenha entendido e que o problema seja resolvido. Se falei bobeira ou algo errado, me desculpe, escrevi a postagem com pressa e estou me sentindo enferrujada com pawn, kkk'
Re: Problema loop. -
IgorLuiz - 15.12.2015
Quote:
Originally Posted by humildadeforever
Vamos fazer uma breve anбlise do cуdigo para que possamos identificar o problema.
Obviamente, como o problema estб na mensagem de envio, vamos comeзar pela formataзгo da mensagem.
PHP код:
format(String, sizeof(String), "{00F51D} %s {FFFFFF}enviou para {F5AB00}%s: {00F51D}%s", playeridName, idName, inputtext);
Como vocк disse, o problema estб no nome do destinatбrio, certo?
Vemos que na formataзгo acima:
playeridName = Jogador que estб enviando a mensagem (remetente);
idName = Jogador que vai receber a mensagem (destinatбrio);
inputtext =Mensagem a ser enviada.
Pois bem. Nota-se que o problema estб na idName. Entгo vamos voltar um pouquinho e ver o que foi feito com ela no decorrer do cуdigo.
Uau! Encontramos isto:
PHP код:
GetPlayerName(id, idName, 20);
Okay! Estamos obtendo o nome do jogador id e armazenando ele na idName. Agora precisamos descobrir quem й, ou melhor, qual o valor de id. Voltemos mais um pouquinho no cуdigo e...
Acho que descobrimos o problema, certo? Vocк criou a variбvel id e nгo atribuiu um valor a ela, sendo assim, seu valor й nulo ( 0), por isso o destinatбrio da mensagem aparece como se fosse o ID 0.
E por que o jogador correto estб recebendo a mensagem?
Bom, isso estб nessa parte do cуdigo:
PHP код:
format(String, 128, "%s ID:%i Torpedгo: %s", playeridName, playerid, inputtext);
SendClientMessage(gPMDestinationID[playerid], 0xaaffaaff, String); //Envia a mensagem ao id que foi digitado
Sendo assim, creio que uma provбvel soluзгo seria:
PHP код:
GetPlayerName(gPMDestinationID[playerid], idName, 20);
Cуdigo completo:
PHP код:
if(dialogid == 3)
{
if(!response) return SendClientMessage(playerid,0xff5555ff,"SMS Cancelado.");
if(PlayerInfo[playerid][pCreditos] == 0) return SendClientMessage(playerid, -1, "Vocк nгo possui Crйditos.");
new playeridName[20], idName[20], String[128];
GetPlayerName(playerid, playeridName, 20);
GetPlayerName(gPMDestinationID[playerid], idName, 20);
format(String, 128, "%s ID:%i Torpedгo: %s", playeridName, playerid, inputtext);
SendClientMessage(gPMDestinationID[playerid], 0xaaffaaff, String); //Envia a mensagem ao id que foi digitado
for(new i; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i) && PlayerInfo[i][pAdmin] > 0)
{
printf("PLAYER ID %d | Admin level = %d", i, PlayerInfo[i][pAdmin]);
format(String, sizeof(String), "{00F51D} %s {FFFFFF}enviou para {F5AB00}%s: {00F51D}%s", playeridName, idName, inputtext);
SendClientMessage(i, COLOR_PCC, String);
}
}
PlayerInfo[playerid][pCreditos]--;
format(String, 128, "Torpedгo enviado a %s, gasto 1 Crйditos. Seus Crйditos: %i.", idName, PlayerInfo[playerid][pCreditos]);
SendClientMessage(playerid, COLOR_CV, String);
return 1;
}
Espero que tenha entendido e que o problema seja resolvido. Se falei bobeira ou algo errado, me desculpe, escrevi a postagem com pressa e estou me sentindo enferrujada com pawn, kkk'
|
anбlise ? ou uma aula kkk