hlmod.hu

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



Jelenlévő felhasználók

Jelenleg 213 felhasználó van jelen :: 1 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: Google [Bot] 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  [ 2 hozzászólás ] 
Szerző Üzenet
 Hozzászólás témája: AMXX PISS
HozzászólásElküldve: 2014.05.02. 06:00 
Offline
Minden6ó
Avatar

Csatlakozott: 2011.01.19. 12:14
Hozzászólások: 4280
Megköszönt másnak: 218 alkalommal
Megköszönték neki: 285 alkalommal
Sziasztok!

Valaki lefordítaná ezt nekem? Sajnos már az oldalon nincs fent.

SMA Forráskód: [ Mindet kijelol ]
  1. /*
  2.  
  3. Plugin: Amxx Piss
  4. Version: 2.0
  5. Author: KRoTaL (Based on TakeADookie by PaintLancer)
  6.  
  7.  
  8. 1.0 Release
  9. 1.1 Better effect
  10. 1.2 Bug fix
  11. 1.3 New effect + piss puddle
  12. 1.4a New effects, only for cs/cz/dod
  13. 1.4b New effects, only for other mods than cs/cz/dod
  14. 1.5 #define NO_CS_CZ added
  15. 1.6 Bug fix (DoD)
  16. 1.7 Bug fix
  17. 1.8 Some checks added
  18. 1.9 #define NO_CS_CZ changed into #define NO_CS_CZ
  19. 2.0 New cvar : amx_piss_effect
  20.  
  21. Commands:
  22.  
  23. To piss on a dead body you have to bind a key to: piss
  24. Open your console and write: bind "key" "piss"
  25. ex: bind "x" "piss"
  26. Then stand still above a dead player (cs/cz only), press your key and you'll piss on them !
  27. You can control the direction of the stream with your mouse.
  28. You are not able to move or to shoot for 10 seconds when you piss, so beware (cs/cz only).
  29. The puddle of piss will appear where you are aiming at 2 seconds after you start pissing,
  30. so try to aim at the dead body instead of the sky or a wall <!-- s;) --><img src=\"{SMILIES_PATH}/icon_e_wink.gif\" alt=\";)\" title=\"kacsintás\" /><!-- s;) -->
  31.  
  32. Players can say "/piss" in the chat to get some help.
  33.  
  34. Cvars:
  35.  
  36. amx_maxpees 6 - Maximum number of times a player is allowed to piss per round.
  37.  
  38. amx_piss_admin 0 - 0 : All the players are allowed to piss
  39. 1 : Only admins with ADMIN_LEVEL_A flag are allowed to piss
  40.  
  41. amx_piss_effect 0 - 0 : yellow bloodsprite
  42. 1 : yellow laserbeam
  43.  
  44. Setup:
  45.  
  46. You need to put these files on your server:
  47.  
  48. sound/piss/pissing.wav
  49. models/piss/piss_puddle1.mdl
  50. models/piss/piss_puddle2.mdl
  51. models/piss/piss_puddle3.mdl
  52. models/piss/piss_puddle4.mdl
  53. models/piss/piss_puddle5.mdl
  54. models/piss/piss.mdl
  55.  
  56. You need to enable Fun and Engine Modules for cs/cs-cz.
  57. You need to enable Engine Module for the other mods.
  58.  
  59.  Credits:
  60.  
  61. Rastin for his trousers fly sounds
  62. SLayer KL for his piss puddle models
  63.  
  64. */
  65.  
  66. // UNCOMMENT IF YOU USE ANOTHER MOD THAN CS and CS-CZ
  67. //#define NO_CS_CZ
  68.  
  69.  
  70.  
  71.  
  72. /***************************************************************************************************/
  73.  
  74. #include <amxmodx>
  75. #if !defined NO_CS_CZ
  76. #include <fun>
  77. #endif
  78. #include <engine>
  79.  
  80.  
  81. new piss_model
  82. new piss_sprite
  83. new water_splash
  84. new count_piss[33]
  85. new count_puddle[33]
  86. new bool:PissFlag[33]
  87. new bool:aim[33]
  88. new Float:aim_origin[33][3]
  89. #if !defined NO_CS_CZ
  90. new player_origins[33][3]
  91. new mod_name[32]
  92. #endif
  93.  
  94. public piss_on_player(id)
  95. {
  96.  
  97. if (get_cvar_num("amx_maxpees")==0)
  98. return PLUGIN_HANDLED
  99. if (!is_user_alive(id))
  100. return PLUGIN_HANDLED
  101. if ( (get_cvar_num("amx_piss_admin")==1) && !(get_user_flags(id) & ADMIN_LEVEL_A) )
  102. {
  103. console_print(id, "[AMXX] You have not access to this command.")
  104. return PLUGIN_HANDLED
  105. }
  106. if(PissFlag[id])
  107. return PLUGIN_HANDLED
  108.  
  109. #if !defined NO_CS_CZ
  110. new player_origin[3], players[32], inum=0, dist, last_dist=99999, last_id
  111.  
  112. get_user_origin(id,player_origin,0)
  113. get_players(players,inum,"b")
  114. if (inum>0) {
  115. for (new i=0;i<inum;i++) {
  116. if (players[i]!=id) {
  117. dist = get_distance(player_origin,player_origins[players[i]])
  118. if (dist<last_dist) {
  119. last_id = players[i]
  120. last_dist = dist
  121. }
  122. }
  123. }
  124. if (last_dist<80) {
  125. #endif
  126. if (count_piss[id] > get_cvar_num("amx_maxpees")) {
  127. client_print(id,print_chat,"You can only piss on a player %d time%s in a round !", get_cvar_num("amx_maxpees"), (get_cvar_num("amx_maxpees")>1) ? "s" : "")
  128. return PLUGIN_CONTINUE
  129. }
  130. new player_name[32]
  131. get_user_name(id, player_name, 31)
  132. #if !defined NO_CS_CZ
  133. new dead_name[32]
  134. get_user_name(last_id, dead_name, 31)
  135. client_print(0,print_chat,"%s Is Pissing On %s's Dead Body !! HaHaHaHa !!", player_name, dead_name)
  136. #else
  137. client_print(0,print_chat,"%s Is Pissing !!", player_name)
  138. #endif
  139. count_piss[id]+=1
  140. count_puddle[id]=1
  141. new ids[1]
  142. ids[0]=id
  143. PissFlag[id]=true
  144. aim[id]=false
  145. #if !defined NO_CS_CZ
  146. if( (equali(mod_name,"cstrike")) || (equali(mod_name,"czero")) )
  147. {
  148. client_cmd(id, "weapon_knife")
  149. set_user_maxspeed(id, -1.0)
  150. }
  151. #endif
  152. emit_sound(id,CHAN_VOICE,"piss/pissing.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
  153. switch(get_cvar_num("amx_piss_effect"))
  154. {
  155. case 0: set_task(0.2,"make_pee",1481+id,ids,1,"a",48)
  156. case 1: set_task(0.1,"make_pee",1481+id,ids,1,"a",102)
  157. default: set_task(0.2,"make_pee",1481+id,ids,1,"a",48)
  158. }
  159. set_task(2.2,"place_puddle",3424+id,ids,1,"a",4)
  160. #if !defined NO_CS_CZ
  161. set_task(12.0,"weapons_back",6794+id,ids,1)
  162. }
  163. else
  164. {
  165. client_print(id,print_chat,"There are no dead bodies around you.")
  166. return PLUGIN_HANDLED
  167. }
  168. }
  169. #endif
  170. return PLUGIN_HANDLED
  171. }
  172.  
  173. public sqrt(num)
  174. {
  175. new div = num
  176. new result = 1
  177. while (div > result) {
  178. div = (div + result) / 2
  179. result = num / div
  180. }
  181. return div
  182. }
  183.  
  184. public make_pee(ids[])
  185. {
  186. new id=ids[0]
  187. new vec[3]
  188. new aimvec[3]
  189. new velocityvec[3]
  190. new length
  191. get_user_origin(id,vec)
  192. get_user_origin(id,aimvec,3)
  193. new distance = get_distance(vec,aimvec)
  194. new speed = floatround(distance*1.9)
  195.  
  196. velocityvec[0]=aimvec[0]-vec[0]
  197. velocityvec[1]=aimvec[1]-vec[1]
  198. velocityvec[2]=aimvec[2]-vec[2]
  199.  
  200. length=sqrt(velocityvec[0]*velocityvec[0]+velocityvec[1]*velocityvec[1]+velocityvec[2]*velocityvec[2])
  201.  
  202. velocityvec[0]=velocityvec[0]*speed/length
  203. velocityvec[1]=velocityvec[1]*speed/length
  204. velocityvec[2]=velocityvec[2]*speed/length
  205.  
  206. switch(get_cvar_num("amx_piss_effect"))
  207. {
  208. case 0:
  209. {
  210. message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
  211. write_byte(101)
  212. write_coord(vec[0])
  213. write_coord(vec[1])
  214. write_coord(vec[2])
  215. write_coord(velocityvec[0])
  216. write_coord(velocityvec[1])
  217. write_coord(velocityvec[2])
  218. write_byte(102) // color
  219. write_byte(160) // speed
  220. message_end()
  221. }
  222. case 1:
  223. {
  224. message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
  225. write_byte(106)
  226. write_coord(vec[0])
  227. write_coord(vec[1])
  228. write_coord(vec[2])
  229. write_coord(velocityvec[0])
  230. write_coord(velocityvec[1])
  231. write_coord(velocityvec[2]+100)
  232. write_angle (0)
  233. write_short (piss_model)
  234. write_byte (0)
  235. write_byte (255)
  236. message_end()
  237.  
  238. message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
  239. write_byte (1)
  240. write_short (id)
  241. write_coord(aimvec[0])
  242. write_coord(aimvec[1])
  243. write_coord(aimvec[2])
  244. write_short(piss_sprite)
  245. write_byte( 1 ) // framestart
  246. write_byte( 6 ) // framerate
  247. write_byte( 1 ) // life
  248. write_byte( 8 ) // width
  249. write_byte( 0 ) // noise
  250. write_byte( 255 ) // r, g, b
  251. write_byte( 255 ) // r, g, b
  252. write_byte( 0 ) // r, g, b
  253. write_byte( 200 ) // brightness
  254. write_byte( 10 ) // speed
  255. message_end()
  256.  
  257. message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
  258. write_byte(17)
  259. write_coord(aimvec[0])
  260. write_coord(aimvec[1])
  261. write_coord(aimvec[2])
  262. write_short(water_splash)
  263. write_byte(16)
  264. write_byte(18)
  265. message_end()
  266.  
  267. }
  268. default:
  269. {
  270. message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
  271. write_byte(101)
  272. write_coord(vec[0])
  273. write_coord(vec[1])
  274. write_coord(vec[2])
  275. write_coord(velocityvec[0])
  276. write_coord(velocityvec[1])
  277. write_coord(velocityvec[2])
  278. write_byte(102) // color
  279. write_byte(160) // speed
  280. message_end()
  281. }
  282. }
  283. }
  284.  
  285. public place_puddle(ids[])
  286. {
  287. new id=ids[0]
  288. if(!aim[id])
  289. {
  290. new origin[3]
  291. get_user_origin(id,origin,3)
  292. aim_origin[id][0]=float(origin[0])
  293. aim_origin[id][1]=float(origin[1])
  294. aim_origin[id][2]=float(origin[2])
  295. }
  296.  
  297. new puddle_entity
  298. puddle_entity = create_entity("info_target")
  299.  
  300. if(puddle_entity == 0) {
  301. return PLUGIN_HANDLED_MAIN
  302. }
  303.  
  304. new Float:MinBox[3]
  305. new Float:MaxBox[3]
  306.  
  307. MinBox[0] = -1.0
  308. MinBox[1] = -1.0
  309. MinBox[2] = -1.0
  310. MaxBox[0] = 1.0
  311. MaxBox[1] = 1.0
  312. MaxBox[2] = 1.0
  313.  
  314. entity_set_vector(puddle_entity, EV_VEC_mins, MinBox)
  315. entity_set_vector(puddle_entity, EV_VEC_maxs, MaxBox)
  316.  
  317. switch(count_puddle[id])
  318. {
  319. case 1:
  320. {
  321. entity_set_string(puddle_entity, EV_SZ_classname, "piss_puddle1")
  322. entity_set_model(puddle_entity, "models/piss/piss_puddle1.mdl")
  323. }
  324. case 2:
  325. {
  326. entity_set_string(puddle_entity, EV_SZ_classname, "piss_puddle2")
  327. entity_set_model(puddle_entity, "models/piss/piss_puddle2.mdl")
  328. }
  329. case 3:
  330. {
  331. entity_set_string(puddle_entity, EV_SZ_classname, "piss_puddle3")
  332. entity_set_model(puddle_entity, "models/piss/piss_puddle3.mdl")
  333. }
  334. case 4:
  335. {
  336. entity_set_string(puddle_entity, EV_SZ_classname, "piss_puddle4")
  337. entity_set_model(puddle_entity, "models/piss/piss_puddle4.mdl")
  338. }
  339. case 5:
  340. {
  341. entity_set_string(puddle_entity, EV_SZ_classname, "piss_puddle5")
  342. entity_set_model(puddle_entity, "models/piss/piss_puddle5.mdl")
  343. #if defined NO_CS_CZ
  344. PissFlag[id]=false
  345. #endif
  346. }
  347. default: {}
  348. }
  349.  
  350. entity_set_origin(puddle_entity, aim_origin[id])
  351. entity_set_int(puddle_entity, EV_INT_solid, 3)
  352. entity_set_int(puddle_entity, EV_INT_movetype, 6)
  353. entity_set_edict(puddle_entity, EV_ENT_owner, id)
  354.  
  355. count_puddle[id]+=1
  356. aim[id]=true
  357.  
  358. return PLUGIN_CONTINUE
  359. }
  360.  
  361. public death_event()
  362. {
  363. new victim = read_data(2)
  364. #if !defined NO_CS_CZ
  365. get_user_origin(victim,player_origins[victim],0)
  366. #endif
  367.  
  368. if(PissFlag[victim])
  369. reset_piss(victim)
  370.  
  371. return PLUGIN_CONTINUE
  372. }
  373.  
  374. #if !defined NO_CS_CZ
  375. public weapons_back(ids[])
  376. {
  377. PissFlag[ids[0]]=false
  378. if( (equali(mod_name,"cstrike")) || (equali(mod_name,"czero")) )
  379. {
  380. set_user_maxspeed(ids[0], 250.0)
  381. }
  382. }
  383.  
  384. public cur_weapon(id)
  385. {
  386. if(PissFlag[id])
  387. {
  388. if( (equali(mod_name,"cstrike")) || (equali(mod_name,"czero")) )
  389. {
  390. client_cmd(id, "weapon_knife")
  391. set_user_maxspeed(id, -1.0)
  392. }
  393. }
  394.  
  395. return PLUGIN_CONTINUE
  396. }
  397. #endif
  398.  
  399. public reset_piss(id)
  400. {
  401. if(task_exists(1481+id))
  402. remove_task(1481+id)
  403. if(task_exists(3424+id))
  404. remove_task(3424+id)
  405. #if !defined NO_CS_CZ
  406. if(task_exists(6794+id))
  407. remove_task(6794+id)
  408. #endif
  409. emit_sound(id,CHAN_VOICE,"piss/pissing.wav", 0.0, ATTN_NORM, 0, PITCH_NORM)
  410. PissFlag[id]=false
  411.  
  412. return PLUGIN_CONTINUE
  413. }
  414.  
  415. public reset_hud(id)
  416. {
  417. if(task_exists(1481+id))
  418. remove_task(1481+id)
  419. if(task_exists(3424+id))
  420. remove_task(3424+id)
  421. #if !defined NO_CS_CZ
  422. if(task_exists(6794+id))
  423. remove_task(6794+id)
  424. #endif
  425. emit_sound(id,CHAN_VOICE,"piss/pissing.wav", 0.0, ATTN_NORM, 0, PITCH_NORM)
  426. PissFlag[id]=false
  427.  
  428. new iCurrent
  429.  
  430. for (new i=1 ; i<count_piss[id] ; i++)
  431. {
  432. iCurrent = find_ent_by_class(-1, "piss_puddle1")
  433. if(iCurrent != -1)
  434. remove_entity(iCurrent)
  435. iCurrent = find_ent_by_class(-1, "piss_puddle2")
  436. if(iCurrent != -1)
  437. remove_entity(iCurrent)
  438. iCurrent = find_ent_by_class(-1, "piss_puddle3")
  439. if(iCurrent != -1)
  440. remove_entity(iCurrent)
  441. iCurrent = find_ent_by_class(-1, "piss_puddle4")
  442. if(iCurrent != -1)
  443. remove_entity(iCurrent)
  444. iCurrent = find_ent_by_class(-1, "piss_puddle5")
  445. if(iCurrent != -1)
  446. remove_entity(iCurrent)
  447. }
  448. count_piss[id]=1
  449.  
  450. return PLUGIN_CONTINUE
  451. }
  452.  
  453. public piss_help(id)
  454. {
  455. client_print(id, print_chat, "To piss on a dead body you have to bind a key to: piss")
  456. client_print(id, print_chat, "Open your console and write: bind ^"key^" ^"piss^"")
  457. client_print(id, print_chat, "ex: bind ^"x^" ^"piss^"")
  458.  
  459. return PLUGIN_CONTINUE
  460. }
  461.  
  462. public handle_say(id)
  463. {
  464. new said[192]
  465. read_args(said,192)
  466. remove_quotes(said)
  467.  
  468. if( (containi(said, "piss") != -1) && !(containi(said, "/piss") != -1) ) {
  469. client_print(id, print_chat, "[AMXX] For Piss help say /piss")
  470. }
  471.  
  472. return PLUGIN_CONTINUE
  473. }
  474.  
  475. public plugin_precache()
  476. {
  477. if (file_exists("sound/piss/pissing.wav"))
  478. precache_sound( "piss/pissing.wav")
  479. if (file_exists("models/piss/piss_puddle1.mdl"))
  480. precache_model("models/piss/piss_puddle1.mdl")
  481. if (file_exists("models/piss/piss_puddle2.mdl"))
  482. precache_model("models/piss/piss_puddle2.mdl")
  483. if (file_exists("models/piss/piss_puddle3.mdl"))
  484. precache_model("models/piss/piss_puddle3.mdl")
  485. if (file_exists("models/piss/piss_puddle4.mdl"))
  486. precache_model("models/piss/piss_puddle4.mdl")
  487. if (file_exists("models/piss/piss_puddle5.mdl"))
  488. precache_model("models/piss/piss_puddle5.mdl")
  489. if (file_exists("models/piss/piss.mdl"))
  490. piss_model = precache_model("models/piss/piss.mdl")
  491. piss_sprite = precache_model("sprites/plasma.spr")
  492. water_splash = precache_model("sprites/wsplash3.spr")
  493.  
  494. return PLUGIN_CONTINUE
  495. }
  496.  
  497. public client_connect(id)
  498. {
  499. PissFlag[id]=false
  500. count_piss[id]=1
  501.  
  502. return PLUGIN_CONTINUE
  503. }
  504.  
  505. public client_disconnect(id)
  506. {
  507. reset_hud(id)
  508.  
  509. return PLUGIN_CONTINUE
  510. }
  511.  
  512. public plugin_init()
  513. {
  514. register_plugin("AMXX Piss","2.0","KRoTaL")
  515. register_clcmd("say piss","piss_on_player",0,"- Piss on a dead player")
  516. register_clcmd("say /piss","piss_help",0,"- Displays piss help")
  517. register_clcmd("say","handle_say")
  518. register_cvar("amx_maxpees","5")
  519. register_cvar("amx_piss_admin","0")
  520. register_cvar("amx_piss_effect","0")
  521. register_event("DeathMsg","death_event","a")
  522. register_event("ResetHUD", "reset_hud", "be")
  523. #if !defined NO_CS_CZ
  524. register_event("CurWeapon","cur_weapon","be","1=1")
  525. get_modname(mod_name,31)
  526. #endif
  527.  
  528. return PLUGIN_CONTINUE
  529. }
  530.  

_________________
<<eb@>>Team Website - Közösség
17Buddies - Általam készített pályák.
GameBanana - Általam készített pályák/vágott hangok.

Kép
Kép


Hozzászólás jelentése
Vissza a tetejére
   
 Hozzászólás témája: Re: AMXX PISS
HozzászólásElküldve: 2014.05.02. 07:02 
Offline
Nagyúr
Avatar

Csatlakozott: 2014.04.10. 15:32
Hozzászólások: 776
Megköszönt másnak: 122 alkalommal
Megköszönték neki: 60 alkalommal
Remélem jó.
SMA Forráskód: [ Mindet kijelol ]
  1.  
  2. Cvars:
  3.  
  4. amx_maxpees 6 - Maximum number of times a player is allowed to piss per round.
  5.  
  6. amx_piss_admin 0 - 0 : All the players are allowed to piss
  7. 1 : Only admins with ADMIN_LEVEL_A flag are allowed to piss
  8.  
  9. amx_piss_effect 0 - 0 : yellow bloodsprite
  10. 1 : yellow laserbeam
  11.  
  12. Setup:
  13.  
  14. You need to put these files on your server:
  15.  
  16. sound/piss/pissing.wav
  17. models/piss/piss_puddle1.mdl
  18. models/piss/piss_puddle2.mdl
  19. models/piss/piss_puddle3.mdl
  20. models/piss/piss_puddle4.mdl
  21. models/piss/piss_puddle5.mdl
  22. models/piss/piss.mdl
  23. addons/amx/lang/piss.txt
  24.  
  25. You need to enable Fun and Vexd Utilities Modules for cs/cs-cz.
  26. You need to enable Vexd Utilities Module for the other mods.
  27.  
  28. Use amx_piss_cs_cz.amx if you use CS or CS-CZ (player can't move).
  29. Use amx_piss.amx if you use another mod (dod, tfc, ...), or if you play CS/CS-CZ
  30. and you want to be able to piss without being stuck.
  31.  
  32.  
  33. Credits:
  34.  
  35. Rastin for his trousers fly sounds
  36. SLayer KL for his piss puddle models
  37.  
  38. */
  39.  
  40. // UNCOMMENT IF YOU USE ANOTHER MOD THAN CS and CS-CZ,
  41. // OR IF YOU USE CS/CS-CZ AND YOU WANT TO BE ABLE TO PISS ANYWHERE ON THE MAP (NOT JUST NEAR DEAD PLAYERS)
  42. //#define NO_CS_CZ
  43.  
  44.  
  45.  
  46.  
  47. /***************************************************************************************************/
  48.  
  49. #include <amxmodx>
  50. #if !defined NO_CS_CZ
  51. #include <fun>
  52. #endif
  53. #include <Vexd_Utilities>
  54.  
  55.  
  56. new piss_model
  57. new piss_sprite
  58. new water_splash
  59. new count_piss[33]
  60. new count_puddle[33]
  61. new bool:PissFlag[33]
  62. new bool:aim[33]
  63. new Float:aim_origin[33][3]
  64. #if !defined NO_CS_CZ
  65. new player_origins[33][3]
  66. new mod_name[32]
  67. #endif
  68.  
  69. public piss_on_player(id)
  70. {
  71. if (get_cvar_num("amx_maxpees")==0)
  72. return PLUGIN_HANDLED
  73. if (!is_user_alive(id))
  74. return PLUGIN_HANDLED
  75. if ( (get_cvar_num("amx_piss_admin")==1) && !(get_user_flags(id) & ADMIN_LEVEL_A) )
  76. {
  77. console_print(id, "[AMX] Nincs jogosultsagod ehhez a parancshoz.")
  78. return PLUGIN_HANDLED
  79. }
  80. if(PissFlag[id])
  81. return PLUGIN_HANDLED
  82.  
  83. #if !defined NO_CS_CZ
  84. new player_origin[3], players[32], player, inum=0, dist, last_dist=99999, last_id
  85.  
  86. get_user_origin(id,player_origin,0)
  87. get_players(players,inum,"b")
  88. if (inum>0) {
  89. for (new i=0;i<inum;i++) {
  90. player = players[i]
  91. if (player!=id) {
  92. dist = get_distance(player_origin,player_origins[player])
  93. if (dist<last_dist) {
  94. last_id = player
  95. last_dist = dist
  96. }
  97. }
  98. }
  99. if (last_dist<80) {
  100. #endif
  101. if (count_piss[id] > get_cvar_num("amx_maxpees")) {
  102. client_print(id,print_chat, "te letudod pisilni a halottat %d a körben !", get_cvar_num("amx_maxpees"))
  103. return PLUGIN_CONTINUE
  104. }
  105. new player_name[32]
  106. get_user_name(id, player_name, 31)
  107. #if !defined NO_CS_CZ
  108. if(get_user_flags(last_id) & ADMIN_IMMUNITY)
  109. {
  110. client_print(id,print_chat, "Ot nem lehet lepisilni !")
  111. return PLUGIN_HANDLED
  112. }
  113. new dead_name[32]
  114. get_user_name(last_id, dead_name, 31)
  115. client_print(0,print_chat, "%s lepisilte %s -t !! HaHaHaHa !!", player_name, dead_name)
  116. #else
  117. client_print(0,print_chat, "%s pisil !!" , player_name)
  118. #endif
  119. count_piss[id]+=1
  120. count_puddle[id]=1
  121. new ids[1]
  122. ids[0]=id
  123. PissFlag[id]=true
  124. aim[id]=false
  125. #if !defined NO_CS_CZ
  126. if( (equali(mod_name,"cstrike")) || (equali(mod_name,"czero")) )
  127. {
  128. client_cmd(id, "weapon_knife")
  129. entity_set_string(id, EV_SZ_viewmodel, "")
  130. entity_set_string(id, EV_SZ_weaponmodel, "")
  131. set_user_maxspeed(id, -1.0)
  132. }
  133. #endif
  134. emit_sound(id,CHAN_VOICE,"piss/pissing.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
  135. switch(get_cvar_num("amx_piss_effect"))
  136. {
  137. case 0: set_task(0.2,"make_pee",1481+id,ids,1,"a",48)
  138. case 1: set_task(0.1,"make_pee",1481+id,ids,1,"a",102)
  139. default: set_task(0.2,"make_pee",1481+id,ids,1,"a",48)
  140. }
  141. set_task(2.2,"place_puddle",3424+id,ids,1,"a",4)
  142. #if !defined NO_CS_CZ
  143. set_task(12.0,"weapons_back",6794+id,ids,1)
  144. }
  145. else
  146. {
  147. client_print(id,print_chat, "Nincs holttest körülötted")
  148. return PLUGIN_HANDLED
  149. }
  150. }
  151. #endif
  152. return PLUGIN_HANDLED
  153. }
  154.  
  155. public sqrt(num)
  156. {
  157. new div = num
  158. new result = 1
  159. while (div > result) {
  160. div = (div + result) / 2
  161. result = num / div
  162. }
  163. return div
  164. }
  165.  
  166. public make_pee(ids[])
  167. {
  168. new id=ids[0]
  169. new vec[3]
  170. new aimvec[3]
  171. new velocityvec[3]
  172. new length
  173. get_user_origin(id,vec)
  174. get_user_origin(id,aimvec,3)
  175. new distance = get_distance(vec,aimvec)
  176. new speed = floatround(distance*1.9)
  177.  
  178. velocityvec[0]=aimvec[0]-vec[0]
  179. velocityvec[1]=aimvec[1]-vec[1]
  180. velocityvec[2]=aimvec[2]-vec[2]
  181.  
  182. length=sqrt(velocityvec[0]*velocityvec[0]+velocityvec[1]*velocityvec[1]+velocityvec[2]*velocityvec[2])
  183.  
  184. velocityvec[0]=velocityvec[0]*speed/length
  185. velocityvec[1]=velocityvec[1]*speed/length
  186. velocityvec[2]=velocityvec[2]*speed/length
  187.  
  188. switch(get_cvar_num("amx_piss_effect"))
  189. {
  190. case 0:
  191. {
  192. message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
  193. write_byte(101)
  194. write_coord(vec[0])
  195. write_coord(vec[1])
  196. write_coord(vec[2])
  197. write_coord(velocityvec[0])
  198. write_coord(velocityvec[1])
  199. write_coord(velocityvec[2])
  200. write_byte(102) // color
  201. write_byte(160) // speed
  202. message_end()
  203. }
  204. case 1:
  205. {
  206. message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
  207. write_byte(106)
  208. write_coord(vec[0])
  209. write_coord(vec[1])
  210. write_coord(vec[2])
  211. write_coord(velocityvec[0])
  212. write_coord(velocityvec[1])
  213. write_coord(velocityvec[2]+100)
  214. write_angle (0)
  215. write_short (piss_model)
  216. write_byte (0)
  217. write_byte (255)
  218. message_end()
  219.  
  220. message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
  221. write_byte (1)
  222. write_short (id)
  223. write_coord(aimvec[0])
  224. write_coord(aimvec[1])
  225. write_coord(aimvec[2])
  226. write_short(piss_sprite)
  227. write_byte( 1 ) // framestart
  228. write_byte( 6 ) // framerate
  229. write_byte( 1 ) // life
  230. write_byte( 8 ) // width
  231. write_byte( 0 ) // noise
  232. write_byte( 255 ) // r, g, b
  233. write_byte( 255 ) // r, g, b
  234. write_byte( 0 ) // r, g, b
  235. write_byte( 200 ) // brightness
  236. write_byte( 10 ) // speed
  237. message_end()
  238.  
  239. message_begin( MSG_BROADCAST,SVC_TEMPENTITY)
  240. write_byte(17)
  241. write_coord(aimvec[0])
  242. write_coord(aimvec[1])
  243. write_coord(aimvec[2])
  244. write_short(water_splash)
  245. write_byte(16)
  246. write_byte(18)
  247. message_end()
  248.  
  249. }
  250. default:
  251. {
  252. message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
  253. write_byte(101)
  254. write_coord(vec[0])
  255. write_coord(vec[1])
  256. write_coord(vec[2])
  257. write_coord(velocityvec[0])
  258. write_coord(velocityvec[1])
  259. write_coord(velocityvec[2])
  260. write_byte(102) // color
  261. write_byte(160) // speed
  262. message_end()
  263. }
  264. }
  265. }
  266.  
  267. public place_puddle(ids[])
  268. {
  269. new id=ids[0]
  270. if(!aim[id])
  271. {
  272. new origin[3]
  273. get_user_origin(id,origin,3)
  274. aim_origin[id][0]=float(origin[0])
  275. aim_origin[id][1]=float(origin[1])
  276. aim_origin[id][2]=float(origin[2])
  277. }
  278.  
  279. new puddle_entity
  280. puddle_entity = CreateEntity("info_target")
  281.  
  282. if(puddle_entity == 0) {
  283. return PLUGIN_HANDLED_MAIN
  284. }
  285.  
  286. new Float:MinBox[3]
  287. new Float:MaxBox[3]
  288.  
  289. MinBox[0] = -1.0
  290. MinBox[1] = -1.0
  291. MinBox[2] = -1.0
  292. MaxBox[0] = 1.0
  293. MaxBox[1] = 1.0
  294. MaxBox[2] = 1.0
  295.  
  296. Entvars_Set_Vector(puddle_entity, EV_VEC_mins, MinBox)
  297. Entvars_Set_Vector(puddle_entity, EV_VEC_maxs, MaxBox)
  298.  
  299. switch(count_puddle[id])
  300. {
  301. case 1:
  302. {
  303. Entvars_Set_String(puddle_entity, EV_SZ_classname, "piss_puddle1")
  304. ENT_SetModel(puddle_entity, "models/piss/piss_puddle1.mdl")
  305. }
  306. case 2:
  307. {
  308. Entvars_Set_String(puddle_entity, EV_SZ_classname, "piss_puddle2")
  309. ENT_SetModel(puddle_entity, "models/piss/piss_puddle2.mdl")
  310. }
  311. case 3:
  312. {
  313. Entvars_Set_String(puddle_entity, EV_SZ_classname, "piss_puddle3")
  314. ENT_SetModel(puddle_entity, "models/piss/piss_puddle3.mdl")
  315. }
  316. case 4:
  317. {
  318. Entvars_Set_String(puddle_entity, EV_SZ_classname, "piss_puddle4")
  319. ENT_SetModel(puddle_entity, "models/piss/piss_puddle4.mdl")
  320. }
  321. case 5:
  322. {
  323. Entvars_Set_String(puddle_entity, EV_SZ_classname, "piss_puddle5")
  324. ENT_SetModel(puddle_entity, "models/piss/piss_puddle5.mdl")
  325. #if defined NO_CS_CZ
  326. PissFlag[id]=false
  327. #endif
  328. }
  329. default: {}
  330. }
  331.  
  332. ENT_SetOrigin(puddle_entity, aim_origin[id])
  333. Entvars_Set_Int(puddle_entity, EV_INT_solid, 3)
  334. Entvars_Set_Int(puddle_entity, EV_INT_movetype, 6)
  335. Entvars_Set_Edict(puddle_entity, EV_ENT_owner, id)
  336.  
  337. count_puddle[id]+=1
  338. aim[id]=true
  339.  
  340. return PLUGIN_CONTINUE
  341. }
  342.  
  343. public death_event()
  344. {
  345. new victim = read_data(2)
  346. #if !defined NO_CS_CZ
  347. get_user_origin(victim,player_origins[victim],0)
  348. #endif
  349.  
  350. if(PissFlag[victim])
  351. reset_piss(victim)
  352.  
  353. return PLUGIN_CONTINUE
  354. }
  355.  
  356. #if !defined NO_CS_CZ
  357. public weapons_back(ids[])
  358. {
  359. PissFlag[ids[0]]=false
  360. if( (equali(mod_name,"cstrike")) || (equali(mod_name,"czero")) )
  361. {
  362. set_user_maxspeed(ids[0], 250.0)
  363. client_cmd(ids[0], "weapon_knife")
  364. }
  365. }
  366.  
  367. public cur_weapon(id)
  368. {
  369. if(PissFlag[id])
  370. {
  371. if( (equali(mod_name,"cstrike")) || (equali(mod_name,"czero")) )
  372. {
  373. client_cmd(id, "weapon_knife")
  374. set_user_maxspeed(id, -1.0)
  375. entity_set_string(id, EV_SZ_viewmodel, "")
  376. entity_set_string(id, EV_SZ_weaponmodel, "")
  377. }
  378. }
  379.  
  380. return PLUGIN_CONTINUE
  381. }
  382. #endif
  383.  
  384. public reset_piss(id)
  385. {
  386. if(task_exists(1481+id))
  387. remove_task(1481+id)
  388. if(task_exists(3424+id))
  389. remove_task(3424+id)
  390. #if !defined NO_CS_CZ
  391. if(task_exists(6794+id))
  392. remove_task(6794+id)
  393. #endif
  394. emit_sound(id,CHAN_VOICE,"piss/pissing.wav", 0.0, ATTN_NORM, 0, PITCH_NORM)
  395. PissFlag[id]=false
  396.  
  397. return PLUGIN_CONTINUE
  398. }
  399.  
  400. public reset_hud(id)
  401. {
  402. if(task_exists(1481+id))
  403. remove_task(1481+id)
  404. if(task_exists(3424+id))
  405. remove_task(3424+id)
  406. #if !defined NO_CS_CZ
  407. if(task_exists(6794+id))
  408. remove_task(6794+id)
  409. #endif
  410. emit_sound(id,CHAN_VOICE,"piss/pissing.wav", 0.0, ATTN_NORM, 0, PITCH_NORM)
  411. PissFlag[id]=false
  412.  
  413. new iCurrent
  414.  
  415. for (new i=1 ; i<count_piss[id] ; i++)
  416. {
  417. iCurrent = FindEntity(-1, "piss_puddle1")
  418. if(iCurrent > 0)
  419. RemoveEntity(iCurrent)
  420. iCurrent = FindEntity(-1, "piss_puddle2")
  421. if(iCurrent > 0)
  422. RemoveEntity(iCurrent)
  423. iCurrent = FindEntity(-1, "piss_puddle3")
  424. if(iCurrent > 0)
  425. RemoveEntity(iCurrent)
  426. iCurrent = FindEntity(-1, "piss_puddle4")
  427. if(iCurrent > 0)
  428. RemoveEntity(iCurrent)
  429. iCurrent = FindEntity(-1, "piss_puddle5")
  430. if(iCurrent > 0)
  431. RemoveEntity(iCurrent)
  432. }
  433. count_piss[id]=1
  434.  
  435. return PLUGIN_CONTINUE
  436. }
  437.  
  438. public piss_help(id)
  439. {
  440. client_print(id, print_chat, "Ahozz ,hogy le bird pisilni a halotatt be kell bindelni")
  441. client_print(id, print_chat, "Nyisd meg a konzolt és írd be: bind ^"key^" ^"piss^"")
  442. client_print(id, print_chat, "ex: bind ^"x^" ^"piss^"")
  443.  
  444. return PLUGIN_CONTINUE
  445. }
  446.  
  447. public handle_say(id)
  448. {
  449. new said[192]
  450. read_args(said,192)
  451. remove_quotes(said)
  452.  
  453. if( (containi(said, "piss") != -1) && !(containi(said, "/piss") != -1) ) {
  454. client_print(id, print_chat, "[AMXX] Segítségért írd be /piss")
  455. }
  456.  
  457. return PLUGIN_CONTINUE
  458. }
  459.  
  460. public plugin_precache()
  461. {
  462. if (file_exists("sound/piss/pissing.wav"))
  463. precache_sound("piss/pissing.wav")
  464. if (file_exists("models/piss/piss_puddle1.mdl"))
  465. precache_model("models/piss/piss_puddle1.mdl")
  466. if (file_exists("models/piss/piss_puddle2.mdl"))
  467. precache_model("models/piss/piss_puddle2.mdl")
  468. if (file_exists("models/piss/piss_puddle3.mdl"))
  469. precache_model("models/piss/piss_puddle3.mdl")
  470. if (file_exists("models/piss/piss_puddle4.mdl"))
  471. precache_model("models/piss/piss_puddle4.mdl")
  472. if (file_exists("models/piss/piss_puddle5.mdl"))
  473. precache_model("models/piss/piss_puddle5.mdl")
  474. if (file_exists("models/piss/piss.mdl"))
  475. piss_model = precache_model("models/piss/piss.mdl")
  476. piss_sprite = precache_model("sprites/plasma.spr")
  477. water_splash = precache_model("sprites/wsplash3.spr")
  478. }
  479.  
  480. public client_connect(id)
  481. {
  482. PissFlag[id]=false
  483. count_piss[id]=1
  484. }
  485.  
  486. public client_disconnect(id)
  487. {
  488. reset_hud(id)
  489. }
  490.  
  491. public plugin_init()
  492. {
  493. register_plugin("AMX Piss","2.2","KRoTaL")
  494. register_clcmd("piss","piss_on_player",0,"- Piss on a dead player")
  495. register_clcmd("say /piss","piss_help",0,"- Displays piss help")
  496. register_clcmd("say","handle_say")
  497. register_cvar("amx_maxpees","6")
  498. register_cvar("amx_piss_admin","0")
  499. register_cvar("amx_piss_effect","0")
  500. register_event("DeathMsg","death_event","a")
  501. register_event("ResetHUD", "reset_hud", "be")
  502. #if !defined NO_CS_CZ
  503. register_event("CurWeapon","cur_weapon","be","1=1")
  504. get_modname(mod_name,31)
  505. #endif
  506. }
  507.  

_________________
Kép

Ők köszönték meg alfaanero nek ezt a hozzászólást: norbee.16 (2014.05.02. 07:30)
  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  [ 2 hozzászólás ] 


Ki van itt

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