[Tutorial] [Tutorial] No Permitir Armas En Interiores e Vehiculos.
#1

No Permitir Armas En Interiores e Vehiculos.
(Tutorial Hecho Para Los Usuarios Nuevos.)
---> INTERIORES

EXPLICACION:[*]GetPlayerInterior = Chekea Si el Jugador Se encuentra en un Interior. [*]GetPlayerWeapon = Chequea Si el Jugador Tiene Un Arma Encima.[*]SetPlayerArmedWeapon = Al Intentar Cambiar e Seleccionar el Arma le Da al Jugador el ID del Arma correspondiente, Que en Este Caso Son el '0' Que Son Los Puсos.[*]]Return En '0' = No Sincroniza Hasta Que Cambie Su Arma.

Код:
public OnPlayerUpdate(playerid)
{
	if(GetPlayerInterior(playerid) != 0 && GetPlayerWeapon(playerid) != 0) 
	{
	    SetPlayerArmedWeapon(playerid,0); 
	    return 0;
	}
	return 1;
}
---> VEHICULOS

EXPLICACION:[*]IsPlayerInAnyVehicle = Chekea Si el Jugador Se encuentra en un Vehiculo. [*]GetPlayerWeapon = Chequea Si el Jugador Tiene Un Arma Encima.[*]SetPlayerArmedWeapon = Al Intentar Cambiar e Seleccionar el Arma le Da al Jugador el ID del Arma correspondiente, Que en Este Caso Son el '0' Que Son Los Puсos.[*]]Return En '0' = No Sincroniza Hasta Que Cambie Su Arma.

Код:
public OnPlayerUpdate(playerid)
{
	if(IsPlayerInAnyVehicle(playerid) && GetPlayerWeapon(playerid) != 0)
	{
	    SetPlayerArmedWeapon(playerid,0); 
	    return 0;
	}
	return 1;
}
NOTA: Si en SetPlayerArmedWeapon Ponen otro Id de arma, lo que haga es que solo puedan usar esa arma en los interiores o vehiculos.

FUENTE: WIKI
Reply
#2

pawn Код:
public OnPlayerUpdate(playerid)
{
    if(GetPlayerInterior(playerid) != 0 && GetPlayerWeapon(playerid) != 0)
    {
        SetPlayerArmedWeapon(playerid,0);
        return 0;
    }
    return 1;
}
Este metodo puede ser evadido con el si se dispara el arma muy rapidamente luego de cambiarla (muy facil para gente que tiene algo de experiencia en el DM)
Reply
#3

Esto te dara un terrible lag... Por que no usar OnPlayerInteriorChange con algunas variables y OnPlayerStateChange? Creo que seria mejor y menos lag saludos
Reply
#4

Quote:
Originally Posted by Shiny_David
Посмотреть сообщение
Esto te dara un terrible lag... Por que no usar OnPlayerInteriorChange con algunas variables y OnPlayerStateChange? Creo que seria mejor y menos lag saludos
el tiene razon Mas Puedes Agregarle Que Se Reset Las Armas Seria Mejor ( Creo )

PD: No es una critica es una opiniуn
Reply
#5

Quote:
Originally Posted by Shiny_David
Посмотреть сообщение
Esto te dara un terrible lag... Por que no usar OnPlayerInteriorChange con algunas variables y OnPlayerStateChange? Creo que seria mejor y menos lag saludos
Lagg por quй? Es una simple condiciуn, si se cumple se ejecuta rбpidamente. No escribe ni lee nada de ningъn sitio como para producir ralentizaciones.
_____________
Aunque encontrй un fallo en algo:
pawn Код:
public OnPlayerUpdate(playerid)
{
    if(IsPlayerInAnyVehicle(playerid) && GetPlayerWeapon(playerid) != 0)
    {
        SetPlayerArmedWeapon(playerid,0);
        return 0; //Esto.
    }
    return 1;
}
El return 0; no envнa la actualizaciуn, serнa como un tipo de desincronizaciуn. Lo borran, y arreglado.

Por cierto, bytytus, no deberнas poner tan grande el texto. Parece todo desestructurado.

Saludos!
Reply
#6

Por que revisara la condicion para cada player y creo que aproximadamente lo hara como 10 veces por segundo
Reply
#7

Quote:
Originally Posted by Shiny_David
Посмотреть сообщение
Por que revisara la condicion para cada player y creo que aproximadamente lo hara como 10 veces por segundo
OnPlayerUpdate se llama aproximadamente 40 veces por segundo y por jugador, suponiendo que se tiene un servidor con 50 jugadores entonces OnPlayerUpdate se llamarб: 40*50 = 2000 veces por segundo. Por lo tanto el cуdigo en cuanto a rendimiento es pйsimo. La mejor opciуn serнa guardar en variables las armas del jugador y sacarle las armas con ResetPlayerWeapons cuando entra al vehнculo o interior(OnPlayerInteriorChange y OnPlayerStateChange), y cuando sale del interior o sale del vehнculo darselas nuevamente.
Reply
#8

Quote:
Originally Posted by OTACON
Посмотреть сообщение
No Permitir Armas En Interiores e Vehiculos.
(Tutorial Hecho Para Los Usuarios Nuevos.)
---> INTERIORES

EXPLICACION:[*]GetPlayerInterior = Chekea Si el Jugador Se encuentra en un Interior. [*]GetPlayerWeapon = Chequea Si el Jugador Tiene Un Arma Encima.[*]SetPlayerArmedWeapon = Al Intentar Cambiar e Seleccionar el Arma le Da al Jugador el ID del Arma correspondiente, Que en Este Caso Son el '0' Que Son Los Puсos.[*]]Return En '0' = No Sincroniza Hasta Que Cambie Su Arma.

Код:
public OnPlayerUpdate(playerid)
{
	if(GetPlayerInterior(playerid) != 0 && GetPlayerWeapon(playerid) != 0) 
	{
	    SetPlayerArmedWeapon(playerid,0); 
	    return 0;
	}
	return 1;
}
---> VEHICULOS

EXPLICACION:[*]IsPlayerInAnyVehicle = Chekea Si el Jugador Se encuentra en un Vehiculo. [*]GetPlayerWeapon = Chequea Si el Jugador Tiene Un Arma Encima.[*]SetPlayerArmedWeapon = Al Intentar Cambiar e Seleccionar el Arma le Da al Jugador el ID del Arma correspondiente, Que en Este Caso Son el '0' Que Son Los Puсos.[*]]Return En '0' = No Sincroniza Hasta Que Cambie Su Arma.

Код:
public OnPlayerUpdate(playerid)
{
	if(IsPlayerInAnyVehicle(playerid) && GetPlayerWeapon(playerid) != 0)
	{
	    SetPlayerArmedWeapon(playerid,0); 
	    return 0;
	}
	return 1;
}
NOTA: Si en SetPlayerArmedWeapon Ponen otro Id de arma, lo que haga es que solo puedan usar esa arma en los interiores o vehiculos.

FUENTE: WIKI
y si quieres que disparen con todas las armas como seria para que pueda disparar con la m4 con la edc con todas las armas como seria Grasias por la Respuesta
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)