Форум администраторов игровых серверов

Форум администраторов игровых серверов (https://forum.zone-game.info/TT.php)
-   Работа со скриптами (https://forum.zone-game.info/forumdisplay.php?f=37)
-   -   Баночик (https://forum.zone-game.info/showthread.php?t=29550)

ZefirKO 18.06.2013 01:37

Re: Баночик
 
finfan, с етим я розобрался, спасибо
Готово):
Свернуть ↑Развернуть ↓


Меня еще интересует такой вопрос, по поводу htm -кам. каким образом можно сделать что персонаж только определенного лвл-а, мог ТП-шьется или открывать список вещей или магазин НПС.

Shayne 18.06.2013 01:59

Re: Баночик
 
Цитата:

Сообщение от ZefirKO (Сообщение 306298)
finfan, с етим я розобрался, спасибо
Готово):
Свернуть ↑Развернуть ↓


Меня еще интересует такой вопрос, по поводу htm -кам. каким образом можно сделать что персонаж только определенного лвл-а, мог ТП-шьется или открывать список вещей или магазин НПС.

Практически любой квест содержит лимит на уровень, если брать конкретно ТП, то можно выдрать из НПЦ который стоит в ХВ и ТПшит в лоа, если хроники ХФ конечно.

ZefirKO 18.06.2013 02:12

Re: Баночик
 
нет, Интерлюд

finfan 18.06.2013 12:43

Re: Баночик
 
Цитата:

Сообщение от ZefirKO (Сообщение 306298)
finfan, с етим я розобрался, спасибо

Меня еще интересует такой вопрос, по поводу htm -кам. каким образом можно сделать что персонаж только определенного лвл-а, мог ТП-шьется или открывать список вещей или магазин НПС.

В админ командах все уже сделанно за вас, смотрите как оно работает и выдирайте.
Вам остается лишь вписать старую-добрую проверку аля:
if(activeChar.getLevel() > 10)
{
      teleToLocation(координаты.);
}
Code: Java

Gaikotsu 18.06.2013 15:32

Re: Баночик
 
Цитата:

Сообщение от finfan (Сообщение 306288)
Если сборка на основе лыжи, то примерно так:

DocumentBase.java ищем метод parsePlayerCondition():
Свернуть ↑Развернуть ↓


Пример не идеален ибо он не удовлетворяет вашим потребностям, в итоге вы вводите кол-во лвлов через запятую. Тем более, я в java не силён и там могут быть ошибки.

код очень неидеален - зачем перечислять все допустимые уровни, если автору требуется проверка на диапазон уровней?

лучше сделать примерно так

 
...
 
			else if ("level".equalsIgnoreCase(nodeName))
			{
				StringTokenizer st = new StringTokenizer(nodeValue, ";");
				int minLevel = parseNumber(st.nextToken().trim()).intValue();
				int maxLevel = st.hasMoreTokens() ? parseNumber(st.nextToken().trim()).intValue() : 99;
				cond = joinAnd(cond, new ConditionPlayerLevel(minLevel, maxLevel));
			}
 
...
 
Code: Java
package l2p.gameserver.stats.conditions;
 
import l2p.gameserver.stats.Env;
 
public class ConditionPlayerLevel extends Condition
{
	private final int _minLevel;
	private final int _maxLevel;
 
	public ConditionPlayerLevel(int minLevel, int maxLevel)
	{
		_minLevel = minLevel;
		_maxLevel = maxLevel;
	}
 
	@Override
	protected boolean testImpl(Env env)
	{
		return env.character.getLevel() >= _minLevel && env.character.getLevel() <= _maxLevel;
	}
}
Code: Java
в результате, примеры:

<player level="10">	<!-- для уровней от 10 до 99 -->
<player level="50;60">	<!-- для уровней от 50 до 60 -->
Code: XML
З.Ы. почти так же будет выглядеть проверка не для цели, а для кастера - просто вместо env.character проверять env.target.

ZefirKO 18.06.2013 18:42

Re: Баночик
 
спасибо. А такое дело как вместо ЛС-ов вписать 20 своих видов, типа СА каждый ЛС дает свои статы, можно как то такое перемудрить?

Добавлено через 2 минуты
Gaikotsu, я протупил даная проверка есть на эликсирах) такая же
_minLevel = minLevel;
_maxLevel = maxLevel;


Текущее время: 05:17. Часовой пояс GMT +3.

Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd. Перевод: zCarot