Jump to content

Lua

Editor
  • Posts

    117
  • Joined

  • Last visited

  • Days Won

    12

Lua last won the day on August 8

Lua had the most liked content!

1 Follower

Recent Profile Visitors

The recent visitors block is disabled and is not being shown to other users.

Lua's Achievements

Rum lover

Rum lover (3/13)

  • Reacting Well Rare
  • First Post
  • Collaborator
  • Conversation Starter
  • One Year In

Recent Badges

41

Reputation

2

Community Answers

  1. Hello everyone, I recently found an old program for editing maps, maybe someone will come in handy: Download Author: MaTT
  2. Всем привет, посмотрев на форумах не нашел генератор регионов/серверов для входа в игру: Программа позволяет создавать регионы/сервера входа в клиенте, пример: Скачать программу Автор: Неизвестен
  3. Всем привет, хочу поделиться с вами реализацией клещей кузнеца под каждый слот. Первое, что нам понадобиться это добавить проверку на ID клещей, находим функцию can_getstone_item_main( Table ), она находиться в файле forge.lua, нам необходимо добавить диапазон используемых клещей: if (ItemID_otheritem < 1020 or ItemID_otheritem > 1022) then SystemNotice( role ,"Используйте клещи кузнеца нужного уровня.") return 0 end Затем заменим функцию getstone_item ( Table ) на: function getstone_item ( Table ) local role = 0 local ItemBag = {} local ItemCount = {} local ItemBagCount = {} local ItemBag_Num = 0 local ItemCount_Num = 0 local ItemBagCount_Num = 0 local ItemID_Cuihuaji = 0 role , ItemBag , ItemCount , ItemBagCount , ItemBag_Num , ItemCount_Num , ItemBagCount_Num = Read_Table ( Table ) local Item_mainitem = GetChaItem ( role , 2 , ItemBag [0] ) local Item_otheritem = GetChaItem ( role , 2 , ItemBag [1] ) local ItemType_mainitem = GetItemType ( Item_mainitem ) local ItemType_otheritem = GetItemType ( Item_otheritem ) local ItemID_mainitem = GetItemID ( Item_mainitem ) local ItemID_otheritem = GetItemID ( Item_otheritem ) local Item_mainitem_Lv = GetItemLv ( Item_mainitem ) local Item_otheritem_Lv = GetItemLv ( Item_otheritem ) local Num = GetItemForgeParam ( Item_mainitem , 1 ) Num = TansferNum ( Num ) local lg_Num=Num local Item_Stone = {} local Item_StoneLv = {} local Item_StoneID = {} Item_Stone[0] = GetNum_Part2 ( Num ) Item_Stone[1] = GetNum_Part4 ( Num ) Item_Stone[2] = GetNum_Part6 ( Num ) Item_StoneLv[0] = GetNum_Part3 ( Num ) Item_StoneLv[1] = GetNum_Part5 ( Num ) Item_StoneLv[2] = GetNum_Part7 ( Num ) Item_StoneID[0] = StoneTpye_ID[Item_Stone[0]] Item_StoneID[1] = StoneTpye_ID[Item_Stone[1]] Item_StoneID[2] = StoneTpye_ID[Item_Stone[2]] local r1 = 0 local r2 = 0 local Item_Lv = 0 local item_tureID=0 -- 1 слот if (ItemID_otheritem == 1020) then if (Item_StoneID[0]~=0) then item_tureID = Item_StoneID[0] Item_Lv = Item_StoneLv[0] Item_StoneLv[0] = Item_StoneLv[0]-1 if Item_StoneLv[0]==0 then Item_Stone[0] = 0 end else SystemNotice( role , "В первом слоте предмета отсутствует драгоценный самоцвет.") return end -- 2слот elseif (ItemID_otheritem == 1021) then if (Item_StoneID[1]~=0) then item_tureID = Item_StoneID[1] Item_Lv = Item_StoneLv[1] Item_StoneLv[1] = Item_StoneLv[1]-1 if Item_StoneLv[1]==0 then Item_Stone[1] = 0 end else SystemNotice( role , "Во втором слоте предмета отсутствует драгоценный самоцвет.") return end -- 3слот elseif (ItemID_otheritem == 1022) then if (Item_StoneID[2]~=0) then item_tureID = Item_StoneID[2] Item_Lv = Item_StoneLv[2] Item_StoneLv[2] = Item_StoneLv[2]-1 if Item_StoneLv[2]==0 then Item_Stone[2] = 0 end else SystemNotice( role , "Во третьем слоте предмета отсутствует драгоценный самоцвет.") return end end -- Создаем выкованный гем r1,r2 =MakeItem ( role , item_tureID , 1 , 2 ) local Item_ture = GetChaItem ( role , 2 , r2 ) SetItemAttr ( Item_ture , ITEMATTR_VAL_BaoshiLV , Item_Lv ) Num = SetNum_Part2 ( Num , Item_Stone[0] ) Num = SetNum_Part3 ( Num , Item_StoneLv[0] ) Num = SetNum_Part4 ( Num , Item_Stone[1] ) Num = SetNum_Part5 ( Num , Item_StoneLv[1] ) Num = SetNum_Part6 ( Num , Item_Stone[2] ) Num = SetNum_Part7 ( Num , Item_StoneLv[2] ) -- Устанавливаем параметры предмета SetItemForgeParam ( Item_mainitem , 1 , Num ) local R1 = 0 R1 = RemoveChaItem ( role , ItemID_otheritem , 1 , 2 , ItemBag [1] , 2 , 1 , 0 ) if R1 == 0 then SystemNotice( role , "Удалить клещи не удалось...") return end end Вот и все, теперь клещи с ID 1020, 1021, 1022 - работают по слотам.
  4. There is an analysis of how the protection works, however, in the Russian-language section you can use a translator, if you are interested - here is the link.
  5. @ JaR , you need to check the number of items in the slot, if that is not enough, to check the number in other slots, if any, it is very simple.
  6. What exactly do you need to do and what is the payment?
  7. Всем привет, очень часто нужно протестировать lua код без возможности запустить сервер или использовать сторонние ресурсы для подобных целий, можно использовать привычную консоль: Для работы потребуется создать файл Test.lua в корневой папке программы. Скачать Пример кода используемого в демонстрации: function Welcome() print("\nWelcome to Lua 5.4.3!\n") end Welcome()
  8. Все привет, хочу поделится старой наработкой - система Анти Бот. Для начала нам нужно добавить переменные в файл \resource\script\calculate\variable.lua AntiBotActive = true -- Включен ли Анти Бот Afk_Check = {opos_x = 0, opos_y = 0, count = 0} -- Переменная для обработки координат IsAfkMap = {} -- Список карт где работает Анти Бот IsAfkMap["leiting2"] = true IsAfkMap["lonetower"] = true Теперь в функцию cha_timer в файл \resource\script\calculate\function.lua: if (IsPlayer(role) == 1) then -- Сперва убедимся, что это игрок AntiBotSystem(role, now_tick) -- Вызовем систему Анти-Афк end Опишем реализацию функции AntiBotSystem(role, now_tick), например в этом же файле: -- Реализация функции Анти Бот function AntiBotSystem(role, now_tick) if (AntiBotActive) then -- убедимся, что система активна if (IsChaLiving(role) == 1) then -- убедимся, что персонаж жив if (IsAfkMap[GetChaMapName(role)] ~= nil) then -- убедимся, что игрок на спец карте local time_tick = 5 local warning_tick = 36 local disconnect_tick = 42 if (math.mod(now_tick, time_tick) == 0 and now_tick > 0) then -- Убедимся, что прошло 5 секунд local now_tick = IsPlayerAfk(role) if (now_tick >= warning_tick and now_tick < disconnect_tick) then -- Обрабатываем таймер local disconnect_time = disconnect_tick * time_tick local now_time = now_tick * time_tick BickerNotice(role, "Анти Бот: до телепортации в Аргент осталось "..(disconnect_time - now_time).." секунд.") elseif (now_tick >= disconnect_tick) then HelpInfo(role, 0, "Анти Бот: вы депортированы в Аргент!") GoTo( role, 2258 , 2756 , "garner") Afk_Check[role] = {nx, ny, 0} end end end end end end Опишем реализацию функции IsPlayerAfk(role), например в этом же файле: -- Основная функция определения Афк function IsPlayerAfk(role) local nx,ny = GetChaPos(role) if (Afk_Check[role] == nil) then Afk_Check[role] = {nx, ny, 0} else if (Afk_Check[role][1] ~= nx and Afk_Check[role][2] ~= ny ) then Afk_Check[role] = {nx, ny, 0} else Afk_Check[role][3] = Afk_Check[role][3] + 1 if (Afk_Check[role][3] > 0) then return Afk_Check[role][3] end end end return 0 end В итоге мы получили не плохую систему Анти Бот, не совершенную пожалуй - но вполне рабочую с адекватной нагрузкой. Успехов!
  9. Hello everyone, in this thread I will tell you how to sharpen a thing from 1 crystal (useful for fan servers). First, open resource\script\calculate\forge.lua and find the can_beuplv_item_main(Table) function. We are interested in checking the maximum sharpening, for example, like this: if Item_beuplv_Lv > 24 then SystemNotice( role ,"You have reached the maximum level of sharpening") return 0 end Now we will find the function for changing the sharpening, or rather begin_upgrade_item(...), we are interested in the line: Item_beuplv_Lv = Item_beuplv_Lv + 2. Let's replace it with: Item_beuplv_Lv = 24 That's all, now from 1 crystal the maximum sharpening.
  10. Всем привет, в данной теме расскажу, как заточить вещь с 1 го кристалла (полезно для фан серверов). Для начала откроем файл resource\script\calculate\forge.lua, и находим функцию can_beuplv_item_main( Table ). Нас интересует проверка максимально заточки, например вот так: if Item_beuplv_Lv > 24 then SystemNotice( role ,"Вы достигли максимального уровня заточки") return 0 end Теперь найдем функцию изменения заточки, а точнее begin_upgrade_item(...), нас интересует строка: Item_beuplv_Lv = Item_beuplv_Lv + 2. Заменим её на: Item_beuplv_Lv = 24 Вот и все, теперь с 1 го кристалла максимальная заточка.
  11. Нужно видеть, как используется функция, в теории должно работать (пока не могу проверить).
  12. Обновил код, попробуй ещё раз, должен работать, если RemoveChaItem вернет ошибку - новая фея не должна выдаваться.
  13. function DragonFeya(role, npc) local FairyItem = GetChaItem ( role , 2 , 1 ) -- Слот феи local ItemType_FairyItem = GetItemType (FairyItem) -- Получим тип предмета во 2 слоте if (ItemType_FairyItem ~= 59) then -- Убедимся, что тип предмета 59, если нет выполнится код внутри SystemNotice( role ,"В 2 слоте не находиться фея.") return 0 end local FairyItem_ID = GetItemID(FairyItem) -- Получим ID феи local str_FairyItem = GetItemAttr( FairyItem ,ITEMATTR_VAL_STR ) -- Получим силу феи local con_FairyItem = GetItemAttr( FairyItem ,ITEMATTR_VAL_CON ) -- Получим телосложение феи local agi_FairyItem = GetItemAttr( FairyItem ,ITEMATTR_VAL_AGI ) -- Получим ловкость феи local dex_FairyItem = GetItemAttr( FairyItem ,ITEMATTR_VAL_DEX ) -- Получим точность феи local sta_FairyItem = GetItemAttr( FairyItem ,ITEMATTR_VAL_STA ) -- Получим дух феи local lv_FairyItem = str_FairyItem + con_FairyItem + agi_FairyItem + dex_FairyItem + sta_FairyItem -- На основе параметров получаем уровень феи if (lv_FairyItem <= 199) then -- Проверим уровень феи SystemNotice( role ,"Фея должна быть 200 уровня") return 0 end if (FairyItem_ID ~= 166) then -- Проверим ID феи SystemNotice( role ,"У вас в 2 слоте не та фея.") return 0 end local i = 0 i = RemoveChaItem ( role , FairyItem_ID , 1 , 2 , FairyItem , 2 , 1 , 1) -- Пробуем забрать фею if (i == 0) then -- Сработает если фею забрать не удалось SystemNotice( role ,"Не удалось забрать фею из 2-го слота.") return 0 end local r1,r2 = MakeItem ( role , 680 , 1 , 4 ) -- создаю фею Мордо local newItem = GetChaItem ( role , 2 , r2 ) -- получим созданный предмет. SetItemAttr ( newItem , ITEMATTR_VAL_STR , 50 ) -- установит показатель силы феи 50. SetItemAttr ( newItem , ITEMATTR_VAL_AGI , 1 ) -- установит показатель ловкости феи 1. end Держи
  14. @ Pumba , please delete the post, let them write obviously.

Board Life Status


Board startup date: May 27, 2020 20:35:04
×
×
  • Create New...