Иконка ресурса

Сборка L2 PTS Epilogue 2018-05-03

Нет прав для скачивания

default_npc, уверен, Ваши знания имеют основания, и конечно же к ним я прислушиваюсь больше, чем к своим догадкам и домыслам..)
 
понюхал как это точно работает эвентдата на ретейле, немного инфы,для всяких этих-ваших экстов возможно и не подойдёт:

есть flagsettingtime, это время,которое отводится на дроп ниже указанных предметов, например:

dropitem_count=3
dropitem0=item1 1
dropitem1=item2 5
dropitem2=item3 10

в общей сложности на примере у нас есть 3 итема, с кол-вом 1+5+10 = 16 (16 монстров, по итему с каждого)
следовательно,что бы мобы "выплюнули" из себя все указанные предметы,нужно уложить их убийство в указанный flagsettingtime
для этого надо понимать,за сколько времени,примерно,на твоём сервере убьют это число мобов
если же за указанный flagsettingtime не выбить все выданные монстрам предметы - таймер начинается сначала и заново выдаёт предметы в мир
суть в том, что некоторые предметы могут попросту не успеть выпасть,прежде чем пройдёт наполнение новым
 
Zubastic, Можете посоветовать, чем качественно сравнить два текстовых файла? Пробовал WinMarge, notepad++ plugin compare, что-то еще... но все они сравнивают построчно, но не по содержанию. Если одинаковое содержание будет на разных строках, они просто этого не увидят..
 
@@Zubastic, Можете посоветовать, чем качественно сравнить два текстовых файла? Пробовал WinMarge, notepad++ plugin compare, что-то еще... но все они сравнивают построчно, но не по содержанию. Если одинаковое содержание будет на разных строках, они просто этого не увидят..
Я использую winmerge, выравнивая файлы пробелами, тогда винмердж понимает, что строка перемещена или что-то подобное.
У winmerge есть настройка "искать перемещенные строки".
 
Zubastic, спасибо большое, галочка помогла...
Не могли бы вы подсказать, как удалить строки в itemdata, по списку соответствующих названий... ?
например:
[br_event_kimchi_power_a_herb] - найти в itemdata, - выделить всю строку содержания - удалить.
и так проделать по целому списку заданных названий...?

Видел подобную штучку от Advext для изменения дропа по ids "RateChanger.Light". - Muchos Gracias!) Возможно есть что-то подобное для itempatch?

Хочу так-же вернуться к предыдущему вопросу о вырезании регуляркой всевозможных effects из skilldata.. пожалуйста расскажите как это сделать.. с удалением дублей в excel.. если возможно.. я нахожу это полезным, для более глубокого понимания арсенала функционала имеющихся skills.

Еще вопрос Skills:
Можно ли как-то прописать автоудаление, или автозамену определенных скилов в скилаквир? Чтобы скрыть неиспользуемые, нубские скилы, сфокусироваться на юзабилити.
 
