Собственно сабж.
<small>
Добавлено в 16:45</small>
решил на досуге сделать
Крикуна, который за деньги кричит ваше сообщение на рынке. но нет у меня возможности проверить схему в модуле с несколькими игроками.
ADD:
Если есть возможность, проверьте кто-нибудь. Заранее благодарен.
Простой скрипт, вешается на HB. (модуля или для нужных локаций).
Что делает: днем, если локация не подземная, при попытке использовать SKILL_HIDE вешает на 30 секунд пенальти на скилл hide (снижает до 2)
А то с появлением shadow dancer'а воры совсем обнаглели, в чистом поле под солнцем умудряются тень найти (свою наверное

)
Заодно помогает против излюбленной техники их же - стукнуть моба, отбежать и уйти в тень. Теперь такое будет работать только ночью, что уже вполне реально и такая стратегия из разряда "баго-фича" переходит в разряд "военная хитрость"

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
Jul 11 2004, 13:08
хм... а в случае шарда это будет тормозить?
Цитата(2GoDoom @ Jul 11 2004, 13:08)
хм... а в случае шарда это будет тормозить?
Да не должно вроде
ps. Для примера сравни со скриптами АИ. Размеры компилированных скриптов там по 1Мб есть - и ничего, шард работает
Вестель
Jul 12 2004, 10:05
_kaa_
Спасибо за нужный и очень толковый скрипт. Правда, стоит не опускать скилл хайд до 2ух, а сделать на него пыховский пиночек в 20, но это детали, с которыми будем разбираться позже. К тому же, как вариант, можно добавить проверку, а нет ли на этом гаде вещей с лайтом или факела в руках, а то уж больно плюшево получится - сам сияет, как новогодняя елка и прячется..
Цитата(Вестель @ Jul 12 2004, 10:05)
_kaa_
Спасибо за нужный и очень толковый скрипт. Правда, стоит не опускать скилл хайд до 2ух, а сделать на него пыховский пиночек в 20, но это детали, с которыми будем разбираться позже. К тому же, как вариант, можно добавить проверку, а нет ли на этом гаде вещей с лайтом или факела в руках, а то уж больно плюшево получится - сам сияет, как новогодняя елка и прячется..
Я думал в другую сторону - если у другого игрока даже ночью в руке факел - понижать хайд (что поделаешь, в Thief3 сейчас играю

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

Ты предлагаешь вешать пенальти вору даже ночью, если на нем есть любая вещь с подсветкой. А я предлагаю вешать пенальти, если он подошел близко к другому игороку, у которого есть подсветка.
Хотя нужно и то и другое
во-во. и то и другое надо!
Ignacius
Jul 24 2004, 18:27
Вот у меня такой вопрос. Как сделать систему задержки, чтобы после выхода, игрок оставался минуту на месте, а самого игрока не пускало? После перезахода через минуту на игрока вещались все состояния его дубликата.
Мое предположение таково, чтобы при выходе/отключении создавалась на месте копия игрока, с задержкой на 1 минуту а потом уничтожалась, а все ее эффекты записывались в БД.
ЗЫ. Извиняюсь за неграмотность.
Аваддон
Jul 25 2004, 19:59
Я конечно понимаю что таким методом можно избежать то что игроки альтуются(Alt+F4) из битвы. Тоесть напросто бегут с поля боя. Но, такое долго время задержки черевато тем что тебя обнесут за эту минуту воришки... или еще что круче.
Думаю лучший способ наказать таких игроков - OnClientLeave поставить скриптик проверяющий: Идет ли битва и иесли идет просто снимать за это опыт..или ваще убивать нафиг.
Ignacius
Jul 25 2004, 22:25
Хехе, в том то и прелесть что альтоваться надо тока в ноу ПВП зонах. Просто тут идет работа над ПВП шардом. (Хз че получится, но для личного образования).
В антиальте есть 1 проблема - дисконнект от провайдера, но никуда от него не деться, тут ни скриптовым ни программыным средством ничего не сделаешь.
Собственно как это реализовать?
ЗЫ. какая-то проблема с кодировкой, через мозиллу Firefox пишет околесицу.
Аваддон
Sep 5 2004, 14:52
Как на Мидгарде реализована система лута? Стерт файл генерации и лут кладется в ручную или он полностью переписан ( *крестится* ) ? Очень интересно ведь практически вещь +2 найти невозможно а игрок безумно радуется шмотке +1. Хотелось бы тоже такую систему.
QUOTE (Аваддон @ Sep 5 2004, 14:52) |
Как на Мидгарде реализована система лута? Стерт файл генерации и лут кладется в ручную или он полностью переписан ( *крестится* ) ? Очень интересно ведь практически вещь +2 найти невозможно а игрок безумно радуется шмотке +1. Хотелось бы тоже такую систему. |
Лут для Мида сейчас переделывается. То, что было - система лута из SOU, через сундуки. Описание скриптов я выкладывал еще на realms.ru, тема что-то вроде "Описание стандартных скриптов". Ее не прибили и она там давно утонула, но найти можно.
Аваддон
Sep 10 2004, 11:15
Тоесть в тот скрипт что стоит при смерти Крича переписан скрипт с сундук low treasure ?
Misty Dragon
Sep 20 2004, 19:22
Вопросы такие интересуют...
Есть ли возможность при помощи скрипта произвести энумерацию чаров на аккаунте, в том числе и получение инфы по ним?
Возможен ли отлов события создания чара?
Hety the Lightbringer
Sep 20 2004, 19:53
Да. Сливаешь инфу в БД. OnClientEnter чекаешь логин. Лезешь в базу и смотришь все на него. Если есть строки - смотришь кол-во строк. Если нет то вставляешь Логин и Имя. Если они есть - пропускаешь. Дополнительно можешь писать хар-ки, экспу и т. д.
Misty Dragon
Sep 22 2004, 17:09
QUOTE (Hety the Lightbringer @ Sep 20 2004, 19:53) |
Да. Сливаешь инфу в БД. OnClientEnter чекаешь логин. Лезешь в базу и смотришь все на него. Если есть строки - смотришь кол-во строк. Если нет то вставляешь Логин и Имя. Если они есть - пропускаешь. Дополнительно можешь писать хар-ки, экспу и т. д. |
Хм.. с отловом все события создания чара все получилось, но вот энумерация пока висит. Сенькс.
Hety the Lightbringer
Sep 22 2004, 17:58
Энумерация? Присваивание чарам айдишников? Это можно делать как в БД(не знаю как в мускуле - в постгресе мы делали на сервере это). Делается просто(можно и проще, если подумать

). Создаешь таблицу, с одной строкой и одним столбцом. Обзываешь как-нибудь столбец. При добавлении чара берешь значение оттедова, прибавляешь один и пишешь это в id чара. Текущее значение в табличке инкрементишь.
Misty Dragon
Sep 22 2004, 21:58
Энумерация - перечисление. Т.е. мне необходимо выяснить возможно ли без написания скрипта, который ведет лог по созданию чаров, выяснить сколько чаров на аккаунте. К примеру запускаю какой-нить(ранее созданный) EnumCharOnAccount() и он выдает количество персонажей на аккаунте. Пострег и прочие фичи не предлагать, ибо времени нет на изучение всех этих дел нет.
Хм..по моему ничего такого через скрипты сделать нельзя
Hety the Lightbringer
Sep 23 2004, 09:21
Нет. Ибо сервер только пишет и читает из файлов чаров. Ничего более.
Misty Dragon
Sep 23 2004, 16:33
Все. Спасибо. Что и требовалось выяснить.
Richard
Oct 11 2004, 11:44
Здравствуйте... Мне нужно следующее сделать, не подскажете как?
1. Защита чара от хака путем БД
2. В зависимости от алаймента заходя в портал попадать в свой город
3. Лут, зависящий от CR
Lazy Ranma
Oct 12 2004, 09:58
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
Oct 22 2004, 14:26
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 портала...
|
Этот скрипт кидает Упорядочно-злого к добрым..как это исправить?
Добавлено в [mergetime]1098444841[/mergetime] Извените лаганул, не так теги расставил
Lazy Ranma
Oct 24 2004, 00:48
Ну да, там тэги наоборот должны стоять =)
Misty Dragon
Nov 4 2004, 06:32
И снова вопрос.
Нужно ограничить инвентарь игрока в 1-2 вкладки.

