|
Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/
На что ориентируются боты, когда двигаются к оружию...
|
|
Brute | Дата: Понедельник, 25.08.2008, 12:55:05 | Сообщение # 1 |
 Генерал-полковник
Группа: Скриптеры
Сообщений: 1123
Статус: Не в сети
| Сабж. Я думаю что на EV_SZ_classname, это так?
|
|
| |
DaTa | Дата: Понедельник, 25.08.2008, 13:45:48 | Сообщение # 2 |
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Статус: Не в сети
| http://amxmodx.ucoz.ru/forum/11-249-1 Code 2.4 Название/описание темы, а также сам текст сообщения обязаны быть максимально описательными/подробными, а также грамотно составленными. Какие именно боты? Если те, у которых закрытый исходный код, то ты вряд ли узнаешь, может путем проверок, но это не 100% гарантия.
|
|
| |
Brute | Дата: Понедельник, 25.08.2008, 14:02:17 | Сообщение # 3 |
 Генерал-полковник
Группа: Скриптеры
Сообщений: 1123
Статус: Не в сети
| Quote (DaTa) 2.4 Название/описание темы, а также сам текст сообщения обязаны быть максимально описательными/подробными, а также грамотно составленными. И чем-же тебе не понравилось название темы? По русски сказать:"Что ты до*бался до меня?" Правила, я слава богу знаю Quote (DaTa) Какие именно боты? Если те, у которых закрытый исходный код, то ты вряд ли узнаешь, может путем проверок, но это не 100% гарантия. Думаю все боты боты ориентируются на classname, вот решил узнать так ли оно. А если ты не знаешь, нах*я постишь? Ну хоть предположение бы сделал, на что они могут ориентироваться... И если ты реально во всём соображаешь, глянь в sdk от cs, там должно это быть. Т.К. mp.dll от cs и mp.dll от cs:cz-идентичные файлы. ЗЫ попроси у AlMod'а модера...
|
|
| |
DaTa | Дата: Понедельник, 25.08.2008, 14:33:40 | Сообщение # 4 |
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Статус: Не в сети
| Quote (Brute) Ну хоть предположение бы сделал, на что они могут ориентироваться... И если ты реально во всём соображаешь, глянь в sdk от cs, там должно это быть. Т.К. mp.dll от cs и mp.dll от cs:cz-идентичные файлы. Боты CZ вообще встроены в мод, они могут там что угодно делать, как угодно видеть, т.е. может даже перед выбросом оружия из умирающего игрока быть кэширование на edict_t*, то исскуственное выбрасывание они не распознают. А разве они вообще подбирают оружие специально?) Или ты имеешь ввиду оружие, лежащие на карте?
|
|
| |
Brute | Дата: Понедельник, 25.08.2008, 14:49:12 | Сообщение # 5 |
 Генерал-полковник
Группа: Скриптеры
Сообщений: 1123
Статус: Не в сети
| Quote (DaTa) А разве они вообще подбирают оружие специально?) Да, если бот стоит недалеко от своего любимого оружия или более мошьное чем текущее, он обязательно найдёт время чтобы подбежать к нему, скинуть текущее оружие и взять которое валяется. Quote (DaTa) Или ты имеешь ввиду оружие, лежащие на карте? да хоть какое оружие, если бот увидел пушку и не впалил врага, он попытается схватить оружие. Если он впалил врага-он сначало разберётся с врагом, а потом всёравно хапнет пушку. Я даже заметил на одной КА карте такую фигню... Карта сделана в виде цилиндра, в середине лежит aug, все игроки стартуют по краям цилиндра, так вот боты прямо таки рвутся к середине, и я даже не помню, что успевал захватить эту пушку первым.
|
|
| |
DaTa | Дата: Понедельник, 25.08.2008, 15:17:30 | Сообщение # 6 |
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Статус: Не в сети
| ну вроде лежащее оружие на карте - armoury_entity, его тип можно узнать в PrivateData(amxx-scr/dlls/cstrike/cstrike/cstrike.h :: OFFSET_ARMOURY_TYPE или native cs_get_armoury_type(index) в модуле cstrike) а в выкинутым игроком красуется в роли pev_owner weaponbox, у weaponbox моделька оружия и он лежит на карте(см. faketema_util.inc :: fm_get_weaponbox_type(entity) ) ну это предположение, особо с этим я не работал... теперь исходя из этих знаний можно сделать несколько предположений, как они подбирают оружие - Выкинутое(weaponbox) - edict_t *FindEntityInSphere(edict_t *pEdictStartSearchAfter, const float *org, float rad); через некоторые промежутки времени
- кэширование выкинутого оружия в самой длл(для CZ) или хук создания weaponbox и кэширование его edict_t *(для не встроенных ботов), что бы потом проверять дистанцию до него(возможно через некоторое время)
На карте аналогично (armoury_entity) - edict_t *FindEntityInSphere(edict_t *pEdictStartSearchAfter, const float *org, float rad); через некоторые промежутки времени
- кэширование edict_t * при загрузке карты, что бы потом проверять дистанцию до него(возможно через некоторое время)
ну больше ничего не могу придумать 
Сообщение отредактировал DaTa - Понедельник, 25.08.2008, 15:53:38 |
|
| |
Brute | Дата: Понедельник, 25.08.2008, 15:42:16 | Сообщение # 7 |
 Генерал-полковник
