[Guia] OnPlayerKeyStateChange
Comunidad De Diversion Latina Y Diversion Sa-mp :: Ayuda PawnoScript :: Tutoriales Y Documentacion Pawno
Página 1 de 1.
[Guia] OnPlayerKeyStateChange
Hoy de aburrido me puse a leer un poco de pawno en la wiki y en el foro y encontre esta funcion q esta muy interesante:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys).
Con este callback podemos hacer que el usuario X a la hora de apretar la tecla shift + alt (por ejemplo) suseda que se cure por 500$ y le aparesca un mensaje que le diga que activado tal truco.
Código:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if ((newkeys & (KEY_WALK | KEY_JUMP)) == (KEY_WALK | KEY_JUMP))
{
SetPlayerHealth(playerid,100.00);
GivePlayerMoney(playerid,-500);
GameTextForPlayer(playerid,"~y~Truco Activado");
}
}
NOMBRES DE LAS TECLAS DEL SAN ANDREAS
KEY_SPRINT = Click Izquierdo
KEY_SECONDARY_ATTACK = Boton F o Enter
KEY_JUMP = Shift
KEY_CROUCH = C
KEY_LOOK_RIGHT = D
KEY_HANDBRAKE
KEY_LOOK_LEFT = A
KEY_SUBMISSION
KEY_LOOK_BEHIND = Scroll
KEY_WALK = Alt
KEY_UP = Flecha para arriba
KEY_DOWN = Flecha para abajo
KEY_LEFT = Flecha para la izquierda
KEY_RIGHT = Flecha para la derecha
PD: Pronto lo are con el coso que te dice "Cheat Activated/Truco Activado" en la esquina
COMO HACER TUS PROPIOS TRUCOS
Podemos hacer infinidades de combinaciones para los trucos, pero, no siempre es bueno, por que por ejemplo que hagamos 100 trucos, con todas las teclas, y el jugador por curiosidad o equivocacion, presiona una combinacion de telcas, descubriria un truco, y no mas pararia diciendoselo a todo el server, y perderia el toque de "juego limpio". Aunque si los trucos sehan de telenstransporte, carros, etc (que no sea armadura o vida o plata) no abria inconvenientes.
1. Creando el callback.
Podemos Crear el callback en cualquier parte de nuestro GM, inclusive en un FS, en este caso yo lo voy a poner al final de todo.
Código:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
2. Poniendo la combinacion de teclas
Debajo de nuestra callback debemos poner que teclas son las que desencadenaran cierta funcion.
Código:
if ((newkeys & (KEY_SPRINT | KEY_CROUCH)) == (KEY_SPRINT | KEY_CROUCH))
Cuando el jugador presione el click izquierdo + el Scroll , susederá algo.
Otro metodo ("Defines")
Si nuestra combinacion de teclas es mas de 3 o de 2 teclas , para q no se vea algo muy grande podemos definir una palabra como esta: "TECLAS_TRUCO"
Código:
#define TECLAS_TRUCO (Tu tecla 1|Tecla 2| Tecla 3.....)
Definiendo "TECLAS_TRUCO" en ves de poner un millon de teclas en nuestra combinacion, solo pondremos una: "TECLAS_TRUCO".
Ej:
Código:
if ((newkeys & TECLAS_TRUCO) == TECLAS_TRUCO && (oldkeys & TECLAS_TRUCO) != TECLAS_TRUCO)
3. Consecuencias de la combinacion.
Luego de poner nuestra combinacion , definiendola o no, debemos poner que algo suseda. Eso ya es muy facil de hacer ,mirando el ejemplo se daran cuenta cual es.
4. Return o No Return
Es dependiendo, si lo hacemos en un GM NO DEBEMOS PONER RETURN y si lo pones en un FS si debes ponerlo.
5. Atajos para admin
Podemos utilizar esto como un atajo ppara un admin:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
Código:
{
if ((newkeys & (KEY_SPRINT | KEY_JUMP)) == (KEY_SPRINT | KEY_JUMP))
{
If(IsPlayerAdmin=playerid);
GameText ForPlayer("No usen cheats");
else if(SendClientMessage("No eres Admin");
}
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys).
Con este callback podemos hacer que el usuario X a la hora de apretar la tecla shift + alt (por ejemplo) suseda que se cure por 500$ y le aparesca un mensaje que le diga que activado tal truco.
Código:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if ((newkeys & (KEY_WALK | KEY_JUMP)) == (KEY_WALK | KEY_JUMP))
{
SetPlayerHealth(playerid,100.00);
GivePlayerMoney(playerid,-500);
GameTextForPlayer(playerid,"~y~Truco Activado");
}
}
NOMBRES DE LAS TECLAS DEL SAN ANDREAS
KEY_SPRINT = Click Izquierdo
KEY_SECONDARY_ATTACK = Boton F o Enter
KEY_JUMP = Shift
KEY_CROUCH = C
KEY_LOOK_RIGHT = D
KEY_HANDBRAKE
KEY_LOOK_LEFT = A
KEY_SUBMISSION
KEY_LOOK_BEHIND = Scroll
KEY_WALK = Alt
KEY_UP = Flecha para arriba
KEY_DOWN = Flecha para abajo
KEY_LEFT = Flecha para la izquierda
KEY_RIGHT = Flecha para la derecha
PD: Pronto lo are con el coso que te dice "Cheat Activated/Truco Activado" en la esquina
COMO HACER TUS PROPIOS TRUCOS
Podemos hacer infinidades de combinaciones para los trucos, pero, no siempre es bueno, por que por ejemplo que hagamos 100 trucos, con todas las teclas, y el jugador por curiosidad o equivocacion, presiona una combinacion de telcas, descubriria un truco, y no mas pararia diciendoselo a todo el server, y perderia el toque de "juego limpio". Aunque si los trucos sehan de telenstransporte, carros, etc (que no sea armadura o vida o plata) no abria inconvenientes.
1. Creando el callback.
Podemos Crear el callback en cualquier parte de nuestro GM, inclusive en un FS, en este caso yo lo voy a poner al final de todo.
Código:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
2. Poniendo la combinacion de teclas
Debajo de nuestra callback debemos poner que teclas son las que desencadenaran cierta funcion.
Código:
if ((newkeys & (KEY_SPRINT | KEY_CROUCH)) == (KEY_SPRINT | KEY_CROUCH))
Cuando el jugador presione el click izquierdo + el Scroll , susederá algo.
Otro metodo ("Defines")
Si nuestra combinacion de teclas es mas de 3 o de 2 teclas , para q no se vea algo muy grande podemos definir una palabra como esta: "TECLAS_TRUCO"
Código:
#define TECLAS_TRUCO (Tu tecla 1|Tecla 2| Tecla 3.....)
Definiendo "TECLAS_TRUCO" en ves de poner un millon de teclas en nuestra combinacion, solo pondremos una: "TECLAS_TRUCO".
Ej:
Código:
if ((newkeys & TECLAS_TRUCO) == TECLAS_TRUCO && (oldkeys & TECLAS_TRUCO) != TECLAS_TRUCO)
3. Consecuencias de la combinacion.
Luego de poner nuestra combinacion , definiendola o no, debemos poner que algo suseda. Eso ya es muy facil de hacer ,mirando el ejemplo se daran cuenta cual es.
4. Return o No Return
Es dependiendo, si lo hacemos en un GM NO DEBEMOS PONER RETURN y si lo pones en un FS si debes ponerlo.
5. Atajos para admin
Podemos utilizar esto como un atajo ppara un admin:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
Código:
{
if ((newkeys & (KEY_SPRINT | KEY_JUMP)) == (KEY_SPRINT | KEY_JUMP))
{
If(IsPlayerAdmin=playerid);
GameText ForPlayer("No usen cheats");
else if(SendClientMessage("No eres Admin");
}
}
Comunidad De Diversion Latina Y Diversion Sa-mp :: Ayuda PawnoScript :: Tutoriales Y Documentacion Pawno
Página 1 de 1.
Permisos de este foro:
No puedes responder a temas en este foro.
|
|