Ayuda comando escalar -
Daniel_Ruiz - 04.03.2013
Bueno estoy creando un sistema de escalar pero me gustaria saber como hacer para cuando presione una tecla Avanze
miren el comando
pawn Код:
zcmd(escalar, playerid, params[])
{
new Float: x, Float: y, Float: z;
GetPlayerPos(playerid, x, y, z);
SetPlayerPos(playerid, x, y, z+2);
TogglePlayerControllable(playerid, 0);
ApplyAnimation(playerid,"Bikev"," BIKEv_Back",4.1,1,1,1,1,1,1);
Message(playerid,COLOR_GRAD2,"Para terminar de escalar usa /tescalar");
return 1;
}
Respuesta: Ayuda comando escalar -
Fluid016 - 04.03.2013
OnPlayerKeyStateChange
y
GetPlayerKeys
Respuesta: Ayuda comando escalar -
Glimma - 04.03.2013
Te lo armй con la tecla N;
pawn Код:
#define PRESSED(%0) \
(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))
new Escalando[MAX_PLAYERS];
zcmd(escalar, playerid, params[])
{
TogglePlayerControllable(playerid, 0);
ApplyAnimation(playerid,"Bikev"," BIKEv_Back",4.1,1,1,1,1,1,1);
Message(playerid,COLOR_GRAD2,"Para ir escalando la escalera presione la tecla N. Para terminar de escalar use /tescalar.");
Escalando[playerid] = 1;
return 1;
}
zcmd(tescalar, playerid, params[])
{
TogglePlayerControllable(playerid, 1);
Escalando[playerid] = 0;
return 1;
}
public OnPlayerConnect(playerid)
{
Escalando[playerid] = 0;
return 1;
}
public OnPlayerDisconnect(playerid)
{
Escalando[playerid] = 0;
return 1;
}
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if(PRESSED(KEY_NO) && Escalando[playerid] == 1)
{
new Float: x, Float: y, Float: z;
GetPlayerPos(playerid, x, y, z);
SetPlayerPos(playerid, x, y, z+2);
}
return 1;
}
Al usar /escalar se congelarб y se le darб la variable Escalando, entonces cada vez que use la tecla N irб escalando a +2 de la coordenada de altura Z, йsto funcionarб al apretar N y tener la variable Escalando activa. Al usar /tescalar, descongelarб al jugador y le quitarб la variable.
Faltarнa nomбs usar la funciуn para detectar la coordenada de la escalera, asн sуlo se puede usar ahн, si me proporcionas la coordenada puedo armarte todo.
Si quieres hacerlo con otra tecla que no sea la N, deberбs cambiar lo que dice KEY_NO por otra tecla, por ejemplo, si lo quieres con SPACE cambiarбs el KEY_NO por KEY_SPRINT.