Colocar entidad en un mapa en especifico
#1
Buenas.
Estoy tratando de poner una entidad en un mapa "X" y buscando por ahí me encontré esto:

Código PHP:
public plugin_precache()
{
    new 
mapname[32]
    
get_mapname(mapnamecharsmax(mapname))
    
    if(
equali(mapname"zp_boss_city"))
        
set_task(15.0"begin_create_npc"TASK_CREATE_NPC);


No estoy dando los datos específicos de como crea el NPC, etc; ya que la cuestión es que intenté hacer algo parecido con la entidad que tengo yo en un mapa.
Dicha entidad aparece cuando la creo con un comando, pero poniéndola así como dice arriba no me aparece ni tira logs.

Voy a ser más directo, alguien me enseña a poner una entidad en un mapa específico y que esta reaparezca todas las rondas? (no se bien como funciona esto que digo de la reaparición, probablemente ya reaparezca por si sola todas las rondas, si pueden especificar mejor)

Así es que creo la entidad:

Código PHP:
entidad_plasma_rifle(id)
{
    new 
NAME_ENTITY create_entity("info_target")
    
entity_set_string(NAME_ENTITYEV_SZ_classname"ent_plasma_rifle")
    
    new 
iOriginI[3]
    new 
Float:iOriginF[3]
    
get_user_origin(idiOriginI3)
    
IVecFVec(iOriginIiOriginF)
    
entity_set_vector(NAME_ENTITYEV_VEC_originiOriginF)
    
    new 
Float:iOriginDEF[3] = {-0.563478, -390.799438, -667.968750}
    
entity_set_vector(NAME_ENTITYEV_VEC_originiOriginDEF)
    
    
entity_set_int(NAME_ENTITYEV_INT_solid1)
    
    new 
Float:mins[3] = {-8.0,-8.0,-8.0}
    new 
Float:maxs[3] = {0.0 0.0 0.0}
    
entity_set_size(NAME_ENTITYminsmaxs)
    
    
entity_set_int(NAME_ENTITYEV_INT_movetype6)
    
    
entity_set_model(NAME_ENTITYmodel_plasma_rifle)
    
set_rendering(NAME_ENTITYkRenderFxGlowShell2015020kRenderNormal16)

Responder
#2
Sé más especifico, donde queres crear la entidad? En alguna parte X del mapa? O en la posicion del player?
Responder
#3
(14/11/2018, 03:10 PM)Teki escribió: Sé más especifico, donde queres crear la entidad? En alguna parte X del mapa? O en la posicion del player?

En una parte X del mapa, no especifiqué pero en la entidad se pueden ver las coordenadas que usé.
Responder
#4
Para que sea en una mapa especifico puedes hacer una simple bandera, que cuando este en tu determinado mapa sea True.

Para setearlo en el lugar que quieres, tienes en tu porcion de codigo las siguientes lineas

Código PHP:
new Float:iOriginDEF[3] = {-0.563478, -390.799438, -667.968750}
    
entity_set_vector(NAME_ENTITYEV_VEC_originiOriginDEF

Lo que debes hacer es cambiar X, Y, y Z por las coordenadas que desees.

¿ Como saber cuales son las coordenadas que quieres ? Simple ... Parate en el punto que quieres que aparezca la entidad y obtiene las coordenadas del jugador

Código PHP:
public testid ) { 
    new 
Float:iOrigin];
    
pevidpev_origin iOrigin );
  
    
client_printidprint_chat"X: %f --- Y: %f --- Z: %f"iOrigin], iOrigin], iOrigin] );  

Mi unico plugin.
Tutorial de niveles.

Ayudo, pero no de la manera que quieren, si quieren aprender les servirá lo mio, para pedir el codigo en bandeja tienen la sección 'Pedidos'

(09/11/2017, 09:30 PM)SoundBlaster escribió: Espera y llamo a los power rangers para que me digan la linea de error
Responder
#5
(16/11/2018, 11:43 AM)cLAANS escribió: Para que sea en una mapa especifico puedes hacer una simple bandera, que cuando este en tu determinado mapa sea True.

Para setearlo en el lugar que quieres, tienes en tu porcion de codigo las siguientes lineas

Código PHP:
new Float:iOriginDEF[3] = {-0.563478, -390.799438, -667.968750}
    
entity_set_vector(NAME_ENTITYEV_VEC_originiOriginDEF

Lo que debes hacer es cambiar X, Y, y Z por las coordenadas que desees.

¿ Como saber cuales son las coordenadas que quieres ? Simple ... Parate en el punto que quieres que aparezca la entidad y obtiene las coordenadas del jugador

Código PHP:
public testid ) { 
    new 
Float:iOrigin];
    