В какую сторону копать? Может кто подсказать?
Аваддон
Nov 4 2004, 06:37
Забить остальные вкладки большими Undropable предметами

Это так... шутка. Может и можно как то - это уже к спецам по 2da я думаю. А можно сделать инвентарь на определенной кол-во предметов. И проверять это на событии OnAcquireItem, если кол-во предметов больше определенного - выкладывать и писать сообщение, что не может он больше шмота унести
QUOTE (Аваддон @ Nov 4 2004, 03:37) |
Забить остальные вкладки большими Undropable предметами |
Кстати - идея не так абсурдна как кажеться на первый взгляд!

создаем итем с картинкой точно под клеточки инвентаря, так, что будет казаться что никакого итема там нет и забиваем такими инвентарь
Аваддон
Nov 4 2004, 19:24
QUOTE (Baal @ Nov 4 2004, 15:22) |
Кстати - идея не так абсурдна как кажеться на первый взгляд! создаем итем с картинкой точно под клеточки инвентаря, так, что будет казаться что никакого итема там нет и забиваем такими инвентарь |
Ха-ха... и описание предмету дать "Это твой инвентарь и тут пустооо..."
QUOTE (Аваддон @ Nov 4 2004, 06:37) |
Забить остальные вкладки большими Undropable предметами |
Будут доступны только две последнии страницы

