Entгo nгo passa de um mito...
O uso do goto nгo traz prejuнzos,mais pode confundir programadores mais desatentos..
No caso,eu usei o goto para checagens,nгo hб como fechar um label,pelo menos,nгo de cara,entгo,eu suponho que,todos os labels devem ser colocados no final da callback para evitar conflitos e confusхes dentro do cуdigo:
PHP код:
public OnPlayerText(playerid, text[])
{
/*
Let's try the basics,QUESTIONS.
*/
if(!strcmp(text[0],"How",true) && !strcmp(text[2],"can",true)) goto question_Handler;
else if(!strcmp(text,"Pilar",true) || !strcmp(text[0],"Pilar",true) && !strcmp(text[1],".",true)) goto conversation_Handler;
//Labels - Yes,I'm gonna try it.
question_Handler:printf("Pilar: %s made a question to me,can't answer because I'm not able to do that now.", GetPlayerExactlyName(playerid));
conversation_Handler:printf("Pilar: %s is starting a conversation with me,I'm so nervous..", GetPlayerExactlyName(playerid));
return 1;
}
Ok,mas,e se eu passar pra uma outra linha e tentar continuar meu cуdigo fora da label ?
PHP код:
public OnPlayerText(playerid, text[])
{
/*
Let's try the basics,QUESTIONS.
*/
if(!strcmp(text[0],"How",true) && !strcmp(text[2],"can",true)) goto question_Handler;
else if(!strcmp(text,"Pilar",true) || !strcmp(text[0],"Pilar",true) && !strcmp(text[1],".",true)) goto conversation_Handler;
//Labels - Yes,I'm gonna try it.
question_Handler:printf("Pilar: %s made a question to me,can't answer because I'm not able to do that now.", GetPlayerExactlyName(playerid));
conversation_Handler:printf("Pilar: %s is starting a conversation with me,I'm so nervous..", GetPlayerExactlyName(playerid));
SendClientMessage(playerid, -1, "Pilar: That's me,how can I help ?");
return 1;
}
No caso,ele vai continuar dentro da label,ou jб era ?
Porque se for,eu teria que fazer tudo
inline,e isso nгo й uma boa coisa..