|
Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/
|
Изменение скорости
|
|
| pa1nkiller | Дата: Воскресенье, 30.11.2008, 12:37:36 | Сообщение # 1 |
 Рядовой
Группа: Пользователи
Сообщений: 18
Статус: Не в сети
| я написал такой плагин, в котором скорость зависит от hp он вроде меняет скорость, но при смене оружия скорость становиться номинальной че делать? Code public plugin_init() { register_plugin(PLUGIN, VERSION, AUTHOR) register_event("Damage", "onDamage", "b", "2!0") register_event("HLTV", "event", "a", "1=0", "2=0") } new Float:speed = 40.0 new Float:speed1 = 80.0 new Float:speed2 = 160.0 new Float:speed3 = 240.0 new Float:speed4 = 320.0 public onDamage(id) { new hp = get_user_health(id) switch(hp){ case 1..5: { set_user_maxspeed(id,speed) } case 6..15: { set_user_maxspeed(id,speed1) } case 16..40: { set_user_maxspeed(id,speed2) } case 41..65: { set_user_maxspeed(id,speed3) } case 66..100: { set_user_maxspeed(id,speed4) } } } public event(id) { set_user_maxspeed(id,speed4) }
p1^^
|
| |
|
|
| F4RR3LL | Дата: Воскресенье, 30.11.2008, 13:06:16 | Сообщение # 2 |
 Полковник
Группа: Скриптеры
Сообщений: 153
Статус: Не в сети
| Code public event(id) { set_user_maxspeed(id,speed4) } попробуй заменить на Code public event() { new pl[32],num get_players(pl,num) for(new i=0;i<num;i++) { set_user_maxspeed(pl[i],speed4) } }
=\
|
| |
|
|
| DaTa | Дата: Воскресенье, 30.11.2008, 14:24:56 | Сообщение # 3 |
|
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Статус: Не в сети
| Я бы воспользовался hamsandwich: для сущностей "weapon_ak47", "weapon_aug", "weapon_awp", "weapon_c4", "weapon_deagle", "weapon_elite", "weapon_famas", "weapon_fiveseven ", "weapon_flashbang", "weapon_g3sg1", "weapon_galil", "weapon_glock18", "weapon_hegrenade", "weapon_knife", "weapon_m 249", "weapon_m3", "weapon_m4a1", "weapon_mac10", "weapon_mp5navy", "weapon_p228", "weapon_p90", "weapon_scout", "weapon_sg5 50", "weapon_sg552", "weapon_shield", "weapon_smokegrenade", "weapon_tmp", "weapon_ump45", "weapon_usp", "weapon_xm1014" хукнул бы Ham_CS_Item_GetMaxSpeed(можно и post, можно прямо в pre менять значение параметра) для player хукнул бы Ham_TakeDamage(post), тут надо проверять is_user_alive сохранять "номинальную" скорость надо при событии Ham_CS_Item_GetMaxSpeed что бы можно было относительную скорость высчитать после в Ham_CS_Item_GetMaxSpeed и Ham_TakeDamage.
|
| |
|
|
| PomanoB | Дата: Воскресенье, 30.11.2008, 14:39:13 | Сообщение # 4 |
 Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Статус: Не в сети
| Я бы просто хукал CurWeapon Code register_event("CurWeapon","switchweapon","be")
public switchweapon(id) { if(g_Speed[id]) fm_set_user_maxspeed(id,500.0) return PLUGIN_CONTINUE }
http://romanov4400.mybrute.com
|
| |
|
|
| pa1nkiller | Дата: Воскресенье, 30.11.2008, 15:01:29 | Сообщение # 5 |
 Рядовой
Группа: Пользователи
Сообщений: 18
Статус: Не в сети
| Quote (PomanoB) register_event("CurWeapon","switchweapon","be") я так понял это событие смены оружия? Quote (PomanoB) fm_set_user_maxspeed и че такое FM?
p1^^
Сообщение отредактировал pa1nkiller - Воскресенье, 30.11.2008, 15:06:44 |
| |
|
|
| DaTa | Дата: Воскресенье, 30.11.2008, 15:42:20 | Сообщение # 6 |
|
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Статус: Не в сети
| Quote (PomanoB) Я бы просто хукал CurWeapon тогда еще нужно хукать client_command drop (post) Quote (pa1nkiller) и че такое FM? %) это портация функции из engine в fakemeta (см. fakemeta_util.inc)
|
| |
|
|
| PomanoB | Дата: Воскресенье, 30.11.2008, 16:07:07 | Сообщение # 7 |
 Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Статус: Не в сети
