Помощь - Поиск - Пользователи - Календарь
Полная версия: Скрипты для шарда
Город Мастеров > РЕДАКТОРЫ > Шарды рунета
Lex
Собственно сабж.
<small>Добавлено в 16:45</small>
решил на досуге сделать Крикуна, который за деньги кричит ваше сообщение на рынке. но нет у меня возможности проверить схему в модуле с несколькими игроками.


ADD:
Если есть возможность, проверьте кто-нибудь. Заранее благодарен.
_kaa_
Простой скрипт, вешается на HB. (модуля или для нужных локаций).
Что делает: днем, если локация не подземная, при попытке использовать SKILL_HIDE вешает на 30 секунд пенальти на скилл hide (снижает до 2)
А то с появлением shadow dancer'а воры совсем обнаглели, в чистом поле под солнцем умудряются тень найти (свою наверное smile.gif )
Заодно помогает против излюбленной техники их же - стукнуть моба, отбежать и уйти в тень. Теперь такое будет работать только ночью, что уже вполне реально и такая стратегия из разряда "баго-фича" переходит в разряд "военная хитрость" smile.gif
Neverwinter Script Source
void _anti_hide(object oPC)
{
   object oArea = GetArea(oPC);
   if (!GetIsObjectValid(oArea)) return;
   if (GetIsDay() && GetIsAreaAboveGround(oArea) == AREA_ABOVEGROUND && GetStealthMode(oPC) == STEALTH_MODE_ACTIVATED)
   {
       int nHide = GetSkillRank(SKILL_HIDE,oPC);
       if (nHide > 5)
           ApplyEffectToObject(DURATION_TYPE_TEMPORARY,EffectSkillDecrease(SKILL_HIDE,nHide-2),oPC,30.0);
   }
}

void main()
{
   object oPC = GetFirstPC();
   while (GetIsPC(oPC))
   {
       _anti_hide(oPC);
        oPC = GetNextPC();
   }
}


Ps. скрипт вырезан из более большого скрипта и не проверялся в данном варианте, но особых проблем быть не должно
2GoDoom
хм... а в случае шарда это будет тормозить? smile.gif
_kaa_
Цитата(2GoDoom @ Jul 11 2004, 13:08)
хм... а в случае шарда это будет тормозить? smile.gif

Да не должно вроде smile.gif

ps. Для примера сравни со скриптами АИ. Размеры компилированных скриптов там по 1Мб есть - и ничего, шард работает smile.gif
Вестель
_kaa_
Спасибо за нужный и очень толковый скрипт. Правда, стоит не опускать скилл хайд до 2ух, а сделать на него пыховский пиночек в 20, но это детали, с которыми будем разбираться позже. К тому же, как вариант, можно добавить проверку, а нет ли на этом гаде вещей с лайтом или факела в руках, а то уж больно плюшево получится - сам сияет, как новогодняя елка и прячется..
_kaa_
Цитата(Вестель @ Jul 12 2004, 10:05)
_kaa_
Спасибо за нужный и очень толковый скрипт. Правда, стоит не опускать скилл хайд до 2ух, а сделать на него пыховский пиночек в 20, но это детали, с которыми будем разбираться позже. К тому же, как вариант, можно добавить проверку, а нет ли на этом гаде вещей с лайтом или факела в руках, а то уж больно плюшево получится - сам сияет, как новогодняя елка и прячется..

Я думал в другую сторону - если у другого игрока даже ночью в руке факел - понижать хайд (что поделаешь, в Thief3 сейчас играю smile.gif ), но проверять раз в 6 секунд - смысла мало, а чаще ставить - уже напряжно для сервера. Насчет пыхи - не знаю, в глаза не видел biggrin.gif
Вестель
_kaa_
Я и имел ввиду это. Если есть факел или шмотка с лайтом, то чтобы данный скрипт срабатывал даже ночью.. Может быть выразился не ясно. По ПХБ ты можешь сделать в одном раунде любое действие (даже атаку) и хайд, но с пинком 20..
_kaa_
Цитата(Вестель @ Jul 12 2004, 12:50)
_kaa_
Я и имел ввиду это. Если есть факел или шмотка с лайтом, то чтобы данный скрипт срабатывал даже ночью.. Может быть выразился не ясно. По ПХБ ты можешь сделать в одном раунде любое действие (даже атаку) и хайд, но с пинком 20..

