[Duda] Zonas seguras - Printable Version
+- SA-MP Forums Archive (
https://sampforum.blast.hk)
+-- Forum: Non-English (
https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (
https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (
https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: [Duda] Zonas seguras (
/showthread.php?tid=460332)
[Duda] Zonas seguras -
enzo2 - 28.08.2013
Hola a todos, estoy en un proyecto de un servidor rp con un amigo y estoy haciendo las zonas seguras y resulta que tengo un problema. El compilador no tira errores, pero InGame no pasa lo que supuse que deberнa pasar..
La intenciуn era que si le disparas a alguien en una zona segura (dependiendo con que arma) te pone 1 o 2 cargos. Aca les paso mi code para que vean. Aclaro, use el native OnPlayerEnterDynamicArea (la funciуn es CreateDynamicPolygon) del plugin Streamer para crear la zona:
Код:
#include <a_samp>
#include <streamer>
new ZonaSegura1;
La variable global y el inc.
Код:
public OnGameModeInit()
{
new Float:Points[18] = {
-1771.5735, -185.3769, -1749.3557, -185.9924, -1615.5680, -52.3680, -1658.8107,-8.5426, -1503.7676, 147.1502,
-1526.1992, 169.7166, -1606.1241, 175.9710, -1701.9905, 116.4776, -1755.5844, 74.5980};
ZonaSegura1 = CreateDynamicPolygon(Points, 5.0, 15.0, sizeof(Points));
return 1;
}
Las variables necesarias para crear el poligono que serб la zona segura.
Y aquн mi idea improvisada:
Код:
public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid)
{
if(IsPlayerInDynamicArea(playerid, ZonaSegura1))
{
if(playerid != INVALID_PLAYER_ID)
{
if(weaponid != 16 || 26 || 27 || 29 || 30 || 31 || 34)
{
SetPlayerWantedLevel(issuerid, 1);
}
}
else SetPlayerWantedLevel(issuerid, 2);
}
}
El compilador no tira errores, pero ingame la testee y no funciona, no pone los cargos.. Si alguno sabe que puede haber pasado, le agradecerнa que responda. Gracias de antemano.
Respuesta: [Duda] Zonas seguras -
OTACON - 28.08.2013
pawn Код:
#include <a_samp>
#include <streamer>
new ZonaSeguras;
public OnGameModeInit() {
//Crea Una Zona en Forma rectangular
ZonaSeguras=CreateDynamicRectangle(Float:minx, Float:miny, Float:maxx, Float:maxy, worldid = -1, interiorid = -1, playerid = -1);
return true;
}
public OnGameModeExit() {
//Destruye la Zona Creada
DestroyDynamicArea(ZonaSeguras);
return true;
}
public OnPlayerGiveDamage(playerid, damagedid, Float:amount, weaponid) {
// -- FUNCION --
if(playerid != INVALID_PLAYER_ID) { //Verifica que el jugador que daсa sea valido
if(IsPlayerInDynamicArea(playerid, ZonaSeguras)) { //Verifica que el jugador que daсa este en la zona correspondioente
if(weaponid == 16 || 26 || 27 || 29 || 30 || 31 || 34) { //Verifica que el jugador que daсa tenga las armas correspondiente
SetPlayerWantedLevel(playerid, GetPlayerWantedLevel(playerid)+1); //Le suma 1 score al jugador le daсa
SetPlayerWantedLevel(damagedid, GetPlayerWantedLevel(damagedid)-1); //Le resta 1 score al jugador que fue daсado
}
} else { //Verifica que el jugador que daсa NO este en la zona correspondioente
SetPlayerWantedLevel(playerid, GetPlayerWantedLevel(playerid)+2); //Le suma 2 score al jugador le daсa
SetPlayerWantedLevel(damagedid, GetPlayerWantedLevel(damagedid)-2); //Le resta 2 score al jugador que fue daсado
}
}
// -- FUNCION --
return true;
}
https://sampwiki.blast.hk/wiki/OnPlayerGiveDamage_Es
Re: [Duda] Zonas seguras -
yancarlos4500 - 02.02.2014
me pueden explicar un poco
Re: [Duda] Zonas seguras -
CuervO - 02.02.2014
Ese CreateDynamicPolygon no va a funcionar.
CreateDynamicPolygon crea un poligono con bordes en todos los puntos que insertas. Para que sea un poligono completo de verdad el ultimo punto debe ser igual al primero, caso que no se cumple en tu codigo.
Usa CreateDynamicRectangle para rectangulos/cuadrados (minx, miny, maxx, maxy)