Город Мастеров
IPB

Здравствуйте, гость ( Вход | Регистрация )

> Вендоры, Как очистить товары вендоров ?
Raven
сообщение Oct 24 2004, 12:19
Сообщение #1


Level 8
***

Класс: Фея
Характер: Chaotic Evil
Раса: Фея



Дарова всем...

Возник трабл - через некоторое время товары вендоров забиваются всяким гэ и сервак начинает жутко лагать... Как можно очистить товары вендоров от вещей игроков ?

Или может ... есть мысля создать вендора "Старьёвщик" - который бы покупал все вещи у игроков, а остальным вендорам запретить покупать вещи. Тогда какой скрипт нада написать, чтобы через некоторое время все товары этого старьёвщика очищались ?
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения
 
Открыть новую тему
Ответов
balrog
сообщение Oct 24 2004, 12:27
Сообщение #2


Великий хранитель фотоальбома
Иконки Групп

Класс: Оборотень
Характер: Chaotic Neutral
Раса: Тварь
МАСТЕР Кисти



QUOTE
Скрипт для магазинов. Проверяет наличие такого товара в магазине, если уже есть - то после продажи удаляет. Нужен на шардах, где мазагины со временем забиваются ловушками, камнями и т.п. - при наличии более 10 страниц ассортимента в магазине начинаются заметные торможения сервера, проверенно.
Только одно требования к самим магазинам. В теге должно содержаться слово "_SHOP" (//Иначе нельзя узнать, магазин это или нет). - Вру ведь и никто не видит %)
Есть функция узнать тип объекта GetObjectType();
Вызывать из события модуля OnUnAcquireItem
Проще всего добавить в уже существующий обработчки строку:
ExecuteScript("at_check_dupe",OBJECT_SELF);

Сам скрипт:

Neverwinter Script Source
at_check_dupe


CODE

void main()
{
object oLostItem = GetModuleItemLost();
object oLostBy = GetModuleItemLostBy();
object oNewPosessor = GetItemPossessor(oLostItem);

if (FindSubString(GetStringUpperCase(GetTag(oNewPosessor)),"_SHOP"))
   {
    int n = 0;
    object oItem = GetFirstItemInInventory(oNewPosessor);
    while (GetIsObjectValid(oItem))
        {
          if (GetTag(oLostItem) == GetTag(oItem)) n++;
          if (n>1)
               {
                 DestroyObject(oLostItem);
                 break;
               }
          oItem = GetNextItemInInventory(oNewPosessor);
        }
   }
}


Я тут где-то на форуме видал такой .... он удоляет все повторные вещи ... по мне так даже лучше, а магазины делай шоб ничего не покупали, можешь какой нить ламбард сделать - шоб тока там скупалась всакая х***я :D
******************************************
Я конечно сам не проверял, сегодня вечерокм тэстить буду =)
Вернуться в начало страницы
Скопировать ник в поле быстрого ответа
+Ответить с цитированием данного сообщения

Сообщений в этой теме


Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



Текстовая версия Сейчас: 26th April 2025 - 21:47