hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.03.28. 23:12



Jelenlévő felhasználók

Jelenleg 212 felhasználó van jelen :: 0 regisztrált, 0 rejtett és 212 vendég

A legtöbb felhasználó (1565 fő) 2020.11.21. 11:26-kor tartózkodott itt.

Regisztrált felhasználók: nincs regisztrált felhasználó az elmúlt 5 percben aktív felhasználók alapján

Utoljára aktív
Ahhoz hogy lásd ki volt utoljára aktív, be kell jelentkezned.



Az oldal teljeskörű
használatához regisztrálj.

Regisztráció

Kereső


Új téma nyitása  Hozzászólás a témához  [ 7 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: C4 Robbanás, vagy Breakable Ent
HozzászólásElküldve: 2016.03.29. 09:51 
Offline
Fórum Moderátor
Avatar

Csatlakozott: 2014.05.01. 13:18
Hozzászólások: 627
Megköszönt másnak: 61 alkalommal
Megköszönték neki: 104 alkalommal
Üdv!

Újra írom a kérdést, mert egészen másra lenne szükségem már.
Némely func_breakable entity-vel rendelkező objektumot átállítottam func_wallra. Ezzel nincs is gond remekül szuperál, de egy gond azonban akadt vele. Mégpedig az, hogy a C4 által elért módosított entyti-k ugyan felrobbannak, de a következő körben, már nem 'spawn'-olnak újra. Maga a dolog így nekem megfelel, hogy a C4 robbanás után függetlenül, hogy már nem breakable entity-vel rendlkeznek felrobbannak, de az mér probléma, hogy nem jelennek meg következő körben az objektumok a pályán.


A hozzászólást 1 alkalommal szerkesztették, utoljára JohanCorn 2016.03.29. 10:49-kor.

Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: C4 Robbanás, vagy Breakable Ent
HozzászólásElküldve: 2016.03.29. 10:12 
Offline
Fanatikus
Avatar

Csatlakozott: 2016.03.27. 12:30
Hozzászólások: 173
Megköszönt másnak: 24 alkalommal
Megköszönték neki: 15 alkalommal
Várj még 1x leírod mert nem értem XDDD


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: C4 Robbanás, vagy Breakable Ent
HozzászólásElküldve: 2016.03.29. 10:51 
Offline
Fórum Moderátor
Avatar

Csatlakozott: 2014.05.01. 13:18
Hozzászólások: 627
Megköszönt másnak: 61 alkalommal
Megköszönték neki: 104 alkalommal
Átfogalmaztam. Tekintve, hogy a kérdést is meg kellett változtatnom, mert már kicsit másképpen kellene a problémát küszöbölni.


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: C4 Robbanás, vagy Breakable Ent
HozzászólásElküldve: 2016.04.11. 21:33 
Offline
Tiszteletbeli
Avatar

Csatlakozott: 2014.09.08. 22:21
Hozzászólások: 3014
Megköszönt másnak: 96 alkalommal
Megköszönték neki: 555 alkalommal
https://developer.valvesoftware.com/wiki/Point_template

_________________
GitHub - mforce


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: C4 Robbanás, vagy Breakable Ent
HozzászólásElküldve: 2016.04.12. 20:54 
Offline
Jómunkásember
Avatar

Csatlakozott: 2013.01.15. 19:04
Hozzászólások: 407
Megköszönt másnak: 17 alkalommal
Megköszönték neki: 176 alkalommal
Gondolom azt a plugint használod amit régen írtan neked.
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <fakemeta>
  4. #include <engine>
  5.  
  6. #define PLUGIN "Breakable ent editor"
  7. #define VERSION "1.0"
  8. #define AUTHOR "Demon"
  9.  
  10. new ents[100][32], g_total;
  11. new g_save_file[200];
  12.  
  13. public plugin_precache()
  14. {
  15.     get_configsdir(g_save_file, 199);
  16.     add(g_save_file, 199, "/edited_ents", 0);
  17.  
  18.     if( !dir_exists(g_save_file) )
  19.         mkdir(g_save_file);
  20.  
  21.     new map[64];
  22.     get_mapname(map, 63);
  23.     strtolower(map);
  24.  
  25.     format(g_save_file, 199, "%s/%s.txt", g_save_file, map);
  26.  
  27.     LoadEntities();
  28.  
  29.     return PLUGIN_CONTINUE;
  30. }
  31.  
  32. public plugin_init() {
  33.     register_plugin(PLUGIN, VERSION, AUTHOR);
  34.  
  35.     register_clcmd("e_edit", "CmdEdit", ADMIN_KICK, "-- breakable entity szerkesztes");
  36.     register_concmd("e_reset", "CmdReset", ADMIN_KICK, "-- osszes entity visszaallitas");
  37.  
  38.     register_event("HLTV", "EventNewRound", "a", "1=0", "2=0");
  39.     register_logevent("EventNewRound", 2, "1=Round_Start");
  40. }
  41.  
  42. public EventNewRound()
  43. {
  44.     set_task(1.5, "convert_ents");
  45. }
  46.  
  47. public convert_ents()
  48. {
  49.     for(new i; i < g_total; i++)
  50.     {
  51.         new ent = find_ent_by_model(-1, "func_breakable", ents[i]);
  52.         if(ent > 0)
  53.             set_pev(ent, pev_classname, "func_wall");
  54.     }
  55. }
  56.  
  57. public CmdEdit(plr, level, cid)
  58. {
  59.     if(!cmd_access(plr, level, cid, 1))
  60.         return PLUGIN_HANDLED;
  61.  
  62.     new ent = GetAimAtEnt(plr);
  63.  
  64.     if(pev_valid(ent))
  65.     {
  66.         static classname[64];
  67.         pev(ent, pev_classname, classname, 63);
  68.  
  69.         if(!equali(classname, "func_breakable"))
  70.         {
  71.             print_color(plr, "!gA nA©zett entity nem func_breakable entity.");
  72.             return PLUGIN_HANDLED;
  73.         }
  74.  
  75.         new model[32];
  76.         pev(ent, pev_model, model, 31);
  77.  
  78.         set_pev(ent, pev_classname, "func_wall");
  79.  
  80.         copy(ents[g_total], 31, model);
  81.         g_total++;
  82.  
  83.         SaveEntities();
  84.  
  85.         print_color(plr, "!gA nA©zett entity sikeresen szerkesztve lett.");
  86.     }
  87.  
  88.     return PLUGIN_HANDLED;
  89. }
  90.  
  91. public CmdReset(plr, level, cid)
  92. {
  93.     if(!cmd_access(plr, level, cid, 1))
  94.         return PLUGIN_HANDLED;
  95.  
  96.     g_total = 0;
  97.     if(file_exists(g_save_file))
  98.         delete_file(g_save_file);
  99.  
  100.     console_print(plr, "Az osszes szerkesztett entity mapvaltas utan visszaall az eredeti adatokra.");
  101.  
  102.     return PLUGIN_HANDLED;
  103. }
  104.  
  105. LoadEntities()
  106. {
  107.     if(file_exists(g_save_file))
  108.     {
  109.         g_total = 0;
  110.         new f = fopen(g_save_file, "rt");
  111.  
  112.         new data[36], model[32];
  113.  
  114.         while(!feof(f))
  115.         {
  116.             fgets(f, data, 35);
  117.  
  118.             parse(data, model, 31);
  119.  
  120.             copy(ents[g_total], 31, model);
  121.             g_total++;
  122.         }
  123.  
  124.         fclose(f);
  125.  
  126.         return 1;
  127.     }
  128.  
  129.     return 0;
  130. }
  131.  
  132. SaveEntities()
  133. {
  134.     if(file_exists(g_save_file))
  135.         delete_file(g_save_file);
  136.     new f = fopen(g_save_file, "wt");
  137.  
  138.     new data[36];
  139.  
  140.     for(new i = 0; i < g_total; i++)
  141.     {
  142.         formatex(data, 35, "^"%s^"^n", ents[i]);
  143.  
  144.         fputs(f, data);
  145.     }
  146.  
  147.     fclose(f);
  148.  
  149.     return 1;
  150. }
  151.  
  152. GetAimAtEnt(plr)
  153. {
  154.     static Float:start[3], Float:view_ofs[3], Float:dest[3], i;
  155.  
  156.     pev(plr, pev_origin, start);
  157.     pev(plr, pev_view_ofs, view_ofs);
  158.  
  159.     for( i = 0; i < 3; i++ )
  160.         start[i] += view_ofs[i];
  161.  
  162.     pev(plr, pev_v_angle, dest);
  163.     engfunc(EngFunc_MakeVectors, dest);
  164.     global_get(glb_v_forward, dest);
  165.  
  166.     for( i = 0; i < 3; i++ )
  167.     {
  168.         dest[i] *= 9999.0;
  169.         dest[i] += start[i];
  170.     }
  171.  
  172.     engfunc(EngFunc_TraceLine, start, dest, DONT_IGNORE_MONSTERS, plr, 0);
  173.  
  174.     return get_tr2(0, TR_pHit);
  175. }
  176.  
  177. stock print_color(const id, const input[], any:...)
  178. {
  179.         new count = 1, players[32];
  180.         static msg[191];
  181.         vformat(msg, 190, input, 3);
  182.  
  183.         replace_all(msg, 190, "!g", "^4");
  184.         replace_all(msg, 190, "!y", "^1");
  185.         replace_all(msg, 190, "!t", "^3");  
  186.  
  187.         if (id) players[0] = id; else get_players(players, count, "ch");
  188.         {
  189.                 for (new i = 0; i < count; i++)
  190.                 {
  191.                         if (is_user_connected(players[i]))
  192.                         {
  193.                                 message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
  194.                                 write_byte(players[i]);
  195.                                 write_string(msg);
  196.                                 message_end();
  197.                         }
  198.                 }
  199.         }
  200.         return PLUGIN_HANDLED;
  201. }

Különbség a 2 plugin között, hogy itt van egy kis késleltetési idő körkezdés után, ami arra szükséges, hogy legyen ideje leswpannolni az entitynek és utána alakítja át func_wall-ra.

Ők köszönték meg demon nek ezt a hozzászólást: JohanCorn (2016.06.21. 23:12)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: C4 Robbanás, vagy Breakable Ent
HozzászólásElküldve: 2016.06.21. 23:11 
Offline
Fórum Moderátor
Avatar

Csatlakozott: 2014.05.01. 13:18
Hozzászólások: 627
Megköszönt másnak: 61 alkalommal
Megköszönték neki: 104 alkalommal
demon írta:
Gondolom azt a plugint használod amit régen írtan neked.
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <fakemeta>
  4. #include <engine>
  5.  
  6. #define PLUGIN "Breakable ent editor"
  7. #define VERSION "1.0"
  8. #define AUTHOR "Demon"
  9.  
  10. new ents[100][32], g_total;
  11. new g_save_file[200];
  12.  
  13. public plugin_precache()
  14. {
  15.     get_configsdir(g_save_file, 199);
  16.     add(g_save_file, 199, "/edited_ents", 0);
  17.  
  18.     if( !dir_exists(g_save_file) )
  19.         mkdir(g_save_file);
  20.  
  21.     new map[64];
  22.     get_mapname(map, 63);
  23.     strtolower(map);
  24.  
  25.     format(g_save_file, 199, "%s/%s.txt", g_save_file, map);
  26.  
  27.     LoadEntities();
  28.  
  29.     return PLUGIN_CONTINUE;
  30. }
  31.  
  32. public plugin_init() {
  33.     register_plugin(PLUGIN, VERSION, AUTHOR);
  34.  
  35.     register_clcmd("e_edit", "CmdEdit", ADMIN_KICK, "-- breakable entity szerkesztes");
  36.     register_concmd("e_reset", "CmdReset", ADMIN_KICK, "-- osszes entity visszaallitas");
  37.  
  38.     register_event("HLTV", "EventNewRound", "a", "1=0", "2=0");
  39.     register_logevent("EventNewRound", 2, "1=Round_Start");
  40. }
  41.  
  42. public EventNewRound()
  43. {
  44.     set_task(1.5, "convert_ents");
  45. }
  46.  
  47. public convert_ents()
  48. {
  49.     for(new i; i < g_total; i++)
  50.     {
  51.         new ent = find_ent_by_model(-1, "func_breakable", ents[i]);
  52.         if(ent > 0)
  53.             set_pev(ent, pev_classname, "func_wall");
  54.     }
  55. }
  56.  
  57. public CmdEdit(plr, level, cid)
  58. {
  59.     if(!cmd_access(plr, level, cid, 1))
  60.         return PLUGIN_HANDLED;
  61.  
  62.     new ent = GetAimAtEnt(plr);
  63.  
  64.     if(pev_valid(ent))
  65.     {
  66.         static classname[64];
  67.         pev(ent, pev_classname, classname, 63);
  68.  
  69.         if(!equali(classname, "func_breakable"))
  70.         {
  71.             print_color(plr, "!gA nA©zett entity nem func_breakable entity.");
  72.             return PLUGIN_HANDLED;
  73.         }
  74.  
  75.         new model[32];
  76.         pev(ent, pev_model, model, 31);
  77.  
  78.         set_pev(ent, pev_classname, "func_wall");
  79.  
  80.         copy(ents[g_total], 31, model);
  81.         g_total++;
  82.  
  83.         SaveEntities();
  84.  
  85.         print_color(plr, "!gA nA©zett entity sikeresen szerkesztve lett.");
  86.     }
  87.  
  88.     return PLUGIN_HANDLED;
  89. }
  90.  
  91. public CmdReset(plr, level, cid)
  92. {
  93.     if(!cmd_access(plr, level, cid, 1))
  94.         return PLUGIN_HANDLED;
  95.  
  96.     g_total = 0;
  97.     if(file_exists(g_save_file))
  98.         delete_file(g_save_file);
  99.  
  100.     console_print(plr, "Az osszes szerkesztett entity mapvaltas utan visszaall az eredeti adatokra.");
  101.  
  102.     return PLUGIN_HANDLED;
  103. }
  104.  
  105. LoadEntities()
  106. {
  107.     if(file_exists(g_save_file))
  108.     {
  109.         g_total = 0;
  110.         new f = fopen(g_save_file, "rt");
  111.  
  112.         new data[36], model[32];
  113.  
  114.         while(!feof(f))
  115.         {
  116.             fgets(f, data, 35);
  117.  
  118.             parse(data, model, 31);
  119.  
  120.             copy(ents[g_total], 31, model);
  121.             g_total++;
  122.         }
  123.  
  124.         fclose(f);
  125.  
  126.         return 1;
  127.     }
  128.  
  129.     return 0;
  130. }
  131.  
  132. SaveEntities()
  133. {
  134.     if(file_exists(g_save_file))
  135.         delete_file(g_save_file);
  136.     new f = fopen(g_save_file, "wt");
  137.  
  138.     new data[36];
  139.  
  140.     for(new i = 0; i < g_total; i++)
  141.     {
  142.         formatex(data, 35, "^"%s^"^n", ents[i]);
  143.  
  144.         fputs(f, data);
  145.     }
  146.  
  147.     fclose(f);
  148.  
  149.     return 1;
  150. }
  151.  
  152. GetAimAtEnt(plr)
  153. {
  154.     static Float:start[3], Float:view_ofs[3], Float:dest[3], i;
  155.  
  156.     pev(plr, pev_origin, start);
  157.     pev(plr, pev_view_ofs, view_ofs);
  158.  
  159.     for( i = 0; i < 3; i++ )
  160.         start[i] += view_ofs[i];
  161.  
  162.     pev(plr, pev_v_angle, dest);
  163.     engfunc(EngFunc_MakeVectors, dest);
  164.     global_get(glb_v_forward, dest);
  165.  
  166.     for( i = 0; i < 3; i++ )
  167.     {
  168.         dest[i] *= 9999.0;
  169.         dest[i] += start[i];
  170.     }
  171.  
  172.     engfunc(EngFunc_TraceLine, start, dest, DONT_IGNORE_MONSTERS, plr, 0);
  173.  
  174.     return get_tr2(0, TR_pHit);
  175. }
  176.  
  177. stock print_color(const id, const input[], any:...)
  178. {
  179.         new count = 1, players[32];
  180.         static msg[191];
  181.         vformat(msg, 190, input, 3);
  182.  
  183.         replace_all(msg, 190, "!g", "^4");
  184.         replace_all(msg, 190, "!y", "^1");
  185.         replace_all(msg, 190, "!t", "^3");  
  186.  
  187.         if (id) players[0] = id; else get_players(players, count, "ch");
  188.         {
  189.                 for (new i = 0; i < count; i++)
  190.                 {
  191.                         if (is_user_connected(players[i]))
  192.                         {
  193.                                 message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i]);
  194.                                 write_byte(players[i]);
  195.                                 write_string(msg);
  196.                                 message_end();
  197.                         }
  198.                 }
  199.         }
  200.         return PLUGIN_HANDLED;
  201. }

