Posts: 42
Threads: 12
Joined: Sep 2015
ЎSaludos!
Querнa saber si existe alguna manera de poner por ejemplo que yo lance una granada, y para volver a lanzar la granada deba esperar 5 minutos y que asн suceda cada ves que lance la granada, deba esperar el tiempo asignado.
їMe podrнan hacer el cуdigo si no es mucha molesta y decirme donde va?
Posts: 4,930
Threads: 467
Joined: Dec 2010
PHP код:
#define TIEMPO (5)
new tiempo_espera[MAX_PLAYERS];
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys){
if(newkeys & KEY_FIRE){
if(GetPlayerWeapon(playerid) == WEAPON_GRENADE && GetPlayerCameraMode(playerid) == 4){
if(tiempo_espera[playerid] > gettime()) SendClientMessage(playerid, -1, "INFO: debes de esperar 5 segundos");
else tiempo_espera[playerid] = gettime() + TIEMPO, SendClientMessage(playerid, -1, "INFO: tiraste una granada");
}
}
return true;
}
Posts: 42
Threads: 12
Joined: Sep 2015
Quote:
Originally Posted by OTACON
PHP код:
#define TIEMPO (5)
new tiempo_espera[MAX_PLAYERS];
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys){
if(newkeys & KEY_FIRE){
if(GetPlayerWeapon(playerid) == WEAPON_GRENADE && GetPlayerCameraMode(playerid) == 4){
if(tiempo_espera[playerid] > gettime()) SendClientMessage(playerid, -1, "INFO: debes de esperar 5 segundos");
else tiempo_espera[playerid] = gettime() + TIEMPO, SendClientMessage(playerid, -1, "INFO: tiraste una granada");
}
}
return true;
}
|
Amigo, no funciona, intentй tirar una granada y no pasa nada las puedo tirar muchas veces, asн puse el cуdigo.
PHP код:
if(newkeys & KEY_FIRE)
{
if(GetPlayerWeapon(playerid) == 16 && GetPlayerCameraMode(playerid) == 4)
{
if(tiempo_espera[playerid] > gettime()) SendClientMessage(playerid, -1, "Has lanzado una Granada, espera 5 minutos para volver a lanzarla.");
}
else
{
tiempo_espera[playerid] = gettime() + TIEMPO, SendClientMessage(playerid, -1, "Ya has tirado una granda, espera 5 minutos.");
}
}
Posts: 185
Threads: 14
Joined: Oct 2014
Reputation:
0
ese codigo solo sirve para enviarte el msj, agrega un return antes del ultimo mensaje
Posts: 42
Threads: 12
Joined: Sep 2015
Quote:
Originally Posted by NullBot
ese codigo solo sirve para enviarte el msj, agrega un return antes del ultimo mensaje
|
їPodrнas ayudarme tu amigo bueno?
Tambiйn querнa saber, por que cuando me saco la granada es que me sale el mensaje si quiero disparar, y cuando la tengo puesta no sale nada y la puedo lanzar?
Posts: 42
Threads: 12
Joined: Sep 2015
Quote:
Originally Posted by N3cromancer
Код:
#define TIEMPO (5)
new tiempo_espera[MAX_PLAYERS];
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys){
if(newkeys & KEY_FIRE){
if(GetPlayerWeapon(playerid) == WEAPON_GRENADE && GetPlayerCameraMode(playerid) == 4){
if(tiempo_espera[playerid] > gettime()) return SendClientMessage(playerid, -1, "INFO: debes de esperar 5 segundos");
else tiempo_espera[playerid] = gettime() + TIEMPO, SendClientMessage(playerid, -1, "INFO: tiraste una granada");
}
}
return true;
}
|
Sigue igual amigo, no bloquea el lanzado de la granada...
Posts: 4,930
Threads: 467
Joined: Dec 2010
PHP код:
#include <a_samp> // es un include se sa-mp que contiene todas las funciones nativas. :D
#define TIEMPO (20) // cambia los segundos por lo que prefieras que se bloquee. (pero cincos segundos es muy poco)
new tiempo_espera[MAX_PLAYERS]; // creas la variable para almacenar los segundos bloqueados.
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys){ // es el callback donde es llamado cuando presionas una tecla del teclado.
if(newkeys & KEY_FIRE) // cuando disparas con el click derecho una del mouse. ( no recuerdo si se dispara con otra tecla, de lo contrario debes de colocar las teclas correspondiente)
{
if(GetPlayerWeapon(playerid) == WEAPON_GRENADE) // verifica si tienes un arma id que equivale a las granadas.
{
if(tiempo_espera[playerid] > gettime()) // verifica si el tiempo del bloqueo esta activo, si lo esta se ejecuta la siguiente funciуn.
{
// FUNCION :
SetPlayerArmedWeapon(playerid,0); // establece el id del armamento que el jugador estasosteniendo, en este caso al id cero que son los puсos(sin arma).
SendClientMessage(playerid, -1, "INFO: debes de esperar 5 segundos"); // mensaje que indica que esta bloqueado
}
else // verifica si el tiempo del bloqueo esta activo, si NO lo esta se ejecuta la siguiente funciуn.
{
// FUNCION :
tiempo_espera[playerid] = gettime() + TIEMPO; // establece el tiempo que se bloqueada.
SendClientMessage(playerid, -1, "INFO: tiraste una granada"); // mensaje que indica que se logro el objetivo.
}
}
}
return true;
}
Posts: 42
Threads: 12
Joined: Sep 2015
Mi pregunta es, porque cuando le doy para lanzar la granada, no me la deja lanzar, automбticamente se quita y nisiquiera se ve cuando la lanza ni estalla.