14/06/2024 15:38
(13/06/2024 20:21)BitSain Escreveu: Vou re-ogranizar o código um pouco e que a mensagem de erro apareça caso nenhuma das condições forem atendidas.
Removi o 'MAX_CASAS' e adicionei "sizeof(SkinsComunsM)" e "sizeof(SkinsExclusivasM)" nas condições do loop para garantir que percorram toda a array.
Com esses ajustes, o código deve passar corretamente para a segunda verificação, e se necessário, enviar a mensagem de erro.
Código:
Código PHP:case ROUPA:
{
if(response) {
if(!IsNumeric(inputtext) || isnull(inputtext))
return ShowPlayerDialog(playerid, ROUPA, DIALOG_STYLE_INPUT, "{99ccff}>>{FFFFFF} Inserir ID da Roupa", "{FFFFFF}ID:", "Seguinte", "Sair");
new str[126], interior = GetPlayerVirtualWorld(playerid),
skinid = strval(inputtext), bool:found = false;
// Primeira verificação: Skins comuns
for(new i = 0; i < sizeof(SkinsComunsM); i++) {
if(SkinsComunsM[i] == skinid) {
InteriorRoupa[playerid] = 23;
SetPlayerVirtualWorld(playerid, random(999));
SelectTextDraw(playerid, COLOR_SUCESSO);
SetPlayerSkin(playerid, skinid);
SetPlayerPos(playerid, 216.3893, -99.7677, 1005.2578);
SetPlayerFacingAngle(playerid, 91.4113);
InterpolateCameraPos(playerid, 207.591293, -102.540962, 1006.733825, 213.445861, -99.694190, 1006.323852, 1500);
InterpolateCameraLookAt(playerid, 207.529800, -97.566955, 1006.228393, 218.213165, -99.816513, 1004.821228, 1000);
found = true;
break;
}
}
// Segunda verificação: Skins exclusivas
if(!found) {
for(new i = 0; i < sizeof(SkinsExclusivasM); i++) {
if(SkinsExclusivasM[i] == skinid) {
InteriorRoupa[playerid] = 23;
SetPlayerVirtualWorld(playerid, random(999));
SetPlayerSkin(playerid, skinid);
SetPlayerPos(playerid, 179.7483, -88.5120, 1002.0234);
SetPlayerFacingAngle(playerid, 88.3848);
InterpolateCameraPos(playerid, 161.324523, -83.541923, 1002.646850, 176.656112, -88.567787, 1002.898437, 1500);
InterpolateCameraLookAt(playerid, 161.468490, -78.577819, 1002.066406, 181.510711, -88.504165, 1001.703125, 1500);
found = true;
break;
}
}
}
// Mensagem de erro se nenhuma das condições foi atendida
if(!found) {
SendClientMessage(playerid, COLOR_LARANJA, "O ID é inválido ou a roupa não está disponível!");
}
return true;
}
}
Caso não funcione, seria interessante DEBUGAR o código pra encontrar o possível problema.
<===>
Código com debug:
Código PHP:case ROUPA:
{
if(response) {
if(!IsNumeric(inputtext) || isnull(inputtext)) {
print("DEBUG: ID da roupa não é numérico ou está vazio");
return ShowPlayerDialog(playerid, ROUPA, DIALOG_STYLE_INPUT, "{99ccff}>>{FFFFFF} Inserir ID da Roupa", "{FFFFFF}ID:", "Seguinte", "Sair");
}
new str[126], interior = GetPlayerVirtualWorld(playerid),
skinid = strval(inputtext), bool:found = false;
printf("DEBUG: ID da roupa inserido pelo jogador: %d", skinid);
// Primeira verificação: Skins comuns
for(new i = 0; i < sizeof(SkinsComunsM); i++) {
if(SkinsComunsM[i] == skinid) {
InteriorRoupa[playerid] = 23;
SetPlayerVirtualWorld(playerid, random(999));
SelectTextDraw(playerid, COLOR_SUCESSO);
SetPlayerSkin(playerid, skinid);
SetPlayerPos(playerid, 216.3893, -99.7677, 1005.2578);
SetPlayerFacingAngle(playerid, 91.4113);
InterpolateCameraPos(playerid, 207.591293, -102.540962, 1006.733825, 213.445861, -99.694190, 1006.323852, 1500);
InterpolateCameraLookAt(playerid, 207.529800, -97.566955, 1006.228393, 218.213165, -99.816513, 1004.821228, 1000);
found = true;
print("DEBUG: Skin comum encontrada e aplicada.");
break;
}
}
// Segunda verificação: Skins exclusivas
if(!found) {
for(new i = 0; i < sizeof(SkinsExclusivasM); i++) {
if(SkinsExclusivasM[i] == skinid) {
InteriorRoupa[playerid] = 23;
SetPlayerVirtualWorld(playerid, random(999));
SetPlayerSkin(playerid, skinid);
SetPlayerPos(playerid, 179.7483, -88.5120, 1002.0234);
SetPlayerFacingAngle(playerid, 88.3848);
InterpolateCameraPos(playerid, 161.324523, -83.541923, 1002.646850, 176.656112, -88.567787, 1002.898437, 1500);
InterpolateCameraLookAt(playerid, 161.468490, -78.577819, 1002.066406, 181.510711, -88.504165, 1001.703125, 1500);
found = true;
print("DEBUG: Skin exclusiva encontrada e aplicada.");
break;
}
}
}
// Mensagem de erro se nenhuma das condições foi atendida
if(!found) {
SendClientMessage(playerid, COLOR_LARANJA, "O ID é inválido ou a roupa não está disponível!");
print("DEBUG: Nenhuma skin válida encontrada para o ID inserido.");
}
return true;
}
}
Funcionou certinho! Obrigado pela sua imensa ajuda e disponibilidade, creio que fosse mesmo do MAX_CASAS!