-
Content Count
172 -
Joined
-
Last visited
-
Days Won
20
Everything posted by e1mer
-
Получаем необходимый параметр персонажа (функцией GetChaAttr()) Запишем получившейся результат, далее рассчитаем (Примерно по такой формуле: Параметр*Нужный процент/100) Получившейся результат необходимо добавить персонажу.
-
Функция позволяет чекнуть каждый слот рюкзака, и вернуть значение, применение можно найти самое разное, от поиска нужной вещи, до блокировки игрока на определенное действие если в инвентаре лежит 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 Результат:
-
Там что-то "около" шарка было, да и реализация не с той калитки была написана, обрати внимание на 2 и 3 пункт, но это все мелочи. И там не вся система к сожалению, не вся механика, я хочу идентичную, вот такой вот я педант.
-
Собственно сабж, прошу помощи у гуру пиратии, а в частности у игроков Шарка PvP. Очень интересны нюансы PvP системы, все до мелочей. Пишу точь в точь такую же систему, только в с возможностью выключения\включения индивидуально для каждого игрока. Что уже известно и реализовано? Включение и отключение PvP При выключенном режиме PvP игрок видит Воителей в стелсе При включенном режиме PvP игрок не видит Воителей в стелсе Игроки до 41 уровня не могут включить PvP режим Игроки которые не имеют второй профессии не могут включить PvP режим Игроки которые используют усилители не могут принимать участия в сражениях Я знаю что это крупицы, но к сожалению сам не играл там, и всех тонкостей не знаю, помогите вспомнить, если не трудно.
-
Зачем платить за то, что уже есть в шаре? Глупость, просто создают эффект "псевдо-оффицальности", не более.
- 87 replies
-
- 1
-
- исходный код
- сервер
-
(and 5 more)
Tagged with:
-
Файл 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 ) Фея так же будет спариваться, выдаваться, но необходимые атрибуты присваиваться уже не будут.
-
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>"; }
-
Врядли.
-
Файл 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
-
Довольно таки не плохо, в идеале бы ру.оффовский писал, я думаю им бы поголовно все пользовались.
- 11 replies
-
- автообновления
- Программа
-
(and 3 more)
Tagged with:
-
Работы для @Спейсио Интернет магазин (PkoSite): Ввод категорий товаров (Все категории, Феи, Развитие, Ковка, Украшение, Телепортация, Самоцветы, Редкости, Свадьба, Акции) Ввод скроллинга при условии если на странице больше N кол-во товаров Фикс кнопки "купить" для всех браузеров Ввод описания предмета на странице с товарами Подключение Робокассы к магазину Логирование пополнения счета Пофикшен баг с work.php (добавить\удалить предмет а так же ПСТ может любой желающий) Введены новые функции для администраторов: Удалить предмет из Магазина, Удалить ПСТ у определенного аккаунта, Просмотр общей суммы ПСТ на сервере, Список донатеров, История покупок
-
Доброго времени форумчане. Предоставляю свои услуги по написанию различных скриптов для сервера или же веб-сайта. Игровой сервер: Фикс различных багов Разработкой нового функционала Ввод новшеств Корректировка старого кода, убираю костыли PHP-Разработка Фикс\Разработка новых функций и прочие... Каждое тех. задание обсуждается отдельно в скайпе (Milkovay), цена и способ оплаты там же.
-
Написал тебе в скайп ещё два дня назад.
-
Парень вроде не плохой, только сыться да глухой.
-
Изменил краткое описание, ознакомиться можно тут: http://zest-online.ru/?act=info
-
Назначение: Пример создания условия, прокачки персонажа, после убийства монстра (автор: 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 //=======================================================================================
-
Выдернул с зеста, может у кого-то есть в этом необходимость. Суть: Каждые 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
-
Или через редактор можно попробовать, скорее всего тоже получится.
-
Апну тему, ещё не продал. Напоминаю что с информацией можно ознакомиться на сайте проекта: http://zest-online.ru/?act=index Если есть какие-то определенные вопросы, можно обратиться в скайп (см. первый пост).
-
См. Скрин выше Нужно, это удобно игрокам, бывают такие ситуации когда необходимо знать точное время.
-
Судя по этому куску понятно что писал ты это не для сие топика как утверждаешь ты. забей, закрой вкладку с этой темой, не обращай внимания на меня.
-
С самооценкой все в порядке, да не основной тип, ко всем отношусь с уважением, кроме таких выскочек которые везде пишут "это элементарно", не нужно этого было писать, нужно было сразу показать свою реализацию для сравнения, тогда я бы может и не заметил что ты этот код просто выдернул со своего сервера. остальной диалог продолжим позже, я в другом городе сейчас, и с телефона.
-
На словах я лев толстой, или как там дальше, не помню. Напиши, выложи, не нужно просто кидать вульгарные фразы о том что ты можешь, и не таких балаболов свет видал. Суть подобных топиков в том, чтобы научить население, чтобы они пытались что-то написать своими руками, а не тупо копипастить с форумов.
-
А нет, я допустил ошибку, возможен баг с тем что переменная действительно не обнуляется, и может забагаться фрукт у других игроков, но это тоже можно пофиксить.
-
Неверно, после релога персонажа эффект от усилителя спадает, и таймер обнуляется, я протестировал. Время записанное с помощью os.time () в секундах, получится что-то типо 906000490. Парсим данные с помощью функции os.date(), например: os.date("%M:%S", 906000490).