Назад

Скиллы для системы фракций

Автор: Kill Spirit: Дата: 12.08.2010

[color="#008000"][font="Comic Sans MS"]
http://www.youtube.com/watch?v=6F4TeChfbNE

Посмотрел на систему фракций на некоторых серверах. Моё мнение везде они просто для ауры сделаны. Потому что к ним не прилагается ни бонуса, ни шиша.
Решил сделать хотя бы пару скиллов для них в скриптовом варианте.

Итак с чем это едят:
1. Надо установить эти самые расы ,
Теперь пояснение к пункту 1: Ставить диффы надо ручками т.к. 1.8 сделан под старые ревизии и не сходится во многом с новыми, в то время как 1.9 сделан под 3ceam и опять же исходники не сходятся потому что там сделано под сборку с новыми классами. Я брал за основу 1.8 и обновлял нужные части кода на 1.9(в том числе @команды).
Да чуть не забыл этот мод поддерживает отображение/не отображение чатов и ников во враждебных зонах в диффах это видно только по коду, поэтому пришлось самому дополнять battle конфиги
добавил вот этот код в conf/battle/misc.conf

// Rad мод фракций 
//Скрывать чаты во время вражды* 0/1 (Нет/Да)
hostile_prevent_chat: 0
//Скрывать ники во время вражды* 0/1 (Нет/Да)
hostile_hide_name: 0

2. Добавляем команду @rs/@raceskills код указан ниже. Что она делает написано в комментарии кода.
/*==========================================
* Rad's Faction Mod
* @rs или @raceskills by Sanasol
* Отображать/не отображать скиллы
*------------------------------------------*/
int atcommand_skillinfo(const int fd, struct map_session_data* sd, const char* command, const char* message)
{
if (pc_readregistry(sd,"##raceskills",1)) {
pc_setregistry(sd,"##raceskills", 0, 1);
clif_displaymessage(fd, "Показ расовых умений выключен.");
return 0;
}

pc_setregistry(sd,"##raceskills", 1, 1);
clif_displaymessage(fd, "Показ расовых умений включен.");
return 0;
}



{ "rs", 0,0, atcommand_skillinfo },
{ "raceskills", 0,0, atcommand_skillinfo },


3. Ставим скрипт. Код ниже. Скиллы расчитаны на 255 уровень. Формулу относительно сбалансировал для МвП и Мобов.
Что делают скиллы:
Первый скилл Вампиризм:
Для первой расы.
Высасывает ХП из монстра с учетом уровня скилла, уровня монстра, хп монстра.
+ Добавлен эффект кровавые капельки :)

Второй скилл Воровство:
Для второй расы.
Шанс срабатывания зависит от уровня скилла т.е. от уровня персонажа
Крадет Zeny у монстра с учетом уровня скилла, уровня монстра, хп монстра.

-	script	race_skills	-1,{

OnNpckillEvent:
set @drainhp,strmobinfo(4,killedrid)/100*5;
set @level,strmobinfo(3,killedrid);
if (##faction == 1) {
if (BaseLevel < 50) { set vamp_lvl,1; set drain_lvl,5; }
if (BaseLevel <= 100 && BaseLevel >= 50) { set vamp_lvl,2; set drain_lvl,10; }
if (BaseLevel <= 150 && BaseLevel > 100) { set vamp_lvl,3; set drain_lvl,15; }
if (BaseLevel <= 200 && BaseLevel > 150) { set vamp_lvl,4; set drain_lvl,20; }
if (BaseLevel <= 255 && BaseLevel > 200) { set vamp_lvl,5; set drain_lvl,25; }
set @hp,@drainhp*@level;
set @hp,@hp/drain_lvl;
if (@hp == 0) { set @hp,10*Baselevel; }
heal @hp,0;
if (##raceskills) {
dispbottom "[Вампиризм "+vamp_lvl+"ур.]: Украдено "+@hp+"hp у монстра "+strmobinfo(2,killedrid)+""; }
specialeffect2 EF_BLOODDRAIN;
sleep2 500;
specialeffect2 EF_BLOODDRAIN;
sleep2 500;
specialeffect2 EF_BLOODDRAIN;
end;
} else {

if (BaseLevel < 50) { set steal_lvl,1; }
if (BaseLevel < 100 && BaseLevel > 50) { set steal_lvl,2; }
if (BaseLevel < 150 && BaseLevel > 100) { set steal_lvl,3; }
if (BaseLevel < 200 && BaseLevel > 150) { set steal_lvl,4; }
if (BaseLevel < 255 && BaseLevel > 200) { set steal_lvl,5; }
if (rand(100) < 3*steal_lvl) {
set @drainhp,strmobinfo(4,killedrid)/100*5;
set @level,strmobinfo(3,killedrid);
set @szeny,@drainhp*@level;
if (##raceskills) {
dispbottom "[Воровство "+steal_lvl+"ур.]: Украдено "+@szeny +"z у монстра "+strmobinfo(2,killedrid)+""; }
specialeffect2 EF_STEAL;
set zeny,zeny+@szeny;
}
else {

end;
}
end;
}
}



Кажется конечно не честно Вампиризм работает на каждого монстра, а Воровство n% срабатывания. Дело в том что рассчитывались оба скилла на первую расу.


*Вражда - мапфлаг когда можно драться между расами (mapflag hostile или @hostile)

Если у вас есть идеи по скиллам пишите попробуем реализовать.
[/font][/color]
Автор:

Автор: : Дата: 01.01.1970