Но вариант хороший.
Если немного поменять условия, можно придумать несложный вариант. Скажем раз в час (или 6 сек, как угодно) считать количество вещей в инвентаре. Если больше нужного - бросать на землю. И\или прикрутить на событие модуля onItemAcquire
Аваддон
Nov 5 2004, 16:33
Вот и я про Acquire говорю:)
_kaa_ , а насчет лута Мидгарда так и не разъяснил. Какое событие из сундуков SoU стоит OnDeath крича?
QUOTE (Аваддон @ Nov 5 2004, 16:33) |
насчет лута Мидгарда так и не разъяснил. Какое событие из сундуков SoU стоит OnDeath крича? |
Сейчас стоит стандартная система лута из СоУ плюс лут из системы спавнов (даже не помню чей)
Сейчас делаю новую систему, все что есть меня не устраивает

К сожалению умер реалмс и унес с собой описание стандартной системы лута из СОУ
Точнее немного модифицированной систему из СОТУ

x0_i0_treasure - библиотека, она в составе стандартный скриптов. Там же есть полное описание (на английском)
Lazy Ranma
Nov 13 2004, 11:19
QUOTE (_kaa_ @ Nov 6 2004, 15:19) |
К сожалению умер реалмс и унес с собой описание стандартной системы лута из СОУ |
Oksivarus
Feb 18 2005, 02:05
Дорогие шардовики кто то сталкивалс с проблемой когда игрок считается умершим (церепупка на нем) но при этом у него жизи больше 0 ну исоответственно его низя никак оживить только последующий перезаход на шард снова умирание но потом показует нормальную менюшку воскрешения и можно самому реснутся. Просто уже незнаю куда и писать об этом поэтому сильно не ругайте если че подскажите где спросить еще можно.
Если можно дайте систему смерти (умирание, смерть, воскрешение) для мульти попробую разобратся.
Lexey aka Hawk
Feb 25 2005, 18:45
Проверить скрипт, который стоит на событие OnPlayerDying в свойствах модуля.
Oksivarus
Mar 23 2005, 20:40
а что именно в нем проверить там стоит скрипт взятый с этого форума из раздела готовых там где поле 0 жизни до -10 идет умирание.
Тебе хватит в сервере поставить галочку на ELC
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста,
нажмите сюда.