И все же мы говорим о разном smile.gif Ты предлагаешь вешать пенальти вору даже ночью, если на нем есть любая вещь с подсветкой. А я предлагаю вешать пенальти, если он подошел близко к другому игороку, у которого есть подсветка.
Хотя нужно и то и другое dirol.gif
Lex
во-во. и то и другое надо!
Ignacius
Вот у меня такой вопрос. Как сделать систему задержки, чтобы после выхода, игрок оставался минуту на месте, а самого игрока не пускало? После перезахода через минуту на игрока вещались все состояния его дубликата.
Мое предположение таково, чтобы при выходе/отключении создавалась на месте копия игрока, с задержкой на 1 минуту а потом уничтожалась, а все ее эффекты записывались в БД.

ЗЫ. Извиняюсь за неграмотность.
Аваддон
Я конечно понимаю что таким методом можно избежать то что игроки альтуются(Alt+F4) из битвы. Тоесть напросто бегут с поля боя. Но, такое долго время задержки черевато тем что тебя обнесут за эту минуту воришки... или еще что круче.
Думаю лучший способ наказать таких игроков - OnClientLeave поставить скриптик проверяющий: Идет ли битва и иесли идет просто снимать за это опыт..или ваще убивать нафиг.
Ignacius
Хехе, в том то и прелесть что альтоваться надо тока в ноу ПВП зонах. Просто тут идет работа над ПВП шардом. (Хз че получится, но для личного образования).
В антиальте есть 1 проблема - дисконнект от провайдера, но никуда от него не деться, тут ни скриптовым ни программыным средством ничего не сделаешь.
Собственно как это реализовать?

ЗЫ. какая-то проблема с кодировкой, через мозиллу Firefox пишет околесицу.
Аваддон
Как на Мидгарде реализована система лута? Стерт файл генерации и лут кладется в ручную или он полностью переписан ( *крестится* ) ? Очень интересно ведь практически вещь +2 найти невозможно а игрок безумно радуется шмотке +1. Хотелось бы тоже такую систему.
_kaa_
QUOTE (Аваддон @ Sep 5 2004, 14:52)
Как на Мидгарде реализована система лута? Стерт файл генерации и лут кладется в ручную или он полностью переписан ( *крестится* ) ? Очень интересно ведь практически вещь +2 найти невозможно а игрок безумно радуется шмотке +1. Хотелось бы тоже такую систему.

Лут для Мида сейчас переделывается. То, что было - система лута из SOU, через сундуки. Описание скриптов я выкладывал еще на realms.ru, тема что-то вроде "Описание стандартных скриптов". Ее не прибили и она там давно утонула, но найти можно.
Аваддон
Тоесть в тот скрипт что стоит при смерти Крича переписан скрипт с сундук low treasure ?
Misty Dragon
Вопросы такие интересуют...
Есть ли возможность при помощи скрипта произвести энумерацию чаров на аккаунте, в том числе и получение инфы по ним?
Возможен ли отлов события создания чара?
Hety the Lightbringer
Да. Сливаешь инфу в БД. OnClientEnter чекаешь логин. Лезешь в базу и смотришь все на него. Если есть строки - смотришь кол-во строк. Если нет то вставляешь Логин и Имя. Если они есть - пропускаешь. Дополнительно можешь писать хар-ки, экспу и т. д.
Misty Dragon
QUOTE (Hety the Lightbringer @ Sep 20 2004, 19:53)
Да. Сливаешь инфу в БД. OnClientEnter чекаешь логин. Лезешь в базу и смотришь все на него. Если есть строки - смотришь кол-во строк. Если нет то вставляешь Логин и Имя. Если они есть - пропускаешь. Дополнительно можешь писать хар-ки, экспу и т. д.

