Sistema de furto - Smith - 18/10/2021
galera estou dev um sistema de furtar os vehiculos que estao destrancado mas estou tendo problema na verificação todo geito que faço mostra a menssaem que o carro nao e meu sendo que era pra mostrar so pra quem nao e dono do carro alguem pode me indicar onde estou errando?
lembrando que esta tudo dentro da call OnPlayerStateChange e dentro de newstate == PLAYER_STATE_DRIVER...
Código: new ff[30];
for(new i; i < MAX_VEH_CONCE; i++){
format(ff, 30, CONCE, i);
if(DOF2::FileExists(ff)){
format(Conce[i][Dono], MAX_PLAYER_NAME, DOF2::GetString(ff, "Dono"));
if(strcmp(Conce[i][Dono], NomePQP(playerid), true) == 0)
{
SCM(playerid, Vermelho, "Use /Ligar para ligar seu veiculo");
}
else
{
if(furto[playerid] == 0)
{
SCM(playerid, Vermelho, "Este veiculo nao e seu, use o comando");
SCM(playerid, Vermelho, "/Furtar para Furtar este veiculo");
RemovePlayerFromVehicle(playerid);
}
SetPlayerWantedLevel(playerid, GetPlayerWantedLevel(playerid) + 1);
for(new d; d < MAX_PLAYERS; ++d)
{
if(IsPlayerConnected(d)){
if(pInfo[d][Cop] >= 1)
{
format(String, sizeof(String), "{2E64FE}|COPOM|{FF0000}Denuncia Anonima um Noia furtou um veiculo", NomeOrg(playerid), pNome(playerid));
SCM(d, -1, String);
}
}
}
}
}
}
RE: Sistema de furto - Smith - 19/10/2021
(18/10/2021 21:49)Smith Escreveu: galera estou dev um sistema de furtar os vehiculos que estao destrancado mas estou tendo problema na verificação todo geito que faço mostra a menssaem que o carro nao e meu sendo que era pra mostrar so pra quem nao e dono do carro alguem pode me indicar onde estou errando?
lembrando que esta tudo dentro da call OnPlayerStateChange e dentro de newstate == PLAYER_STATE_DRIVER...
Código: new ff[30];
for(new i; i < MAX_VEH_CONCE; i++){
format(ff, 30, CONCE, i);
if(DOF2::FileExists(ff)){
format(Conce[i][Dono], MAX_PLAYER_NAME, DOF2::GetString(ff, "Dono"));
if(strcmp(Conce[i][Dono], NomePQP(playerid), true) == 0)
{
SCM(playerid, Vermelho, "Use /Ligar para ligar seu veiculo");
}
else
{
if(furto[playerid] == 0)
{
SCM(playerid, Vermelho, "Este veiculo nao e seu, use o comando");
SCM(playerid, Vermelho, "/Furtar para Furtar este veiculo");
RemovePlayerFromVehicle(playerid);
}
SetPlayerWantedLevel(playerid, GetPlayerWantedLevel(playerid) + 1);
for(new d; d < MAX_PLAYERS; ++d)
{
if(IsPlayerConnected(d)){
if(pInfo[d][Cop] >= 1)
{
format(String, sizeof(String), "{2E64FE}|COPOM|{FF0000}Denuncia Anonima um Noia furtou um veiculo", NomeOrg(playerid), pNome(playerid));
SCM(d, -1, String);
}
}
}
}
}
}
auguem
RE: Sistema de furto - xbruno1000x - 19/10/2021
Cadê o comando /furtar?
RE: Sistema de furto - Smith - 19/10/2021
(19/10/2021 19:43)xbruno1000x Escreveu: Cadê o comando /furtar?
ainda nao fiz so fiz a verificação, eu uso a mesma verificaçao para saber se o player e dono ou nao do veiculo ai estou tentando fazer esse sistema de roubar os carro so que a verificaao ta falando que o carro nao e meu sendo que era pra aparecer esta menssagem so para quem nao e dono
RE: Sistema de furto - xbruno1000x - 19/10/2021
Código: new ff[30];
for(new i; i < MAX_VEH_CONCE; i++)
{
format(ff, 30, CONCE, i);
if(DOF2::FileExists(ff))
{
format(Conce[i][Dono], MAX_PLAYER_NAME, DOF2::GetString(ff, "Dono"));
if(strcmp(Conce[i][Dono], NomePQP(playerid), true) == 0)
{
SCM(playerid, Vermelho, "Use /Ligar para ligar seu veiculo");
}else if(strcmp(Conce[i][Dono], NomePQP(playerid), false) && furto[playerid] == 0){
SCM(playerid, Vermelho, "Este veiculo nao e seu, use o comando");
SCM(playerid, Vermelho, "/Furtar para Furtar este veiculo");
RemovePlayerFromVehicle(playerid);
}
SetPlayerWantedLevel(playerid, GetPlayerWantedLevel(playerid) + 1);
for(new d; d < MAX_PLAYERS; ++d)
{
if(IsPlayerConnected(d))
{
if(pInfo[d][Cop] >= 1)
{
format(String, sizeof(String), "{2E64FE}|COPOM|{FF0000}Denuncia Anonima um Noia furtou um veiculo", NomeOrg(playerid), pNome(playerid));
SCM(d, -1, String);
}
}
}
}
}
}
Tente assim. Acredito que o problema esteja na if que retorna o erro.
RE: Sistema de furto - Smith - 20/10/2021
(19/10/2021 19:51)xbruno1000x Escreveu: Código: new ff[30];
for(new i; i < MAX_VEH_CONCE; i++)
{
format(ff, 30, CONCE, i);
if(DOF2::FileExists(ff))
{
format(Conce[i][Dono], MAX_PLAYER_NAME, DOF2::GetString(ff, "Dono"));
if(strcmp(Conce[i][Dono], NomePQP(playerid), true) == 0)
{
SCM(playerid, Vermelho, "Use /Ligar para ligar seu veiculo");
}else if(strcmp(Conce[i][Dono], NomePQP(playerid), false) && furto[playerid] == 0){
SCM(playerid, Vermelho, "Este veiculo nao e seu, use o comando");
SCM(playerid, Vermelho, "/Furtar para Furtar este veiculo");
RemovePlayerFromVehicle(playerid);
}
SetPlayerWantedLevel(playerid, GetPlayerWantedLevel(playerid) + 1);
for(new d; d < MAX_PLAYERS; ++d)
{
if(IsPlayerConnected(d))
{
if(pInfo[d][Cop] >= 1)
{
format(String, sizeof(String), "{2E64FE}|COPOM|{FF0000}Denuncia Anonima um Noia furtou um veiculo", NomeOrg(playerid), pNome(playerid));
SCM(d, -1, String);
}
}
}
}
}
}
Tente assim. Acredito que o problema esteja na if que retorna o erro.
continuo do msm geito quando eu subo na minha moto aparece a msg Este veiculo nao e seu, use o comando"...
sendo ou nao dono do carro aparece a msg e vc e tirado do veiculo
RE: Sistema de furto - k2bi_YT - 21/10/2021
Tente isso:
Código PHP: new ff[30]; for(new i; i < MAX_VEH_CONCE; i++) { format(ff, sizeof ff, CONCE, i); if(DOF2::FileExists(ff)) { format(Conce[i][Dono], MAX_PLAYER_NAME, DOF2::GetString(ff, "Dono")); if(!strcmp(Conce[i][Dono], NomePQP(playerid), true)) { SCM(playerid, Vermelho, "Use /Ligar para ligar seu veiculo"); } else { if(furto[playerid] == 0) { SCM(playerid, Vermelho, "Este veiculo nao e seu, use o comando"); SCM(playerid, Vermelho, "/Furtar para Furtar este veiculo"); RemovePlayerFromVehicle(playerid); } SetPlayerWantedLevel(playerid, GetPlayerWantedLevel(playerid) + 1); for(new d; d < MAX_PLAYERS; ++d) { if(IsPlayerConnected(d)) { if(pInfo[d][Cop] >= 1) { format(String, sizeof(String), "{2E64FE}|COPOM|{FF0000}Denuncia Anonima um Noia furtou um veiculo", NomeOrg(playerid), pNome(playerid)); SCM(d, -1, String); } } } } } }
A unica alteração que fiz foi adicionar uma condição na linha usada do strcmp.
Essa função é meio complicada de se entender, mas quando você quer que o nome seja igual a de certa variavel, você deve usar !strcmp
se usar sem o sinal de exclamação ( ! ), ele ira meio que checar se não é igual a string de comparação.
RE: Sistema de furto - Smith - 21/10/2021
(21/10/2021 18:46)k2bi_YT Escreveu: Tente isso:
Código PHP: new ff[30]; for(new i; i < MAX_VEH_CONCE; i++) { format(ff, sizeof ff, CONCE, i); if(DOF2::FileExists(ff)) { format(Conce[i][Dono], MAX_PLAYER_NAME, DOF2::GetString(ff, "Dono")); if(!strcmp(Conce[i][Dono], NomePQP(playerid), true)) { SCM(playerid, Vermelho, "Use /Ligar para ligar seu veiculo"); } else { if(furto[playerid] == 0) { SCM(playerid, Vermelho, "Este veiculo nao e seu, use o comando"); SCM(playerid, Vermelho, "/Furtar para Furtar este veiculo"); RemovePlayerFromVehicle(playerid); } SetPlayerWantedLevel(playerid, GetPlayerWantedLevel(playerid) + 1); for(new d; d < MAX_PLAYERS; ++d) { if(IsPlayerConnected(d)) { if(pInfo[d][Cop] >= 1) { format(String, sizeof(String), "{2E64FE}|COPOM|{FF0000}Denuncia Anonima um Noia furtou um veiculo", NomeOrg(playerid), pNome(playerid)); SCM(d, -1, String); } } } } } }
A unica alteração que fiz foi adicionar uma condição na linha usada do strcmp.
Essa função é meio complicada de se entender, mas quando você quer que o nome seja igual a de certa variavel, você deve usar !strcmp
se usar sem o sinal de exclamação ( ! ), ele ira meio que checar se não é igual a string de comparação. o vehiculo e meu
RE: Sistema de furto - k2bi_YT - 21/10/2021
Coloque os return pois é preciso parar o loop.
Código PHP: new ff[30]; for(new i; i < MAX_VEH_CONCE; i++) { format(ff, sizeof ff, CONCE, i); if(DOF2::FileExists(ff)) { format(Conce[i][Dono], MAX_PLAYER_NAME, DOF2::GetString(ff, "Dono")); if(!strcmp(Conce[i][Dono], NomePQP(playerid), true)) { SCM(playerid, Vermelho, "Use /Ligar para ligar seu veiculo"); return 1; } else { if(furto[playerid] == 0) { SCM(playerid, Vermelho, "Este veiculo nao e seu, use o comando"); SCM(playerid, Vermelho, "/Furtar para Furtar este veiculo"); RemovePlayerFromVehicle(playerid); } SetPlayerWantedLevel(playerid, GetPlayerWantedLevel(playerid) + 1); for(new d; d < MAX_PLAYERS; ++d) { if(IsPlayerConnected(d)) { if(pInfo[d][Cop] >= 1) { format(String, sizeof(String), "{2E64FE}|COPOM|{FF0000}Denuncia Anonima um Noia furtou um veiculo", NomeOrg(playerid), pNome(playerid)); SCM(d, -1, String); } } } return 1; } } }
RE: Sistema de furto - ProKillerPa - 21/10/2021
Código PHP: ]A unica alteração que fiz foi adicionar uma condição na linha usada do strcmp
O erro não está no strcmp, o uso está correto.
O problema aqui é simples: Vejam que não está sendo feito a verificação de qual veiculo o player está, logo, a verificação está sendo feita para o veiculo de arquivo ID 0. Ou seja, se o jogador em questão não for dono do veiculo ID 0, o erro acontecerá.
Para sanar seu problema, você precisará fazer o seguinte:
Codigo:
Código PHP: new ff[30], vehicleid = GetPlayerVehicleID(playerid); for(new i; i < MAX_VEH_CONCE; i++){ format(ff, 30, CONCE, i); if(DOF2::FileExists(ff)){
if(Conce[i][ID] == vehicleid){ // COLOQUE AQUI SUA VARIAVEL QUE ARMAZENA O ID DO VEICULO DA CONCE.
if(strcmp(DOF2::GetString(ff, "Dono"), NomePQP(playerid), true) == 0) { SCM(playerid, Vermelho, "Use /Ligar para ligar seu veiculo"); } else {
if(furto[playerid] == 0) { SCM(playerid, Vermelho, "Este veiculo nao e seu, use o comando"); SCM(playerid, Vermelho, "/Furtar para Furtar este veiculo"); RemovePlayerFromVehicle(playerid); } SetPlayerWantedLevel(playerid, GetPlayerWantedLevel(playerid) + 1); for(new d; d < MAX_PLAYERS; ++d) { if(IsPlayerConnected(d)){ if(pInfo[d][Cop] >= 1) { format(String, sizeof(String), "{2E64FE}|COPOM|{FF0000}Denuncia Anonima um Noia furtou um veiculo", NomeOrg(playerid), pNome(playerid)); SCM(d, -1, String); } } } }
}
} }
OBS: coloque um return ou break tambem para evitar que o loop gire mais. Não coloquei por que seu codigo está totalmente mal identado e eu não tenho paciencia para contar as chaves hahaha
Abraços
|