Не могли бы вы подсказать, как удалить строки в itemdata, по списку соответствующих названий... ?
Написать простенький парсер, к пример на C#. Ну или регуляркой, но это сложнее.
Видел подобную штучку от Advext для изменения дропа по ids "RateChanger.Light". - Muchos Gracias!) Возможно есть что-то подобное для itempatch?
Что за Itempatch? У адвекста обычная самописная софтина, которую написать можно за 15 минут.
Хочу так-же вернуться к предыдущему вопросу о вырезании регуляркой всевозможных effects из skilldata.. пожалуйста расскажите как это сделать.. с удалением дублей в excel.. если возможно.. я нахожу это полезным, для более глубокого понимания арсенала функционала имеющихся skills.
Нашел список эффектов, часть адвекст онли:
p_physical_defence
p_magical_defence
p_max_hp
p_max_mp
p_max_cp
p_physical_attack
p_magical_attack
p_hp_regen
p_mp_regen
p_cp_regen
p_avoid
p_hit
p_critical_rate
p_critical_rate_by_weapon
p_breath
p_safe_fall_height
p_area_damage
i_add_hate
i_target_me_chance
i_target_me
p_speed
p_fixed_speed
p_attack_speed
t_hp
i_cp
i_m_attack_over_hit
i_m_attack
i_run_away
i_save_position
p_fear
p_block_controll
i_delete_hate
p_block_move
p_defence_trait
p_activate_rate_self
p_heal_effect
i_heal
i_mana_burn
i_m_attack_mp
p_mana_charge
i_mp_by_level
p_magic_speed
p_pvp_physical_attack_dmg_bonus
p_pvp_physical_skill_dmg_bonus
p_pve_physical_attack_dmg_bonus
p_pve_physical_skill_dmg_bonus
i_escape
i_resurrection
p_block_act
i_target_cancel_chance
i_target_cancel
p_block_getdamage
p_block_buff
p_block_pc_buff
p_block_debuff
i_unlock
i_give_contribution
i_hp_drain
p_trigger_skill_by_dmg
p_autocast_when_damaged
p_weight_limit
p_block_spell
p_block_skill_physical
p_magic_critical_rate
p_vampiric_attack
p_reuse_delay
p_magic_mp_cost
p_damage_shield
p_avoid_agro
p_attack_attribute
p_defence_attribute
p_attack_trait
p_item_chance
p_stat_up_limited
p_stat_up
p_physical_shield_defence
p_shield_defence_rate
t_mp
p_defence_critical_rate
p_pvp_magical_skill_defence_bonus
p_pvp_physical_attack_defence_bonus
i_dispel_by_slot
i_cp_per_max
i_hp_per_max
i_mp_per_max
i_dispel_by_category
i_dispel_by_category_exclude
i_dispel_by_category_count
i_steal_abnormal_chance
p_transfer_damage_summon
p_critical_damage
p_critical_damage_by_weapon
p_defence_critical_damage
p_resist_dispel_by_category
c_agathion_energy
c_chameleon_rest
c_fake_death
c_hp
c_mp
c_mp_by_level
c_rest
cub_attack_speed
cub_heal
cub_hp
cub_hp_drain
cub_m_attack
cub_physical_attack
cub_physical_defence
i_abnormal_time_change
i_add_max_entrance_inzone
i_agathion_energy
i_align_direction
i_backstab
i_betray
i_blink
i_bonuscount_up
i_bookmark_add_slot
i_bookmark_teleport
i_call_party
i_summon_party
i_call_pc
i_summon_pc
i_call_skill
i_capture_flag
i_capture_ownthing
i_capture_ownthing_start
i_chain_heal
i_change_face
i_change_hair_color
i_change_hair_style
i_change_skill_level
i_remove_death_penalty
i_collecting
i_confuse
i_consume_body
i_convert_item
i_death
i_death2
i_death_link
i_defuse_trap
i_delete_hate_of_me
i_despawn
i_detect_object
i_detect_trap
i_dismount_for_event
i_dispel_all
i_dispel_by_name
i_dispel_by_slot_myself
i_dispel_by_slot_probability
i_distrust
i_enchant_armor
i_enchant_armor_rate
i_enchant_attribute
i_enchant_weapon
i_enchant_weapon_rate
i_energy_attack
i_event_agathion_reuse_delay
i_fatal_blow
i_fishing_cast
i_fishing_pumping
i_fishing_reeling
i_fishing_shot
i_fly_away
i_fly_self
i_focus_energy
i_focus_max_energy
i_focus_soul
i_food_for_pet
i_get_agro
i_harvesting
i_holything_possess
i_hp
i_hp_by_level_self
i_hp_self
i_install_advance_base
i_install_camp
i_install_camp_ex
i_m_attack_by_abnormal
i_m_attack_by_dist
i_m_attack_by_range
i_m_attack_range
i_ms_attack
i_m_soul_attack
i_mount_for_event
i_mp
i_mp_by_level_self
i_my_summon_kill
i_npc_kill
i_open_common_recipebook
i_open_dwarf_recipebook
i_p_attack
i_ps_attack_over_hit
i_p_attack_over_hit
i_p_attack_by_dist
i_p_soul_attack
i_pcbang_point_up
i_physical_attack_hp_link
i_pledge_send_system_message
i_randomize_hate
i_real_damage
i_rebalance_hp
i_refuel_airship
i_register_siege_golem
i_remove_soul
i_reset_quest
i_restoration
i_restoration_random
i_set_skill
i_show_reuse_delay
i_skill_turning
i_soul_blow
i_soul_shot
i_sowing
i_sp
i_spirit_shot
i_spoil
i_steal_abnormal
i_summon
i_summon_agathion
i_summon_cubic
i_summon_dd_cubic
i_summon_drain_cubic
i_summon_debuff_cubic
i_summon_heal_cubic
i_summon_poison_cubic
i_summon_paralyze_cubic
i_summon_water_dot_cubic
i_summon_shock_cubic
i_summon_attractive_cubic
i_summon_npc
i_summon_npc_near
i_summon_pet
i_summon_soul_shot
i_summon_spirit_shot
i_summon_trap
i_sweeper
i_teleport
i_teleport_to_partner
i_teleport_to_target
i_transfer_hate
i_uninstall_advance_base
i_unsummon_agathion
i_vp_up
p_2h_blunt_bonus
p_2h_sword_bonus
p_ability_change
p_abnormal_rate_limit
p_attack_range
p_attack_speed_by_hp2
p_attack_speed_by_weapon
p_avoid_by_move_mode
p_avoid_rate_by_hp1
p_avoid_rate_by_hp2
p_avoid_skill
p_betray
p_block_icon_action
t_hate_master
p_block_attack
p_block_buff_slot
p_block_chat
p_block_party
p_block_resurrection
p_block_skill_special
p_bonustimelimit_up
p_change_fishing_mastery
p_channel_clan
p_cheapshot
p_counter_skill
p_create_common_item
p_create_item
p_critical_damage_position
p_critical_rate_by_hp1
p_critical_rate_by_hp2
p_critical_rate_position_bonus
p_crystal_grade_modify
p_crystallize
p_cubic_mastery
p_disarm
p_dominion_transform
p_enlarge_abnormal_slot
p_enlarge_buff_slots
p_enlarge_storage
p_exp_modify
p_expand_deco_slot
p_fatal_blow_rate
p_fishing_mastery
p_hate_attack
p_heal_effect_add
p_hide
p_hit_at_night
p_hit_number
p_hp_regen_by_move_mode
p_ignore_skill
p_limit_cp
p_limit_hp
p_limit_mp
p_luck
p_magic_critical_dmg
p_magic_defence_critical_dmg
p_magic_speed_by_weapon
p_magical_attack_add
p_max_mp_add
p_mp_regen_add
p_mp_regen_by_move_mode
p_mp_vampiric_attack
p_passive
p_physical_armor_hit
p_physical_attack_by_hp1
p_physical_attack_by_hp2
p_physical_defence_by_hp1
p_physical_polarm_target_single
p_physical_shield_defence_angle_all
p_pk_protect
p_play_music
p_preserve_abnormal
p_pvp_magical_skill_dmg_bonus
p_pve_magical_skill_dmg_bonus
p_recovery_vp
p_reduce_cancel
p_reduce_drop_penalty
p_reflect_dd
p_reflect_skill
p_remove_equip_penalty
p_resist_abnormal_by_category
p_resist_abnormal_by_type
p_resist_dd_magic
p_resurrection_special
p_self_resurrection
p_set_cloak_slot
p_set_collected
p_skill_critical
p_skill_critical_probability
p_skill_power
p_soul_eating
p_sp_modify
p_target_me
p_transfer_damage_mp
p_transfer_damage_pc
p_transform
p_transform_hangover
p_trigger_skill_by_attack
p_trigger_skill_by_avoid
p_trigger_skill_by_skill
p_autocast_when_attack
p_violet_boy
p_weight_penalty
t_hp_fatal
cub_block_act
p_pvp_physical_skill_defence_bonus
i_summon_fusion
i_remove_m_power
i_transmit_m_power
i_consume_energy
p_dodge
p_counter_attack
p_block_unequip
p_reduce_exp_penalty
p_ignore_block_attack
p_resist_target_cancel
p_resist_target_me
p_resist_death
p_pledge_max_hp
p_pledge_max_cp
p_pledge_max_mp
p_pledge_hp_regen
p_pledge_cp_regen
p_pledge_mp_regen
p_pledge_physical_attack
p_pledge_physical_defence
p_pledge_magical_attack
p_pledge_magical_defence
p_pledge_hit
p_pledge_avoid
p_pledge_shield_defence_rate
p_pledge_physical_shield_defence
p_pledge_defence_attribute
p_pledge_speed
p_pledge_reduce_exp_penalty
p_change_vp
i_nevit_bless
 
