Í ndice
- Introdução
- O que é Hook
- Hookeando CallBack's
- Hookeando Funções
- Creditos
Introduзгo
Olб, hoje vou explicar um pouco sobre hooking espero que gostem .
O que é Hook
Hooking é feito com uma função chamar outra função de aparentemente o mesmo nome, portanto, "encadeamento" todas essas funções idênticas juntas para que chame uma chama todos eles. Ao Hook funções é fácil porque a cadeia chama a função anterior do mesmo nome, no entanto, de enganche retorna é complicada pelo fato de a cadeia de chama o próximo função do mesmo nome - uma função que ainda não foi definida e pode nem sequer existe.
H ookeando CallBacks
* Com mйtodo state
Precisaremos de uma variбvel no topo, no meu caso:
Olб, hoje vou explicar um pouco sobre hooking espero que gostem .
O que é Hook
Hooking é feito com uma função chamar outra função de aparentemente o mesmo nome, portanto, "encadeamento" todas essas funções idênticas juntas para que chame uma chama todos eles. Ao Hook funções é fácil porque a cadeia chama a função anterior do mesmo nome, no entanto, de enganche retorna é complicada pelo fato de a cadeia de chama o próximo função do mesmo nome - uma função que ainda não foi definida e pode nem sequer existe.
H ookeando CallBacks
* Com mйtodo state
Precisaremos de uma variбvel no topo, no meu caso:
PHP como:
- Código:
stock hooking;
Agora definiremos para quando iniciar o hooking ser true(para ler primeiro o hook):
PHP como:
- Código:
main()
{
state hooking:true;
}
Agora vamos criar nosso callback hookeada(no meu caso vou hookear a OnPlayerConnect).
PHP como:
- Código:
public OnPlayerConnect(playerid) <hooking:true>
{
state hooking:false;
// funзхes da sua CallBack hookeada
return OnPlayerConnect(playerid);
}
Agora vamos criar nosso Callback normal.
PHP como:
- Código:
public OnPlayerConnect(playerid) <hooking:false>
{
state hooking:true;
// funзхes da sua CallBack
return 1;
}
state é o estado... definimos o estado verdadeiro para a hook eo estado falso para a original.
Pronto está Hookeada sua CallBack com o método state.
* Com mйtodo bruno
Nesse mйtodo nгo precisaremos de variбveis.
Agora vamos criar nosso callback hookeada(no meu caso vou hookear a OnPlayerConnect).
Pronto está Hookeada sua CallBack com o método state.
* Com mйtodo bruno
Nesse mйtodo nгo precisaremos de variбveis.
Agora vamos criar nosso callback hookeada(no meu caso vou hookear a OnPlayerConnect).
PHP como:
- Código:
public OnPlayerConnect(playerid) <hooking:false>
{
#if defined MyLib_OnPlayerConnect
return MyLib_OnPlayerConnect(playerid);
#else
return 1;
#endif
}
abaixo da callback ou no fim do seu codigo(no meu caso (OnPlayerConnect) ):
peão Код:
- Código:
#if definido _ALS_OnPlayerConnect
#undef OnPlayerConnect
#else
#define _ALS_OnPlayerConnect
#endif
#define OnPlayerConnect MyLib_OnPlayerConnect
#if definido MyLib_OnPlayerConnect
para frente MyLib_OnPlayerConnect ( playerid ) ;
#fim se
Alguns vгo se perguntar como fazer isto /\
PHP como:
- Código:
public <Nome da CallBack>(<parametros>)
{
<verifica se a hook existe>
<sim - retorna para hookeada>
<caso nгo exista>
<nгo - retorna verdadeiro>
<encerra a verifcaзгo>
}
<caso a hook exista>
<sim - remove o hook(para a leitura da original)>
<caso nгo exista>
<nгo - cria o hook>
<encerra a verificaзгo>
<renomeia a callback>
<caso a hook exista>
<criamos a forward para a original>
<encerra a verificaзгo>
Podemos criar nosso Callback abaixo de tudo acima ou caso for uma include nгo criaremos nada, pois ira dar erro.
Pronto está Hookeada sua CallBack com o método bruno.
H ookeando Funзхes
* Com mйtodo state
Precisaremos de uma variбvel no topo, no meu caso:
Pronto está Hookeada sua CallBack com o método bruno.
H ookeando Funзхes
* Com mйtodo state
Precisaremos de uma variбvel no topo, no meu caso:
PHP como:
- Código:
stock hooking;
Agora definiremos para quando iniciar o hooking ser true(para ler primeiro o hook):
PHP como:
- Código:
main()
{
state hooking:true;
}
Agora vamos criar nossa função hookeada(no meu caso vou hookear uma função criada por mim (sem nada) ).
PHP como:
- Código:
MyFunction() <hooking:true>
{
state hooking:false;
// funзхes da sua Funзгo hookeada
return MyFunction();
}
Agora vamos criar nosso Funço normal.
PHP como:
- Código:
MyFunction() <hooking:false>
{
state hooking:true;
// funзхes da sua Funзгo normal
return 1;
}
state é o estado... definimos o estado verdadeiro para a hook eo estado falso para a original.
Pronto está Hookeada sua Funзгo com o mйtodo state.
* Com mйtodo bruno
Nesse mйtodo nгo precisaremos de variбveis.
Agora vamos criar nosso Funзгo hookeada(no meu caso vou hookear a GivePlayerMoney).
Pronto está Hookeada sua Funзгo com o mйtodo state.
* Com mйtodo bruno
Nesse mйtodo nгo precisaremos de variбveis.
Agora vamos criar nosso Funзгo hookeada(no meu caso vou hookear a GivePlayerMoney).
PHP como:
- Código:
stock MyLib_GivePlayerMoney(playerid, value)
{
// Codigo da Funзгo aqui
return true;
}
abaixo da callback ou no fim do seu codigo(no meu caso (GivePlayerMoney) ):
peão Код:
- Código:
#if definido _ALS_GivePlayerMoney
#undef GivePlayerMoney
#else
#define _ALS_GivePlayerMoney
#endif
#define GivePlayerMoney MyLib_GivePlayerMoney
Alguns vгo se perguntar como fazer isto /\
PHP como:
- Código:
stock <Nome da Funзгo>(<parametros>)
{
// Codigo da Funзгo aqui
return true;
}
<caso a hook exista>
<sim - remove o hook(para a leitura da original)>
<caso nгo exista>
<nгo - cria o hook>
<encerra a verificaзгo>
<renomeia a callback>
Pronto está Hookeada sua Funзгo com o mйtodo bruno.
F . A. _ Q
Existe um site que faz isso para mim ?
R = sim, http://ipsbr.net/portal/hook/
C reditos:
DanDRT
Willian_Luigi
IpsBruno
****** (forma estrutural do metodo bruno)
IpsTeam
F . A. _ Q
Existe um site que faz isso para mim ?
R = sim, http://ipsbr.net/portal/hook/
C reditos:
DanDRT
Willian_Luigi
IpsBruno
****** (forma estrutural do metodo bruno)
IpsTeam