Хм.. с отловом все события создания чара все получилось, но вот энумерация пока висит. Сенькс.
Hety the Lightbringer
Энумерация? Присваивание чарам айдишников? Это можно делать как в БД(не знаю как в мускуле - в постгресе мы делали на сервере это). Делается просто(можно и проще, если подумать wink.gif). Создаешь таблицу, с одной строкой и одним столбцом. Обзываешь как-нибудь столбец. При добавлении чара берешь значение оттедова, прибавляешь один и пишешь это в id чара. Текущее значение в табличке инкрементишь.
Misty Dragon
Энумерация - перечисление. Т.е. мне необходимо выяснить возможно ли без написания скрипта, который ведет лог по созданию чаров, выяснить сколько чаров на аккаунте. К примеру запускаю какой-нить(ранее созданный) EnumCharOnAccount() и он выдает количество персонажей на аккаунте. Пострег и прочие фичи не предлагать, ибо времени нет на изучение всех этих дел нет.
Lex
Хм..по моему ничего такого через скрипты сделать нельзя
Hety the Lightbringer
Нет. Ибо сервер только пишет и читает из файлов чаров. Ничего более.
Misty Dragon
Все. Спасибо. Что и требовалось выяснить. smile.gif
Richard
Здравствуйте... Мне нужно следующее сделать, не подскажете как?
1. Защита чара от хака путем БД
2. В зависимости от алаймента заходя в портал попадать в свой город
3. Лут, зависящий от CR
Lazy Ranma
1. Какой именно БД?
Если стандартная .dbf - почитай эти топики
http://oldforums.rpgplanet.ru/index.php?showtopic=4727&hl=
http://oldforums.rpgplanet.ru/index.php?sh...ndpost&p=184987
2.
Neverwinter Script Source
void main()
{
    object oPC = GetLastUsedBy();
    int nGoodEvil = GetAlignmentGoodEvil(oPC);
    int nLawChaos = GetAlignmentLawChaos(oPC);
    if (nGoodEvil == ALIGNMENT_EVIL)
        AssignCommand(oPC,ActionJumpToObject(GetObjectByTag("wp_city_good")));
    else if (nGoodEvil == ALIGNMENT_GOOD)
        AssignCommand(oPC,ActionJumpToObject(GetObjectByTag("wp_city_evil")));
    else
        AssignCommand(oPC,ActionJumpToObject(GetObjectByTag("wp_city_neutral")));
}

Таким образом. wp_city_* - вэйпоинты в соответствующих городах. Вешать скрипт OnUsed портала...
3. уууууу.....
baskan
QUOTE (Lazy Ranma @ Oct 12 2004, 09:58)

2.
Neverwinter Script Source
void main()
{
    object oPC = GetLastUsedBy();
    int nGoodEvil = GetAlignmentGoodEvil(oPC);
    int nLawChaos = GetAlignmentLawChaos(oPC);
    if (nGoodEvil == ALIGNMENT_EVIL)
        AssignCommand(oPC,ActionJumpToObject(GetObjectByTag("wp_city_good")));
    else if (nGoodEvil == ALIGNMENT_GOOD)
        AssignCommand(oPC,ActionJumpToObject(GetObjectByTag("wp_city_evil")));
    else
        AssignCommand(oPC,ActionJumpToObject(GetObjectByTag("wp_city_neutral")));
}

Таким образом. wp_city_* - вэйпоинты в соответствующих городах. Вешать скрипт OnUsed портала...