[br_event_kimchi_power_a_herb] - найти в itemdata, - выделить всю строку содержания - удалить.
и так проделать по целому списку заданных названий...?
такое проще всего на пхп пишется

рассматривай то,что датапаки разбиты на колонки через табуляции,всего-то нужно найти нужно значение в нужной колонке и если найдено соответствие - удалить\заменить\закомментировать строку

вообще самый простые и доступные парсеры пишутся на пхп,так что советую заняться,ибо работать с датапаком птса не умея в парсеры - такое себе занятие,регулярки не всесильны
 
Последнее редактирование:
Зависит опять же от задачи. Я себе написал апи для работы с клиентом/сервером: парс текстовиков/датников.

И лучше уж питон, чем пыху.
 
Последнее редактирование модератором:
Обратите внимание, что данный пользователь заблокирован! Не совершайте с ним никаких сделок! Перейдите в его профиль, чтобы узнать причину блокировки.
рассматривай то,что датапаки разбиты на колонки через табуляции,всего-то нужно найти нужно значение в нужной колонке и если найдено соответствие - удалить\заменить\закомментировать строку
Строки могут быть с разным количеством атрибутов, не говоря о дублях/измененном порядке. Такой парс в лоб приведет к тому, что ты заменишь или не то, или не найдешь то, что нужно.
 
