hlmod.hu
https://hlmod.hu/

Egyedi fegyver létrehozása
https://hlmod.hu/viewtopic.php?f=9&t=6450
Oldal: 2 / 4

Szerző:  HunGamer [ 2012.11.01. 18:00 ]
Hozzászólás témája:  Re: Egyedi fegyver létrehozása

peti.97 írta:
(Még olvastam vmi 6. slot sorról abba elv lehet újat létrehozni, de nem biztos)

Azt hiszem a weaponlist eventre gondolsz. Avval tényleg lehet cserélni a helyet (pl kést be rakod az 5ös helyre)

Szerző:  peti.97 [ 2012.11.01. 18:45 ]
Hozzászólás témája:  Re: Egyedi fegyver létrehozása

SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <engine>
  4.  
  5.  
  6. #define PLUGIN "kalapacs"
  7. #define VERSION "1.0"
  8. #define AUTHOR "Itep"
  9.  
  10. new bool:g_hasHammer[33];
  11. new const v_knife[] = "models/v_knife.mdl",
  12. p_knife[] = "models/p_knife.mdl",
  13. v_hammer[] = "models/v_hammer.mdl",
  14. p_hammer[] = "models/p_hammer.mdl";
  15.  
  16.  
  17.  
  18.  
  19.  
  20. public plugin_init() {
  21. register_plugin(PLUGIN, VERSION, AUTHOR)
  22. register_clcmd("amx_hammer", "Hammer", ADMIN_BAN,"amx_hammer <id>");
  23.  
  24. register_event("CurWeapon","elvalt","be","1=1");
  25. }
  26.  
  27. public plugin_precache() {
  28. precache_model(v_knife);
  29. precache_model(p_knife);
  30. precache_model(v_hammer);
  31. precache_model(p_hammer);
  32. }
  33.  
  34. public Hammer(id, level, cid) {
  35. if (!cmd_access(id, level, cid, 2)) return PLUGIN_HANDLED;
  36.  
  37. new aarg1[3]
  38. read_argv(1,aarg1,2)
  39. new arg1 = str_to_num(aarg1)
  40.  
  41. if (is_user_alive(arg1) && !g_hasHammer[arg1]) {
  42. g_hasHammer[arg1] = true;
  43. if (get_user_weapon(arg1) != CSW_KNIFE) {
  44. engclient_cmd(arg1, "weapon_knife");
  45. set_task(0.1, "akcio", arg1);
  46. return PLUGIN_HANDLED;
  47. } else {
  48. akcio(arg1);
  49. }
  50. } else {
  51. entity_set_string(id, EV_SZ_viewmodel,v_knife);
  52. entity_set_string(id, EV_SZ_weaponmodel,p_knife);
  53. vege(arg1);
  54. }
  55. return PLUGIN_HANDLED;
  56. }
  57.  
  58. public akcio(id) {
  59. entity_set_string(id, EV_SZ_viewmodel,v_hammer);
  60. entity_set_string(id, EV_SZ_weaponmodel, p_hammer);
  61. g_hasHammer[id] = true;
  62. }
  63.  
  64. public vege(id) {
  65. g_hasHammer[id] = false;
  66. }
  67.  
  68. public elvalt(id) {
  69. if (g_hasHammer[id]) vege(id);
  70. }


Nekem működik. Csak kalapács modell kell!
a sebzést asszem csak hamsandwich-el tudod növelni (nekem nem megy)
De ez egy új fegyver!!! És én készítettem egyedül!!! :D :D :D

Szerző:  HunGamer [ 2012.11.01. 19:00 ]
Hozzászólás témája:  Re: Egyedi fegyver létrehozása

Csak szimplán le van cserélve a model.

Szerző:  peti.97 [ 2012.11.01. 19:19 ]
Hozzászólás témája:  Re: Egyedi fegyver létrehozása

HunGamer írta:
Csak szimplán le van cserélve a model.

kösz :evil:

De innét kezdve lehet ezeket is használni valamire: :mrgreen:
SMA Forráskód: [ Mindet kijelol ]
  1. RegisterHam(Ham_Weapon_PrimaryAttack, "weapon_knife", "parancs");
  2. RegisterHam(Ham_Weapon_SecondaryAttack, "weapon_knife", "parancs");
  3. RegisterHam(Ham_Touch,"weaponbox","parancs");

(csak nekem nem működik a hamsandwich, és nem tom miért :cry: :cry: :cry: )

Szerző:  Nandee [ 2012.11.01. 20:39 ]
Hozzászólás témája:  Re: Egyedi fegyver létrehozása

Én már csináltam csomó egyedi fegyvert :)
Ha valakinek kell help írjon :)
Sebzés szorzót, Lövési sebességet, Visszalökés, Egyedi HUD, w - model-t, stb. tudok csinálni :)

Láttam a sebzés szorzó nem ment, itt egy példa :)

SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2. #include <hamsandwich>
  3.  
  4. new pcvar_dmgx
  5.  
  6. public plugin_init()
  7. {
  8. register_plugin("Damage example","1.0","Nandee")
  9. pcvar_dmgx=register_cvar("wpn_dmgx","1.0")
  10. RegisterHam(Ham_TakeDamage, "player", "hevent_damage")
  11. }
  12.  
  13. public hevent_damage(victim, inflictor, attacker, Float:damage)
  14. {
  15. //ellenorzes pl: if(has_weapon[id])
  16. SetHamParamFloat(4,damage*get_pcvar_float(pcvar_dmgx))
  17. }

Szerző:  HunGamer [ 2012.11.01. 21:24 ]
Hozzászólás témája:  Re: Egyedi fegyver létrehozása

Nandee, engem érdekelne. Én is átírtam egy kódot, de kíváncsi vagyok a te módszeredre. Küldd el PMben

Szerző:  Nandee [ 2012.11.02. 08:36 ]
Hozzászólás témája:  Re: Egyedi fegyver létrehozása

