Jump to content

BETEP/macs509

Community
  • Content Count

    257
  • Joined

  • Last visited

  • Days Won

    28

Posts posted by BETEP/macs509


  1. 42 минуты назад, Nik сказал:

    Вернул всю папку анимации из архива клиента. Что то заработало - морвой, стрелок.

    Ами и чамп все по старому. Только дрыгнутся и всё.

    А какой раньше у чампа "вой" был, а как ногой топал, теперь этого нет. (

    Стоит клиент 1.38. Пробовал вернуть 1.35 - не пошло.

    scripts\txt\CharacterAction.tx
    Я не знаю какие файлы были заменены. 

    Если нет самих эффектов возможно поможет замена этих файлов на оригинальные.

    scripts\table\skillinfo.bin

    scripts\table\skilleff.bin
     

    • Thanks 2

  2. 3 часа назад, Nik сказал:

    В самом начале ещё, при установке, запускал антианнимацию в клиенте.

    А сейчас решил что зря.

    Как вернуть красоту, подскажите!

    Что бы и подраться видно было и фейерверки в небо пускать. Помню много всего там раньше было.

     

     

     

    Посмотри что было в архиве с антианимацией и верни обратно. Все файлы моделей и текстур нельзя копировать, будут проблемы с клиентом. Шмот белый потомучто скопировал только 3d модель, а текстуру не скопировал. Для вещей используется обычно 1 текстура у монстров и зданий может быть больше. У вещей текстура имеет обычно такое же имя как и модель (посмотреть остальные можно через вьювер). Когда используешь поиск смотри где путь где лежи модель и текстура и в своём клиенте размещай так же.11a.jpg.fa3ef2647d2999dffb71373d72821411.jpg

    • Thanks 1

  3. В 23.02.2024 в 18:52, Nik сказал:

    Спасибо! Всё сделал, всё читается. 

    Правда пришлось в квесте итем поправить(заменить), нет у меня такого Красного мешочка в итеминфо.

    В других сборках видел.

    Кстати, если не трудно, подскажите как из других сборок можно шмот переносить (аппарели и проч.)

    Это ведь не только строчки скопировать-вставить.

    Я билет так переносил, только колонку одну удалил, не грузилось - как у всех сделал. )

    Если модель предмета и его иконка есть в клиенте, то просто копировать строки.

    455887009__2024-02-26_133348274.png.d56a14c34156b9d076ca3ca6814b2420.png
    client\texture\icon тут находятся иконки

     

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

    копируешь название из нужных столбцов и ищешь в папке с игрой
    401790112__2024-02-26_133915598.png.7052446bb44a8177b071649a00525b04.png

    модели просмотреть можно через эту программу :


    если в своём клиенте этих файлов нет копируешь в свой клиент модель в папку с моделью, текстуру по такому же принципу.
    потом компилируешь iteminfo для клиента и сервера.

    аппарели в стандартных файлах должны располагаться в id от 5000 до 6000
    расширить можно так:

     

    • Thanks 1

  4. 21 час назад, Nik сказал:

    Перевёл и переименовал всех НПС в Новогодней деревне. Перевёл все их диалоги. Сличал английские и китайские варианты из других сборок и выбирал подходящее.

    Столкнулся с проблемой с квестом. 

    Подскажите где можно перевести(изменить) текст миссии? А то каляка-маляка и в названии и в задании. Чё хочет НПС я хз. )

    Например: 

    AddNpcMission ( 6205 ) 

    1.png.64b4d74f5bf1d81ee13086b04cd42276.png

    На сервере, то что не читаемо, это китайский текст, для прочтения переключи кодировку, переведи.
    В клиенте:
    2.png.6de84d8db3a2641d3cdb1d3f01390b94.png
    Для перевода воспользоваться программой из этой темы: 

     

    • Thanks 1

  5. 1 час назад, kosty035 сказал:

    подскажите каким десамблером либо дикомпелятором можно вскрыть фаил "pir_d.exe" и в нем поменять ссылки реги. ссылку на сайт на свои ссылки. пробывал идой про но ида на Английском и  там непонять не фига и возможно ли заменить эти ссылки. понял что дикомпилятор нужен каторый для С++

    На сайте опубликован исходный код данного лаунчера. Находится в архие в с исходным кодом сервера/клиента называется updatesys_kop. Собирается, запускается без проблем. При использовании ftp, обязательно указать правила доступа к папке с файлами обновления, т.к доступ к ftp данные для подключения записаны в лаунчере в открытом виде.

    • Thanks 1

  6. Кнопка f9 при наведении на объект создает как раз эту высоту и карту проходимости, в некоторых сорсах он закомментирована, в старых готовых клиентах работала. Если не на постоянке нужно то можно объектами высоты подогнать. Ну и наверное видя ф9 можно починить и генерацию высоты, но я в этом не разбираюсь. Ну или можно на движке китайской игры высоты делать)

    • Thanks 1

  7. В 16.10.2022 в 21:01, Legend сказал:

     

    I have the same issue, I tried your serverset still not working, I even changed the port in [ToClient] inside gateserver to 1973 and still not working

    loginscene.cpp 
     

        //如果没有得到随机选择Gate的Ip
        //if (!pszSelectGateIP) pszSelectGateIP = SelectGroupIP(m_iCurSelRegionIndex, m_iCurSelServerIndex );
        if (!pszSelectGateIP) pszSelectGateIP = SelectGroupIP(0, 0);

        if (!pszSelectGateIP)
        {
            //LG("connect", g_oLangRec.GetString(180), m_iCurSelRegionIndex, m_iCurSelServerIndex);
            LG("connect", g_oLangRec.GetString(180), 0, 0);
        }
        else
        {
            CS_Connect(pszSelectGateIP, 434, g_Config.m_nConnectTimeOut );
        }
    //#endif

    }

     

     

    port - 434


  8. 17 часов назад, fotostocker сказал:

    Администратор данного форума V3ct0r хотел бы полноценно связаться с вами для взятия хостинга на сервер пиратии. Если есть возможность свяжитесь со мной в вк https://vk.com/paulovserega52 или пришлите пожалуйста лично в сообщение ваши персональные данные куда я вам могу написать для обсуждения. Спасибо данному форуму за помощь в создании серверов.

    https://zomro.com/rus/vds.html для локального сервера на небольшое кол-во игроков подходит идеально, европейские сервера

    • Thanks 1

  9. 5 часов назад, V3ct0r сказал:

    Привет, @BETEP/macs509!

     

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

     

    Серверная часть в принципе может быть любой, достаточно записать в дескриптор предмета следующую информацию:

    
    ITEMATTR_VAL_STR - ID монстра
    ITEMATTR_VAL_AGI - Число монстров, которых нужно победить
    ITEMATTR_VAL_DEX - Число побежденных монстров

     

    Привет, да это понятно просто когда делал сервер задался вопросом какой тип предмета использовать для этих целей, а потом пришло вот такое решение


  10. Спойлер

     

    
    function Cr_talk02()
    	Talk( 1,  "Tommy: Hi! I’m an assistant to Iris, although I’m small, but I know a lot about Сrystal!" )
    	Text( 1,  "Monster Kill Order", JumpPage, 4 )
    	Text( 1,  "Maze Schedule", JumpPage, 2 )
    	Text( 1,  "About character leveling ", JumpPage, 10 )
    	Text( 1,  "Сontact administrator ", JumpPage, 11 )
    	Text( 1,  "Thx, i got it",  CloseTalk)
    
    	Talk( 2,  "Tommy: to display information about the dungeons, press ALT + H" )
    	Text( 2,  "Back", JumpPage, 1 )
    	
    	Talk( 4,  "Tommy: I can give you a contract. Your goal will be to kill monsters. Only 1 contract can be executed at a time. When you finish killing, then double-click on the order and get a reward!" )
    	InitTrigger()
    	TriggerCondition( 1, NoItem, 8361, 1 )
    	TriggerCondition( 1, NoItem, 8362, 1 )
    	TriggerCondition( 1, NoItem, 8363, 1 )
    	TriggerCondition( 1, NoItem, 8364, 1 )
    	TriggerCondition( 1, NoItem, 8365, 1 )
    	TriggerCondition( 1, NoItem, 8366, 1 )
    	TriggerCondition( 1, NoItem, 8367, 1 )
    	TriggerCondition( 1, NoItem, 8368, 1 )
    	TriggerCondition( 1, NoItem, 8369, 1 )
    	TriggerCondition( 1, NoItem, 8370, 1 )
    	TriggerCondition( 1, NoItem, 8371, 1 )
    	TriggerCondition( 1, NoItem, 8372, 1 )
    	TriggerCondition( 1, NoItem, 8373, 1 )
    	TriggerCondition( 1, NoItem, 8374, 1 )
    	TriggerCondition( 1, NoItem, 8375, 1 )
    	TriggerCondition( 1, NoItem, 8376, 1 )
    
    	TriggerCondition( 1, BankNoItem, 8361, 1 )
    	TriggerCondition( 1, BankNoItem, 8362, 1 )
    	TriggerCondition( 1, BankNoItem, 8363, 1 )
    	TriggerCondition( 1, BankNoItem, 8364, 1 )
    	TriggerCondition( 1, BankNoItem, 8365, 1 )
    	TriggerCondition( 1, BankNoItem, 8366, 1 )
    	TriggerCondition( 1, BankNoItem, 8367, 1 )
    	TriggerCondition( 1, BankNoItem, 8368, 1 )
    	TriggerCondition( 1, BankNoItem, 8369, 1 )
    	TriggerCondition( 1, BankNoItem, 8370, 1 )
    	TriggerCondition( 1, BankNoItem, 8371, 1 )
    	TriggerCondition( 1, BankNoItem, 8372, 1 )
    	TriggerCondition( 1, BankNoItem, 8373, 1 )
    	TriggerCondition( 1, BankNoItem, 8374, 1 )
    	TriggerCondition( 1, BankNoItem, 8375, 1 )
    	TriggerCondition( 1, BankNoItem, 8376, 1 )
    					
    	TriggerCondition( 1, EquipNoItem, 8361, 1 )
    	TriggerCondition( 1, EquipNoItem, 8362, 1 )
    	TriggerCondition( 1, EquipNoItem, 8363, 1 )
    	TriggerCondition( 1, EquipNoItem, 8364, 1 )
    	TriggerCondition( 1, EquipNoItem, 8365, 1 )
    	TriggerCondition( 1, EquipNoItem, 8366, 1 )
    	TriggerCondition( 1, EquipNoItem, 8367, 1 )
    	TriggerCondition( 1, EquipNoItem, 8368, 1 )
    	TriggerCondition( 1, EquipNoItem, 8369, 1 )
    	TriggerCondition( 1, EquipNoItem, 8370, 1 )
    	TriggerCondition( 1, EquipNoItem, 8371, 1 )
    	TriggerCondition( 1, EquipNoItem, 8372, 1 )
    	TriggerCondition( 1, EquipNoItem, 8373, 1 )
    	TriggerCondition( 1, EquipNoItem, 8374, 1 )
    	TriggerCondition( 1, EquipNoItem, 8375, 1 )
    	TriggerCondition( 1, EquipNoItem, 8376, 1 )
    	TriggerCondition( 1, HasLeaveBagGrid, 1 )
    	TriggerCondition( 1, KitbagLock, 0 )
    	
    	TriggerAction( 1, GiveItem, 8361, 1, 4 )
    	TriggerFailure( 1, JumpPage, 5 )
    	Text( 4, "Get a Easy contract!",MultiTrigger, GetMultiTrigger(), 1)
    		InitTrigger()
    	TriggerCondition( 1, NoItem, 8361, 1 )
    	TriggerCondition( 1, NoItem, 8362, 1 )
    	TriggerCondition( 1, NoItem, 8363, 1 )
    	TriggerCondition( 1, NoItem, 8364, 1 )
    	TriggerCondition( 1, NoItem, 8365, 1 )
    	TriggerCondition( 1, NoItem, 8366, 1 )
    	TriggerCondition( 1, NoItem, 8367, 1 )
    	TriggerCondition( 1, NoItem, 8368, 1 )
    	TriggerCondition( 1, NoItem, 8369, 1 )
    	TriggerCondition( 1, NoItem, 8370, 1 )
    	TriggerCondition( 1, NoItem, 8371, 1 )
    	TriggerCondition( 1, NoItem, 8372, 1 )
    	TriggerCondition( 1, NoItem, 8373, 1 )
    	TriggerCondition( 1, NoItem, 8374, 1 )
    	TriggerCondition( 1, NoItem, 8375, 1 )
    	TriggerCondition( 1, NoItem, 8376, 1 )
    
    	TriggerCondition( 1, BankNoItem, 8361, 1 )
    	TriggerCondition( 1, BankNoItem, 8362, 1 )
    	TriggerCondition( 1, BankNoItem, 8363, 1 )
    	TriggerCondition( 1, BankNoItem, 8364, 1 )
    	TriggerCondition( 1, BankNoItem, 8365, 1 )
    	TriggerCondition( 1, BankNoItem, 8366, 1 )
    	TriggerCondition( 1, BankNoItem, 8367, 1 )
    	TriggerCondition( 1, BankNoItem, 8368, 1 )
    	TriggerCondition( 1, BankNoItem, 8369, 1 )
    	TriggerCondition( 1, BankNoItem, 8370, 1 )
    	TriggerCondition( 1, BankNoItem, 8371, 1 )
    	TriggerCondition( 1, BankNoItem, 8372, 1 )
    	TriggerCondition( 1, BankNoItem, 8373, 1 )
    	TriggerCondition( 1, BankNoItem, 8374, 1 )
    	TriggerCondition( 1, BankNoItem, 8375, 1 )
    	TriggerCondition( 1, BankNoItem, 8376, 1 )
    					
    	TriggerCondition( 1, EquipNoItem, 8361, 1 )
    	TriggerCondition( 1, EquipNoItem, 8362, 1 )
    	TriggerCondition( 1, EquipNoItem, 8363, 1 )
    	TriggerCondition( 1, EquipNoItem, 8364, 1 )
    	TriggerCondition( 1, EquipNoItem, 8365, 1 )
    	TriggerCondition( 1, EquipNoItem, 8366, 1 )
    	TriggerCondition( 1, EquipNoItem, 8367, 1 )
    	TriggerCondition( 1, EquipNoItem, 8368, 1 )
    	TriggerCondition( 1, EquipNoItem, 8369, 1 )
    	TriggerCondition( 1, EquipNoItem, 8370, 1 )
    	TriggerCondition( 1, EquipNoItem, 8371, 1 )
    	TriggerCondition( 1, EquipNoItem, 8372, 1 )
    	TriggerCondition( 1, EquipNoItem, 8373, 1 )
    	TriggerCondition( 1, EquipNoItem, 8374, 1 )
    	TriggerCondition( 1, EquipNoItem, 8375, 1 )
    	TriggerCondition( 1, EquipNoItem, 8376, 1 )
    	TriggerCondition( 1, HasLeaveBagGrid, 1 )
    	TriggerCondition( 1, KitbagLock, 0 )
    	TriggerCondition( 1, LvCheck, ">", 59 )
    		
    	TriggerAction( 1, GiveItem, 8362, 1, 4 )
    	TriggerFailure( 1, JumpPage, 5 )
    	Text( 4, "Get a Hard contract! (60 lvl+)",MultiTrigger, GetMultiTrigger(), 1)
    	Text( 4,  "Back", JumpPage, 1 )
    	
    	Talk( 5,  "Tommy: You have run out of inventory. Or you already have a contract. Look maybe it’s in your bank!" )
    	Text( 5,  "Exit",  CloseTalk)
    	
    	Talk( 10,  "Tommy: To gain experience, kill monsters in the vicinity of the city and on the islands (for beginners, penguins are specially brought in to us who will quickly help to pick up wholesale, look in the vicinity of the city) a passage to the mines was opened for pumping from LVL 30 (272,149), and for further pumping, I recommend visiting various islands near Portalist - Lilith (153,132)." )
    	Text( 10,  "Lets change theme", JumpPage, 1 )
    	Text( 10,  "Thx, i got it", CloseTalk)
    
    	Talk( 11,  "Tommy: You can contact the administrator through our website" )
    	Text( 11,  "Lets change theme", JumpPage, 1 )
    	Text( 11,  "Thx, i got it", CloseTalk)
    	AddNpcMission ( 110  )
    end
    
    8361	Easy contract	bookorc	10130023	0	0	0	0	0	0	31	0	0	0	0	0	0	0	0	1	1	0	0	-1	0	-1	0	0	-1	-1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0	0,0	0,0	0	0	0	0	0	0	0	0	0	ItemUse_orderchest	0	0	0	0,0	0	0	Double-click to get a contract to kill monsters	0
    8362	Hard contract	bookors	10130023	0	0	0	0	0	0	31	0	0	0	0	0	0	0	0	1	1	0	0	-1	0	-1	0	0	-1	-1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0	0,0	0,0	0	0	0	0	0	0	0	0	0	ItemUse_orderchest2	0	0	0	0,0	0	0	Double-click to get a contract to kill monsters	0
    8363	Order - Pirate (Overgrown island)	bookor	10130005	0	0	0	0	0	0	11	0	0	0	0	0	0	0	0	0	1	0	2000	-1	0	-1	0	0	-1	-1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0	0,0	0,0	0	0	0	0	0	0	0	0	0	ItemUse_orderk	0	0	0	0,0	0	0	The contract for the murder of monsters. When fully filled, double-click to receive a reward.	0
    8364	Order - Forest Spirit (Crystal)	bookor	10130005	0	0	0	0	0	0	11	0	0	0	0	0	0	0	0	0	1	0	2000	-1	0	-1	0	0	-1	-1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0	0,0	0,0	0	0	0	0	0	0	0	0	0	ItemUse_orderk	0	0	0	0,0	0	0	The contract for the murder of monsters. When fully filled, double-click to receive a reward.	0
    8365	Order - Pumpkin Knight (Mine)	bookor	10130005	0	0	0	0	0	0	11	0	0	0	0	0	0	0	0	0	1	0	2000	-1	0	-1	0	0	-1	-1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0	0,0	0,0	0	0	0	0	0	0	0	0	0	ItemUse_orderk	0	0	0	0,0	0	0	The contract for the murder of monsters. When fully filled, double-click to receive a reward.	0
    8366	Order - Ninja Mole (Mine)	bookor	10130005	0	0	0	0	0	0	11	0	0	0	0	0	0	0	0	0	1	0	2000	-1	0	-1	0	0	-1	-1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0	0,0	0,0	0	0	0	0	0	0	0	0	0	ItemUse_orderk	0	0	0	0,0	0	0	The contract for the murder of monsters. When fully filled, double-click to receive a reward.	0
    8367	Order - Treant (Far island)	bookor	10130005	0	0	0	0	0	0	11	0	0	0	0	0	0	0	0	0	1	0	2000	-1	0	-1	0	0	-1	-1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0	0,0	0,0	0	0	0	0	0	0	0	0	0	ItemUse_orderk	0	0	0	0,0	0	0	The contract for the murder of monsters. When fully filled, double-click to receive a reward.	0
    8368	Order - Mad Boar (Autumn)	bookor	10130005	0	0	0	0	0	0	11	0	0	0	0	0	0	0	0	0	1	0	2000	-1	0	-1	0	0	-1	-1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0	0,0	0,0	0	0	0	0	0	0	0	0	0	ItemUse_orderk	0	0	0	0,0	0	0	The contract for the murder of monsters. When fully filled, double-click to receive a reward.	0
    8369	Order - Grassland Wolf (Autumn)	bookor	10130005	0	0	0	0	0	0	11	0	0	0	0	0	0	0	0	0	1	0	2000	-1	0	-1	0	0	-1	-1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0	0,0	0,0	0	0	0	0	0	0	0	0	0	ItemUse_orderk	0	0	0	0,0	0	0	The contract for the murder of monsters. When fully filled, double-click to receive a reward.	0
    8370	Order - Warrior-werewolf (Zephyr)	bookord	10130005	0	0	0	0	0	0	11	0	0	0	0	0	0	0	0	0	1	0	2000	-1	0	-1	0	0	-1	-1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0	0,0	0,0	0	0	0	0	0	0	0	0	0	ItemUse_orderk	0	0	0	0,0	0	0	The contract for the murder of monsters. When fully filled, double-click to receive a reward.	0
    8371	Order - Granite Golem (Zephyr)	bookord	10130005	0	0	0	0	0	0	11	0	0	0	0	0	0	0	0	0	1	0	2000	-1	0	-1	0	0	-1	-1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0	0,0	0,0	0	0	0	0	0	0	0	0	0	ItemUse_orderk	0	0	0	0,0	0	0	The contract for the murder of monsters. When fully filled, double-click to receive a reward.	0
    8372	Order - Vampire bat (Forgotten)	bookord	10130005	0	0	0	0	0	0	11	0	0	0	0	0	0	0	0	0	1	0	2000	-1	0	-1	0	0	-1	-1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0	0,0	0,0	0	0	0	0	0	0	0	0	0	ItemUse_orderk	0	0	0	0,0	0	0	The contract for the murder of monsters. When fully filled, double-click to receive a reward.	0
    8373	Order - Little Ice Dragon (Forgotten)	bookord	10130005	0	0	0	0	0	0	11	0	0	0	0	0	0	0	0	0	1	0	2000	-1	0	-1	0	0	-1	-1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0	0,0	0,0	0	0	0	0	0	0	0	0	0	ItemUse_orderk	0	0	0	0,0	0	0	The contract for the murder of monsters. When fully filled, double-click to receive a reward.	0
    8374	Order - Pig (Forgotten)	bookord	10130005	0	0	0	0	0	0	11	0	0	0	0	0	0	0	0	0	1	0	2000	-1	0	-1	0	0	-1	-1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0	0,0	0,0	0	0	0	0	0	0	0	0	0	ItemUse_orderk	0	0	0	0,0	0	0	The contract for the murder of monsters. When fully filled, double-click to receive a reward.	0
    8375	Order - Golden Scorpion (Demon)	bookord	10130005	0	0	0	0	0	0	11	0	0	0	0	0	0	0	0	0	1	0	2000	-1	0	-1	0	0	-1	-1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0	0,0	0,0	0	0	0	0	0	0	0	0	0	ItemUse_orderk	0	0	0	0,0	0	0	The contract for the murder of monsters. When fully filled, double-click to receive a reward.	0
    8376	Order - Dawn Owl (Demon)	bookord	10130005	0	0	0	0	0	0	11	0	0	0	0	0	0	0	0	0	1	0	2000	-1	0	-1	0	0	-1	-1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0	0,0	0,0	0	0	0	0	0	0	0	0	0	ItemUse_orderk	0	0	0	0,0	0	0	The contract for the murder of monsters. When fully filled, double-click to receive a reward.	0
    8382	Zephyr contract	bookors2	10130023	0	0	0	0	0	0	31	0	0	0	0	0	0	0	0	1	1	0	0	-1	0	-1	0	0	-1	-1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0	0,0	0,0	0	0	0	0	0	0	0	0	0	ItemUse_orderchest3	0	0	0	0,0	0	0	Double-click to get a contract to kill monsters	0
    8383	Newbie contract	bookors3	10130023	0	0	0	0	0	0	31	0	0	0	0	0	0	0	0	1	1	0	0	-1	0	-1	0	0	-1	-1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0	0,0	0,0	0	0	0	0	0	0	0	0	0	ItemUse_orderchest4	0	0	0	0,0	0	0	Double-click to get a contract to kill monsters	0
    8384	Order - Zephyr mobs	bookord1	10130005	0	0	0	0	0	0	11	0	0	0	0	0	0	0	0	0	1	0	2000	-1	0	-1	0	0	-1	-1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0	0,0	0,0	0	0	0	0	0	0	0	0	0	ItemUse_orderk	0	0	0	0,0	0	0	The contract for the murder of monsters. When fully filled, double-click to receive a reward.	0
    8385	Order - Crystal mobs	bookord2	10130005	0	0	0	0	0	0	11	0	0	0	0	0	0	0	0	0	1	0	2000	-1	0	-1	0	0	-1	-1	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0,0	0	0,0	0,0	0	0	0	0	0	0	0	0	0	ItemUse_orderk	0	0	0	0,0	0	0	The contract for the murder of monsters. When fully filled, double-click to receive a reward.	0
    
    
    function ItemUse_orderk ( role , Item )
    	local Cha_Boat = GetCtrlBoat ( role )
    	if Cha_Boat ~=  nil then
    		SystemNotice(role ,"Cannot be used at sea!")
    		UseItemFailed ( role )
    		return
    	end
    	local Item_CanGet = GetChaFreeBagGridNum ( role )	
    	 if Item_CanGet < 2 then
    		SystemNotice(role ,"Not enough inventory space!")
    		UseItemFailed ( role )
    		return
    	end
    	
    	local ItemID = GetItemID ( Item )	-- Получим ID предмета
    	local ItemGet = GetChaItem2 ( role , 2 , ItemID )
    	local Item_MAXURE = GetItemAttr ( ItemGet , ITEMATTR_MAXURE )
    	local Item_URE = GetItemAttr ( ItemGet , ITEMATTR_URE )
    	
    	if Item_URE ~= Item_MAXURE then
    		SystemNotice(role ,"You have not yet killed all the monsters for a reward.")
    		UseItemFailed ( role )
    		return
    	end
    	
    	if ItemID == 8363 or ItemID == 8364 or ItemID == 8365 or ItemID == 8366 or ItemID == 8367 or ItemID == 8368 or ItemID == 8369 then -- Если ID предмета совпадает с используемым, то:
    		local MON_X = 14000
    		local MON_Y = Item_MAXURE / 50
    		local MON_Z = MON_Y * MON_X
    		AddMoney ( role , 0 , MON_Z )
    	end
    	
    	if ItemID == 8370 or ItemID == 8371 or ItemID == 8372 or ItemID == 8373 or ItemID == 8374 or ItemID == 8375 or ItemID == 8376 then -- Если ID предмета совпадает с используемым, то:
    		local MON_X = 20000
    		local MON_Y = Item_MAXURE / 50
    		local MON_Z = MON_Y * MON_X
    		AddMoney ( role , 0 , MON_Z )
    	end
    	if ItemID == 8384 then -- Если ID предмета совпадает с используемым, то:
    		local MON_X = 17000
    		local MON_Y = Item_MAXURE / 50
    		local MON_Z = MON_Y * MON_X
    		AddMoney ( role , 0 , MON_Z )
    	end
    	if ItemID == 8385 then -- Если ID предмета совпадает с используемым, то:
    		local MON_X = 9500
    		local MON_Y = Item_MAXURE / 50
    		local MON_Z = MON_Y * MON_X
    		AddMoney ( role , 0 , MON_Z )
    	end
    	
    end
    
    function ItemUse_orderchest ( role , Item )
    	local Cha_Boat = GetCtrlBoat ( role )
    	if Cha_Boat ~=  nil then
    		SystemNotice(role ,"Cannot be used at sea!")
    		UseItemFailed ( role )
    		return
    	end
    	local Item_CanGet = GetChaFreeBagGridNum ( role )	
    	 if Item_CanGet < 2 then
    		SystemNotice(role ,"Not enough inventory space!")
    		UseItemFailed ( role )
    		return
    	end
    	
    	   	local r1 = 0
    		local r2 = 0
    		local MAX_URE_X = math.random ( 1, 25 )
    		local MAX_URE_Y = MAX_URE_X * 100
    		local MAX_URE_F = MAX_URE_Y + 2500
    		
    		local rad = math.random ( 1, 7 )
    		if rad == 1 then
    			r1, r2 = MakeItem ( role , 8363 , 1 , 4 )
    			local Itemnew = GetChaItem ( role , 2 , r2 )
    			SetItemAttr(Itemnew, ITEMATTR_URE, 0 )
    			SetItemAttr(Itemnew, ITEMATTR_MAXURE, MAX_URE_F )
    		end		
    		if rad == 2 then
    			r1, r2 = MakeItem ( role , 8364 , 1 , 4 )
    			local Itemnew = GetChaItem ( role , 2 , r2 )
    			SetItemAttr(Itemnew, ITEMATTR_URE, 0 )
    			SetItemAttr(Itemnew, ITEMATTR_MAXURE, MAX_URE_F )
    		end		
    		if rad == 3 then
    			r1, r2 = MakeItem ( role , 8365 , 1 , 4 )
    			local Itemnew = GetChaItem ( role , 2 , r2 )
    			SetItemAttr(Itemnew, ITEMATTR_URE, 0 )
    			SetItemAttr(Itemnew, ITEMATTR_MAXURE, MAX_URE_F )
    		end				
    		if rad == 4 then
    			r1, r2 = MakeItem ( role , 8366 , 1 , 4 )
    			local Itemnew = GetChaItem ( role , 2 , r2 )
    			SetItemAttr(Itemnew, ITEMATTR_URE, 0 )
    			SetItemAttr(Itemnew, ITEMATTR_MAXURE, MAX_URE_F )
    		end		
    		if rad == 5 then
    			r1, r2 = MakeItem ( role , 8367 , 1 , 4 )
    			local Itemnew = GetChaItem ( role , 2 , r2 )
    			SetItemAttr(Itemnew, ITEMATTR_URE, 0 )
    			SetItemAttr(Itemnew, ITEMATTR_MAXURE, MAX_URE_F )
    		end		
    		if rad == 6 then
    			r1, r2 = MakeItem ( role , 8368 , 1 , 4 )
    			local Itemnew = GetChaItem ( role , 2 , r2 )
    			SetItemAttr(Itemnew, ITEMATTR_URE, 0 )
    			SetItemAttr(Itemnew, ITEMATTR_MAXURE, MAX_URE_F )
    		end		
    		if rad == 7 then
    			r1, r2 = MakeItem ( role , 8369 , 1 , 4 )
    			local Itemnew = GetChaItem ( role , 2 , r2 )
    			SetItemAttr(Itemnew, ITEMATTR_URE, 0 )
    			SetItemAttr(Itemnew, ITEMATTR_MAXURE, MAX_URE_F )
    		end		
    end
    
    function ItemUse_orderchest2 ( role , Item )
    	local Cha_Boat = GetCtrlBoat ( role )
    	if Cha_Boat ~=  nil then
    		SystemNotice(role ,"Cannot be used at sea!")
    		UseItemFailed ( role )
    		return
    	end
    	local Item_CanGet = GetChaFreeBagGridNum ( role )	
    	 if Item_CanGet < 2 then
    		SystemNotice(role ,"Not enough inventory space!")
    		UseItemFailed ( role )
    		return
    	end
    		local r1 = 0
    		local r2 = 0
    		local MAX_URE_X = math.random ( 1, 25 )
    		local MAX_URE_Y = MAX_URE_X * 100
    		local MAX_URE_F = MAX_URE_Y + 2500
    		
    		local rad = math.random ( 1, 7 )
    		if rad == 1 then
    			r1, r2 = MakeItem ( role , 8370 , 1 , 4 )
    			local Itemnew = GetChaItem ( role , 2 , r2 )
    			SetItemAttr(Itemnew, ITEMATTR_URE, 0 )
    			SetItemAttr(Itemnew, ITEMATTR_MAXURE, MAX_URE_F )
    		end		
    		if rad == 2 then
    			r1, r2 = MakeItem ( role , 8371 , 1 , 4 )
    			local Itemnew = GetChaItem ( role , 2 , r2 )
    			SetItemAttr(Itemnew, ITEMATTR_URE, 0 )
    			SetItemAttr(Itemnew, ITEMATTR_MAXURE, MAX_URE_F )
    		end		
    		if rad == 3 then
    			r1, r2 = MakeItem ( role , 8372 , 1 , 4 )
    			local Itemnew = GetChaItem ( role , 2 , r2 )
    			SetItemAttr(Itemnew, ITEMATTR_URE, 0 )
    			SetItemAttr(Itemnew, ITEMATTR_MAXURE, MAX_URE_F )
    		end				
    		if rad == 4 then
    			r1, r2 = MakeItem ( role , 8373 , 1 , 4 )
    			local Itemnew = GetChaItem ( role , 2 , r2 )
    			SetItemAttr(Itemnew, ITEMATTR_URE, 0 )
    			SetItemAttr(Itemnew, ITEMATTR_MAXURE, MAX_URE_F )
    		end		
    		if rad == 5 then
    			r1, r2 = MakeItem ( role , 8374 , 1 , 4 )
    			local Itemnew = GetChaItem ( role , 2 , r2 )
    			SetItemAttr(Itemnew, ITEMATTR_URE, 0 )
    			SetItemAttr(Itemnew, ITEMATTR_MAXURE, MAX_URE_F )
    		end		
    		if rad == 6 then
    			r1, r2 = MakeItem ( role , 8375 , 1 , 4 )
    			local Itemnew = GetChaItem ( role , 2 , r2 )
    			SetItemAttr(Itemnew, ITEMATTR_URE, 0 )
    			SetItemAttr(Itemnew, ITEMATTR_MAXURE, MAX_URE_F )
    		end		
    		if rad == 7 then
    			r1, r2 = MakeItem ( role , 8376 , 1 , 4 )
    			local Itemnew = GetChaItem ( role , 2 , r2 )
    			SetItemAttr(Itemnew, ITEMATTR_URE, 0 )
    			SetItemAttr(Itemnew, ITEMATTR_MAXURE, MAX_URE_F )
    		end		
    end
    
    function ItemUse_orderchest3 ( role , Item )
    	local Cha_Boat = GetCtrlBoat ( role )
    	if Cha_Boat ~=  nil then
    		SystemNotice(role ,"Cannot be used at sea!")
    		UseItemFailed ( role )
    		return
    	end
    	local Item_CanGet = GetChaFreeBagGridNum ( role )	
    	 if Item_CanGet < 2 then
    		SystemNotice(role ,"Not enough inventory space!")
    		UseItemFailed ( role )
    		return
    	end
    		local r1 = 0
    		local r2 = 0
    		local MAX_URE_X = math.random ( 1, 25 )
    		local MAX_URE_Y = MAX_URE_X * 100
    		local MAX_URE_F = MAX_URE_Y + 2500
    			r1, r2 = MakeItem ( role , 8384 , 1 , 4 )
    			local Itemnew = GetChaItem ( role , 2 , r2 )
    			SetItemAttr(Itemnew, ITEMATTR_URE, 0 )
    			SetItemAttr(Itemnew, ITEMATTR_MAXURE, MAX_URE_F )
    end
    
    function ItemUse_orderchest4 ( role , Item )
    	local Cha_Boat = GetCtrlBoat ( role )
    	if Cha_Boat ~=  nil then
    		SystemNotice(role ,"Cannot be used at sea!")
    		UseItemFailed ( role )
    		return
    	end
    	local Item_CanGet = GetChaFreeBagGridNum ( role )	
    	 if Item_CanGet < 2 then
    		SystemNotice(role ,"Not enough inventory space!")
    		UseItemFailed ( role )
    		return
    	end
    		local r1 = 0
    		local r2 = 0
    		local MAX_URE_X = math.random ( 1, 25 )
    		local MAX_URE_Y = MAX_URE_X * 100
    		local MAX_URE_F = MAX_URE_Y + 2500
    			r1, r2 = MakeItem ( role , 8385 , 1 , 4 )
    			local Itemnew = GetChaItem ( role , 2 , r2 )
    			SetItemAttr(Itemnew, ITEMATTR_URE, 0 )
    			SetItemAttr(Itemnew, ITEMATTR_MAXURE, MAX_URE_F )
    end

    Вот похожая система была

     

     

    • Thanks 1

  11. 15 минут назад, Kst сказал:

    В таких ситуация обычно смотрят изменения по коммиту/коммитам. Рекомендую использовать git в процессе разработке.

     

    Ругается точечно на tabledata.h, скинь его сюда через https://pastebin.com/ было бы удобнее

    Уже получилось собрать, просто интересно было как в таких ситуациях люди узнают что требуется от них


  12. собственно вопрос, что я делаю не так. Клиент и аккаунтсервер на CO собирается правильно, все библиотеки собрал, луаджит через терминал собрал (хз надо ли). Геймсервер не собирается сыпет кучу ошибок, как понять в каком месте я неправильно подключил или еще что то не сделал?

    d0884df566c7.png


  13. https://baijiahao.baidu.com/s?id=1649166342796351796&wfr=spider&for=pc

    b078a3a806a8.jpg
     

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

    В январе 2005 года такая игровая компания была основана в материковом Китае. Уже в 2005 году сетевая компания была очень сильной, с технической группой исследований и разработок, насчитывающей более 200 человек, и успешно разработала движок Full 3D MindPower. Получены авторские права с одобрения Национальной администрации по авторским правам, посредством основного приложения движка MindPower, компания успешно разработала два зрелых продукта для массовых многопользовательских ролевых онлайн-игр (MMORPG) Pirate King Online.

    Однако причина, по которой эта компания так популярна, заключается не в том, что их игры идут хорошо, а в том, что в 2007 году Молийо принял решение, которое раздражало большинство игроков. В марте 2007 года он участвовал в потрясающей игре, управляемой company., Оператор Moliyou забанил игровые аккаунты 120 000 пользователей в течение нескольких дней из-за того, что они заподозрили незаконные действия в игре.

    Фактически, игровой оператор может блокировать и открывать учетные записи игроков, но проблема заключается в том, что среди игроков в этой группе заблокированных учетных записей 50% или даже больше игроков пополнили счет на тысячи или даже десятки тысяч юаней в игре. Вы должны знать, что это было в 2007 году. В то время, в отличие от сегодняшнего дня, для игры было нормально взимать десятки тысяч юаней. В 2007 году 10 000, вероятно, эквивалентно. Теперь это четыре к пятьдесят тысяч или даже сто тысяч.

    Аккаунт, на который были списаны десятки тысяч долларов, был заблокирован в одночасье. Никто не может его терпеть, верно? После официального бана некоторые игроки организовали очень масштабную акцию протеста.

    Утром 7 марта 2007 года сотни игроков собрались у главного входа в штаб-квартиру Magic Tour в Шанхае, надеясь, что чиновник сможет дать разумное объяснение, но чиновник, похоже, сознательно избегал его видеть, и до марта ситуация оставалась безвыходной. В два часа ночи 8-го судья так и не явился, измученный игрок решил поселиться поблизости и рано утром стал ждать его.

    78cf488d6803.jpg

    В 8 часов утра 8-го числа сто игроков, которые снова попросили объяснений, стояли у ворот штаб-квартиры Молию. Он ворвался в компанию и разбил офисное оборудование Magic Tour, устроив сцену турнира. инцидент беспорядок.

    Стены Magic Game Company были нарисованы разгневанными игроками такими словами, как недобросовестные операторы, обман денег игроков и т.д. в настоящее время. Картинка, заинтересованные игроки могут просматривать похожие картинки в Интернете.

    На самом деле, редактор подумал, что этот инцидент был очень простым бунтом игроков, но после поиска в Интернете я обнаружил, что у компании Magic Tour не прошло дня или двух, чтобы ущемить интересы игроков, и это уже позади. этот запрет. Есть еще большие секреты.

    Некоторые пользователи сети сообщили, что после блокировки 120 000 учетных записей на этот раз, Moliyou также выпустил разблокирующую карту стоимостью 300 юаней, что означает, что вы можете разблокировать свою учетную запись, если потратите 300 юаней. Если это так, то официальный представитель Magic Tour действительно сделал это. слишком много, и у редактора также есть основания полагать, что забаненные игроки на самом деле не открываются, а невинно лгут оружие.

    С момента этого инцидента прошло 12 лет. За эти 12 лет многое изменилось. В 2011 году было объявлено о приостановлении работы Earth shattering 1. Теперь ситуация с Magic Tour становится все хуже и хуже. Этот инцидент непросто сказать, кто В конце концов. Верно или нет, может быть, это действительно проблема с политикой работы Moliyou. После этого инцидента десятки тысяч игроков хвалили и аплодировали интернет-бизнесу, а большинство пользователей сети обвиняют чиновника Moliyou в том, что он не делаешь все хорошо.

    Интересно, слышал ли об этом инциденте каждый читатель? Возможно, игроки после 8090 узнают об этом больше.

    22b42deec31b.jpg

    • Thanks 1

  14. https://gamedev.ru/projects/forum/?id=259554

    Не знаю как в плане "переделанных" механик, но широкоформат + фпс + улучшенный рендер с тенями и освещением и измененный шрифт дают достаточно приятную картинку. 

    • Like 1
    • Thanks 2

  15. 17 минут назад, V3ct0r сказал:

    Привет, @Tales of Ocean, и добро пожаловать на PKOdev.NET!

     

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

     

    Привет! Можешь рассказать подробнее как его обойти?

     

    Привет, знаешь почему Джо неуловимый?) Я к тому что всю нужную информацию человек заберет на сайте с бд либо сам воспроизведет

    • Thanks 1

  16. 1 час назад, Tales of Ocean сказал:

    Спасибо @V3ct0r давно хотел такой мод.

    Не могли бы вы поделить таким же кодом для шифрования таблиц ?

     

    2. Шифрование таблиц (файлы .bin)

     

    Эта модификация шифрует .bin-файлы (ItemInfo.bin, CharacterInfo.bin, SkillInfo.bin и остальные) в папке Клиент\scripts\table. Таким образом, из зашифрованных файлов теперь нельзя получить исходные .txt-файлы с помощью декомпилятора, а также их нельзя использовать в других клиентах игры.

     

    Файл ItemInfo.bin до шифрования:

     

    https://i2.piccy.info/i9/9b38e06a95a1d9612ad10214e6c11413/1639402141/77344/1451639/AfterEnc_png_0241372edffcf8797d46e66961756cf7.png

     

    После шифрования:

     

    https://i2.piccy.info/i9/b4c3291032f94575297fd739dba8ba4d/1639402161/49846/1451639/34665BeforeEnc_png_771988ec4027dddb3d109f15536bae76.png

     

    Данный мод поможет от кражи предметов, монстров  и других игровых данных с Вашего сервера.

    Не поможет он от кражи и т.д, просто на пару минут замедлит

×
×
  • Create New...