All Activity
- Last week
-
Many have seen in some versions of the client addon (plugin) "Ranking" - it is also "Cloud above the head", but few people managed to enable it. The fact is that it sends a request to a specific address and waits for an answer in the form of an XML file. Encoding in the game decides a lot, so I'll clarify - UTF-8. The assembly code can be found in the addon itself, so here is the structure of the required XML: <?xml version="1.0" encoding="UTF-8"?> <channel> <item> <item> <skintype>1</skintype> <title>Admin</title> <titleDescription>SyntaxGame Code team</titleDescription> <charId>1</charId> <category>Admin</category> <charName>WeRn</charName> </item> <item> <skintype>1</skintype> <title>Admin</title> <titleDescription>SyntaxGame Code team</titleDescription> <charId>2</charId> <category>Admin</category> <charName>Shannon</charName> </item> <item> <skintype>1</skintype> <title>Helper</title> <titleDescription>SyntaxGame Code team</titleDescription> <charId>3</charId> <category>Moderators</category> <charName>Bob</charName> </item> </item> </channel> We pass the required number of players with their attributes to the nested <item> tag. The link for the Http request is in the constant "STR_BTITLE_SERVER_AND_TITLE_RSS" Example: https://(game_site)/titles/en/1_0.xml Good luck with the implementation 😄 There is still a lot of interesting things ahead 😉
-
Многие видели в некоторых версиях клиента addon (plugin) "Ranking" - он же "Облачко над головой", но мало кому удалось его включить. Дело в том, что он стучится на определенный адрес и ждет ответ в виде XML файла. Кодировка в игре многое решает, поэтому уточню -- UTF-8. Код сборки можно найти в самом addon'е, поэтому вот сама структура нужного XML: <?xml version="1.0" encoding="UTF-8"?> <channel> <item> <item> <skintype>1</skintype> <title>Admin</title> <titleDescription>SyntaxGame Code team</titleDescription> <charId>1</charId> <category>Admin</category> <charName>WeRn</charName> </item> <item> <skintype>1</skintype> <title>Admin</title> <titleDescription>SyntaxGame Code team</titleDescription> <charId>2</charId> <category>Admin</category> <charName>Shannon</charName> </item> <item> <skintype>1</skintype> <title>Helper</title> <titleDescription>SyntaxGame Code team</titleDescription> <charId>3</charId> <category>Moderators</category> <charName>Bob</charName> </item> </item> </channel> Во вложенный тег <item> передаем нужное число игроков с их атрибутами. Сслыка для Http запроса лежит в константе "STR_BTITLE_SERVER_AND_TITLE_RSS" Пример: https://(game_site)/titles/en/1_0.xml Удачи с реализацией 😄 Впереди еще много интересного 😉
-
Shannon changed their profile photo
- Earlier
-
[декомпил] Формула расчёта магического резиста
TidalPoo replied to TidalPoo's topic in Mechanics from PTS (for everyone)
доступ к скрытым блокам открыт 🙂 -
Есть очень интересный момент в этом всём... writeC(_npc.isFlag() ? 0x13 : _npc.isNewSpawn() ? 0x01 : 0x00); //PutObjectType А интересен он тем, то PutObjectType меняется в зависимости от ситуации: Если NPC появляется при помощи телепорта, то тут используется id 3 если NPC появляется "полем зрения", то используется Id 0 спавном - 1 выход из инвиза - 5 Подобная ситуация происходит и в SM_DELETE, когда нужно убрать NPC, в этом пакете есть RemoveObjectType Необходимые id для данного байта скину позже. Кстати это же касается и игрока.
- 1 reply
-
- 1
-
-
writeF(_npc.getX());// x writeF(_npc.getY());// y writeF(_npc.getZ());// z writeD(_npc.getObjectId()); // writeD(npcId); // nameId writeD(npcId); // polymorphedNameId writeC(npcTypeId); // flag writeH(_npc.getState()); // action writeC(_npc.getHeading()); // dir writeD(npcTemplate.getNameId()); // desc writeD(npcTemplate.getTitleId());// title writeC(0);// stance writeD(0);// guildId (если > 0 отобращает плащ легиона соотвествубщий id) writeS("");// guildName (пока не уверен, возможно тут выборка между guildName и masterName) writeD(creatorId);// masterId writeS(masterName);// masterName writeC(hpRatio);// %hp writeD(_npc.getCreatureStats().getMaxHp()); writeC(_npc.getCreatureStats().getLevel());// lvl NpcEquip npcequip = GameStaticData.getInstance().getNpcsEquips().get(npcId); if (npcequip == null) { writeH(0x00); // Для версии ниже 4.6 // writeD(0x00) //Для 4.6+ } else { writeH(npcequip.getItemsmask()); // Для версии ниже 4.6 // writeD(npcequip.getItemsmask()) //Для 4.6+ for (item : npcequip.getNpcequip()) { writeD(item.nameId()); // weapon_name_id writeQ(0); // duyInfo writeH(0); // duyInfo //writeH(0); // Для 4.6+ } } writeF(_npc.getCreatureStats().getBounds().getFront()); writeF(_npc.getCreatureStats().getBounds().getUpper()); writeF(_npc.getCreatureStats().getRunSpeed());// runSpeed writeH(_npc.getCreatureStats().getAttackDelay()); // orgAttackDelay writeH(_npc.getCreatureStats().getAttackDelay()); // curAttackDelay writeC(_npc.isFlag() ? 0x13 : _npc.isNewSpawn() ? 0x01 : 0x00); //PutObjectType writeF(_npc.getX());// moving x writeF(_npc.getY());// moving y writeF(_npc.getZ());// moving z writeC(0); // moving type SpawnNpc spawn = _npc.getSpawnTemplate(); if (spawn == null) writeH(0); else writeH(spawn.getEditorId()); // EditorId int cutSceneId = 0; if (cutSceneId > 0) { writeD(0); // cutSceneId writeD(0); // spawnTime } writeH(0); // groupType writeH(0); // partType writeC(_npc.getVisualState()); // invisibleLevel int spawnCutSceneId = 0; if ( spawnCutSceneId > 0 ){ writeH(0); // 2048 writeH(0); // spawnCutSceneId } else { writeH(_npc.getNpcObjectType().getId()); // creationType } writeC(0); // hasLootRight writeD(_npc.getTarget() == null ? 0 : _npc.getTarget().getObjectId()); writeD(TownService.getInstance().getTownIdByPosition(_npc)); // Если NPC не в 700000000 локациях, то рандомное число Сниффер под 4.6 это проглатывает с удовольствием.
- 1 reply
-
- 2
-
-
очень хороший контент спасибо
-
очень хороший контент спасибо
-
Старший сторож Кайдана и его ловушки+ крит при крафте
Ghost_KNA replied to Nsd-Дмитий's topic in Help
очень хороший контент спасибо -
[ISO] Модернизация и ремонт ПК. 13-е издание — Скотт Мюллер.
Ghost_KNA replied to TidalPoo's topic in Useful files
очень хороший контент спасибо -
[декомпил] Формула расчёта магического резиста
Ghost_KNA replied to TidalPoo's topic in Mechanics from PTS (for everyone)
хотелось бы узнать формулы -
Ввиду того, что нам удалось найти оригинальную формулу дамага))) Написали калькулятор дамага, для того, чтоб можно было сравнить и узнать, соответствует ли сервер (фришка) на котором вы играете официальной версии Калькулятор пока рассчитывает только дамаг от магических скилkов, но скоро добреемся и до физ дамага. В общем, по ходу дела будем дорабатывать. Пример работы калькулятор на примере скила Гнеф Эфры (skill id 19503) Скилл имеет рандомный дамаг из 20 вариантов, калькулятор показывает все варианты дамага. Сам калькулятор можно найти по ссылке
-
Многим известно, что шанс отразить магическую атаку равен: шанс % = (маг. защита цели - маг. точность атакующего)/10 почти верно), но есть ньюансы Оригинальная формула выглядит так: int resistChance = (int) ((float)((int) ((float)((targetMagResist - attackerHitAcc) * 1) + magResistLvlAdj)); if (resistChance > 900) { resistChance = 900; } else if (resistChance < 0) { resistChance = 0; } return RandomUtil.getIntInRange(1, 1000) > resistChance; Как видно из формулы шанс отразить маг атаку не может превышать 90% Но самое интересно здесь это разница в уровне, при чём оно не зависит игрок или НПС int lvlDiff = target.getCreatureStats().getLevel() - attacker.getCreatureStats().getLevel(); if (4 < lvlDiff) { return (lvlDiff - 4) * 100; } if (lvlDiff < -4) { return (lvlDiff + 4) * 100; } return 0; Так же не стоит забывать, что если цель игрок, то точность атакующего меняется следующим образом if (attacker instanceof Player) { attackerHitAcc += hitAccMod; } где hitAccMod - это мод который прописан в скилах <effect_acc_mod1/2>
-
Все команды на 4.6 (по мере возможности буду добавлять переменные и описание) --- summon --- setbuilder --- summon2 --- giveitem --- changeclass --- changelevel --- face --- hair --- set_point --- gm_race <0|1> - снять/наложить режим GM'a --- all_skill --- setskill --- delskill --- reset_skill --- mhit --- loadhtml --- snoop --- reset_respawn --- setquest --- killnpc <таргет> - удаляет цель --- polymorph <name> - превращает в монстра (Прим.: не превращает в человеческих NPC) --- healthy - очистить все дебафы и подхилить цель --- setonetimequest --- delquest --- show_cutscene --- killme --- flycam --- npc_pause --- npc_resume --- stoplogin --- teleportto --- teleport [world name] <x> <y> [z] - перемещает в мир или по координатам в миру --- partytel --- recall --- gm_undying <0|1> - выключить/включить получение урона --- movespeed <0-50> - увеличить скорость перемещения (Прим.: если скорость 50 и выше, то начинает работать система защиты) --- instant_move --- sendhome --- infectedskill --- reg_resurrect --- kick <ник> - кикнуть игрока с игры --- stopsay - бан чата --- announce --- limit --- openmap --- addbk --- bklist --- delbk --- telbk --- bk --- gmon --- gmliston --- show_npc --- who --- allgm --- quiet --- serverstat --- loc --- gm_hide --- ping --- netping --- ask_now --- debug --- diet --- info <цель> - выводит информацию о цели --- show_party --- disablechat --- ps_cancel --- ps_stop --- addquest <quest_id> --- showquest <quest_id> --- deletequest <quest_id> --- useskill <lerned_skill_name> --- set_skill --- del_skill --- wish --- wishid --- haircolor --- facecolor --- gm --- gm_no_trade <0|1> - Включить/ выключить возможность торговать --- gm_no_party <0|1> - Включить/ выключить возможность приглашения в группу --- gm_no_friend <0|1> - Включить/ выключить добавление в друзья --- gm_no_whisper <0|1> - Включить/ выключить возможность писать в ЛС --- gm_no_region <0|1> - Включить/ выключить возможность приглашать в легион --- gmspeed <0-3> - изменение скорости передвижения в пределах лимита --- set_petition_disable_time --- show_petition_disable_time --- submit_petition --- search <user name> - Выводит местоположение персонажа --- inventory <user name> - Выводит еквип персонажа --- warehouse <user name> - Выводит сумку персонажа --- account_warehouse <user name> - Выводит склад аккаунта --- skill --- status --- guild --- quest --- bookmark_list --- bookmark_add --- gm_comment_list --- gm_comment_add --- gm_mail_list --- update_npc_ai --- gm_buddy_list --- gm_block_list --- healandpurify --- builderlev --- addflytime --- channel_list --- exp --- guild_changename --- guild_changeemblem --- teleport_to_named <name> - Перемещает к цели --- droptest <цель> - выводит список и шанс дропа (до десятых) с цели --- npcserver_show_target_attacker_list --- show_target_attr1 --- directportalmgr <id> <0|1> - закрытие или закрытие разлома --- attrbonus --- classup --- playcutscene --- freefly --- check_named --- race <0|1> - Меняет расу --- show_carrier_spawn_plan --- showtaxinfo --- ver --- gm_pvp --- gm_mail --- gm_store --- spawninfo --- show_party --- check <цель> - Выводит информацию о цели --- send_gmroom <ник> - перемещает персонажа в тюрьму --- check_bot --- abyss_set_next_pvp <ID> 2019 02 24 15 54 - установить дату осады --- allabyss_set_next_pvp 2019 02 24 15 54 - зарегистрировать осаду всех креп --- abyssmgr_end_turn - обновить данные осад --- partyrecall --- gm_guildhistory --- partyhome --- check_bot1 --- check_bot99 --- show_abyssinfo --- save_abyssinfo --- save_user_packet --- npcattr --- abyssmgr --- questattr --- wishdummy --- killnamed <NPC name> - удаляет всех NPC в мире --- add_botpoint --- show_botpoint --- bot_scan --- reload_bot_pattern --- turn_captcha --- clearusercoolt --- clearallusercoolt --- npcfirstattr --- itemattr --- abnormallist --- abyssmgr --- abyssowner <ID> <0|1> - захват крепости под балауров/свою расу --- show_target_abnormallist --- show_target_bonus --- partyrecall --- makeinstance <world name|world ID> [тип входа] - перемещает в данж --- serverid --- show_resurrect --- show_vitalpoint --- show_pvp_exp_giver --- delete_old_pvp_exp_giver --- give_exp_to_pet --- npcserver_show_npc_attr --- ispvpzone - выводит сообщение о принадлежности зоны к FullPvP (Да/Нет) --- artifact_showinfo --- artifact_reset_cooltime --- disablechat --- show_instime --- kick_channelchat --- ask_captcha --- bot_detect_1 --- turn_bot_detect_1 --- enable_z_cheat_detection --- disable_z_cheat_detection --- clear_captcha --- heightscale --- check_access_control --- clear_access_control --- turn_on_ncguard --- turn_off_ncguard --- ncguard_version --- reload_ncguard_dll --- abyssrankmgr --- show_playtime_fatigue --- reload_events - перезапускает ивенты --- stop_events - выключает ивенты --- show_events - выводит список активных ивентов --- add_guild_point --- alwaysenablechain --- checkskillcoolingtime --- skillattr --- setdp --- boost_enable --- set_global_config --- boost_reload --- sellcashlimit_flag --- sellcashlimit_cashlimit --- sellcashlimit_viewinfo --- sellcashlimit_myinfo --- sellcashlimit_info --- trial_account_tbl_view --- trial_account_tbl_flag --- trial_account_tbl_change_limit --- trial_account_tbl_reset --- trial_account_user_my_info --- trial_account_usr_info --- trial_account_usr_update --- set_usesecurityadjust --- set_item_option_prob --- skill_addeffect_by_filter
-
Тип Оружие (ITEMID_WEAPON) 100000000 <= Меч (ITEMID_WEAPON_SWORD) => 100099999 100100000 <= Булавы (ITEMID_WEAPON_MACE) => 100199999 100200000 <= Кинжалы (ITEMID_WEAPON_DAGGER) => 100299999 100500000 <= Орбы (ITEMID_WEAPON_ORB) => 100599999 100600000 <= Гримуары (ITEMID_WEAPON_BOOK) => 100699999 100800000 <= Метательное (ITEMID_WEAPON_THROWING) => 100899999 100900000 <= Двуручные мечи (ITEMID_WEAPON_TWOHANDSWORD) => 100999999 101300000 <= Копья (ITEMID_WEAPON_POLEARM) => 101399999 101500000 <= Посохи (ITEMID_WEAPON_STAFF) => 101599999 101700000 <= Луки (ITEMID_WEAPON_BOW) => 101799999 101800000 <= Пистолеты (ITEMID_WEAPON_GUN) => 101899999 101900000 <= Пушки (ITEMID_WEAPON_CANNON) => 101999999 102000000 <= Арфы (ITEMID_WEAPON_HARP) => 102099999 102100000 <= Ключи (ITEMID_WEAPON_KEYBLADE) => 102199999 102220000 <= Аэрографы (ITEMID_WEAPON_SPRAY) => 102229999 102400000 <= Цепные мечи (ITEMID_WEAPON_TWOHANDBLADE) => 102499999 Инструменты (ITEMID_MAKING_TOOLS_GATHER) = 103000000 103010000 <= (ITEMID_MAKING_TOOLS_GATHER_HARVEST) => 103019999 103020000 <= (ITEMID_MAKING_TOOLS_GATHER_MINE) => 103029999 103030000 <= (ITEMID_MAKING_TOOLS_GATHER_FISH) => 103039999 Конечный ID инструментов (ITEMID_MAKING_TOOLS_GATHER) = 103049999 Конечный ID типа оружия (ITEMID_WEAPON) < 103099999 109500000 <= Ивентовое оружие (ITEMID_EVENT_WEAPON_SWORD) => 109599999 ITEMID_ARMOR_START < 110000000 ITEMID_ARMOR_TORSO_CLOTH_START < 110000000 110000000 < ITEMID_ARMOR_TORSO_CLOTH < 110099999 110100000 < ITEMID_ARMOR_TORSO_ROBE < 110199999 110300000 < ITEMID_ARMOR_TORSO_LEATHER < 110399999 110500000 < ITEMID_ARMOR_TORSO_CHAIN < 110599999 110600000 < ITEMID_ARMOR_TORSO_PLATE < 110699999 ITEMID_ARMOR_TORSO < 110799999 110900000 < ITEMID_MULTISLOT < 110999999 ITEMID_ARMOR_HAND_CLOTH_START < 111000000 111000000 < ITEMID_ARMOR_HAND_CLOTH < 111099999 111100000 < ITEMID_ARMOR_HAND_ROBE < 111199999 111300000 < ITEMID_ARMOR_HAND_LEATHER < 111399999 111500000 < ITEMID_ARMOR_HAND_CHAIN < 111599999 111600000 < ITEMID_ARMOR_HAND_PLATE < 111699999 ITEMID_ARMOR_HAND_CLOTH < 111799999 ITEMID_ARMOR_SHOULDER_CLOTH_START < 112000000 112000000 < ITEMID_ARMOR_SHOULDER_CLOTH < 112099999 112100000 < ITEMID_ARMOR_SHOULDER_ROBE < 112199999 112300000 < ITEMID_ARMOR_SHOULDER_LEATHER < 112399999 112500000 < ITEMID_ARMOR_SHOULDER_CHAIN < 112599999 112600000 < ITEMID_ARMOR_SHOULDER_PLATE < 112699999 ITEMID_ARMOR_SHOULDER_CLOTH < 112799999 ITEMID_ARMOR_LEG_CLOTH_START < 113000000 113000000 < ITEMID_ARMOR_LEG_CLOTH < 113099999 113100000 < ITEMID_ARMOR_LEG_ROBE < 113199999 113300000 < ITEMID_ARMOR_LEG_LEATHER < 113399999 113500000 < ITEMID_ARMOR_LEG_CHAIN < 113599999 113600000 < ITEMID_ARMOR_LEG_PLATE < 113699999 ITEMID_ARMOR_LEG_CLOTH < 113799999 ITEMID_ARMOR_FOOT_CLOTH_START < 114000000 114000000 < ITEMID_ARMOR_FOOT_CLOTH < 114099999 114100000 < ITEMID_ARMOR_FOOT_ROBE < 114199999 114300000 < ITEMID_ARMOR_FOOT_LEATHER < 114399999 114500000 < ITEMID_ARMOR_FOOT_CHAIN < 114599999 114600000 < ITEMID_ARMOR_FOOT_PLATE < 114699999 ITEMID_ARMOR_FOOT < 114799999 115000000 < ITEMID_ARMOR_SHIELD < 115099999 ITEMID_ARMOR < 115099999 119000000 < ITEMID_EVENT_ARMOR < 119509999 ITEMID_ACCESSORY_START < 120000000 120000000 < ITEMID_ACCESSORY_EAR < 120099999 121000000 < ITEMID_ACCESSORY_NECK < 121099999 122000000 < ITEMID_ACCESSORY_FINGER < 122099999 123000000 < ITEMID_ACCESSORY_WAIST < 123099999 125000000 < ITEMID_ACCESSORY_HEAD < 125399999 ITEMID_ACCESSORY < 125399999 129500000 < ITEMID_EVENT_ACCESSORY < 129559999 ITEMID_STIGMA_START < 140000000 140000000 ITEMID_STIGMA_STONE < 140099999 141000000 ITEMID_STIGMA_SCROLL < 141099999 ITEMID_STIGMA < 141099999 149500000 < ITEMID_EVENT_STIGMA < 149509999 ITEMID_MAKING_START < 150000000 150000000 < ITEMID_MAKING_TOOLS < 150099999 152000000 < ITEMID_MAKING_MATERIAL < 152099999 152200000 < ITEMID_MAKING_RECIPE_ITEM < 152299999 ITEMID_MAKING < 152299999 159500000 < ITEMID_EVENT_MAKING < 159529999 ITEMID_CONSUMABLE_FOOD_START < 160000000 160000000 < ITEMID_CONSUMABLE_FOOD < 160099999 161000000 < ITEMID_RESURRECT < 161099999 162000000 < ITEMID_CONSUMABLE_POTION < 162099999 ITEMID_CONSUMABLE_SHOT_START < 163000000 163000000 < ITEMID_CONSUMABLE_ATTACHING_SHOT < 163049999 ITEMID_CONSUMABLE_SHOT < 163099999 164000000 < ITEMID_INSTANT_SKILLSCROLL < 164099999 165000000 < ITEMID_DECOMPOSE_TOOL < 165004999 165005000 < ITEMID_ITEM_AP_EXTRACTION_TOOL < 165009999 ITEMID_ENCHANT_COMPOSE_TOOL_START < 165010000 ITEMID_NEW_ENCHANT_COMPOSE_TOOL_START = 165010001 ITEMID_ENCHANT_COMPOSE_TOOL < 165019999 165020000 < ITEMID_FREETRADE_TOOL < 165029999 166000000 < ITEMID_ENCHANT_TOOL < 166019999 ITEMID_FEATHER_ENCHANT_TOOL_START < 166020000 166020000 < ITEMID_FEATHER_NORMAL_ENCHANT_TOOL < 166020999 166021000 < ITEMID_FEATHER_CRITICAL_ENCHANT_TOOL < 166021999 ITEMID_FEATHER_ENCHANT_TOOL < 166021999 166030000 ITEMID_AUTHORIZE_TOOL < 166049999 166050000 ITEMID_POLISH_TOOL < 166099999 166100000 ITEMID_ENCHANT_ASSISTANT < 166199999 166200000 ITEMID_REIDENTIFY_TOOL < 166249999 ITEMID_AUTHORIZE_RESET_START < 166300000 166300000 < ITEMID_AUTHORIZE_RESET_NORMAL < 166309999 166310000 < ITEMID_AUTHORIZE_RESET_CASH < 166319999 ITEMID_AUTHORIZE_RESET < 166319999 166400000 < ITEMID_FEATHER_PARTS_OPTION_SLOT_OPEN_TOOL < 166409999 ITEMID_OPTION_GIVE_TOOL_START < 167000000 167000000 < ITEMID_BASIC_OPTION_GIVE_TOOL < 167019999 167020000 < ITEMID_SPECIAL_OPTION_GIVE_TOOL < 167039999 167100000 < ITEMID_PARTS_OPTION_GIVE_TOOL < 167119999 ITEMID_OPTION_GIVE_TOOL < 167199999 168000000 < ITEMID_PROC_GIVE_TOOL < 168099999 168100000 < ITEMID_SKIN_REMOVER < 168109999 168200000 < ITEMID_SEAL_MAKER < 168209999 168210000 < ITEMID_SEAL_NORMAL_REMOVER < 168219999 168220000 < ITEMID_SEAL_EXPRESS_REMOVER < 168229999 ITEMID_CHARGE_BATTERY_START < 168300000 168300000 < ITEMID_CHARGE_BATTERY_SINGLE < 168309999 168310000 < ITEMID_CHARGE_BATTERY_MULTI < 168319999 ITEMID_CHARGE_BATTERY < 168319999 169000000 < ITEMID_WEAPON_BOOST < 169099999 169100000 < ITEMID_DYE_REMOVER < 169109999 169110000 < ITEMID_DYE_REMOVER_FURNITURE < 169119999 169120000 < ITEMID_DYE_FURNITURE < 169149999 169200000 < ITEMID_DYE < 169299999 169300000 < ITEMID_COMPONENT < 169399999 169400000 < ITEMID_REAGENT < 169499999 169500000 < ITEMID_SKILL_LEARN_BOOK < 169599999 169600000 < ITEMID_SOCIAL_SCROLL < 169609999 169610000 < ITEMID_TITLE_SCROLL < 169619999 169620000 < ITEMID_XP_BOOST_SCROLL < 169624999 169625000 < ITEMID_DROP_BOOST_SCROLL < 169629999 169630000 < ITEMID_CUBE_SCROLL < 169639999 169640000 < ITEMID_CHAR_WAREHOSE_SCROLL < 169649999 169650000 < ITEMID_CHAR_EDIT_ALL_SCROLL < 169659999 169660000 < ITEMID_CHAR_EDIT_GENDER_SCROLL < 169660999 169661000 < ITEMID_HOUSE_CHANGE_SCROLL < 169661999 169670000 < ITEMID_CHAR_NAME_CHANGE_SCROLL < 169679999 169680000 < ITEMID_GUILD_NAME_CHANGE_SCROLL < 169689999 169690000 < ITEMID_ITEM_CHANGE_COUPON < 169699999 ITEMID_CONSUMABLE_END < 169699999 ITEM_ID_COSMETIC_START < 169800000 ITEM_ID_COSMETIC_ACCD_SCROLL_START < 169899000 ITEM_ID_COSMETIC_ACCD_SCROLL < 169899999 ITEM_ID_COSMETIC < 169899000 169900000 < ITEMID_EVENT_CONSUMABLE < 169969999 ITEMID_HOUSING_START < 170000000 ITEMID_HOUSING_INTERIOR_START < 170000000 170000000 < ITEMID_HOUSING_INTERIOR_FRAME < 170099999 170100000 < ITEMID_HOUSING_INTERIOR_TABLE < 170199999 170200000 < ITEMID_HOUSING_INTERIOR_RUG < 170299999 ITEMID_HOUSING_INTERIOR < 170299999 170300000 < ITEMID_HOUSING_EXTERIOR < 170399999 170400000 < ITEMID_HOUSING_INDOOROUTDOOR < 170499999 171000000 < ITEMID_HOUSING_CUSTOMIZE_OUTDOOR < 171099999 171100000 < ITEMID_HOUSING_CUSTOMIZE_INDOOR < 171199999 172000000 < ITEMID_HOUSING_FEATURE < 172099999 173000000 < ITEMID_HOUSING_PROPERTY < 173099999 ITEMID_HOUSING < 173099999 ITEMID_MISC_START < 180000000 ITEMID_MISC_NOT_USE_IN_VENDOR_START < 180000000 180000000 ITEMID_MISC_ENSLAVE_STONE < 180099999 181000000 ITEMID_MISC_PET_CAPSULE < 181009999 ITEMID_MISC_ETC_START < 182000000 182000000 < ITEMID_MISC_ETC_USELESS < 182099999 182200000 < ITEMID_MISC_ETC_QUESTSCROLL < 182299999 182300000 < ITEMID_MISC_ETC_EVENT < 182399999 182400000 < ITEMID_MISC_ETC_MONEY < 182499999 ITEMID_MISC_ETC < 182499999 183000000 ITEMID_MISC_LOTTERY < 183099999 184000000 ITEMID_MISC_BIND_STONE < 184099999 ITEMID_MISC_NOT_USE_IN_VENDOR < 184099999 185000000 < ITEMID_MISC_KEY < 185099999 186000000 < ITEMID_MISC_QUESTCOIN < 186099999 187000000 < ITEMID_WING < 187099999 187100000 < ITEMID_FEATHER < 187199999 188000000 < ITEMID_MISC_PET_ABYSS < 188009999 188010000 < ITEMID_MISC_SUPERSHOT < 188019999 188020000 < ITEMID_MISC_ARTIFACT_FIRE < 188029999 188050000 < ITEMID_MISC_DISASSEMBLY_ITEM < 188059999 188100000 < ITEMID_MISC_ASSEMBLY_PART_ITEM < 188199999 ITEMID_MISC < 188199999 188500000 < ITEMID_CUSTOM_ANIMATION_SCROLL < 188509999 188600000 < ITEMID_INSTANCE_COOLT_SCROLL < 188609999 188800000 < ITEMID_CHAR_BM_PACK_SCROLL < 188899999 188900000 < ITEMID_CASH_ADD_EXP_ITEM < 188909999 188910000 < ITEMID_MEGAPHONE < 188919999 188920000 < ITEMID_CASH_EXP_EXTRACTION_ITEM < 188929999 188930000 < ITEMID_COMMON_MEGAPHONE < 188939999 188950000 < ITEMID_DISPOSABLE_CASH < 188959999 189500000 < ITEMID_EVENT_MISC < 189559999 ITEMID_TOYPET_COUPON_START < 190000000 190000000 < ITEMID_NORMAL_TOYPET_COUPON < 190069999 190070000 < ITEMID_HUMANOID_TOYPET_COUPON < 190099999 ITEMID_TOYPET_COUPON < 190099999 190100000 < ITEM_ID_RIDE_CAPSULE < 190199999 Столицы (WORLD_CITY_START) = 100000000 110000000 <= Столицы света (WORLD_LIGHT_CITY) => 119999999 120000000 <= Столицы тьмы (WORLD_DARK_CITY) => 129999999 Столицы (WORLD_CITY_END) = 199999999 Открытые миры (WORLD_FIELD_START) = 200000000 210000000 <= Открытые миры света (WORLD_LIGHT_FIELD) => 219999999 220000000 <= Открытые миры тьмы (WORLD_DARK_FIELD) => 229999999 Открытые миры (WORLD_FIELD_END) = 299999999 Подземелья (WORLD_DUNGEON_START) = 300000000 300010000 <= Подземелья бездны (WORLD_ABYSS_DUNGEON) => 309999999 310000000 <= Элийские подземелья (WORLD_LIGHT_DUNGEON) => 319999999 320000000 <= Асмодианские подземелья (WORLD_DARK_DUNGEON) => 329999999 Подземелья (WORLD_DUNGEON_END) = 399999999 400000000 <= Бездна (WORLD_ABYSS) => 499999999 600000000 <= Балаурия (WORLD_COMMON) => 699999999 Земли домоводства (WORLD_HOUSING_START) = 700000000 700000000 <= Элийские земли (WORLD_LIGHT_FIELDHOUSING) => 709999999 710000000 <= Асмодианские земли (WORLD_DARK_FIELDHOUSING) => 719999999 Земли домоводства (WORLD_HOUSING_END) = 719999999 Квартира для Элийцев (WORLD_HOUSING_IDLF_PERSONAL) = 720010000 Квартира для Асмодиан (WORLD_HOUSING_IDDF_PERSONAL) = 730010000 900000000 <= Миры для тестов (WORLD_TEST) => 999999999
-
Итак) самая незаконченная тема разработки эмулятора aion это motion_time Как оказалось всё гораздо проще чем на самом деле казалось! Из клиента берутся следующие файлыСкрытый контент.Далее) В файле client_skills.xml есть атрибут motion_name пример: <motion_name>spindash</motion_name> Так вот, берём это значение добавляемСкрытый контент.Благодарности принимаю в виде пожертвований в "фонд рукожопых программистов"))
-
Пакет CM_CASTSPELL в конце имеет 4 байта недочитанного буфера Пример: 65a20000 Это checkSum скила, основанного на: move_casting charging_delay motion_name motion_play_speed no_jump_cancel При определённой формуле вычисляется чек-сумма, и сравнивается с тем, что присылает клиент. На основе этого можно делать защиты от "подмены" скилов... Формулу не выложу, но чек-сумму могу скинуть на любую версию)))
-
[декомпил] SM_VERSION_CHECK
TidalPoo replied to TidalPoo's topic in Mechanics from PTS (for everyone)
ненене тут впихали всё в одно тут разделить надо я сделаю позже там время сервера вроде -
[декомпил] SM_VERSION_CHECK
Booblik replied to TidalPoo's topic in Mechanics from PTS (for everyone)
Могу предположить что это время сборки проекта -
Многие могли заметить, что наш форум не работал около 7-9 дней, к сожалению возникли неполадки с сервером, где стоял форум и нам пришлось мигрировать на другой. Форум вновь работает и продолжает наполняться контентом!
-
protected void writeImpl() { int serverMode = (characterLimitCount * 0x10) | characterFactionsMode; // aion 3.0 = 194 // aion 3.5 = 196 // aion 4.0 = 201 if (version < 201) { // Send wrong client version writeC(0x02); return; } writeC(0x00); writeC(Network.GAMESERVER_ID);Скрытый контент.
-
некоторые посты с убедительными доказательствами, тупо удалили)) ну ничего, интернет всё помнит проблема про защиту... Ношение доспехов рассчитывает не верную стату, и вносит очень сильный дизбаланс для физ.атак проблема со статами, Жрецам слишком много маны налили, там должно быть 375... и это только 1-уровень. вся эта вакханалия будет неправельно рассчитыватся вплоть до 65 лвл, но это белая стата) от неё потом зелень рассчитывается бонусом.. а там погрешность уже увеличивается, выводы делайте сами Я там ещё писал про телепорт) но это всё потерли))) А как вы даете почему это всё потёрли?) потому-что не знают как править... ну да ладно, этот сервер так же на 2-3 месяца а потом закроется либо апнется до 4.6 на ПТСку...
-
На днях решил протестировать очередное гавно под названием AionPlay Сервер позиционируют как: Качественная сборка Множество автоивентов Лучшее оборудование и защита от DDOS Большая команда разработчиков Гарантия стабильности Начнём с простых истин, никакой "большой команды разработчиков" там нет и не было. На содержание подобной команды нужно минимуим 300к в месяц, и это только на пару джунов хватит. В aionplay сидит 40-летний мужик, который java видел только на картинках. Этот человек не знает о механики aion ровным счётом ничего, а на любые доводы отвечает тупо "так работает retail". А создавать качественный код подобным "специалистам" к сожалению не дано. лучшее оборудование и защита от DDOS - это ни разу не показатель. может быть в 2010-2015 году этим можно было ещё привлечь, но сейчас все всё понимают, оборудование это сервера, которые фактически у всех хостеров одинаковое) Гарантия стабильности?) Серьезно? Это периодической перезагрузкой сервера гарантируется стабильность работы?) Множество автоивентов - это как всегда 2х2, 4х4, 6х6.... и бонусы за онлайн)) Ну и самое главное - Качественная сборка))) Самое отвратительная ложь Смеха ради зашёл на сервер, создал перса, зашёл в игру, и провёл всего несколько тестов на баги... Тут же выключил и пошёл на форум писать о проблемах. И как вы думаете администрация этого проекта поступили? Закрыли тему и перевели её тупо в режим "Исправлено"?) Окей захожу через некоторое время и снова провожу эти тесты, и снова всё тоже самое. В общем что хочу сказать, если вы читаете эту статью, то подумайте заранее прежде чем донатить в это убожество, зря денег потеряете...