| Quote (DaTa) тогда еще нужно хукать client_command drop (post) Необязательно, достаточно CurWeapon Quote (pa1nkiller) и че такое FM? http://amxmodx.ucoz.ru/forum/17-90-1
http://romanov4400.mybrute.com
Сообщение отредактировал PomanoB - Воскресенье, 30.11.2008, 16:07:23 |
| |
|
|
| pa1nkiller | Дата: Воскресенье, 30.11.2008, 16:49:29 | Сообщение # 8 |
 Рядовой
Группа: Пользователи
Сообщений: 18
Статус: Не в сети
| так я и не понял что надо добавить в мой плагин...
p1^^
Сообщение отредактировал pa1nkiller - Воскресенье, 30.11.2008, 16:49:52 |
| |
|
|
| PomanoB | Дата: Воскресенье, 30.11.2008, 17:06:37 | Сообщение # 9 |
 Генералиссимус
Группа: Cупер-модеры
Сообщений: 1313
Статус: Не в сети
| В plugin_init Code register_event("CurWeapon","onDamage","be")
http://romanov4400.mybrute.com
|
| |
|
|
| pa1nkiller | Дата: Пятница, 12.12.2008, 16:34:05 | Сообщение # 10 |
 Рядовой
Группа: Пользователи
Сообщений: 18
Статус: Не в сети
| Quote (PomanoB) В plugin_init.... спс большое.. всего т одну строчку надо было добавить  Добавлено (2008-12-12, 4:34 Pm) ---------------------------------------------
Quote (DaTa) Я бы воспользовался hamsandwich: как правильно зарегить его? Code g_speed = registerham(Ham_CS_Item_GetMaxSpeed,???,???,0) не знаю что там писать
p1^^
Сообщение отредактировал pa1nkiller - Воскресенье, 30.11.2008, 18:17:55 |
| |
|
|
| DaTa | Дата: Пятница, 12.12.2008, 17:40:22 | Сообщение # 11 |
|
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Статус: Не в сети
| Quote (pa1nkiller) Quote (DaTa) Я бы воспользовался hamsandwich: как правильно зарегить его? Code g_speed = registerham(Ham_CS_Item_GetMaxSpeed,???,???,0) не знаю что там писать %) открывай, смотри /include/ham_const.inc /include/hamsandwich.inc Code /** * Hooks the virtual table for the specified entity class. * An example would be: RegisterHam(Ham_TakeDamage, "player", "player_hurt"); * Look at the Ham enum for parameter lists. * * @param function The function to hook. * @param EntityClass The entity classname to hook. * @param callback The forward to call. * @param post Whether or not to forward this in post. * @return Returns a handle to the forward. Use EnableHamForward/DisableHamForward to toggle the forward on or off. */ native HamHook:RegisterHam(Ham:function, const EntityClass[], const Callback[], Post=0); ищи плагины, которые его юзают, смотри примеры Добавлено (2008-12-12, 5:40 Pm) --------------------------------------------- Для world_items/worldspawn(глобальный хук) у меня не работает, работает только для каждого оружия отдельно, по этому я регистрировал так Code static const aszWeapons[][]= { "weapon_ak47", "weapon_aug", "weapon_awp", "weapon_c4", "weapon_deagle", "weapon_elite", "wea pon_fam as", "weapon_fiveseven ", "weapon_flashbang", "weapon_g3sg1", "weapon_galil", "weapon_glock18", "weapon_hegrenade", "weapon_kni fe", " weapon_m 249", "weapon_m3", "weapon_m4a1", "weapon_mac10", "weapon_mp5navy", "weapon_p228", "weapon_p90", " weapon_ scout", "weapon_sg5 50", "weapon_sg552", "weapon_shield", "weapon_smokegrenade", "weapon_tmp", "weapon_ump45", "weapon_usp", " weapon_xm1014" } for(new i=0; i < sizeof(aszWeapons);i++) RegisterHam(Ham_CS_Item_GetMaxSpeed, aszWeapons[i], "callback_funtion_name", 1) Попробуй, может у тебя заработает с "world_items" или с "worldspawn" вместо регистрации каждого оружия по отдельности ----- Вообще я рекомендую воспользоваться register_event("CurWeapon","switchweapon","be"), но у меня при каких-то обстоятельствах при смене оружия это сообщение не отправлялось...
|
| |
|
|
 | AMX Mod X Russian Community © 2006-2026  |  |
|
| |