С Новым Годом!) Творческого пороха всем, кайфа от жизни и работы... всех благ - материальных и духовных.. С наилучшими пожеланиями..
Спасибо за предложенные варианты... обязательно ознакомлюсь.. мне интересны языки программирования, правда нихрена не понимаю, разобраться для начала хотяб с каким нибудь одним.. Думаю просто тупо запустить кликер типа Kibor и пусть он все поклацает.. пока так, о результате отпишусь) искренне рад каждому фидбеку!
 
Кликер это неспортивно, медленно + еще и с ошибками.
 
Вставьте уже зубу эту аву, а то как-то непривычно)))
gifs_14.gif
 
Строки могут быть с разным количеством атрибутов, не говоря о дублях/измененном порядке. Такой парс в лоб приведет к тому, что ты заменишь или не то, или не найдешь то, что нужно.
в случае с оринеймом - прокатит, он то всегда в одной колонке

для всего остального по точкам вхождения или типа того
 
нашел ахриненного препода)
 
Хочу поделиться своим сокровищем, которое подарил программист Garry Galler, ответив на мой вопрос и решив задачу с парсингом, спасибо ему и сайту Cyberforum...
Как это работает:
1.txt - список имен itempatch, которые будут удаляться из itemdata
2.txt - непосредственно сам itemdata
например:
1.Из первого файла itempatch берется название [vesper_cutter*sirr_blade] (изначально удалил регуляркой = ids)
2.Во втором файле itemdata находится соответствующая с этим названием строка, полностью выделяется и удаляется со всем остальным хламом:
item_begin weapon 52 [vesper_cutter*sirr_blade] item_type=weapon slot_bit_type={lrhand} armor_type=none etcitem_type=none delay_share_group=-1 item_multi_skill_list={} recipe_id=0 blessed=0 weight=1520 default_action=action_equip consume_type=consume_type_normal initial_count=1 maximum_count=1 soulshot_count=1 spiritshot_count=1 reduced_soulshot={} reduced_spiritshot={} reduced_mp_consume={} immediate_effect=1 ex_immediate_effect=0 drop_period=10 duration={-1;0} use_skill_distime=0 period=0 equip_reuse_delay=0 price=0 default_price=146873000 item_skill=[none] critical_attack_skill=[none] attack_skill=[none] magic_skill=[none] item_skill_enchanted_four=[s_focus_hp_dual4_80] capsuled_items={} material_type=steel crystal_type=s84 crystal_count=7050 is_trade=1 is_drop=1 is_destruct=1 is_private_store=1 keep_type=15 physical_damage=482 random_damage=10 weapon_type=dual can_penetrate=0 critical=8 hit_modify=0 avoid_modify=0 dual_fhit_rate=50 shield_defense=0 shield_defense_rate=0 attack_range=40 damage_range={0;0;40;120} attack_speed=325 reuse_delay=0 mp_consume=0 magical_damage=176 durability=-1 damaged=0 physical_defense=0 magical_defense=0 mp_bonus=0 category={} enchanted=0 base_attribute_attack={none;0} base_attribute_defend={0;0;0;0;0;0} html=[item_default.htm] magic_weapon=0 enchant_enable=1 elemental_enable=1 unequip_skill={} for_npc=0 item_equip_option={} use_condition={} equip_condition={} is_olympiad_can_use=1 can_move=0 is_premium=0 /**/ item_end
*если itempatch содержит более 6к строк, процесс займет не меньше 10-15 минут...
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
import re
with open("2.txt",encoding="utf-16") as fd:
text2 = fd.read()

with open("1.txt") as fd:
for pattern in fd:
pattern = pattern.strip()
if pattern:
regex = "^(.+{}.+)$".format(re.escape(pattern))
text2 = re.sub(regex,'',text2,flags=re.MULTILINE)
# удаление пустых строк
text2 = re.sub(r'\n\s*\n','\n',text2,re.MULTILINE)
# новый файл - можете указать имя прежнего файла
with open("2new.txt","w",encoding="utf-16") as f:
f.write(text2)
Похожий механизм действий по идее может работать и в случае с npcpatch, npcdata, npcpos.. но пока не проверялось.. (вероятно потребуются некоторые корректировки..)

Но пустые строки в новом файле 2new.txt все еще остаются, а именно только в конце...
я пробовал использовать другой код по удалению пустых строк, но это не сработало... возможно кто-то подскажет решение..?
Сгенерированный файл прикрепляю ниже:
 

Вложения

  • 2new.zip
    338,5 КБ · Просмотры: 2
Назад
Сверху Снизу