hlmod.hu
https://hlmod.hu/

Sebzés visszaverő
https://hlmod.hu/viewtopic.php?f=10&t=8359
Oldal: 1 / 1

Szerző:  Gatshow [2013.05.03. 20:58 ]
Hozzászólás témája:  Sebzés visszaverő

Helló!

Az lenne a kérésem hogy: van egy plugin ami azt csinálja hogy ha "Hostage"-ot (túszt) lövöd akkor vissza veri a sebzést. nekem ez úgy kéne hogy játékosra hasson, de az esélye 1:3 azaz 1 a 3-hoz! ha lehet egy "Public Function"-on belül! cvar nem kell csak az amit írtam!!

Egybe foglalva: Ha lövik az embert egy 1 a 3-hoz az esélye legyen hogy vissza veri a kapott sebzést. A modot ha lehet 1 "Public Function"-on megírni

Eredeti túszos sma:
SMA Forráskód: [ Mindet kijelol ]
  1. /***************************
  2. ** Kitalálta: Matthew
  3. ***************************/
  4.  
  5. #include <amxmodx>
  6. #include <hamsandwich>
  7. #include <fakemeta>
  8.  
  9. #define PLUGIN "Tusz bosszu"
  10. #define VERSION "1.0"
  11. #define AUTHOR "Idarav"
  12.  
  13. new cvar_szazalek
  14. new cvar_sebzodik
  15.  
  16. new dmg[33]
  17.  
  18. public plugin_init() {
  19. register_plugin(PLUGIN, VERSION, AUTHOR)
  20.  
  21. RegisterHam(Ham_TakeDamage, "hostage_entity", "hostTakeDamage_pre", 0)
  22. RegisterHam(Ham_TakeDamage, "hostage_entity", "hostTakeDamage_post", 1)
  23.  
  24. cvar_sebzodik = register_cvar("tb_sebzodik", "1")
  25. cvar_szazalek = register_cvar("tb_szazalek", "100")
  26. }
  27.  
  28.  
  29. public hostTakeDamage_pre(iHostage, iInflictor, iAttacker, Float:flDamage, iDamageType)
  30. {
  31. if( ExecuteHam(Ham_IsPlayer, iAttacker) )
  32. {
  33. dmg[iAttacker] = pev(iHostage, pev_health)
  34.  
  35. if(!get_pcvar_num(cvar_sebzodik))
  36. return HAM_SUPERCEDE
  37. }
  38. return HAM_IGNORED
  39. }
  40.  
  41. public hostTakeDamage_post(iHostage, iInflictor, iAttacker, Float:flDamage, iDamageType)
  42. {
  43. if( ExecuteHam(Ham_IsPlayer, iAttacker) )
  44. {
  45. flDamage = (dmg[iAttacker]-pev(iHostage, pev_health))*get_pcvar_num(cvar_szazalek)/100+0.0
  46. ExecuteHam(Ham_TakeDamage, iAttacker, iHostage, iHostage, flDamage, iDamageType);
  47. if(flDamage < get_user_health(iAttacker))
  48. {
  49. set_hudmessage(255, 85, 85, -1.0, 0.25, 1, 6.0, 3.0)
  50. show_hudmessage(iAttacker, "!! VIGYAZZ !!^nMEGSEBEZTEL EGY TUSZT")
  51. }else{
  52. client_print(iAttacker, print_chat, "Megsebeztel egy tuszt, ezert haltal meg.")
  53. }
  54. dmg[iAttacker]=0
  55. }
  56. return HAM_IGNORED
  57. }
  58.  


Ui: A valódi oka hogy azt kérem hogy 1 "Public Function"-on belül legyen mert egy Cod Mod tárgyát szeretném ezzel megcsinálni. (SMA-ja a Cod Mod-nak: ITT)

Szerző:  fear_ezmegmi [2013.05.03. 23:44 ]
Hozzászólás témája:  Re: Sebzés visszaverő

