Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <amxmodx>
- #include <hamsandwich>
- new count_puke[33]
- new bool:PukeFlag[33], bool:aim[33], counter[33], limite_vomitar[33];
- new player_origins[33][3], maxplayers;
- new const CMD[][]= { "puke", "vomir" }
- public plugin_precache()
- {
- if (file_exists("sound/puke/puke.wav"))
- precache_sound("puke/puke.wav")
- if (file_exists("sound/puke/puke2.wav"))
- precache_sound("puke/puke2.wav")
- return PLUGIN_CONTINUE
- }
- public plugin_init()
- {
- register_plugin("AMX Puke","0.2","KRoTaL")
- for(new i = 0; i < sizeof(CMD); i++) { register_clcmd(CMD[i], "pukecmd"); }
- register_clcmd("say /puke","puke_help",0,"- Displays puke help")
- register_cvar("amx_maxpukes","3")
- register_cvar("amx_puke_admin","0")
- register_event("DeathMsg","death_event","a")
- register_event("ResetHUD", "reset_hud", "be")
- register_event("HLTV", "event_round_start", "a", "1=0", "2=0")
- RegisterHam(Ham_Spawn, "player", "fwHamPlayerSpawnPost", 1);
- maxplayers = get_maxplayers();
- }
- public fwHamPlayerSpawnPost(iPlayer) {
- if (is_user_alive(iPlayer)) {
- PukeFlag[iPlayer] = true
- }
- }
- public client_connect(id)
- {
- PukeFlag[id]=false
- count_puke[id]=1
- }
- public client_disconnect(id)
- {
- reset_hud(id)
- }
- public death_event()
- {
- new victim = read_data(2)
- #if !defined NO_CS_CZ
- get_user_origin(victim,player_origins[victim],0)
- #endif
- if(PukeFlag[victim])
- reset_puke(victim)
- return PLUGIN_CONTINUE
- }
- public reset_hud(id)
- {
- if(task_exists(2412+id))
- remove_task(2412+id)
- emit_sound(id,CHAN_VOICE,"puke/puke.wav", 0.0, ATTN_NORM, 0, PITCH_NORM)
- PukeFlag[id]=false
- count_puke[id]=1
- return PLUGIN_CONTINUE
- }
- public event_round_start() {
- for(new i = 1; i <= maxplayers; i++) {
- limite_vomitar[i] = 0;
- }
- }
- public reset_puke(id)
- {
- if(task_exists(2412+id))
- remove_task(2412+id)
- emit_sound(id,CHAN_VOICE,"puke/puke.wav", 0.0, ATTN_NORM, 0, PITCH_NORM)
- PukeFlag[id]=false
- return PLUGIN_CONTINUE
- }
- public puke_help(id)
- {
- client_print(id, print_chat, "Para vomitar escribe en consola bind ^"z^" ^"puke^"")
- return PLUGIN_CONTINUE
- }
- public pukecmd(const id) {
- if(limite_vomitar[id] > 2) {
- client_print(id, print_chat,"[AMXX] No puedes vomitar mas de 2 veces por ronda.")
- return;
- }
- if(!is_user_alive(id)) {
- client_print(id, print_chat,"[AMXX] No puedes vomitar estando muerto.")
- return;
- }
- count_puke[id]+=1
- new ids[1]
- ids[0]=id
- PukeFlag[id]=true
- aim[id]=false
- counter[id]=0
- new rand_sound=random_num(0,1)
- new player_name[33]; get_user_name(id, player_name, charsmax(player_name));
- client_print(0, print_chat,"%s Esta Vomitando !!", player_name)
- switch(rand_sound)
- {
- case 0: emit_sound(id, CHAN_VOICE, "puke/puke.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
- case 1: emit_sound(id, CHAN_VOICE, "puke/puke2.wav", 1.0, ATTN_NORM, 0, PITCH_NORM)
- }
- set_task(0.3,"make_puke",2412+id,ids,1,"a",9)
- limite_vomitar[id]++
- }
- public sqrt(num)
- {
- new div = num
- new result = 1
- while (div > result) {
- div = (div + result) / 2
- result = num / div
- }
- return div
- }
- public make_puke(ids[])
- {
- new id=ids[0]
- new vec[3]
- new aimvec[3]
- new velocityvec[3]
- new length
- get_user_origin(id,vec, 1)
- get_user_origin(id,aimvec,3)
- new distance = get_distance(vec,aimvec)
- new speed = floatround(distance*1.9)
- velocityvec[0]=aimvec[0]-vec[0]
- velocityvec[1]=aimvec[1]-vec[1]
- velocityvec[2]=aimvec[2]-vec[2]
- length=sqrt(velocityvec[0]*velocityvec[0]+velocityvec[1]*velocityvec[1]+velocityvec[2]*velocityvec[2])
- velocityvec[0]=velocityvec[0]*speed/length
- velocityvec[1]=velocityvec[1]*speed/length
- velocityvec[2]=velocityvec[2]*speed/length
- message_begin(MSG_BROADCAST,SVC_TEMPENTITY)
- write_byte(101)
- write_coord(vec[0])
- write_coord(vec[1])
- write_coord(vec[2]-2)
- write_coord(velocityvec[0])
- write_coord(velocityvec[1])
- write_coord(velocityvec[2])
- write_byte(82) // color
- write_byte(160) // speed
- message_end()
- counter[id]++
- if(counter[id]==9)
- PukeFlag[id]=false
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement