[Off] Return pode fazer o cуdigo retornar ?
#1

Antes que vocк diga pra mim "mas й pra isso que o return serve, imbecнl", eu quero deixar claro que nгo й isso que eu quero dizer, talvez..sei lб.

O return , por algum motivo, apareceu com documentaзгo agora na wiki, e parece que, vocк pode usar o return sem nada (Igual a C) que ele volta pra parte de onde ele foi chamado, foi isso que eu entendi.

Entгo, algo como isso poderia funcionar:

PHP код:
#define wait(%0) \
    
SetTimer("GetOverHere",%0,false)
forward GetOverHere();
public 
GetOverHere()
    return; 
Eu nгo sei se deve funcionar, havia tentado em meu gamemode e nгo deu erro nenhum na compilaзгo, muito menos na hora de jogar entгo...

Ah, e pra quem nгo entendeu o exemplo ali, й uma funзгo que espera passar %0 milisegundos e depois retorna pra parte exata do script em que foi chamada, ou seja:

PHP код:
main()
{
    print(
"A callback OnGameModeInit jб foi chamada..."); //Ok
    
wait(1000); //Tudo pode esperar, e eu sei que essa funзгo jб existe e vai funcionar aqui, mas..
    
print("...e jб faz um segundo que isso aconteceu."); //Depois de um segundo (1000 milisegundos), o servidor mandarб esta mensagem.

Por favor, nгo levem esse cуdigo a sйrio.
Reply
#2

Return no pawn serve apenas para devolver um valor como resposta.

Se nгo tiver nada ele assumirб como 0 na maior parte dos casos, mas nem sempre depende do script.

O mais correto й mesmo colocar 0 ou 1 quando nгo importa o valor que ele irб devolver
Reply
#3

wait nгo vai freezar seu cуdigo, usa CTime plugin caso queira um wait de verdade.
Reply
#4

Que pena, se bem que, nгo conseguiria pensar em outra funcionalidade caso o return funcionasse assim tambйm...

Tranqьilo entгo, obrigado pela resposta e esclarecimento, era meio louco mesmo pensar sobre o funcionamento disso...
Reply
#5

Veja o que diz o manual de referкncia do Pawn :







Entгo, o comportamento do return no seu cуdigo seria o mesmo desta linha:



Код:
return 0;

Nesse cуdigo, em termos de funcionalidade, o wait faria o conteъdo da funзгo pъblica GetOverHere ser rodado apуs o tempo especificado. Porйm, essa temporizaзгo aconteceria paralelamente ao processamento do restante do cуdigo Pawn, fazendo com que o cуdigo abaixo do wait fosse sempre imediatamente executado .



Alйm disso, o return da funзгo GetOverHere desviaria o controle para um cуdigo desconhecido, nгo para o local de acionamento do wait. Isso porque a funзгo nгo seria chamada pelo mйtodo convencional, mas sim por intermйdio da nativa SetTimer.



Espero ter ajudado .
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)