Hook pode fazer isso? -
Juniiro3 - 06.10.2013
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?
Re: Hook pode fazer isso? -
WLSF - 06.10.2013
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 ?
Re: Hook pode fazer isso? -
Juniiro3 - 06.10.2013
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 )
Respuesta: Hook pode fazer isso? -
ipsBruno - 06.10.2013
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);
}
Re: Hook pode fazer isso? -
WLSF - 06.10.2013
Й 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 ?
Re: Hook pode fazer isso? -
Juniiro3 - 06.10.2013
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
Re: Hook pode fazer isso? -
Schocc - 07.10.2013
Willian esta certo?
"iii"
pawn Код:
"iii", playerid, cmdtext, 1
Re: Hook pode fazer isso? -
zSuYaNw - 07.10.2013
segundo parвmetro da callback tem que ser string ...
Re: Hook pode fazer isso? -
WLSF - 07.10.2013
Obrigado pela correзгo, eu nem me toquei.