Mensajes: 63
Temas: 10
Registro en: Feb 2015
Reputación:
0
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(mapname, charsmax(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_ENTITY, EV_SZ_classname, "ent_plasma_rifle") new iOriginI[3] new Float:iOriginF[3] get_user_origin(id, iOriginI, 3) IVecFVec(iOriginI, iOriginF) entity_set_vector(NAME_ENTITY, EV_VEC_origin, iOriginF) new Float:iOriginDEF[3] = {-0.563478, -390.799438, -667.968750} entity_set_vector(NAME_ENTITY, EV_VEC_origin, iOriginDEF) entity_set_int(NAME_ENTITY, EV_INT_solid, 1) new Float:mins[3] = {-8.0,-8.0,-8.0} new Float:maxs[3] = {0.0 , 0.0 , 0.0} entity_set_size(NAME_ENTITY, mins, maxs) entity_set_int(NAME_ENTITY, EV_INT_movetype, 6) entity_set_model(NAME_ENTITY, model_plasma_rifle) set_rendering(NAME_ENTITY, kRenderFxGlowShell, 20, 150, 20, kRenderNormal, 16) }
Mensajes: 20
Temas: 11
Registro en: Feb 2018
Reputación:
0
Sé más especifico, donde queres crear la entidad? En alguna parte X del mapa? O en la posicion del player?
Mensajes: 63
Temas: 10
Registro en: Feb 2015
Reputación:
0
14/11/2018, 10:37 PM
(Última modificación: 14/11/2018, 10:38 PM por Masii-. Edited 1 time in total.)
(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é.
Mensajes: 1,182
Temas: 18
Registro en: Oct 2013
Reputación:
16
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_ENTITY, EV_VEC_origin, iOriginDEF)
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 test( id ) { new Float:iOrigin[ 3 ]; pev( id, pev_origin , iOrigin ); client_print( id, print_chat, "X: %f --- Y: %f --- Z: %f", iOrigin[ 0 ], iOrigin[ 1 ], iOrigin[ 2 ] ); }
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
Mensajes: 63
Temas: 10
Registro en: Feb 2015
Reputación:
0
(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_ENTITY, EV_VEC_origin, iOriginDEF)
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 test( id ) { new Float:iOrigin[ 3 ]; pev( id, pev_origin , iOrigin ); client_print( id, print_chat, "X: %f --- Y: %f --- Z: %f", iOrigin[ 0 ], iOrigin[ 1 ], iOrigin[ 2 ] ); }
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
Mensajes: 6,664
Temas: 81
Registro en: Jan 2014
Reputación:
68
En plugin init podrias hacerla sin problema
► NO DOY AYUDA VIA MENSAJE PRIVADO ◄
* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Mensajes: 63
Temas: 10
Registro en: Feb 2015
Reputación:
0
(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 = 1; id <= g_maxplayers; id++) { new mapname[32]; get_mapname(mapname, charsmax(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.
Mensajes: 6,664
Temas: 81
Registro en: Jan 2014
Reputación:
68
Creo que seria mejor que especifiques que es loque quieres lograr para poder brindarte una ayuda mas adecuada
► NO DOY AYUDA VIA MENSAJE PRIVADO ◄
* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Mensajes: 63
Temas: 10
Registro en: Feb 2015
Reputación:
0
17/11/2018, 11:50 AM
(Última modificación: 17/11/2018, 11:50 AM por Masii-. Edited 1 time in total.)
(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_ENTITY, EV_SZ_classname, "ent_plasma_rifle") new iOriginI[3] new Float:iOriginF[3] get_user_origin(id, iOriginI, 3) IVecFVec(iOriginI, iOriginF) entity_set_vector(NAME_ENTITY, EV_VEC_origin, iOriginF) new Float:iOriginDEF[3] = {-0.563478, -390.799438, -667.968750} entity_set_vector(NAME_ENTITY, EV_VEC_origin, iOriginDEF) entity_set_int(NAME_ENTITY, EV_INT_solid, 1) new Float:mins[3] = {-8.0,-8.0,-8.0} new Float:maxs[3] = {0.0 , 0.0 , 0.0} entity_set_size(NAME_ENTITY, mins, maxs) entity_set_int(NAME_ENTITY, EV_INT_movetype, 6) entity_set_model(NAME_ENTITY, model_plasma_rifle) set_rendering(NAME_ENTITY, kRenderFxGlowShell, 20, 150, 20, kRenderNormal, 16) }
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.
Mensajes: 6,664
Temas: 81
Registro en: Jan 2014
Reputación:
68
17/11/2018, 04:23 PM
(Última modificación: 21/04/2019, 08:19 PM por kikizon2. Edited 1 time in total.)
Código PHP: #include <amxmodx> #include <engine>
public plugin_init() { new szMap[64]; get_mapname(szMap, charsmax(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_ENTITY, EV_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_ENTITY, EV_VEC_origin, iOriginDEF) entity_set_int(NAME_ENTITY, EV_INT_solid, 1) new Float:mins[3] = {-8.0,-8.0,-8.0} new Float:maxs[3] = {0.0 , 0.0 , 0.0} entity_set_size(NAME_ENTITY, mins, maxs) entity_set_int(NAME_ENTITY, EV_INT_movetype, 6) entity_set_model(NAME_ENTITY, model_plasma_rifle) set_rendering(NAME_ENTITY, kRenderFxGlowShell, 20, 150, 20, kRenderNormal, 16) }
► NO DOY AYUDA VIA MENSAJE PRIVADO ◄
* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
Mensajes: 63
Temas: 10
Registro en: Feb 2015
Reputación:
0
(17/11/2018, 04:23 PM)kikizon2 escribió: Código PHP: #include <amxmodx> #include <engine>
public plugin_init() { new szMap[64]; get_mapname(szMap, charsmax(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_ENTITY, EV_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_ENTITY, EV_VEC_origin, iOriginDEF) entity_set_int(NAME_ENTITY, EV_INT_solid, 1) new Float:mins[3] = {-8.0,-8.0,-8.0} new Float:maxs[3] = {0.0 , 0.0 , 0.0} entity_set_size(NAME_ENTITY, mins, maxs) entity_set_int(NAME_ENTITY, EV_INT_movetype, 6) entity_set_model(NAME_ENTITY, model_plasma_rifle) set_rendering(NAME_ENTITY, kRenderFxGlowShell, 20, 150, 20, kRenderNormal, 16) }
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.
Mensajes: 546
Temas: 65
Registro en: Jan 2017
Reputación:
4
proba llamandolo con un task en 0.1
Mensajes: 63
Temas: 10
Registro en: Feb 2015
Reputación:
0
17/11/2018, 06:37 PM
(Última modificación: 17/11/2018, 06:38 PM por Masii-. Edited 2 times in total.)
(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(szMap, charsmax(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: [AMXX] Displaying debug trace (plugin "plug1.amxx") L 11/17/2018 - 18:32:16: [AMXX] Run time error 10: native error (native "set_task") L 11/17/2018 - 18:32:16: [AMXX] [0] plug1.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.
Mensajes: 4,247
Temas: 94
Registro en: Mar 2014
Reputación:
58
(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(szMap, charsmax(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_ENTITY, EV_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_ENTITY, EV_VEC_origin, iOriginDEF) entity_set_int(NAME_ENTITY, EV_INT_solid, 1) new Float:mins[3] = {-8.0,-8.0,-8.0} new Float:maxs[3] = {0.0 , 0.0 , 0.0} entity_set_size(NAME_ENTITY, mins, maxs) entity_set_int(NAME_ENTITY, EV_INT_movetype, 6) entity_set_model(NAME_ENTITY, model_plasma_rifle) set_rendering(NAME_ENTITY, kRenderFxGlowShell, 20, 150, 20, kRenderNormal, 16) }
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?
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
PLUGINSMAPAS
Menú LANG
[SF] Sistema de Frags
Say System (Admin Prefix)
Mensajes: 63
Temas: 10
Registro en: Feb 2015
Reputación:
0
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.
Mensajes: 3,077
Temas: 33
Registro en: May 2017
Reputación:
34
Que comando usas para colocar la entidad?.
Mensajes: 63
Temas: 10
Registro en: Feb 2015
Reputación:
0
Código PHP: public plugin_init() { register_clcmd("say /plasma", "CmdPlasma" }
public CmdPlasma(id) { entidad_plasma_rifle }
Mensajes: 6,664
Temas: 81
Registro en: Jan 2014
Reputación:
68
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(szPath, charsmax(szPath)); get_mapname(szMap, charsmax(szMap)); format(szPath, charsmax(szPath), "%s/ce/%s.txt", szPath, szMap);
if(file_exists(szPath)) { new iFile = fopen(szPath, "rt"); if (!iFile) return;
new szLineData[128], iLine; while(!feof(iFile)) { fgets(iFile, szLineData, charsmax(szLineData)); replace(szLineData, charsmax(szLineData), "^n", ""); if(iLine) continue;
new szBuffer[3][64]; parse(szLineData, szBuffer[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(iLine) CreateEnt(); fclose(iFile); } }
SaveFile() { new szPath[64], szMap[64]; get_configsdir(szPath, charsmax(szPath)); get_mapname(szMap, charsmax(szMap)); format(szPath, charsmax(szPath), "%s/ce/%s.txt", szPath, szMap);
if(file_exists(szPath)) { new iFile = fopen(szPath, "rt"); if (!iFile) return;
new szBuffer[64]; formatex(szBuffer, charsmax(szBuffer), "%f %f %f", g_fOrigin[0], g_fOrigin[1], g_fOrigin[2]);
write_file(szPath, szBuffer, 1); fclose(iFile); } }
public clcmdCreate(index) { new g_iOrigin[3]; get_user_origin(index, g_iOrigin); IVecFVec(g_iOrigin, g_fOrigin); CreateEnt(); SaveFile();
return PLUGIN_HANDLED; }
CreateEnt() { g_iEnt = create_entity("info_target"); if(!g_iEnt) return;
entity_set_string(g_iEnt, EV_SZ_classname, ENT_NAME);
entity_set_vector(g_iEnt, EV_VEC_origin, g_fOrigin);
entity_set_int(g_iEnt, EV_INT_solid, ENT_SOLID); entity_set_int(g_iEnt, EV_INT_movetype, ENT_MOVETYPE); entity_set_size(g_iEnt, ENT_MINS, ENT_MAXS);
entity_set_model(g_iEnt, ENT_MODEL); }
No esta testeado, lo hice rapido
► NO DOY AYUDA VIA MENSAJE PRIVADO ◄
* Si requieres algún servicio de pago puedes contactarme vía MP o en mi facebook
|