Перейти к содержанию
Авторизация  
Karimdjanov95

Скрипт автообмена

Рекомендуемые сообщения

Доброе утро/день/вечер/ночь ув.пользователи форума, смотря кто в какое время читает.

Не подскажете как сделать маленький скрипт на автообмен предмета.

Допустим, накопилось у меня 1к PC-очков. Нужно что бы система сразу его поменяла скажем на адены(или на любой другой предмет).

 

• Хроники ИТ.

• Сборка - не имеет значение ( смогу переписать сам под любую другую, главное основу взять :) )

Изменено пользователем Karimdjanov95

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

В коде, где идет присваивание очков, добавить автообмен. будет типо такого:
 

point += 1; // добавляется очки

// проверяем, набрплось ли 1к очков
if (point >= 1000){
  point = 0;						// обнуляем очки 
  player.addItem(ADENA, 1000000);	// присваиваем адену
  player.updateInvetory();			// обновляем инвентарь
}
  1. Так же, если исходников нету, можно юзануть ThreadPoolManager
Изменено пользователем zGosu

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Самый простой вариант, учитывающий все события (обмен между игроками, поднятие дропа и и.д.) - идём в функцию выдачи игроку предмета, добавляем проверку на ид предмета (чтобы лишний раз не делать тонну обработок), если ид нужный нам, берём пспоинты из инвентаря юзера, складываем с выдаваемым значением, если больше тысячи, то удаляем из инвентаря количество = 1000-count. Выдаём адену, например, и прерываем дальнейшую выдачу ретёрном. 

 

Можно дополнить формулой и динамической обработкой, чтобы менять все  количество, в случае получения их в большем количестве.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

в инстал скрипта(запуск) пишет

ThreadPoolManager.getInstance().scheldureAiAtFixRate(new yourName, initial long, delay long);

само собой как это используется у вас

либо ламбадой --> yourName

 также создаем класс

private class yourName implements Runnable {

run(){

for(L2ItemInstance item : activeChar.getInventory().getItems()){

if(item.getItemId()==id_pcBang && item.getCount =>1000){

player.destroyItem(item.getItemId(), 1000);

player.addtem(id,count)

}

}

}

}

 

Изменено пользователем Demoncool

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
10 часов назад, Demoncool сказал:

в инстал скрипта(запуск) пишет


ThreadPoolManager.getInstance().scheldureAiAtFixRate(new yourName, initial long, delay long);

само собой как это используется у вас

либо ламбадой --> yourName

 также создаем класс


private class yourName implements Runnable {

run(){

for(L2ItemInstance item : activeChar.getInventory().getItems()){

if(item.getItemId()==id_pcBang && item.getCount =>1000){

player.destroyItem(item.getItemId(), 1000);

player.addtem(id,count)

}

}

}

}

 

Тоже вариант, но, О - оптимизация :)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

тогда в onKill какого-то фарм монстра можно запихнуть)

или онТалк гмшопа))

Изменено пользователем Demoncool
  • Like 1

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
3 часа назад, Demoncool сказал:

тогда в onKill какого-то фарм монстра можно запихнуть)

или онТалк гмшопа))

Всё зависит от конкретной реализации. Если тупо фарм мобов - то да, в onKill будет наилучшим вариантом. Но, опять же, зависит от % дропа. Если маленький - то не особо вариант. Смысл обрабатывать каждого моба, если далеко не факт, что с него что-то упадёт. (Если реализация через обычный дроп). Если через скрипт - то да.

Изменено пользователем †DeMoN†™

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти
Авторизация  

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×
×
  • Создать...