| CLLlAgOB | Дата: Воскресенье, 10.02.2008, 04:42:27 | Сообщение # 1 |
 Полковник
Группа: Скриптеры
Сообщений: 217
Статус: Не в сети
| Вот код задача нужно сделать чтобы при нажатии клавиши атаки у пользователя который зажат грабом отнимальсь hp Code #include <amxmodx> #include <amxmisc> #include <fakemeta>
#define MIN_DIST 70.0 #define THROW_POWER 1500 new grab[32] new Float:grabdistance[32] new bool:grabsearch[32]
public plugin_init() { register_clcmd("+grab","grab_on") register_clcmd("-grab","grab_off") } public client_PreThink(id) { new buttons = entity_get_int(id,EV_INT_button) if(grabsearch[id-1] == true) { new aimid, aimbody if(get_user_aiming(id,aimid,aimbody) != 0.0 && aimid != 0) { new targetclass[16] entity_get_string(aimid,EV_SZ_classname,targetclass,16) if(equal(targetclass,"player")) { if(is_user_grabbed(aimid) == -1) grab_player(id,aimid) else { client_print(id,print_chat,"Dieser Spieler ist schon grabbed") grabsearch[id-1] = false } } } } if(grab[id-1] > 0) { // Took this from JediGrap by KCE new Float:origin1[3], Float:origin2[3], ilook[3], Float:look[3], Float:direction[3], Float:moveto[3], Float:grabbedorigin[3], Float:velocity[3], Float:length get_user_origin(id,ilook,3) IVecFVec(ilook,look) entity_get_vector(grab[id-1],EV_VEC_origin,grabbedorigin)
entity_get_vector(id,EV_VEC_origin,origin1) entity_get_vector(grab[id-1],EV_VEC_origin,origin2)
direction[0] = look[0] - origin1[0] direction[1] = look[1] - origin1[1] direction[2] = look[2] - origin1[2] length = get_distance_f(look,origin1) if(!length) length = 1.0 // avoid division by 0
moveto[0] = origin1[0] + direction[0] * grabdistance[id-1] / length moveto[1] = origin1[1] + direction[1] * grabdistance[id-1] / length moveto[2] = origin1[2] + direction[2] * grabdistance[id-1] / length
velocity[0] = (moveto[0] - origin2[0]) * 8 velocity[1] = (moveto[1] - origin2[1]) * 8 velocity[2] = (moveto[2] - origin2[2]) * 8
entity_set_vector(grab[id-1],EV_VEC_velocity,velocity) // Push and Pull if(buttons&IN_ATTACK) { entity_set_int(id,EV_INT_button,buttons&~IN_ATTACK) Как тут заставить старадать зажатого чела )))) ну типа - hp каждую секунду } } if(is_user_grabbed(id) != -1) entity_set_int(id,EV_INT_button,buttons&~IN_MOVELEFT&~IN_MOVERIGHT&~IN_FORWARD&~IN_BACK&~IN_JUMP) // Stop sucking :o } // =================================================================================================
public grab_on(id,level,cid) { if(!Rebel[id]) return PLUGIN_HANDLED grabsearch[id-1] = true return PLUGIN_HANDLED }
public grab_off(id,level,cid) { if(!Rebel[id]) return PLUGIN_HANDLED grabsearch[id-1] = false grab[id-1] = 0 return PLUGIN_HANDLED }
// =================================================================================================
public grab_player(id,target) { grab[id-1] = target grabsearch[id-1] = false new Float:origin1[3], Float:origin2[3] entity_get_vector(id,EV_VEC_origin,origin1) entity_get_vector(target,EV_VEC_origin,origin2) grabdistance[id-1] = get_distance_f(origin1,origin2) new name[32] get_user_name(target,name,31) client_print(id,print_chat,"[DeadMod] You grabbed %s",name) if(callfunc_begin("detect_cheat","prokreedz.amxx") == 1) { callfunc_push_int(target) callfunc_push_str("Grab") callfunc_end() } }
// =================================================================================================
public is_user_grabbed(id) { for(new i=0;i<32;i++) { if(grab[i] == id) return (i+1) } return -1 }
// =================================================================================================
// =================================================================================================
public deathmsg() { new attacker = read_data(1) // attacker new victim = read_data(2) grab[attacker-1] = 0 grabsearch[attacker-1] = false new pid = is_user_grabbed(victim) if(pid != -1) grab[pid-1] = 0 }
public resethud(id) { new pid = is_user_grabbed(id) if(pid != -1) { grab[pid-1] = 0 } grab[id-1] = 0 grabsearch[id-1] = false }
// ================================================================================================= интересует именно это в коде if(buttons&IN_ATTACK) { entity_set_int(id,EV_INT_button,buttons&~IN_ATTACK) Как тут заставить старадать зажатого чела )))) ну типа - hp каждую секунду }Добавлено (2008-02-09, 4:58 Am) --------------------------------------------- Есть идеи??? Добавлено (2008-02-10, 4:42 Am) --------------------------------------------- Спасибо разобрался ) сам
Сообщение отредактировал CLLlAgOB - Пятница, 08.02.2008, 14:24:46 |
| |
|
|
| draft | Дата: Воскресенье, 10.02.2008, 15:47:05 | Сообщение # 2 |
 Полковник
Группа: Пользователи
Сообщений: 225
Статус: Не в сети
| Я прошу прощения, но я не понял, что требовалось? И интересно, как проблема решилась?
|
| |
|
|
| CLLlAgOB | Дата: Понедельник, 11.02.2008, 12:01:14 | Сообщение # 3 |
 Полковник
Группа: Скриптеры
Сообщений: 217
Статус: Не в сети
| жа я хотел ID захваченого найти чтобы с ним чтонибуть сделать. Я просто невнимательно код смотрел вот айди grab[id-1]
|
| |
|
|
| draft | Дата: Понедельник, 11.02.2008, 20:33:06 | Сообщение # 4 |
 Полковник
Группа: Пользователи
Сообщений: 225
Статус: Не в сети
| А что это за команда grab?
|
| |
|
|