hlmod.hu

Magyar Half-Life Mód közösség!
Pontos idő: 2024.04.25. 11:51



Jelenlévő felhasználók

Jelenleg 277 felhasználó van jelen :: 0 regisztrált, 0 rejtett és 277 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  [ 3 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: t kilép , ct bemegy
HozzászólásElküldve: 2013.08.25. 15:52 
Offline
Beavatott
Avatar

Csatlakozott: 2013.03.10. 14:48
Hozzászólások: 77
Megköszönt másnak: 12 alkalommal
Megköszönték neki: 12 alkalommal
Üdv!
Egy olyan pluginra lenne szükségem , ami azt tudja , hogy ha a Terrorista kilép , akkor a CT-k közül egy játékost randomra átdob t nek rögtön!(a szerveren deathrun mod fut)
Előre is köszönöm:)
Aki csinálja meg a gomb ;)

_________________
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: t kilép , ct bemegy
HozzászólásElküldve: 2013.08.25. 16:33 
Offline
Őskövület
Avatar

Csatlakozott: 2011.12.28. 00:35
Hozzászólások: 2736
Megköszönt másnak: 56 alkalommal
Megköszönték neki: 275 alkalommal
DanKe16 írta:
Üdv!
Egy olyan pluginra lenne szükségem , ami azt tudja , hogy ha a Terrorista kilép , akkor a CT-k közül egy játékost randomra átdob t nek rögtön!(a szerveren deathrun mod fut)
Előre is köszönöm:)
Aki csinálja meg a gomb ;)