Nandee módszer :D :
2x sebzés(cvarral állítható)
ár: 2000$ (cvarral állítható)
további magyarázat a kódban :)
(szerintem még ez is gyenge, ennél jobbat is tudok :D )
SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2. #include <fakemeta>
  3. #include <engine>
  4. #include <cstrike>
  5. #include <hamsandwich>
  6.  
  7. new v_model[64] = "models/v_hammer.mdl"
  8. new p_model[64] = "models/p_hammer.mdl"
  9.  
  10. new cvar_dmgx,cvar_cost,cvar_pump_force
  11.  
  12. new bool:has_hammer[33]
  13.  
  14. public plugin_init()
  15. {
  16. register_plugin("The hammer : )","Nandee","1.0")
  17.  
  18. cvar_dmgx=register_cvar("hammer_dmgx","2.0")//Sebzés szorzó
  19. cvar_cost=register_cvar("hammer_cost","0")//Ár
  20. cvar_pump_force=register_cvar("hammer_force","100")//Visszalökés erőssége
  21.  
  22. register_clcmd("say /hammer","buy_hammer")
  23. register_clcmd("weapon_hammer","switch_hammer")
  24.  
  25. RegisterHam(Ham_TakeDamage, "player", "hevent_damage")
  26. register_event("DeathMsg","event_death","a")
  27. register_event("CurWeapon","event_curwpn","be","1=1")
  28. register_message(get_user_msgid("DeathMsg"),"msg_death")
  29. }
  30.  
  31. public plugin_precache()
  32. {
  33. precache_model(p_model)
  34. precache_model(v_model)
  35. }
  36. //Csatlakozáskor/lekapcsolódáskor/halálkor elveszik
  37. public client_connect(id)
  38. has_hammer[id]=false
  39.  
  40. public client_disconnect(id)
  41. has_hammer[id]=false
  42.  
  43. public event_death()
  44. has_hammer[read_data(2)]=false
  45. //weapon_hammer parancsra átvált késre...
  46. public switch_hammer(id)
  47. {
  48. if(has_hammer[id]&&get_user_weapon(id)!=CSW_KNIFE)
  49. engclient_cmd(id,"weapon_knife")
  50. }
  51. //konzol üzenet megváltoztatása
  52. public msg_death(msg_id, msg_dest, id)
  53. {
  54. new weapon[33], attacker
  55. get_msg_arg_string(4,weapon, charsmax(weapon))
  56. attacker=get_msg_arg_int(1)
  57. if(equal(weapon,"knife")&&get_user_weapon(attacker)==CSW_KNIFE&&has_hammer[attacker]&&is_user_connected(attacker))
  58. set_msg_arg_string(4, "hammer")
  59. return PLUGIN_CONTINUE
  60. }
  61. //ha kés van a kezébe és van hammerja akkor megszorozza a sebzést a cvarral
  62. //sebzéskor hátralöki a játékost
  63. public hevent_damage(id, inflictor, attacker, Float:damage)
  64. {
  65. if(get_user_weapon(attacker)==CSW_KNIFE&&has_hammer[attacker])
  66. {
  67. SetHamParamFloat(4,damage*get_pcvar_float(cvar_dmgx))
  68.  
  69. new Float:vec[3]
  70. new Float:oldvelo[3]
  71. get_user_velocity(id, oldvelo)
  72. create_velocity_vector(id , attacker , vec)
  73. vec[0] += oldvelo[0]
  74. vec[1] += oldvelo[1]
  75. vec[2] = 100.0
  76. set_user_velocity(id ,vec)
  77. }
  78. }
  79. //amikor rávált a késre és van hammerja akkor lecseréli a modelleket
  80. public event_curwpn(id)
  81. {
  82. if(get_user_weapon(id)==CSW_KNIFE&&has_hammer[id])
  83. {
  84. set_pev(id, pev_viewmodel2,v_model)
  85. set_pev(id, pev_weaponmodel2,p_model)
  86. }
  87. }
  88. //Vásárlás
  89. public buy_hammer(id)
  90. {
  91. new cost=get_pcvar_num(cvar_cost)
  92. if(!is_user_alive(id)||!is_user_connected(id))
  93. return
  94. else if(cs_get_user_money(id)<cost)
  95. {
  96. client_print(id,print_chat,"[HAMMER] Nem eleg a penzed!")
  97. return
  98. }
  99. else if(has_hammer[id])
  100. {
  101. client_print(id,print_chat,"[HAMMER] Neked mar van hammer-ed!")
  102. return
  103. }
  104. else
  105. {
  106. client_print(id,print_chat,"[HAMMER] Sikeres vasarlas!")
  107. cs_set_user_money(id,cs_get_user_money(id)-cost)
  108. engclient_cmd(id,"weapon_knife")
  109. has_hammer[id]=true
  110. if(get_user_weapon(id)==CSW_KNIFE)
  111. {
  112. set_pev(id, pev_viewmodel2,v_model)
  113. set_pev(id, pev_weaponmodel2,p_model)
  114. }
  115. }
  116. }
  117.  
  118. //hátralökéshez egy stock
  119. stock create_velocity_vector(victim,attacker,Float:velocity[3])
  120. {
  121. if(!is_user_alive(victim) || !is_user_alive(attacker))
  122. return 0;
  123.  
  124. new Float:vicorigin[3]
  125. new Float:attorigin[3]
  126. entity_get_vector(victim , EV_VEC_origin , vicorigin)
  127. entity_get_vector(attacker , EV_VEC_origin , attorigin)
  128.  
  129. new Float:origin2[3]
  130. origin2[0] = vicorigin[0] - attorigin[0]
  131. origin2[1] = vicorigin[1] - attorigin[1]
  132.  
  133. new Float:largestnum = 0.0
  134.  
  135. if(floatabs(origin2[0])>largestnum) largestnum = floatabs(origin2[0])
  136. if(floatabs(origin2[1])>largestnum) largestnum = floatabs(origin2[1])
  137.  
  138. origin2[0] /= largestnum
  139. origin2[1] /= largestnum
  140. velocity[0] = ( origin2[0] * (get_pcvar_float(cvar_pump_force) * 3000) ) / get_entity_distance(victim , attacker);
  141. velocity[1] = ( origin2[1] * (get_pcvar_float(cvar_pump_force) * 3000) ) / get_entity_distance(victim , attacker);
  142. if(velocity[0] <= 20.0 || velocity[1] <= 20.0)
  143. velocity[2] = random_float(200.0 , 275.0)
  144. return 1
  145. }

Szerk.:
Beleraktam azt hogy ellökje a játékost ütéskor, hogy valami funkciója is legyen 8-)
Ha segítettem lécci köszönd meg ---->

Szerző:  Nandee [ 2012.11.02. 09:35 ]
Hozzászólás témája:  Re: Egyedi fegyver létrehozása

peti.97 írta:
(csak nekem nem működik a hamsandwich, és nem tom miért :cry: :cry: :cry: )

Használj podbotot és menni fog ;)

Szerző:  ultraibolya [ 2012.11.02. 10:21 ]
Hozzászólás témája:  Re: Egyedi fegyver létrehozása

Köszi :D

Szerző:  Bence98007 [ 2012.11.02. 11:04 ]
Hozzászólás témája:  Re: Egyedi fegyver létrehozása

Nandee egy kérdés:
SMA Forráskód: [ Mindet kijelol ]
  1. if(!is_user_alive(id)||!is_user_connected(id))

Ezminek kell? Én úgytudom hogy az is_user_alive(index) lecsekkolja egyből, hogy csatlakozva van! Bár, én csak kérdeztem, nem nagyon akarok beleszólni...

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