Как запретить использовать скил в определенной зоне

Deazer

Разработчик
Staff member
#1
Для запрета использования скила в определенной зоне нам необходимо добавить condition в скил:
Делаю на примере Нобла

1. Для начала определяемся с зоной в которой мы хотим запретить - например [primeval_peace1], она находится в data/zone/peace_zone.xml

2.
Находим нужный нам скил и добавляем запрет на использование
<skill id="1323" levels="1" name="Noblesse Blessing">
<set name="magicType" val="MAGIC"/>
<set name="icon" val="icon.skill1323"/>
<set name="reuseDelay" val="6000"/>
<set name="magicLevel" val="1"/>
<set name="castRange" val="400"/>
<set name="hitTime" val="4000"/>
<set name="hitCancelTime" val="500"/>
<set name="mpConsume1" val="14"/>
<set name="mpConsume2" val="55"/>
<set name="itemConsumeId" val="3031"/>
<set name="itemConsumeCount" val="5"/>
<set name="target" val="TARGET_ONE"/>
<set name="skillType" val="BUFF"/>
<set name="operateType" val="OP_ACTIVE"/>
<cond msgId="113" addName="1">
<not>
<zone name="[primeval_peace1]"/>
</not>
</cond>

<for>
<effect count="1" name="BlessNoblesse" stackOrder="1" stackType="BlessOfNoble" time="3600" val="0"/>
</for>
</skill>

3. Если нам нужно добавить много зон для запрета в скил:

<skill id="1323" levels="1" name="Noblesse Blessing">
<set name="magicType" val="MAGIC"/>
<set name="icon" val="icon.skill1323"/>
<set name="reuseDelay" val="6000"/>
<set name="magicLevel" val="1"/>
<set name="castRange" val="400"/>
<set name="hitTime" val="4000"/>
<set name="hitCancelTime" val="500"/>
<set name="mpConsume1" val="14"/>
<set name="mpConsume2" val="55"/>
<set name="itemConsumeId" val="3031"/>
<set name="itemConsumeCount" val="5"/>
<set name="target" val="TARGET_ONE"/>
<set name="skillType" val="BUFF"/>
<set name="operateType" val="OP_ACTIVE"/>
<cond msgId="113" addName="1">
<not>
<or>
<zone name="[primeval_peace1]"/>
<zone name="[giran_town_peace2]"/>
</or>
</not>
</cond>

<for>
<effect count="1" name="BlessNoblesse" stackOrder="1" stackType="BlessOfNoble" time="3600" val="0"/>
</for>
</skill>
 
Last edited:

Jail

Новичок
#2
А можно запретить ещё и для определенной профы, что бы в определенном месте определенный скилл определенной профой не юзался
 

Deazer

Разработчик
Staff member
#3
А какой смысл, ваша проверка не имеет ничего логичного под собой, а если сервер мултипрофа ?
 
Last edited:

Jail

Новичок
#4
А какой смысл, ваша проверка не имеет ничего логичного под собой, а если сервер мултипрофа ?
Логика в этом есть, я хочу сделать уникальные профессии баферов, каждой профе бафера я добавляю полный список бафов, но мне нужно запретить использовать добавочные бафы на олимпе для этих проф
 

Deazer

Разработчик
Staff member
#5
Добавляй для этих классов отдельные skill_id и запрещай в них зоны. Вот тебе и выход. Так же я не уверен что у тебя получится завести новый class id который будет уникальный, его клиент просто не пропустит
 

Jail

Новичок
#6
Добавляй для этих классов отдельные skill_id и запрещай в них зоны. Вот тебе и выход. Так же я не уверен что у тебя получится завести новый class id который будет уникальный, его клиент просто не пропустит
Блин да ты реально чёртов гений ;) либо просто талантливая ленивая жопа :eek::D
 

Rollo

Новичок
#7
А есть ли возможность запретить использовать зелья исцеления находясь в стане или анчере? Проблема в том что зелье уходит в кд, при его использование в стане, эффекта естественно нет. Далее когда стан заканчивается зелье находится на кд. Возможно это косяк клиента, но есть ли возможность прописать в самом скиле, чтобы банка не юзалась при наложении на тебя определенных эффектов. Заранее спасибо.
 
Top