Tessék:
SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2. #include <amxmisc>
  3. #include <cstrike>
  4. #include <fakemeta>
  5. #include <hamsandwich>
  6.  
  7. #define TID_RESTORE_ORIGIN 457547
  8.  
  9. new Float:_pg_ftmp
  10. #define _Vec3ToAngles(%1,%2) _pg_ftmp = floatsqroot(%1[0]*%1[0] + %1[1]*%1[1]);\
  11. %2[1] = floatacos(%1[0]/_pg_ftmp, 1)*(1-2*_:(%1[1]<0));\
  12. %2[0] =-floatatan(%1[2]/_pg_ftmp, 1);\
  13. %2[2] = 0.0
  14.  
  15. #define _Vec3AddScalar(%1,%2) %1[0]+=%2;%1[1]+=%2;%1[2]+=%2
  16. #define _Vec3MultScalar(%1,%2) %1[0]*=%2;%1[1]*=%2;%1[2]*=%2
  17. #define _Vec3Set(%1,%2) %1[0]=%2[0];%1[1]=%2[1];%1[2]=%2[2]
  18. #define _Vec3Add(%1,%2) %1[0]+=%2[0];%1[1]+=%2[1];%1[2]+=%2[2]
  19.  
  20. #define _Set(%1,%2) %1|=1<<%2
  21. #define _UnSet(%1,%2) %1&=~(1<<%2)
  22. #define _Is(%1,%2) (%1&1<<%2)
  23. new _human
  24. new _alive
  25.  
  26. #define _IsPlayer(%1) (1<=%1<=g_max_players)
  27.  
  28.  
  29. new g_max_players
  30. new g_msg_saytext
  31. new Float:g_t_origin[3]
  32. new Float:g_b_origin[3]
  33. new bool:g_valid_origin
  34. new bool:g_ml
  35.  
  36.  
  37. public plugin_init(){
  38. register_plugin("Replace Disconnected T", "1.5", "Sylwester")
  39. RegisterHam(Ham_Use, "func_button", "button_pushed", 1)
  40. RegisterHam(Ham_Spawn, "player", "Player_Spawn", 1)
  41. RegisterHam(Ham_Killed, "player", "Player_Killed", 1)
  42. g_max_players = get_maxplayers()
  43. g_msg_saytext = get_user_msgid("SayText")
  44.  
  45. new path[128]
  46. get_datadir(path, 127)
  47. if(file_exists(path)){
  48. g_ml = true
  49. }
  50. }
  51.  
  52.  
  53. public button_pushed(ent, idcaller, idactivator, use_type, Float:value){
  54. if(!_IsPlayer(idcaller) || !_Is(_alive, idcaller) || !pev_valid(ent) || cs_get_user_team(idcaller) != CS_TEAM_T)
  55. return
  56. new Float:ftmp[3]
  57. pev(ent, pev_mins, g_b_origin)
  58. pev(ent, pev_maxs, ftmp)
  59.  
  60. _Vec3Add(g_b_origin, ftmp)
  61. _Vec3MultScalar(g_b_origin, 0.5)
  62.  
  63. pev(idcaller, pev_origin, g_t_origin)
  64. if(pev(idcaller, pev_flags) & FL_DUCKING)
  65. g_t_origin[2] += 19
  66. g_valid_origin = true
  67. }
  68.  
  69.  
  70. public Player_Killed(id){
  71. _UnSet(_alive, id)
  72. }
  73.  
  74.  
  75. public Player_Spawn(id){
  76. if(!is_user_alive(id))
  77. return
  78. _Set(_alive, id)
  79. if(cs_get_user_team(id) != CS_TEAM_T)
  80. return
  81. g_valid_origin = false
  82. }
  83.  
  84.  
  85. public client_putinserver(id){
  86. if(is_user_bot(id) || is_user_hltv(id))
  87. return
  88. _Set(_human, id)
  89. }
  90.  
  91.  
  92. public announce_t_change(newid, oldid){
  93. new msg[160], otname[32], ntname[32]
  94. get_user_name(oldid, otname, 31)
  95. get_user_name(newid, ntname, 31)
  96. if(!g_ml){
  97. print_color(0, "!g[Deathrun]!t %s!y elhagyta a játékot. Az új terrorista:!g %s", otname, ntname)
  98. message_begin(MSG_ALL, g_msg_saytext, _, 0)
  99. write_byte(oldid)
  100. write_string(msg)
  101. message_end()
  102. return
  103. }
  104. for(new i=1; i<=g_max_players; i++){
  105. if(!_Is(_human, i))
  106. continue
  107. print_color(0, "!g[Deathrun]!t %s!y elhagyta a játékot. Az új terrorista:!g %s", otname, ntname)
  108. message_begin(MSG_ONE, g_msg_saytext, _, i)
  109. write_byte(oldid)
  110. write_string(msg)
  111. message_end()
  112. }
  113. }
  114.  
  115.  
  116. public client_disconnect(id){
  117. _UnSet(_human, id)
  118. _UnSet(_alive, id)
  119. new players[32], pnum
  120. for(new i=1; i<=g_max_players; i++){
  121. if(!_Is(_human, i))
  122. continue
  123. if(cs_get_user_team(i) == CS_TEAM_T)
  124. return
  125. players[pnum++] = i
  126. }
  127. if(pnum<=0)
  128. return
  129. new new_terr = players[random(pnum)]
  130. cs_set_user_team(new_terr, CS_TEAM_T)
  131.  
  132. announce_t_change(new_terr, id)
  133.  
  134. if(!g_valid_origin){
  135. ExecuteHamB(Ham_CS_RoundRespawn, new_terr)
  136. return
  137. }
  138. ExecuteHamB(Ham_CS_RoundRespawn, new_terr)
  139. g_valid_origin = true
  140. new param[2]
  141. param[0] = new_terr
  142. param[1] = 10 //max teleport attempts
  143. restore_origin(param)
  144. }
  145.  
  146.  
  147. public restore_origin(param[]) {
  148. if(!g_valid_origin || --param[1]<0 || !_Is(_alive, param[0]))
  149. return
  150. new tr, Float:ftmp[3]
  151. _Vec3Set(ftmp, g_t_origin)
  152.  
  153. //find vacant location
  154. for(new i=0; i<100; i++){
  155. engfunc(EngFunc_TraceHull, ftmp, ftmp, 0, HULL_HUMAN, 0, tr)
  156. if(get_tr2(tr, TR_StartSolid) || get_tr2(tr, TR_AllSolid)){
  157. _Vec3AddScalar(ftmp, random_float(-10.0, 10.0))
  158. continue
  159. }
  160. //check if new location is on the correct side of the wall
  161. engfunc(EngFunc_TraceLine, g_t_origin, ftmp, DONT_IGNORE_MONSTERS, 0, tr)
  162. new Float:fraction
  163. get_tr2(tr, TR_flFraction, fraction)
  164. if(fraction != 1.0){
  165. break
  166. }
  167. _Vec3Set(g_t_origin, ftmp)
  168.  
  169. set_pev(param[0], pev_origin, g_t_origin) //move player to vacant location
  170.  
  171. //calculate angles
  172. _Vec3Set(ftmp, -g_t_origin)
  173. _Vec3Add(ftmp, g_b_origin)
  174. _Vec3ToAngles(ftmp, ftmp)
  175.  
  176. //aim at button
  177. set_pev(param[0], pev_angles, ftmp)
  178. set_pev(param[0], pev_fixangle, 1)
  179. return
  180. }
  181. set_task(0.1, "restore_origin", TID_RESTORE_ORIGIN+param[0], param, 2)
  182. }
  183.  
  184. stock print_color(const id, const input[], any:...)
  185. {
  186. new count = 1, players[32]
  187. static msg[191]
  188. vformat(msg, 190, input, 3)
  189.  
  190. replace_all(msg, 190, "!g", "^4")
  191. replace_all(msg, 190, "!y", "^1")
  192. replace_all(msg, 190, "!t", "^3")
  193. replace_all(msg, 190, "á", "á")
  194. replace_all(msg, 190, "é", "Ă©")
  195. replace_all(msg, 190, "í", "Ă­")
  196. replace_all(msg, 190, "ó", "Ăł")
  197. replace_all(msg, 190, "ö", "ö")
  198. replace_all(msg, 190, "ő", "Ĺ‘")
  199. replace_all(msg, 190, "ú", "Ăş")
  200. replace_all(msg, 190, "ü", "ĂĽ")
  201. replace_all(msg, 190, "ű", "ű")
  202. replace_all(msg, 190, "Á", "Á")
  203. replace_all(msg, 190, "É", "É")
  204. replace_all(msg, 190, "Í", "ĂŤ")
  205. replace_all(msg, 190, "Ó", "Ă“")
  206. replace_all(msg, 190, "Ö", "Ă–")
  207. replace_all(msg, 190, "Ő", "Ő")
  208. replace_all(msg, 190, "Ú", "Ăš")
  209. replace_all(msg, 190, "Ü", "Ăś")
  210. replace_all(msg, 190, "Ű", "Ĺ°")
  211.  
  212. if (id) players[0] = id; else get_players(players, count, "ch")
  213. {
  214. for (new i = 0; i < count; i++)
  215. {
  216. if (is_user_connected(players[i]))
  217. {
  218. message_begin(MSG_ONE_UNRELIABLE, get_user_msgid("SayText"), _, players[i])
  219. write_byte(players[i])
  220. write_string(msg)
  221. message_end()
  222. }
  223. }
  224. }
  225. return PLUGIN_HANDLED
  226. }

_________________
****

Ők köszönték meg pixxa112 nek ezt a hozzászólást: DanKe16 (2013.08.25. 16:35)
  Népszerűség: 2.27%


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: t kilép , ct bemegy
HozzászólásElküldve: 2013.08.27. 07:52 
Offline
Felfüggesztve

Csatlakozott: 2013.08.09. 22:37
Hozzászólások: 571
Megköszönt másnak: 10 alkalommal
Megköszönték neki: 85 alkalommal
Amúgy... plugin neve: relpace_disconnected_t
http://forums.alliedmods.net/showthread.php?p=1462319

Ők köszönték meg stupid nek ezt a hozzászólást: DanKe16 (2013.08.27. 19:59)
  Népszerűség: 2.27%


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  [ 3 hozzászólás ] 


Ki van itt

Jelenlévő fórumozók: nincs regisztrált felhasználó valamint 14 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