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

Баф В Зоне При Наличии Предмета

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

Всем привет. Нуждаюсь в вашей помощи. Я хочу сделать так: если чар находится, например в гиране, и у него в инвентаре есть определенный итем, то он получает баф. Сначала решил сделать через зоны, например как в стакато, но там нет проверки на итем. Решил сделать через скрипт, но что то не выходит)

 

Вот собственно код(если его вообще можно так назвать :D )

  говнокод (Показать контент)
Изменено пользователем BymerOK

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


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

Дык элементарно же. Стакато отличный вариант, просто допиши проверку на итем и всё.

  • Upvote 1

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


Ссылка на сообщение
Поделиться на другие сайты
  В 07.06.2014 в 08:16, AwakenDev сказал:

Дык элементарно же. Стакато отличный вариант, просто допиши проверку на итем и всё.

 

Дописать я так понимаю в ZoneManager?

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


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

Ну вот для себя щас набросал быстренько:

 

package zones;
import sw.awaken.gameserver.listener.zone.OnZoneEnterLeaveListener;
import sw.awaken.gameserver.model.Player;
import sw.awaken.gameserver.model.Creature;
import sw.awaken.gameserver.model.Zone;
import sw.awaken.gameserver.scripts.ScriptFile;
import sw.awaken.gameserver.utils.ReflectionUtils;
import sw.awaken.gameserver.tables.SkillTable;
public class BuffZone implements ScriptFile {
   private static ZoneListener _zoneListener;
   private void init() {
    _zoneListener = new ZoneListener();
    Zone zone = ReflectionUtils.getZone(ИМЯ ЗОНЫ);
    zone.addListener(_zoneListener);
   }
   @Override
   public void onLoad() {
    init();
   }
   @Override
   public void onReload() {
   }
   @Override
   public void onShutdown() {
   }
   public class ZoneListener implements OnZoneEnterLeaveListener {
    @Override
    public void onZoneEnter(Zone zone, Creature cha) {
	    if (zone == null) {
		    return;
	    }
	    if (cha == null) {
		    return;
	    }
	    if (cha instanceof Player) {
		    Player player = cha.getPlayer();
   if(player.getItemCount(АЙДИ ИТЕМА)
   {
 player.altOnMagicUseTimer(player, SkillTable.getInstance().getInfo(ID баффа, лвл баффа));
   }
	    }
    }
    @Override
    public void onZoneLeave(Zone zone, Creature cha) {
    }
   }
}

  • Upvote 1

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


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

Если хотите через скрипт то:

Сделайте сначала просто проверку на зону, убедитесь что скрипт работает послав к примеру сообщение персонажу если он в зоне.

Дополните скрипт проверкой на Item, опять таки отправляя сообщения типа "итем найден" и "итем не найден".

Далее по 1 добавляйте баф, снова таки отправляя сообщение "держи баф дружище" что бы знать что код отработал.

После удовлетворяющего результате просто уберите отправку сообщений персонажу и скрипт готов.

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


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

зачем определенную зону ? если можно сделать что бы проверка шла , сразу только в городах и требование итема так же + при этом не забыв что перс должен быть не в режиме боя , ну и трансформации и флаг . или же это все вывести в конфиг авто бафа ,

 

там делов 2 строчки кода

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


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

Да кстати ТС у вас все готовое почти есть в Alt+B

 

# Разрешить функцию автобафа

BufferAllowAutoBuff = false

# Автобаф происходит в следующих ситуациях

# После смерти игрока

BufferAllowAutoBuffAfterDeath = false

# После окончании эффекта/бафа

BufferAllowAutoBuffEffectExit = false

# После выхода из состояния боя

BufferAllowAutoBuffAttackStop = false

# Какой Требовать итем для бафа

BufferAllowAutoBuffItem = 57

# Количество итемов для автобафа

BufferAllowAutoBuffItem = 1000

# Настройка зон для Автобафа , Указываем тип зоны или зон через запятую

# пример Добавления зон для автобафа ZoneBufferAllowAutoBuffItem = Town,battle_zone

ZoneBufferAllowAutoBuffItem = Town

Изменено пользователем Расторгуев
  • Upvote 1

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


Ссылка на сообщение
Поделиться на другие сайты
  В 07.06.2014 в 08:42, Расторгуев сказал:

зачем определенную зону ? если можно сделать что бы проверка шла , сразу только в городах и требование итема так же + при этом не забыв что перс должен быть не в режиме боя , ну и трансформации и флаг . или же это все вывести в конфиг авто бафа ,

 

там делов 2 строчки кода

 

Мне нужно именно в определенной зоне.

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


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

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

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

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

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

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

Войти

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

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

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

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

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