Jump to content

V3ct0r

Administrators
  • Content Count

    2,889
  • Joined

  • Last visited

  • Days Won

    519

Everything posted by V3ct0r

  1. @Jones I guess something such as: State_Xy_Add_Original = State_Xy_Add State_Xy_Add = CheckStunHook function CheckStunHook(role, statelv) CheckStun(role, statelv) State_Xy_Add_Original(role, statelv) end When server calls State_Xy_Add(), function CheckStun() will be called before
  2. @DevMorgan, what is type of item? Try that script functions.lua, function cha_timer() -- Take item by Timer if (IsPlayer(cha) == 1) then local Item_ID = XXXX -- Set Item ID local Item = GetChaItem2(role, 2, Item_ID) if (Item ~= nil) then local Time = GetItemAttr(Item, ITEMATTR_ENERGY) -- 300 seconds is 5 minutes if (Time == 300) then TakeItem(role, 0, Item_ID, 1) else Time = Time + 1 SetItemAttr(Item, ITEMATTR_ENERGY, Time) end end end
  3. @e1mer 1) Вместо запроса SELECT * FROM GameDB.dbo.character WHERE mem_addr > 1 лучше использовать SELECT cha_name, job FROM GameDB.dbo.character WHERE mem_addr > 1 2) Можно добавить кеширование, чтобы часто не дергать базу данных
  4. @e1mer в итоге получим 1 огромную функцию для всех предметов, что бывает не очень хорошо. Что делать, если нужно внести 1 маленькое изменение? Если речь идет о том, чтобы в ItemInfo.txt всегда указывать одно и то же название функции, но для каждого предмета функция должна быть своей, то можно сделать так: variable.lua: -- Массив ID предмета => Функция ItemFunc = {} ItemFunc[1884] = ItemUse_Chest ItemFunc[4553] = ItemUse_GoodCake ItemFunc[3545] = ItemUse_Teleport functions.lua или ItemEffect.lua: function ItemUse_Chest(role, Item) -- Выдаем персонажу предметы end function ItemUse_GoodCake(role, Item) -- Исцеляем персонажа end function ItemUse_Teleport(role, Item) -- Телепортируем персонажа end ItemEffect.lua function ItemUse_All(role, Item) local ItemID = GetItemID(Item) if ( ItemFunc[ItemID] == nil) then SystemNotice(role, "Ошибка: Не найден обработчик для предмета с ID " .. ItemID .. "!") UseItemFailed(role) return end -- Вызываем обработчик для конкретного предмета ItemFunc[ItemID](role, Item) end Не тестировал, но должно работать.
  5. if GetChaAIType( DEFER ) >= 21 then if BOSSAYSJ[GetChaTypeID( DEFER )] == 0 then SystemNotice ("As a Boss, how can I be defeated by ths same skill. Beware warriors!") return else BOSSAYSJ[GetChaTypeID( DEFER )] = BOSSAYSJ[GetChaTypeID( DEFER )] -1 end end (код из функции Skill_Ayzz_End()) Похоже эти массивы определяют сколько раз можно использовать определенное умение на боссах. Т.е. например, умение "Shadow Insignia" можно использовать на монстре с ID 986 всего 6 раз.
  6. @Rinor Check your scripts
  7. @Anthoni Check that thread
  8. skillinfo.txt 0468 Lv1 Arrest warrant 1 -1,10 1,-1 1,-1 1,-1 -1 0 1 1 -1 -1 1 1 1 1000 5 1 0 0 0 0 0 0 0 0 0 0 Skill_Daibuzheng1_End 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SkillCooldown_Daibuzheng1 1 1 -1 -1 0 -1 0 0 0 0,0 0,0 0 5 -1 0 0 -1 -1 -1 0 0 0 0 0 0 5717 0 0 0 0469 Lv2 Arrest warrant 1 -1,10 1,-1 1,-1 1,-1 -1 0 1 1 -1 -1 1 1 1 1000 5 1 0 0 0 0 0 0 0 0 0 0 Skill_Daibuzheng2_End 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SkillCooldown_Daibuzheng2 1 1 -1 -1 0 -1 0 0 0 0,0 0,0 0 5 -1 0 0 -1 -1 -1 0 0 0 0 0 0 5718 0 0 0 0470 Lv3 Arrest warrant 1 -1,10 1,-1 1,-1 1,-1 -1 0 1 1 -1 -1 1 1 1 1000 5 1 0 0 0 0 0 0 0 0 0 0 Skill_Daibuzheng3_End 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SkillCooldown_Daibuzheng3 1 1 -1 -1 0 -1 0 0 0 0,0 0,0 0 5 -1 0 0 -1 -1 -1 0 0 0 0 0 0 5719 0 0 0 0471 Lv4 Arrest warrant 1 -1,10 1,-1 1,-1 1,-1 -1 0 1 1 -1 -1 1 1 1 1000 5 1 0 0 0 0 0 0 0 0 0 0 Skill_Daibuzheng4_End 0 0 0 0 0 0 0 0 0 0 0 0 0 0 SkillCooldown_Daibuzheng4 1 1 -1 -1 0 -1 0 0 0 0,0 0,0 0 5 -1 0 0 -1 -1 -1 0 0 0 0 0 0 5720 0 0 0
  9. Tips for making a topic in 'Questions & Help' Hi! In this topic I'll give you some advice which could help you to get a straightforward and fast answer to your question. 1. Use 'Search' on forum. Most likely the problem you have encountered has already been reviewed by someone. You should check Guide section, as you might find an answer there. 2. Formulate the question clearly and explicitly. Topic name should reflect the problem. You shall not create topics with such names as: "Help!", "Error", "Need Help!", and so on... Do not abuse spelling and punctuation marks. For example I'll give some decent topic names: "Error while connecting GameServer.exe to MSSQL-server.", "NPC Script does not work", "How to create a new item?". 3. Articulate the problem clearly. Articulate the problem so that it would be understandable to other forum members. Try to describe the problem in all details. Remember that the clearly articulated question already contains 50% of the answer. Do not abuse the spelling and punctuation marks. Least said, soonest mended, right? As an attachment upload screenshot of the problem; .cfg files' configurations, scripts and other files you're working with - this part is very important. 4. Be patient. After you've created a topic, be patient while waiting for the answer. You should not 'bump' too frequently and demand immediate response. While waiting you can also keep trying to fix the issue on your own and/or give additional explanations and materials that could help forum members to give you an answer as fast as possible.
  10. @destroger А что делает функция ZTLBalance() и clear()? Скинь мне свой GameServer.exe, попробую его пропатчить когда будет время.
  11. Рекомендации по созданию тем в разделе "Помощь" Привет! В данной статье я дам несколько советов, которые помогут Вам максимально быстро получить наиболее подробный и точный ответ на интересующий Вас вопрос. 1. Используйте поиск по форуму. Скорее всего, проблема с которой Вы столкнулись ранее возникала и у других людей. Также проверьте раздел Документация, возможно там будет ответ на поставленный вопрос. 2. Давайте темам информативные названия. Название темы должно отражать ее суть. Не следует создавать темы с названиями "Помогите!", "Ошибка", "Нужна помощь!" и им подобные. Не злоупотребляйте орфографией и знаками препинания. Для примера приведу хорошие названия для тем: "Ошибка при подключении GameServer.exe к MSSQL-серверу", "Не работает скрипт NPC", "Как создать новый предмет?". 3. Четко формулируйте проблему. Сформулируйте вопрос таким образом, чтобы он был понятен остальным участникам форума. Максимально подробно опишите проблему. Помните, правильно поставленный вопрос содержит 50% ответа. Не пренебрегайте правилами грамматики и орфографии. Не злоупотребляйте смайлами и знаками препинания. В качестве приложения выкладывайте скриншоты с изображением ошибки, листинги .cfg-файлов и скриптов, прочие файлы с которыми Вы работаете - это очень важно. 4. Запаситесь терпением. После того как Вы создали тему, терпеливо ожидайте ответов. Не следует "апать" (поднимать) тему слишком часто и требовать немедленного ответа. Также Вы можете продолжать работать над решением проблемы самостоятельно и давать дополнительные пояснения и материалы, которые помогут участникам форума дать Вам ответ, тем самым ускоряя решение проблемы.
  12. @destroger Есть 2 способа решения проблемы: 1) Патчить GameServer.exe, чтобы он вызывал скрипт (функцию, которая спавнит монстров и вызывается каждые 5 минут) даже если на карте нет игроков. 2) Мы знаем, что хаос, например, открывается в 20:00. Начиная с 5 минуты начинают спавниться мобы. Первый игрок заходит в 20:29. Значит сразу спавним 5 волну (которая должна была спавниться в 20:25). Т.е. можно привязаться ко времени сервера
  13. It is a good beggining to start learn web technologies. If you will not do anything you will know nothing @Pwner stop offtop
  14. @destroger, привет! Если на 29 минуте заходит первый игрок, то спавн начинается с 1 волны?
  15. V3ct0r

    WIP Website

    From .txt files. I can send to you modified GroupServer.exe
  16. LUA_TRUE = 1 (boolean true) LUA_FALSE = 0 (boolean false)
  17. @Rinor What it does? And why you can't do it by yourself?
  18. @NMS3RR Конечно можно, вопрос только в высокой сложности это сделать
  19. @NMS3RR, смотрим значение переменной STATE_XXX в variable.lua, идем в skilleff.txt и смотрим что это за эффект по его ID. Если очень надо, я могу написать программу, которая автоматом добавит комментарии с именем эффекта к этому списку, чтобы сэкономить твое время
  20. Вроде эта ошибка вылетает когда GroupServer.exe не смог подключиться к AccountServer.exe
  21. Это не массив, а просто список переменных и особого интереса не представляет. Сделан он чтобы в скриптах писать не ID эффекта, а переменную, которая его обозначает. Для удобства, наверно. Например, у нас ID эффекта используется в 3 скриптах и мы захотели его изменить. Чтобы не изменять все 3 скрипта, мы можем просто изменить значение одной переменной
  22. Нужно патчить клиент, т.к. в нем жестко стоит ограничение в 5 человек на отряд
  23. @NMS3RR весь код, который ты скинул, закомментирован (--)
  24. @Onioni be carefully with Pwner.
×
×
  • Create New...