[Ajuda] Hook pode fazer isso?
#1

Bem, estou querendo adicionar um parвmetro em uma callback nativa do SAMP, isso й possнvel usando um Hook? Ou serб necessбrio criar uma outra callback e adapta-la?
Reply
#2

Quote:
Originally Posted by Juniiro3
Посмотреть сообщение
Bem, estou querendo adicionar um parвmetro em uma callback nativa do SAMP, isso й possнvel usando um Hook? Ou serб necessбrio criar uma outra callback e adapta-la?
Й possнvel sim, mas vocк terб de tratar esse parвmetro na mгo, dependendo do que vocк queira fazer com ele.

Eu posso te ajudar com isso, explicando, o que vocк pretende ?
Reply
#3

Quote:
Originally Posted by Willian_Luigi
Посмотреть сообщение
Й possнvel sim, mas vocк terб de tratar esse parвmetro na mгo, dependendo do que vocк queira fazer com ele.

Eu posso te ajudar com isso, explicando, o que vocк pretende ?
Na verdade й um projeto meu: Um processador de comandos (nгo sei se serб divulgado aqui na board, estou fazendo mais como estudos e para ver como ficaria a velocidade dele).

Para isso eu iria hookear e modificar (na minha include) a OnPlayerCommandText para ser usada na include e ter o parвmetro "success" que serб 0 ou 1 (Meio уbvio o que ele faz nй? rs), entгo a callback ficaria assim:

public OnPlayerCommandText ( playerid , cmdtext[] , success )
Reply
#4

Obvio que dб.



Exemplo

PHP код:
public OnGameModeInit() {
    new 
param 1;    
    return 
UAEUEAUEUA_OnGame(param);
}
#define OnGameModeInit UAEUEAUEUA_OnGame
foward OnGameModeInit (param); 
entao usas

pawn Код:
public OnGameModeInit (param)
{
   printf("%d", param);
}
Reply
#5

Й bem bбsico a questгo do hook, sу que no seu caso vocк nem sabe se vai receber o comando ainda, entгo vocк vai ter de descartar a nativa OnPlayerCommandText, o cara pode atй usar no GM...
Mas nгo vai ser a mesma, ela vai esperar uma chamada da original apenas...

pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if (!!!strcmp(cmdtext, "/cmd"))
        return funcidx("_w@OnPlayerCommandText") != -1 ? CallLocalFunction("_w@OnPlayerCommandText", "iii", playerid, cmdtext, 1) : 0;
       
    return 0;
}

#undef OnPlayerCommandText
#define OnPlayerCommandText _w@OnPlayerCommandText
forward _w@OnPlayerCommandText
Nesse exemplo, tu botaria na comparaзгo do /cmd

as condiзхes pro comando retornar success = 1, entende ?
Reply
#6

Quote:
Originally Posted by Willian_Luigi
Посмотреть сообщение
Й bem bбsico a questгo do hook, sу que no seu caso vocк nem sabe se vai receber o comando ainda, entгo vocк vai ter de descartar a nativa OnPlayerCommandText, o cara pode atй usar no GM...
Mas nгo vai ser a mesma, ela vai esperar uma chamada da original apenas...

pawn Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
    if (!!!strcmp(cmdtext, "/cmd"))
        return funcidx("_w@OnPlayerCommandText") != -1 ? CallLocalFunction("_w@OnPlayerCommandText", "iii", playerid, cmdtext, 1) : 0;
       
    return 0;
}

#undef OnPlayerCommandText
#define OnPlayerCommandText _w@OnPlayerCommandText
forward _w@OnPlayerCommandText
Nesse exemplo, tu botaria na comparaзгo do /cmd

as condiзхes pro comando retornar success = 1, entende ?
Ah ok obrigado Willian e Bruno
Reply
#7

Willian esta certo? "iii"
pawn Код:
"iii", playerid, cmdtext, 1
Reply
#8

segundo parвmetro da callback tem que ser string ...
Reply
#9

Obrigado pela correзгo, eu nem me toquei.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)