Этот скрипт кидает Упорядочно-злого к добрым..как это исправить? unsure.gif
Добавлено в [mergetime]1098444841[/mergetime]
Извените лаганул, не так теги расставил crazy.gif
Lazy Ranma
Ну да, там тэги наоборот должны стоять =)
Misty Dragon
И снова вопрос. smile.gif
Нужно ограничить инвентарь игрока в 1-2 вкладки. diablo.gif В какую сторону копать? Может кто подсказать?
Аваддон
Забить остальные вкладки большими Undropable предметами diablo.gif crazy.gif
Это так... шутка. Может и можно как то - это уже к спецам по 2da я думаю. А можно сделать инвентарь на определенной кол-во предметов. И проверять это на событии OnAcquireItem, если кол-во предметов больше определенного - выкладывать и писать сообщение, что не может он больше шмота унести
Baal
QUOTE (Аваддон @ Nov 4 2004, 03:37)
Забить остальные вкладки большими Undropable предметами

Кстати - идея не так абсурдна как кажеться на первый взгляд! biggrin.gif создаем итем с картинкой точно под клеточки инвентаря, так, что будет казаться что никакого итема там нет и забиваем такими инвентарь wink.gif
Аваддон
QUOTE (Baal @ Nov 4 2004, 15:22)
Кстати - идея не так абсурдна как кажеться на первый взгляд!  создаем итем с картинкой точно под клеточки инвентаря, так, что будет казаться что никакого итема там нет и забиваем такими инвентарь 

Ха-ха... и описание предмету дать "Это твой инвентарь и тут пустооо..."
_kaa_
QUOTE (Аваддон @ Nov 4 2004, 06:37)
Забить остальные вкладки большими Undropable предметами


Будут доступны только две последнии страницы smile.gif Но вариант хороший.

Если немного поменять условия, можно придумать несложный вариант. Скажем раз в час (или 6 сек, как угодно) считать количество вещей в инвентаре. Если больше нужного - бросать на землю. И\или прикрутить на событие модуля onItemAcquire


Аваддон
Вот и я про Acquire говорю:)
_kaa_ , а насчет лута Мидгарда так и не разъяснил. Какое событие из сундуков SoU стоит OnDeath крича?smile.gif
_kaa_
QUOTE (Аваддон @ Nov 5 2004, 16:33)
насчет лута Мидгарда так и не разъяснил. Какое событие из сундуков SoU стоит OnDeath крича?


Сейчас стоит стандартная система лута из СоУ плюс лут из системы спавнов (даже не помню чей)
Сейчас делаю новую систему, все что есть меня не устраивает smile.gif
К сожалению умер реалмс и унес с собой описание стандартной системы лута из СОУ
Точнее немного модифицированной систему из СОТУ smile.gif

x0_i0_treasure - библиотека, она в составе стандартный скриптов. Там же есть полное описание (на английском)
Lazy Ranma
QUOTE (_kaa_ @ Nov 6 2004, 15:19)
К сожалению умер реалмс и унес с собой описание стандартной системы лута из СОУ

А вот и неправда. Никуда он не умер.
http://oldforums.rpgplanet.ru/index.php?showtopic=2653
Oksivarus
Дорогие шардовики кто то сталкивалс с проблемой когда игрок считается умершим (церепупка на нем) но при этом у него жизи больше 0 ну исоответственно его низя никак оживить только последующий перезаход на шард снова умирание но потом показует нормальную менюшку воскрешения и можно самому реснутся. Просто уже незнаю куда и писать об этом поэтому сильно не ругайте если че подскажите где спросить еще можно.

Если можно дайте систему смерти (умирание, смерть, воскрешение) для мульти попробую разобратся.
Lexey aka Hawk
Проверить скрипт, который стоит на событие OnPlayerDying в свойствах модуля.
Oksivarus
а что именно в нем проверить там стоит скрипт взятый с этого форума из раздела готовых там где поле 0 жизни до -10 идет умирание.
RiPPeR
Тебе хватит в сервере поставить галочку на ELC
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.
Invision Power Board © 2001-2024 Invision Power Services, Inc.