Olá, ontem eu fui até o programador Josma_CMD com a hipótese de usar o strcmp para comparar se as strings (não são) iguais, depois de algumas tentativas chegamos à conclusão de que o strcmp não tem muita lógica, diante disso, ele criou uma função semelhante ao strcmp padrão porem, com a opção de verificar se as strings são compatíveis ou não.
O código abaixo foi usado com intuito de testar a função, chame ela no OnGameModeInit e veja o resultado na tela do console.
Código:
PP_strcomp(stringA[], stringB[], maxcell, bool: index)
{
new PP = -1; //-1 usado para que o operador incremental possa ser usado no próprio laço do loop
if(index == true) //Caso as duas strings sejam compativeis
{
new bool: compativel = true; //Seta para true, caso compatível passará pelo loop e ainda será true
while(++PP < maxcell)
{
if(strlen(stringA[PP]) != strlen(stringB[PP])) { compativel = false; } //Torna false caso incompatível
}
if(compativel == false) return false; //Se não for compatível retornará à false
if(compativel == true) return true; //Se ainda for compatível retornará à true
}
else if(index == false) //Caso as duas strings sejam incompativeis
{
new bool: compativel = true; //Seta para true, caso compatível passará pelo loop e ainda será true
while(++PP < maxcell)
{
if(strlen(stringA[PP]) != strlen(stringB[PP])) { compativel = false; } //Torna false caso incompatível
}
if(compativel == false) return true; //Se não for compatível retornará à true
if(compativel == true) return false; //Se ainda for compatível retornará à false
}
return false;
}
O código abaixo foi usado com intuito de testar a função, chame ela no OnGameModeInit e veja o resultado na tela do console.
Código:
CallBack::TestarSTRCMP()
{
if(PP_strcomp("Josma", "Josma", 5, true)) //true para verificar se as strings SÃO iguais.
{
print("Josma é igual Josma");
}
if(PP_strcomp("Josma", "Progressao", 5, false)) //false para comparar se as strings NÃO SÃO iguais.
{
print("Josma não é igual Progressao");
}
//***********[ Teste de bug ]**************
if(PP_strcomp("Josma", "Josma", 5, false)) //false para comparar se as strings NÃO SÃO iguais.
{
print("Josma não é igual Josma");
}
if(PP_strcomp("Josma", "Progressao", 5, true)) //true para verificar se as strings SÃO iguais.
{
print("Josma é igual Progressao");
}
return true;
}
Créditos: Josma_CMD