Jump to content

e1mer

Community
  • Content Count

    172
  • Joined

  • Last visited

  • Days Won

    20

Everything posted by e1mer

  1. Получаем необходимый параметр персонажа (функцией GetChaAttr()) Запишем получившейся результат, далее рассчитаем (Примерно по такой формуле: Параметр*Нужный процент/100) Получившейся результат необходимо добавить персонажу.
  2. Функция позволяет чекнуть каждый слот рюкзака, и вернуть значение, применение можно найти самое разное, от поиска нужной вещи, до блокировки игрока на определенное действие если в инвентаре лежит N-ый предмет(-ы). function Inventory (role) for pos=0, 47, 1 do Inventory = GetChaItem (role, 2, pos) Item_Type = GetItemType(Inventory) Item_ID = GetItemID(Inventory) SystemNotice(role, "Слот:"..(pos+1)..", ID:"..Item_ID..", Тип:"..Item_Type) end end Результат:
  3. Там что-то "около" шарка было, да и реализация не с той калитки была написана, обрати внимание на 2 и 3 пункт, но это все мелочи. И там не вся система к сожалению, не вся механика, я хочу идентичную, вот такой вот я педант.
  4. Собственно сабж, прошу помощи у гуру пиратии, а в частности у игроков Шарка PvP. Очень интересны нюансы PvP системы, все до мелочей. Пишу точь в точь такую же систему, только в с возможностью выключения\включения индивидуально для каждого игрока. Что уже известно и реализовано? Включение и отключение PvP При выключенном режиме PvP игрок видит Воителей в стелсе При включенном режиме PvP игрок не видит Воителей в стелсе Игроки до 41 уровня не могут включить PvP режим Игроки которые не имеют второй профессии не могут включить PvP режим Игроки которые используют усилители не могут принимать участия в сражениях Я знаю что это крупицы, но к сожалению сам не играл там, и всех тонкостей не знаю, помогите вспомнить, если не трудно.
  5. Зачем платить за то, что уже есть в шаре? Глупость, просто создают эффект "псевдо-оффицальности", не более.
  6. Файл forge.lua, функция jlborn_item() Просто из каждой функции для фрукта удаляем этот кусок кода Num_newJL = SetNum_Part1 ( Num_newJL , 1 ) Num_newJL = SetNum_Part2 ( Num_newJL , Part2_newJL ) Num_newJL = SetNum_Part3 ( Num_newJL , Part3_newJL ) Num_newJL = SetNum_Part4 ( Num_newJL , Part4_newJL ) Num_newJL = SetNum_Part5 ( Num_newJL , Part5_newJL ) Num_newJL = SetNum_Part6 ( Num_newJL , Part6_newJL ) Num_newJL = SetNum_Part7 ( Num_newJL , Part7_newJL ) SetItemForgeParam ( Item_newJL , 1 , Num_newJL ) SetItemAttr ( Item_newJL , ITEMATTR_VAL_STR , new_str ) SetItemAttr( Item_newJL , ITEMATTR_VAL_DEX , new_dex ) SetItemAttr ( Item_newJL , ITEMATTR_VAL_STA , new_sta ) SetItemAttr( Item_newJL , ITEMATTR_VAL_AGI , new_agi ) SetItemAttr ( Item_newJL , ITEMATTR_VAL_CON , new_con ) SetItemAttr ( Item_newJL , ITEMATTR_MAXENERGY , new_MAXENERGY ) SetItemAttr ( Item_newJL , ITEMATTR_MAXURE , new_MAXURE ) Фея так же будет спариваться, выдаваться, но необходимые атрибуты присваиваться уже не будут.
  7. if ($stuff[$i]->gm > $hd_level) { $stuff_online .= "<span style=\"color: red;\">[GM] ".$stuff[$i]->cha_name."</span>"; } else { $stuff_online .= "<span style=\"color: blue;\">[HD] ".$stuff[$i]->cha_name."</span>"; }
  8. Файл function.lua: function CheckSlot ( role, slot ) --[[ @function Check slot status @Description ru-RU: Функция проверяет свободен ли слот Если слот пустой, функция вернет значение 0 Если слот занят, функция вернет значение 1 @Author: e1mer (Project: ZEST-Online) @Version: 1.0 ]] local Slot = GetChaItem ( role, 2 ,slot - 1 ) if Slot == nil then return 0 else return 1 end return Slot end Пример: Проверим, свободен ли первый слот инвентаря local CheckSlot = CheckSlot( role, 1 ) SystemNotice(role, "Состояние слота: "..CheckSlot) Если слот пустой - система вернет значение 0, если слот занят - 1
  9. Довольно таки не плохо, в идеале бы ру.оффовский писал, я думаю им бы поголовно все пользовались.
  10. Работы для @Спейсио Интернет магазин (PkoSite): Ввод категорий товаров (Все категории, Феи, Развитие, Ковка, Украшение, Телепортация, Самоцветы, Редкости, Свадьба, Акции) Ввод скроллинга при условии если на странице больше N кол-во товаров Фикс кнопки "купить" для всех браузеров Ввод описания предмета на странице с товарами Подключение Робокассы к магазину Логирование пополнения счета Пофикшен баг с work.php (добавить\удалить предмет а так же ПСТ может любой желающий) Введены новые функции для администраторов: Удалить предмет из Магазина, Удалить ПСТ у определенного аккаунта, Просмотр общей суммы ПСТ на сервере, Список донатеров, История покупок
  11. Доброго времени форумчане. Предоставляю свои услуги по написанию различных скриптов для сервера или же веб-сайта. Игровой сервер: Фикс различных багов Разработкой нового функционала Ввод новшеств Корректировка старого кода, убираю костыли PHP-Разработка Фикс\Разработка новых функций и прочие... Каждое тех. задание обсуждается отдельно в скайпе (Milkovay), цена и способ оплаты там же.
  12. Написал тебе в скайп ещё два дня назад.
  13. Парень вроде не плохой, только сыться да глухой.
  14. Изменил краткое описание, ознакомиться можно тут: http://zest-online.ru/?act=info
  15. Назначение: Пример создания условия, прокачки персонажа, после убийства монстра (автор: SimplePRO) //============================================================================== //= Файл: exp_and_level.lua || Функция: GetExp_PKM || Положение: Конец функции|| //============================================================================== if GetChaID(dead) == 75 and Lv(atk) >= 45 and HasRecord(atk, 1983) == 0 then SystemNotice(atk, "Вы убили монстра, который необходим для поднятия уровня выше 45.") SetRecord(atk, 1983) end //============================================================================== //======================================================================================= //= Файл: exp_and_level.lua || Функция: ShareTeamExp || Положение: Вставить после exp = exp + exp_up|| //======================================================================================= if Lv(TurnToCha(t[i])) >= 45 and HasRecord(TurnToCha(t[i]) , 1983) == 0 then SystemNotice (TurnToCha(t[i]), "Вы не убили босса чтоб продвигаться дальше.") else SetChaAttrI(TurnToCha(t), ATTR_CEXP, exp) LG("exp", "exp_now = ", exp) end //=======================================================================================
  16. Выдернул с зеста, может у кого-то есть в этом необходимость. Суть: Каждые N минут, персонажу которое провел в игре N-ое количество времени, начисляем бонусы. Вместо XXXX указываем название карты, на которой необходимо провести игровое время для выдачи. В принципе все строки прокомментированы, по этому вопросов должно быть по минимуму. Функция cha_timer(), файл functions.lua. -- Награждение персонажей за проведенное время в игре (на определенном уровне разные призы) -- функция cha_timer (resource/script/calculate/functions.lua) --Награда за проведенное время в игре, если персонаж на карте GetChaMapName(role) if GetChaMapName ( role ) == "XXXX" then --Функция новичка, выдаем приз каждые newbie_now_tick минут local newbie_now_tick = 30 --Конвертируем "Минуты" в с "Секунды" local newbie_now_min = newbie_now_tick * 60 if math.mod(now_tick, newbie_now_min) == 0 then --Если игрок ниже 25 уровня или 25 уровень, то выдаем призы if Lv( role ) <= 25 then local newbie_radom_prize = math.random ( 1, 8 ) if newbie_radom_prize == 1 then if GetChaFreeBagGridNum ( role ) >= 4 then GiveItemX ( role , 0 , 3844 , math.random( 1, 2 ) , 4 ) --Небесная ягода (от 1 до 2 шт.) GiveItemX ( role , 0 , 3845 , math.random( 1, 2 ) , 4 ) --Зачарованная ягода (от 1 до 2 шт.) GiveItemX ( role , 0 , 0227 , math.random( 5, 10 ) , 4 ) --Питание феи (от 5 до 10 шт.) GiveItemX ( role , 0 , 0578 , math.random( 1, 4 ) , 4 ) --Фрукт роста (от 1 до 4 шт.) AddMoney ( role , 0 , math.random( 15000, 30000 )) --Призовое золото PlayEffect (role, 275 ) else BickerNotice(role, "\199\224 \253\242\232 30 \236\232\237\243\242 \239\240\232\231\251 \237\229 \237\224\247\232\241\235\232\237\251. \206\241\226\238\225\238\228\232\242\229 4 \241\235\238\242\224 \226\238 \226\240\229\236\229\237\237\238\236 \236\229\248\234\229") --BickerNotice(role, "За эти 30 минут призы не начислины. Освободите 4 слота во временном мешке") end end end end end
  17. Или через редактор можно попробовать, скорее всего тоже получится.
  18. Апну тему, ещё не продал. Напоминаю что с информацией можно ознакомиться на сайте проекта: http://zest-online.ru/?act=index Если есть какие-то определенные вопросы, можно обратиться в скайп (см. первый пост).
  19. См. Скрин выше Нужно, это удобно игрокам, бывают такие ситуации когда необходимо знать точное время.
  20. Судя по этому куску понятно что писал ты это не для сие топика как утверждаешь ты. забей, закрой вкладку с этой темой, не обращай внимания на меня.
  21. С самооценкой все в порядке, да не основной тип, ко всем отношусь с уважением, кроме таких выскочек которые везде пишут "это элементарно", не нужно этого было писать, нужно было сразу показать свою реализацию для сравнения, тогда я бы может и не заметил что ты этот код просто выдернул со своего сервера. остальной диалог продолжим позже, я в другом городе сейчас, и с телефона.
  22. На словах я лев толстой, или как там дальше, не помню. Напиши, выложи, не нужно просто кидать вульгарные фразы о том что ты можешь, и не таких балаболов свет видал. Суть подобных топиков в том, чтобы научить население, чтобы они пытались что-то написать своими руками, а не тупо копипастить с форумов.
  23. А нет, я допустил ошибку, возможен баг с тем что переменная действительно не обнуляется, и может забагаться фрукт у других игроков, но это тоже можно пофиксить.
  24. Неверно, после релога персонажа эффект от усилителя спадает, и таймер обнуляется, я протестировал. Время записанное с помощью os.time () в секундах, получится что-то типо 906000490. Парсим данные с помощью функции os.date(), например: os.date("%M:%S", 906000490).
×
×
  • Create New...