Különbség a 2 plugin között, hogy itt van egy kis késleltetési idő körkezdés után, ami arra szükséges, hogy legyen ideje leswpannolni az entitynek és utána alakítja át func_wall-ra.


Megint téma lett. Most ennek minden körben be kell állítania, hogy func_wall-ra változzon, mert amúgy körönként resetelődik?


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: C4 Robbanás, vagy Breakable Ent
HozzászólásElküldve: 2016.06.21. 23:14 
Offline
Jómunkásember
Avatar

Csatlakozott: 2013.01.15. 19:04
Hozzászólások: 407
Megköszönt másnak: 17 alkalommal
Megköszönték neki: 176 alkalommal
Igen.


Hozzászólás jelentése
Vissza a tetejére
   
Hozzászólások megjelenítése:  Rendezés  
Új téma nyitása  Hozzászólás a témához  [ 7 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 33 vendég


Nyithatsz új témákat ebben a fórumban.
Válaszolhatsz egy témára ebben a fórumban.
Nem szerkesztheted a hozzászólásaidat ebben a fórumban.
Nem törölheted a hozzászólásaidat ebben a fórumban.
Nem küldhetsz csatolmányokat ebben a fórumban.

Keresés:
Ugrás:  
Powered by phpBB® Forum Software © phpBB Limited
Magyar fordítás © Magyar phpBB Közösség
Portal: Kiss Portal Extension © Michael O'Toole