pevidpev_origin iOrigin );
  
    
client_printidprint_chat"X: %f --- Y: %f --- Z: %f"iOrigin], iOrigin], iOrigin] );  


Como determinar las coordenadas ya lo sé, lo que no se es en que momento debo activar la función que ejecuta a la entidad
Responder
#6
En plugin init podrias hacerla sin problema
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#7
(17/11/2018, 01:01 AM)kikizon2 escribió: En plugin init podrias hacerla sin problema

Probé con algo como esto:

Código PHP:
public plugin_init()
{
    static 
id
    
for (id 1id <= g_maxplayersid++)
    {
        new 
mapname[32]; get_mapname(mapnamecharsmax(mapname))
        if (
equali(mapname"zm_dark3[ZK_GALAXY]"))
            
entidad_plasma_rifle(id)
    }


pero no me dió resultados, realmente no se si la estoy llamando correctamente.
Responder
#8
Creo que seria mejor que especifiques que es loque quieres lograr para poder brindarte una ayuda mas adecuada
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#9
(17/11/2018, 04:32 AM)kikizon2 escribió: Creo que seria mejor que especifiques que es loque quieres lograr para poder brindarte una ayuda mas adecuada

Es así, yo tengo esta entidad:

Código PHP:
entidad_plasma_rifle(id)
{
    new 
NAME_ENTITY create_entity("info_target")
    
entity_set_string(NAME_ENTITYEV_SZ_classname"ent_plasma_rifle")
    
    new 
iOriginI[3]
    new 
Float:iOriginF[3]
    
get_user_origin(idiOriginI3)
    
IVecFVec(iOriginIiOriginF)
    
entity_set_vector(NAME_ENTITYEV_VEC_originiOriginF)
    
    new 
Float:iOriginDEF[3] = {-0.563478, -390.799438, -667.968750}
    
entity_set_vector(NAME_ENTITYEV_VEC_originiOriginDEF)
    
    
entity_set_int(NAME_ENTITYEV_INT_solid1)
    
    new 
Float:mins[3] = {-8.0,-8.0,-8.0}
    new 
Float:maxs[3] = {0.0 0.0 0.0}
    
entity_set_size(NAME_ENTITYminsmaxs)
    
    
entity_set_int(NAME_ENTITYEV_INT_movetype6)
    
    
entity_set_model(NAME_ENTITYmodel_plasma_rifle)
    
set_rendering(NAME_ENTITYkRenderFxGlowShell2015020kRenderNormal16)


y quiero que al estar en el mapa "zm_dark3[ZK_GALAXY]", aparezca esa entidad en el suelo.

Pude colocar la entidad en el mapa, esas coordenadas que lleva puestas son del mismo, pero aparece cuando la llamo con un comando, pero lo que no puedo hacer es que aparezca ya de por sí sola en el mapa.
Responder
#10
Código PHP:
#include <amxmodx>
#include <engine>

public plugin_init()
{
    new 
szMap[64]; get_mapname(szMapcharsmax(szMap));
    if( 
equal(szMap"zm_dark3[ZK_GALAXY]") != -1)
        
entidad_plasma_rifle()
}

entidad_plasma_rifle()
{
    new 
NAME_ENTITY create_entity("info_target")
    
entity_set_string(NAME_ENTITYEV_SZ_classname"ent_plasma_rifle")
    
    
// Estas son tus coordenadas del mapa ?)
    
new Float:iOriginDEF[3] = {-0.563478, -390.799438, -667.968750}
    
entity_set_vector(NAME_ENTITYEV_VEC_originiOriginDEF)
    
    
entity_set_int(NAME_ENTITYEV_INT_solid1)
    
    new 
Float:mins[3] = {-8.0,-8.0,-8.0}
    new 
Float:maxs[3] = {0.0 0.0 0.0}
    
entity_set_size(NAME_ENTITYminsmaxs)
    
    
entity_set_int(NAME_ENTITYEV_INT_movetype6)
    
    
entity_set_model(NAME_ENTITYmodel_plasma_rifle)
    
set_rendering(NAME_ENTITYkRenderFxGlowShell2015020kRenderNormal16)

[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder
#11
(17/11/2018, 04:23 PM)kikizon2 escribió:
Código PHP:
#include <amxmodx>
#include <engine>

public plugin_init()
{
    new 
szMap[64]; get_mapname(szMapcharsmax(szMap));
    if( 
equal(szMap"zm_dark3[ZK_GALAXY]") != -1)
        
entidad_plasma_rifle
}

entidad_plasma_rifle()
{
    new 
NAME_ENTITY create_entity("info_target")
    
entity_set_string(NAME_ENTITYEV_SZ_classname"ent_plasma_rifle")
    
    
// Estas son tus coordenadas del mapa ?)
    
new Float:iOriginDEF[3] = {-0.563478, -390.799438, -667.968750}
    
entity_set_vector(NAME_ENTITYEV_VEC_originiOriginDEF)
    
    
entity_set_int(NAME_ENTITYEV_INT_solid1)
    
    new 
Float:mins[3] = {-8.0,-8.0,-8.0}
    new 
Float:maxs[3] = {0.0 0.0 0.0}
    
entity_set_size(NAME_ENTITYminsmaxs)
    
    
entity_set_int(NAME_ENTITYEV_INT_movetype6)
    
    
entity_set_model(NAME_ENTITYmodel_plasma_rifle)
    
set_rendering(NAME_ENTITYkRenderFxGlowShell2015020kRenderNormal16)


Ahí acabo de probar y sigue sin aparecer, pruebo con el comando y funciona correctamente, pero llamandola con el nombre del map y todo en orden desde el plugin_init no me la hace aparecer.
Responder
#12
proba llamandolo con un task en 0.1
Responder
#13
(17/11/2018, 05:17 PM)warrior escribió: proba llamandolo con un task en 0.1
Acabo de probar así
Código PHP:
    new szMap[64]; get_mapname(szMapcharsmax(szMap))
    if (
equal(szMap"zm_dark") != -1)
        
set_task(0.1"entidad_plasma_rifle"
pero no funciona, no me abre el plugin y me salta esto:
Código PHP:
L 11/17/2018 18:32:16: Function is not present (function "entidad_plasma_rifle") (plugin "plug1.amxx")
L 11/17/2018 18:32:16: [AMXXDisplaying debug trace (plugin "plug1.amxx")
L 11/17/2018 18:32:16: [AMXXRun time error 10native error (native "set_task")
L 11/17/2018 18:32:16: [AMXX]    [0plug1.sma::plugin_init (line 1179
Revisando otros tasks de otros plugins se me ocurrió poner public detrás de la función "entidad_plasma_rifle" y ahí probando con el task me abre el plugin, pero sigue sin aparecer sola la entidad.
Responder
#14
(17/11/2018, 05:12 PM)Masii- escribió:
(17/11/2018, 04:23 PM)kikizon2 escribió:
Código PHP:
#include <amxmodx>
#include <engine>

public plugin_init()
{
    new 
szMap[64]; get_mapname(szMapcharsmax(szMap));
    if( 
equal(szMap"zm_dark3[ZK_GALAXY]") != -1)
        
entidad_plasma_rifle
}

entidad_plasma_rifle()
{
    new 
NAME_ENTITY create_entity("info_target")
    
entity_set_string(NAME_ENTITYEV_SZ_classname"ent_plasma_rifle")
    
    
// Estas son tus coordenadas del mapa ?)
    
new Float:iOriginDEF[3] = {-0.563478, -390.799438, -667.968750}
    
entity_set_vector(NAME_ENTITYEV_VEC_originiOriginDEF)
    
    
entity_set_int(NAME_ENTITYEV_INT_solid1)
    
    new 
Float:mins[3] = {-8.0,-8.0,-8.0}
    new 
Float:maxs[3] = {0.0 0.0 0.0}
    
entity_set_size(NAME_ENTITYminsmaxs)
    
    
entity_set_int(NAME_ENTITYEV_INT_movetype6)
    
    
entity_set_model(NAME_ENTITYmodel_plasma_rifle)
    
set_rendering(NAME_ENTITYkRenderFxGlowShell2015020kRenderNormal16)


Ahí acabo de probar y sigue sin aparecer, pruebo con el comando y funciona correctamente, pero llamandola con el nombre del map y todo en orden desde el plugin_init no me la hace aparecer.

Y si dejas el codigo completo, con esa porción no se puede hacer mucho, además, estás seguro que esas son las coordenadas correctas?
[Imagen: b_350_20_323957_202743_f19a15_111111.png]

Estudia siempre; el tiempo es oro, lo material se puede recuperar pero el tiempo no se puede recuperar.
(02/10/2016, 05:05 PM)meTaLiCroSS escribió: Siempre me gusta ayudar cuando alguien esta interesado realmente en ver que esta programando.
(08/08/2019, 05:32 PM)meTaLiCroSS escribió: grax x el dato cr4ck


Mis aportes

PLUGINS
MAPAS
Menú LANG [SF] Sistema de Frags
Say System (Admin Prefix)
Responder
#15
Cita:Y si dejas el codigo completo, con esa porción no se puede hacer mucho, además, estás seguro que esas son las coordenadas correctas?

Si, estoy seguro de que son las coordenadas correctas porque probé de hacer aparecer a la entidad con un comando y funciona.

Es todo lo que hay con respecto a esa entidad, si me está faltando algo no se que puede ser.
Responder
#16
Que comando usas para colocar la entidad?.
Responder
#17
Código PHP:
public plugin_init()
{
    
register_clcmd("say /plasma""CmdPlasma"
}

public 
CmdPlasma(id)
{
    
entidad_plasma_rifle

Responder
#18
Dios, te dijeron que mandaras el codigo completo y nunca lo mandaste...

Código PHP:
#include <amxmodx>
#include <amxmisc>
#include <engine>

#define VERSION "1.0"

/* ENT DATA */
new const ENT_NAME[] = "nombredeentidadxd";
new const 
ENT_MODEL[] = "models/tumodel.mdl";
new const 
Float:ENT_MINS[3] = { -8.0, -8.0, -8.0 };
new const 
Float:ENT_MAXS[3] = { 0.0 0.0 0.0 };
const 
ENT_SOLID 1;
const 
ENT_MOVETYPE 6;


new 
Float:g_fOrigin[3], g_iEnt;


public 
plugin_precache() precache_model(ENT_MODEL);
public 
plugin_init()
{
    
register_plugin("Create Entity [TEST PURPOSES]"VERSION"kikizon / LSSTUDIOS.XYZ");
    
    
register_clcmd("say /create""clcmdCreate");

    
LoadFile();
}

LoadFile()
{
    new 
szPath[64], szMap[64]; get_configsdir(szPathcharsmax(szPath)); get_mapname(szMapcharsmax(szMap));
    
format(szPathcharsmax(szPath), "%s/ce/%s.txt"szPathszMap);

    if(
file_exists(szPath))
    {        
        new 
iFile fopen(szPath"rt");
        if (!
iFile) return;

        new 
szLineData[128], iLine;
        while(!
feof(iFile))
        {
            
fgets(iFileszLineDatacharsmax(szLineData));
            
replace(szLineDatacharsmax(szLineData), "^n""");
            if(
iLine) continue;

            new 
szBuffer[3][64];
            
parse(szLineDataszBuffer[0], charsmax(szBuffer[]), szBuffer[1], charsmax(szBuffer[]), szBuffer[2], charsmax(szBuffer[]));

            
g_fOrigin[0] = str_to_float(szBuffer[0]);
            
g_fOrigin[1] = str_to_float(szBuffer[1]);
            
g_fOrigin[2] = str_to_float(szBuffer[2]);

            ++
iLine;
        }

        if(
iLineCreateEnt();
        
fclose(iFile);
    }
}

SaveFile()
{
    new 
szPath[64], szMap[64]; get_configsdir(szPathcharsmax(szPath)); get_mapname(szMapcharsmax(szMap));
    
format(szPathcharsmax(szPath), "%s/ce/%s.txt"szPathszMap);

    if(
file_exists(szPath))
    {        
        new 
iFile fopen(szPath"rt");
        if (!
iFile) return;

        new 
szBuffer[64];
        
formatex(szBuffercharsmax(szBuffer), "%f %f %f"g_fOrigin[0], g_fOrigin[1], g_fOrigin[2]);

        
write_file(szPathszBuffer1);
        
        
fclose(iFile);
    }
}

public 
clcmdCreate(index)
{
    new 
g_iOrigin[3]; get_user_origin(indexg_iOrigin);
    
IVecFVec(g_iOriging_fOrigin);
    
CreateEnt();
    
SaveFile();

    return 
PLUGIN_HANDLED;
}

CreateEnt()
{
    
g_iEnt create_entity("info_target");
    if(!
g_iEnt) return;

    
entity_set_string(g_iEntEV_SZ_classnameENT_NAME);

    
entity_set_vector(g_iEntEV_VEC_origing_fOrigin);

    
entity_set_int(g_iEntEV_INT_solidENT_SOLID);
    
entity_set_int(g_iEntEV_INT_movetypeENT_MOVETYPE);
    
entity_set_size(g_iEntENT_MINSENT_MAXS);

    
entity_set_model(g_iEntENT_MODEL);


No esta testeado, lo hice rapido
[Imagen: bvpq9q-6.png]

NO DOY AYUDA VIA MENSAJE PRIVADO

* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Responder


Salto de foro:


Usuarios navegando en este tema: 1 invitado(s)