SMA Forráskód: [ Mindet kijelol ]
  1. /***************************
  2. ** Kitalálta: Matthew
  3. ***************************/
  4.  
  5. #include <amxmodx>
  6. #include <hamsandwich>
  7. #include <fakemeta>
  8.  
  9. #define PLUGIN "Tusz bosszu"
  10. #define VERSION "1.0"
  11. #define AUTHOR "Idarav"
  12.  
  13. new cvar_szazalek
  14. new cvar_sebzodik
  15.  
  16. new dmg[33]
  17.  
  18. public plugin_init() {
  19. register_plugin(PLUGIN, VERSION, AUTHOR)
  20.  
  21. RegisterHam(Ham_TakeDamage, "hostage_entity", "hostTakeDamage_pre", 0)
  22. RegisterHam(Ham_TakeDamage, "hostage_entity", "hostTakeDamage_post", 1)
  23.  
  24. cvar_sebzodik = register_cvar("tb_sebzodik", "1")
  25. cvar_szazalek = register_cvar("tb_szazalek", "100")
  26. }
  27.  
  28.  
  29. public hostTakeDamage_pre(iHostage, iInflictor, iAttacker, Float:flDamage, iDamageType)
  30. {
  31. if( ExecuteHam(Ham_IsPlayer, iAttacker) )
  32. {
  33. dmg[iAttacker] = pev(iHostage, pev_health)
  34.  
  35. if(!get_pcvar_num(cvar_sebzodik))
  36. return HAM_SUPERCEDE
  37. }
  38. return HAM_IGNORED
  39. }
  40.  
  41. public hostTakeDamage_post(iHostage, iInflictor, iAttacker, Float:flDamage, iDamageType)
  42. {
  43. if( ExecuteHam(Ham_IsPlayer, iAttacker) )
  44. {
  45. new asd = random_num(1,3);
  46.  
  47. if(asd == 1)
  48. {
  49. flDamage = (dmg[iAttacker]-pev(iHostage, pev_health))*get_pcvar_num(cvar_szazalek)/100+0.0
  50. ExecuteHam(Ham_TakeDamage, iAttacker, iHostage, iHostage, flDamage, iDamageType);
  51. if(flDamage < get_user_health(iAttacker))
  52. {
  53. set_hudmessage(255, 85, 85, -1.0, 0.25, 1, 6.0, 3.0)
  54. show_hudmessage(iAttacker, "!! VIGYAZZ !!^nMEGSEBEZTEL EGY TUSZT")
  55. }else{
  56. client_print(iAttacker, print_chat, "Megsebeztel egy tuszt, ezert haltal meg.")
  57. }
  58. dmg[iAttacker]=0
  59. }
  60. }
  61. return HAM_IGNORED
  62. }
  63.  

Szerző:  Silent [2013.05.04. 05:42 ]
Hozzászólás témája:  Re: Sebzés visszaverő

Mi az, hogy "Egy Public Functionon belül"?

Ezmegmi, amúgy így 1 a négyhez az esélye..
Lehet 0,1,2,3...

Szerző:  fear_ezmegmi [2013.05.04. 11:40 ]
Hozzászólás témája:  Re: Sebzés visszaverő

Silent írta:
Mi az, hogy "Egy Public Functionon belül"?

Ezmegmi, amúgy így 1 a négyhez az esélye..
Lehet 0,1,2,3...

Javítva.

Szerző:  Gatshow [2013.05.04. 12:32 ]
Hozzászólás témája:  Re: Sebzés visszaverő

Silent írta:
Mi az, hogy "Egy Public Functionon belül"?

Ezmegmi, amúgy így 1 a négyhez az esélye..
Lehet 0,1,2,3...


Azt úgy értettem hogy egy ilyenen belül:
Ez az alap ha AMXX Studio-n belül rákattintasz a "Public function" gombra.

SMA Forráskód: [ Mindet kijelol ]
  1. public Function()
  2. {
  3.  
  4. }
  5.  


amúgy oké hogy megvan modba de ha én azt szeretném megcsinálni hogy egy bizonyos dologra hasson (a modban tárgynak hívják, amit ölés után kapsz) egy tárgy meg valásítása így kezdődik: (ez pl.: +100 hp de lassabban fut)

SMA Forráskód: [ Mindet kijelol ]
  1. if(information_item_player[id][0] == szám)
  2. {
  3. maksymalne_zdrowie_player[id] += 100;
  4. fast_player[id] -= 0.4;
  5. }


és ezt szeretném megvalósítani csak egy másik helyére, de nem tudom hogy kell.. ez lenne itt a fő kérés!
mint pl ahogy vissza hozták a "Long Jump"-ot mint tárgyat így:

SMA Forráskód: [ Mindet kijelol ]
  1. if(information_item_player[id][0] == 27 && button & IN_JUMP && button & IN_DUCK && flags & FL_ONGROUND && get_gametime() > information_item_player[id][1]+4.0)
  2. {
  3. information_item_player[id][1] = floatround(get_gametime());
  4. new Float:velocity[3];
  5. VelocityByAim(id, 700, velocity);
  6. velocity[2] = random_float(265.0,285.0);
  7. entity_set_vector(id, EV_VEC_velocity, velocity);
  8. }


szóval ezt hogy sebzés vissza verés megoldaná nekem ezt így valaki???

Oldal: 1 / 1 Minden időpont UTC+02:00 időzóna szerinti
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/