Группа: Скриптеры
Сообщений: 1123
Статус: Не в сети
| Хм, большое спасибо! МБ попробывать Entity Info, узнать что там в пушках пишется, а потом методом тыка...
|
|
| |
DaTa | Дата: Понедельник, 25.08.2008, 15:59:38 | Сообщение # 8 |
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Статус: Не в сети
| Quote (Brute) МБ попробывать Entity Info, узнать что там в пушках пишется, а потом методом тыка... вообще советую тебе перейти на fakemeta с engine, так как больше возможностей и вообще это уже ближе к строению движка/мода hl
|
|
| |
Brute | Дата: Вторник, 26.08.2008, 19:55:31 | Сообщение # 9 |
 Генерал-полковник
Группа: Скриптеры
Сообщений: 1123
Статус: Не в сети
| Quote (DaTa) вообще советую тебе перейти на fakemeta с engine факемета = отцстой я начинал с неё, но пришёл к двигану, разницы пока не заметил, но если будет необходимость изучу факу Добавлено (2008-08-26, 7:55 Pm) --------------------------------------------- Вот эти даные мне получилось получить о брошенном мною ak47 Code EV_INT_movetype = 6(MOVETYPE_TOSS) EV_INT_solid = 1(SOLID_TRIGGER) EV_INT_modelindex = 97 EV_INT_watertype = -1 EV_INT_flags = 512 EV_FL_nextthink = 327.453979 EV_ENT_owner = 1(My id) EV_ENT_pContainingEntity = 73 EV_SZ_classname = weaponbox EV_SZ_model = models/w_ak47.mdl Правда не стал заморачиваться с векторами, думаю они на ботов не как не влияют. Напрашивается вывод, что боты ориентируются название модели, которое использует Entity
|
|
| |
DaTa | Дата: Вторник, 26.08.2008, 20:06:33 | Сообщение # 10 |
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Статус: Не в сети
| попробуй сразу после выброса оружия заменить название модели weaponbox на какое-то другое - будут ли они его подымать? Quote EV_ENT_pContainingEntity = 73 возможно это оружие О_о
|
|
| |
Brute | Дата: Пятница, 29.08.2008, 03:35:43 | Сообщение # 11 |
 Генерал-полковник
