AMX MOD X
Суббота, 26.07.2025, 10:57:11



Приветствую Вас Гость | RSS
[ Главная ] [ На что ориентируются боты, когда двигаются к оружию... - AMX Mod X Форум ] [ Регистрация ] [ Вход ]
[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]

Вниманию участников! Данный форум теперь является архивом и вскором времени здесь нельзя будет создавать новых тем! Просьба всем для общения и создания новых тем перейти на наш новый форум: http://amxmodx.su/

  • Страница 1 из 1
  • 1
Модератор форума: slogic, AlMod  
На что ориентируются боты, когда двигаются к оружию...
BruteДата: Понедельник, 25.08.2008, 12:55:05 | Сообщение # 1
Генерал-полковник
Группа: Скриптеры
Сообщений: 1123
Репутация: 9
Статус: Не в сети
Сабж. Я думаю что на EV_SZ_classname, это так?
 
DaTaДата: Понедельник, 25.08.2008, 13:45:48 | Сообщение # 2
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Репутация: 16
Статус: Не в сети
http://amxmodx.ucoz.ru/forum/11-249-1
Code
2.4 Название/описание темы, а также сам текст сообщения обязаны быть максимально описательными/подробными, а также грамотно составленными.

Какие именно боты? Если те, у которых закрытый исходный код, то ты вряд ли узнаешь, может путем проверок, но это не 100% гарантия.
 
BruteДата: Понедельник, 25.08.2008, 14:02:17 | Сообщение # 3
Генерал-полковник
Группа: Скриптеры
Сообщений: 1123
Репутация: 9
Статус: Не в сети
Quote (DaTa)
2.4 Название/описание темы, а также сам текст сообщения обязаны быть максимально описательными/подробными, а также грамотно составленными.

И чем-же тебе не понравилось название темы? По русски сказать:"Что ты до*бался до меня?" blush
Правила, я слава богу знаю

Quote (DaTa)
Какие именно боты? Если те, у которых закрытый исходный код, то ты вряд ли узнаешь, может путем проверок, но это не 100% гарантия.

Думаю все боты боты ориентируются на classname, вот решил узнать так ли оно. А если ты не знаешь, нах*я постишь?
Ну хоть предположение бы сделал, на что они могут ориентироваться... И если ты реально во всём соображаешь, глянь в sdk от cs, там должно это быть. Т.К. mp.dll от cs и mp.dll от cs:cz-идентичные файлы.

ЗЫ попроси у AlMod'а модера...

 
DaTaДата: Понедельник, 25.08.2008, 14:33:40 | Сообщение # 4
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Репутация: 16
Статус: Не в сети
Quote (Brute)
Ну хоть предположение бы сделал, на что они могут ориентироваться... И если ты реально во всём соображаешь, глянь в sdk от cs, там должно это быть. Т.К. mp.dll от cs и mp.dll от cs:cz-идентичные файлы.

Боты CZ вообще встроены в мод, они могут там что угодно делать, как угодно видеть, т.е. может даже перед выбросом оружия из умирающего игрока быть кэширование на edict_t*, то исскуственное выбрасывание они не распознают. А разве они вообще подбирают оружие специально?)

Или ты имеешь ввиду оружие, лежащие на карте?

 
BruteДата: Понедельник, 25.08.2008, 14:49:12 | Сообщение # 5
Генерал-полковник
Группа: Скриптеры
Сообщений: 1123
Репутация: 9
Статус: Не в сети
Quote (DaTa)
А разве они вообще подбирают оружие специально?)

Да, если бот стоит недалеко от своего любимого оружия или более мошьное чем текущее, он обязательно найдёт время чтобы подбежать к нему, скинуть текущее оружие и взять которое валяется.

Quote (DaTa)
Или ты имеешь ввиду оружие, лежащие на карте?

да хоть какое оружие, если бот увидел пушку и не впалил врага, он попытается схватить оружие. Если он впалил врага-он сначало разберётся с врагом, а потом всёравно хапнет пушку.

Я даже заметил на одной КА карте такую фигню... Карта сделана в виде цилиндра, в середине лежит aug, все игроки стартуют по краям цилиндра, так вот боты прямо таки рвутся к середине, и я даже не помню, что успевал захватить эту пушку первым.

 
DaTaДата: Понедельник, 25.08.2008, 15:17:30 | Сообщение # 6
Генерал-полковник
Группа: Cупер-модеры
Сообщений: 1025
Репутация: 16
Статус: Не в сети
ну вроде лежащее оружие на карте - 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 * при загрузке карты, что бы потом проверять дистанцию до него(возможно через некоторое время)

    ну больше ничего не могу придумать huh

    Сообщение отредактировал DaTa - Понедельник, 25.08.2008, 15:53:38
  •  
    BruteДата: Понедельник, 25.08.2008, 15:42:16 | Сообщение # 7
    Генерал-полковник
    Группа: Скриптеры
    Сообщений: 1123
    Репутация: 9
    Статус: Не в сети
    Хм, большое спасибо!

    МБ попробывать Entity Info, узнать что там в пушках пишется, а потом методом тыка...

     
    DaTaДата: Понедельник, 25.08.2008, 15:59:38 | Сообщение # 8
    Генерал-полковник
    Группа: Cупер-модеры
    Сообщений: 1025
    Репутация: 16
    Статус: Не в сети
    Quote (Brute)
    МБ попробывать Entity Info, узнать что там в пушках пишется, а потом методом тыка...

    вообще советую тебе перейти на fakemeta с engine, так как больше возможностей и вообще это уже ближе к строению движка/мода hl
     
    BruteДата: Вторник, 26.08.2008, 19:55:31 | Сообщение # 9
    Генерал-полковник
    Группа: Скриптеры
    Сообщений: 1123
    Репутация: 9
    Статус: Не в сети
    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
    Репутация: 16
    Статус: Не в сети
    попробуй сразу после выброса оружия заменить название модели weaponbox на какое-то другое - будут ли они его подымать?
    Quote
    EV_ENT_pContainingEntity = 73

    возможно это оружие О_о
     
    BruteДата: Пятница, 29.08.2008, 03:35:43 | Сообщение # 11
    Генерал-полковник
    Группа: Скриптеры
    Сообщений: 1123
    Репутация: 9
    Статус: Не в сети
    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 - налетает моментом...

    в общем, что-то ещё нужно искать :(

     
    • Страница 1 из 1
    • 1
    Поиск:

    AMX Mod X Russian Community © 2006-2025