![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
![]()
Сообщение
#1
|
|
Level 9 ![]() Класс: Волшебник Характер: Chaotic Good Раса: Дракон NWN: Скриптинг [PW] ![]() |
В этой теме предлагаю постить "странности" скриптов, различные тонкости эвентов, функций и т.п.
Локальные переменные на итемах из инвентаря игрока сохраняются в файле Для меня это было откровением и нашел я это случайно. Если выставить локальную переменную на итем - она сохраняется в .bic файле игрока, что иногда очень удобно (особенно вместе с настоящими nodrop-итемами, многие вещи так делать гораздо проще, чем юзать БД) Событие модуля OnAcquireItem вызывается при _входе_ игрока на шард для _каждой_ вещи из его инвентаря Тоже самое и с событием OnPlayerEquipItem - оно вызывается при входе игрока на шард для каждой одетой на персонажа вещи В событие OnClientLeave не работают некоторые функции для работы с объектом игрока GetPlayername, GetPCIPAddress и некоторые другие. Но локальные переменные читать можно, так что если вам нужны эти данные - занесите их в переменные при входе игрока на шард Событие OnUnAcquireItem вызывается при _попытке_ продажи итема в магазин, даже если эта вещь не покупается Если нет денег у НПС-покупателся, возможно и на plot\stolen то же самое будет. Вероятно что и OnAcquireItem будет вызываться. Бага функции TakeGoldFromCreature() Надо дополнительно проверять текущее действие, if (GetCurrentAction(oPC) == ACTION_DROPITEM) {чит} Т.е. можно задать действие "выложить деньги на землю", некоторое время сервер будет считать, что все деньги по прежнему у вас. если сервер в это время отнимает деньги у игрока функцией TakeGoldFromCreature() - при небольшом навыке на землю упадет _вся_ сумма, не учитывая те, что забрали функцией. Баг особо опасен для банков (IMG:style_emoticons/kolobok_light/smile.gif) (так делались первые миллионы на Эксизе, когда только появился первый банк) Сообщение отредактировал _kaa_ - Jun 24 2004, 17:51 |
![]() |
![]()
Сообщение
#2
|
|
Level 10 ![]() ![]() ![]() Класс: Воин Характер: Lawful Neutral Раса: Человек NWN: Скриптинг [PW] ![]() |
Скорее не баг, а недодуманность скриптеров в Стандартном Крафте.
Проверял на версии 1.62. Когда у вас есть материал для ловушек, напрмер сустав скелета(Skeleton's Knuckle) Жмем на Crafting Skills, в диалоге выбираете Craft Traps. В следующем диалоге доступна маленькая ловушка с негативной энергией. Не закрывая диалог открываем инвентарь и выкладываем сустав скелета. Жмем - сделать маленькую негативную ловуку - вуаля: Сустав лежит рядом с вами на земле а у вас в инвентаре (если был прокачан скилл crafting traps) свежая ловушечка. Ай да раздолье плутам(IMG:style_emoticons/kolobok_light/smile.gif) )) З.Ы. С оружием и броней такое уже не прокатило(IMG:style_emoticons/kolobok_light/sad.gif) |
![]() ![]() |
Текстовая версия | Сейчас: 27th April 2025 - 05:51 |