Группа: Скриптеры
Сообщений: 1123
Статус: Не в сети
| Quote (DaTa) возможно это оружие О_о нет, сегодняшние результаты только, что дропнутого ak47(0,2 секунды после отсылки команды дроп, оружие ещё не достигло земли) показали следующее: ] drop [drop] p EV_INT_gamestate = 1 e EV_INT_gamestate = 0 p EV_INT_oldbuttons = 0 e EV_INT_oldbuttons = 0 p EV_INT_groupinfo = 0 e EV_INT_groupinfo = 0 p EV_INT_iuser1 = 0 e EV_INT_iuser1 = 0 p EV_INT_iuser2 = 0 e EV_INT_iuser2 = 0 p EV_INT_iuser3 = 0 e EV_INT_iuser3 = 0 p EV_INT_iuser4 = 0 e EV_INT_iuser4 = 0 p EV_INT_weaponanim = 8 e EV_INT_weaponanim = 0 p EV_INT_pushmsec = 0 e EV_INT_pushmsec = 0 p EV_INT_bInDuck = 0 e EV_INT_bInDuck = 0 p EV_INT_flTimeStepSound = 367 e EV_INT_flTimeStepSound = 0 p E_INT_flSwimTime = 0 e EV_INT_flSwimTime = 0 p EV_INT_flDuckTime = 0 e EV_INT_flDuckTime = 0 p EV_INT_iStepLeft = 1 e EV_INT_iStepLeft = 0 p EV_INT_movetype = 3 e EV_INT_movetype = 6 p EV_INT_solid = 3 e EV_INT_solid = 1 p EV_INT_skin = 0 e EV_INT_skin = 0 p EV_INT_body = 0 e EV_INT_body = 0 p EV_INT_effects = 0 e EV_INT_effects = 0 p EV_INT_light_level = 81 e EV_INT_light_level = 0 p EV_INT_sequence = 19 e EV_INT_sequence = 0 p EV_INT_gaitsequence = 1 e EV_INT_gaitsequence = 0 p EV_INT_modelindex = 175 e E_INT_modelindex = 88 p EV_INT_playerclass = 0 e EV_INT_playerclass = 0 p EV_INT_waterlevel = 0 e EV_INT_waterlevel = 0 p EV_INT_watertype = -1 e EV_INT_watertype = -1 p EV_INT_spawnflags = 0 e EV_INT_spawnflags = 0 p EV_INT_flags = 520 e EV_INT_flags = 0 p EV_INT_colormap = 1 e EV_INT_colormap = 0 p EV_INT_team = 0 e EV_INT_team = 0 p EV_INT_fixangle = 0 e EV_INT_fixangle = 0 p EV_INT_weapons = -1610481648 e EV_INT_weapons = 0 p EV_INT_rendermode = 4 e EV_INT_rendermode = 0 p EV_INT_renderfx = 0 e EV_INT_rnderfx = 0 p EV_INT_button = 0 e EV_INT_button = 0 p EV_INT_impulse = 0 e EV_INT_impulse = 0 p EV_INT_deadflag = 0 e EV_INT_deadflag = 0 p EV_FL_impacttime = 0.000000 e EV_FL_impacttime = 0.000000 p EV_FL_starttime = 0.000000 e EV_FL_starttime = 0.000000 p EV_FL_idealpitch = 0.000000 e EV_FL_idealpitch = 0.000000 p EV_FL_pitch_speed = 0.000000 e EV_FL_pitch_speed = 0.000000 p EV_FL_ideal_yaw = 0.000000 e EV_FL_ideal_yaw = 0.000000 p EV_FL_yaw_speed = 0.000000 e EV_FL_yaw_speed = 0.000000 p EV_FL_ltime = 0.00000 e EV_FL_ltime = 0.000000 p EV_FL_nextthink = -1.000000 e EV_FL_nextthink = 349.668670 p EV_FL_gravity = 1.000000 e EV_FL_gravity = 0.000000 p EV_FL_friction = 1.000000 e EV_FL_friction = 0.000000 p EV_FL_frame = 255.437500 e EV_FL_frame = 0.000000 p EV_FL_animtime = 50.015529 e EV_FL_animtime = 0.000000 p EV_FL_framerate = 1.000000 e EV_FL_framerate = 0.000000 p EV_FL_health = 100.000000 e EV_FL_health = 0.000000 p EV_FL_frags = 0.000000 e EV_FL_frags = 0.000000 p EV_FL_takedamage = 2.000000 e EV_FL_akedamage = 0.000000 p EV_FL_max_health = 100.000000 e EV_FL_max_health = 0.000000 p EV_FL_teleport_time = 0.000000 e EV_FL_teleport_time = 0.000000 p EV_FL_armortype = 0.000000 e EV_FL_armortype = 0.000000 p EV_FL_armorvalue = 100.000000 e EV_FL_armorvalue = 0.000000 p EV_FL_dmg_take = 0.000000 e EV_FL_dmg_take = 0.000000 p EV_FL_dmg_save = 0.000000 e EV_FL_dmg_save = 0.000000 p EV_FL_dmg = 2.000000 e EV_FL_dmg = 0.000000 p EV_FL_dmgtime = 0.000000 e EV_FL_dmgtime = 0.000000 p EV_FL_speed = 0.000000 e EV_L_speed = 0.000000 p EV_FL_air_finished = 62.015529 e EV_FL_air_finished = 0.000000 p EV_FL_pain_finished = 0.000000 e EV_FL_pain_finished = 0.000000 p EV_FL_radsuit_finished = 0.000000 e EV_FL_radsuit_finished = 0.000000 p EV_FL_scale = 0.000000 e EV_FL_scale = 0.000000 p EV_FL_renderamt = 255.000000 e EV_FL_renderamt = 0.000000 p EV_FL_maxspeed = 250.000000 e EV_FL_maxspeed = 0.000000 p EV_FL_fov = 90.000000 e EV_FL_fov = 0.000000 p EV_FL_flFallVelocity = 0.000000 e EV_FL_flFallVelocity = 0.000000 p EV_F_fuser1 = 0.000000 e EV_FL_fuser1 = 0.000000 p EV_FL_fuser2 = 0.000000 e EV_FL_fuser2 = 0.000000 p EV_FL_fuser3 = 0.000000 e EV_FL_fuser3 = 0.000000 p EV_FL_fuser4 = 0.000000 e EV_FL_fuser4 = 0.000000 p EV_VEC_origin = -823.257995, -775.948486, 164.031250 e EV_VEC_origin = -952.810852, -771.089660, 132.668014 p EV_VEC_oldorigin = 0.000000, 0.000000, 0.000000 e EV_VEC_oldorigin = 0.000000, 0.000000, 0.000000 p EV_VEC_velocity = 0.000000, 0.000000, 0.000000 e EV_VEC_velocity = -398.844665, 14.958379, -213.41367 p EV_VEC_basevelocity = 0.000000, 0.000000, 0.000000 e EV_VEC_basevelocity = 0.000000, 0.000000, 0.000000 p EV_VEC_clbasevelocity = 0.000000, 0.000000, 0.000000 e EV_VEC_clbasevelocity = 0.000000, 0.000000, 0.000000 p EV_VEC_movedir = 0.000000, 0.000000, 0.000000 e EV_VEC_movedir = 0.000000, 0.000000, 0.000000 p EV_VEC_angles = -3.790283, 177.852172, 0.000000 e EV_VEC_angles = 0.000000, 177.852172, 0.000000 p EV_VEC_avelocity = 0.000000, 0.000000, 0.000000 e EV_VEC_avelocity = 0.000000, 0.000000, 0.00000 p EV_VEC_punchangle = 0.000000, 0.000000, 0.000000 e EV_VEC_punchangle = 0.000000, 0.000000, 0.000000 p EV_VEC_v_angle = 11.370849, 177.852172, 0.000000 e EV_VEC_v_angle = 0.000000, 0.000000, 0.000000 p EV_VEC_endpos = 0.000000, 0.000000, 0.000000 e EV_VEC_endpos = 0.000000, 0.000000, 0.000000 p EV_VEC_startpos = 0.000000, 0.000000, 0.000000 e EV_VEC_startpos = 0.000000, 0.000000, 0.000000 p EV_VEC_absmin = -840.257995, -792.948486, 127.031250 e EV_VEC_absmin = -968.810852, -787.089660, 132.668014 p EV_EC_absmax = -806.257995, -758.948486, 201.031250 e EV_VEC_absmax = -936.810852, -755.089660, 148.668014 p EV_VEC_mins = -16.000000, -16.000000, -36.000000 e EV_VEC_mins = 0.000000, 0.000000, 0.000000 p EV_VEC_maxs = 16.000000, 16.000000, 36.000000 e EV_VEC_maxs = 0.000000, 0.000000, 0.000000 p EV_VEC_size = 32.000000, 32.000000, 72.000000 e EV_VEC_size = 0.000000, 0.000000, 0.000000 p EV_VEC_rendercolor = 0.000000, 0.000000, 0.000000 e EV_VEC_rendercolor = 0.000000, 0.000000, 0.000000 p EV_VEC_view_ofs = 0000000, 0.000000, 17.000000 e EV_VEC_view_ofs = 0.000000, 0.000000, 0.000000 p EV_VEC_vuser1 = 0.000000, 0.000000, 0.000000 e EV_VEC_vuser1 = 0.000000, 0.000000, 0.000000 p EV_VEC_vuser2 = 0.000000, 0.000000, 0.000000 e EV_VEC_vuser2 = 0.000000, 0.000000, 0.000000 p EV_VEC_vuser3 = 0.000000, 0.000000, 0.000000 e EV_VEC_vuser3 = 0.000000, 0.000000, 0.000000 p EV_ENT_chain = 0 e EV_ENT_chain = 0 p EV_ENT_dmg_inflictor = 0 e EV_ENT_dmg_inflictor = 0 p EV_ENT_enemy = 0 e EV_ENT_enemy = 0 p EV_ENT_aiment = 0 e V_ENT_aiment = 0 p EV_ENT_owner = 0 e EV_ENT_owner = 1 p EV_ENT_groundentity = 0 e EV_ENT_groundentity = 0 p EV_ENT_pContainingEntity = 1 e EV_ENT_pContainingEntity = 59 p EV_ENT_euser1 = 0 e EV_ENT_euser1 = 0 p EV_ENT_euser2 = 0 e EV_ENT_euser2 = 0 p EV_ENT_euser3 = 0 e EV_ENT_euser3 = 0 p EV_ENT_euser4 = 0 e EV_ENT_euser4 = 0 p EV_SZ_classname = player e EV_SZ_classname = weaponbox p EV_SZ_globalname = e EV_SZ_globalname = p EV_SZ_model = models/player/terror/terror.mdl e EV_SZ_model = models/w_ak47.md p EV_SZ_target = e EV_SZ_target = p EV_SZ_targetname = e EV_SZ_targetname = p EV_SZ_netname = Brute e EV_SZ_netname = p EV_SZ_message = e EV_SZ_message = p EV_SZ_noise = e EV_SZ_noise = p EV_SZ_noise1 = e EV_SZ_noise1 = p EV_SZ_noise2 = e EV_SZ_noise2 = p EV_SZ_noise3 = e EV_SZ_noise3 = p EV_SZ_viewmodel = models/v_glock18.mdl e EV_SZ_viewmodel = p EV_SZ_weaponmodel = models/p_glock18.mdl e EV_SZ_weaponmodel = p EV_BYTE_controller1 = 0 e EV_BYTE_controller1 = 0 p EV_BYTE_controller2 = 0 eEV_BYTE_controller2 = 0 p EV_BYTE_controller3 = 0 e EV_BYTE_controller3 = 0 p EV_BYTE_controller4 = 0 e EV_BYTE_controller4 = 0 p EV_BYTE_blending1 = 137 e EV_BYTE_blending1 = 0 p EV_BYTE_blending2 = 158 e EV_BYTE_blending2 = 0 ] condump (Примечание: p - player, e - droped entity) Добавлено (2008-08-29, 3:35 Am) --------------------------------------------- Сегодня провел ещё один опыт над ботом, результаты отвратительные... Написал плагин который отбирает у бота деньги и даёт ему galil, это довольно низкий приоритет: Quote (BotProfile.db) ... Template Shotgun WeaponPreference = xm1014 WeaponPreference = m3 WeaponPreference = famas WeaponPreference = galil WeaponPreference = mp5 End ... Tough+Shotgun Don Skin = 4 VoicePitch = 95 End ... скидываю перед ним xm1014 созданный плагином, ноль реакции потом скидывал дефолтовое xm1014 - налетает моментом... в общем, что-то ещё нужно искать 
|
|
| |
 | AMX Mod X Russian Community © 2006-2025  |  |
|
| |