[技能] 關於六系法術

作者: laechan (揮淚斬馬雲)   2023-02-08 09:50:49
傷害的計算公式、傷害類別、傷害範圍部份先不管。
先簡單總結:
1. 針對「法師的三個進階」,六系攻擊法術的最大可施展級數
應一視同仁,或者,要嘛限 Lv.30 要嘛限 Lv.20 而不應該
有那種限 Lv.25 的情況。
2. 我有考慮讓六系法術的上限上調到 4000。大魔導士一定可
以 Lv40,其它可以 Lv.30、Lv.20 甚至 Lv.15~16、Lv.10
3. 我預計將風系、地系法術也放進法師公會。原則是,這些攻
擊法術「只是順便」,法師每一級距的重點是那些有用的非
攻擊法術,如護甲術、能量盾等。
4. 五+1 手一定會改,改完後玩家無法透過 spell 5+1手 獲得
六系法術,但是會開放讓 5+1手 練到某技能值的所有玩家,
都有地方可以 learn 到六系法術,並依種族的不同給予不
同法術的優待 learn。
5. 鍊金術士的技能魂力吸取將下放至法師主職 Lv31 或 Lv36
,鍊金術士將給新技能。在給新技能前,魂力吸取技能屬性
不變,技能上限不變,但只有鍊金術士可以到 3000。
(新技能開放後,原本就學有魂力吸取的鍊金術士,其技能值
會平行移轉至新技能的技能值,接著,所有玩家的魂力吸取
技能上限會統一設定,屬性也會調整)
6. 除了魂力吸取之外,法師公會預計將再新增一個可學技能。
火系法術
if(adv_guild=="magemaster" && lv>30)
{
write("你最高只能施展出 30 級的火系法術喔。\n");
return 0;
}
else if(adv_guild=="sage" && lv>25)
{
write("你最高只能夠施展出 25 級的火系法術喔。\n");
return 0;
}
else if((!adv_guild || adv_guild=="alchemist") && lv>20)
{
write("你最多只能施展出 20 級的火系法術喔。\n");
return 0;
}
if(sk<sm*100) // 加熟練度的第一首要條件
{
ints=ppl->query("stat/int");
t4=i*lv+(ints/100);
if(pri_guild=="mage" && adv_guild)
t4=(t4/2)*3;
t4=1+random(t4);
ppl->improve_skill("fire spell",t4);
}
冰系法術
int max;
if(!ppl) ppl=this_player();
pri_guild=ppl->query("pri_guild");
adv_guild=ppl->query("adv_guild");
max=11+(int)ppl->query("guild/mage")/5;
if(pri_guild!="mage" && lv>max)
{
write("你最高只能施展 "+max+" 級的冰系法術喔。\n");
return 0;
}
if(adv_guild=="magemaster" && lv>30)
{
write("你最高只能施展出 30 級的冰系法術喔。\n");
return 0;
}
else if(adv_guild=="sage" && lv>25)
{
write("你最高只能夠施展出 25 級的冰系法術喔。\n");
return 0;
}
else if((!adv_guild || adv_guild=="alchemist") && lv>20)
{
write("你最多只能施展出 20 級的冰系法術喔。\n");
return 0;
}
if(sk<sm*100) // 加熟練度的第一首要條件
{
ints=ppl->query("stat/int");
t4=i*lv+(ints/100);
if(pri_guild=="mage" && adv_guild)
t4=(t4/2)*3;
t4=1+random(t4);
ppl->improve_skill("ice spell",t4);
}
雷系法術
int max;
if(!ppl) ppl=this_player();
pri_guild=ppl->query("pri_guild");
adv_guild=ppl->query("adv_guild");
max=11+(int)ppl->query("guild/mage")/5;
if(pri_guild!="mage" && lv>max)
{
write("你最高只能施展 "+max+" 級的雷系法術喔。\n");
return 0;
}
if(adv_guild=="magemaster" && lv>30)
{
write("你最高只能施展出 30 級的雷系法術喔。\n");
return 0;
}
else if(adv_guild=="sage" && lv>25)
{
write("你最高只能夠施展出 25 級的雷系法術喔。\n");
return 0;
}
else if((!adv_guild || adv_guild=="alchemist") && lv>20)
{
write("你最多只能施展出 20 級的雷系法術喔。\n");
return 0;
}
if(sk<sm*100)// && sk<1500) // 加熟練度的第一首要條件
{
ints=ppl->query("stat/int");
//t4=i*(lv+(damage/15000)+(ints/100));
t4=i*lv+(ints/100);
if(pri_guild=="mage" && adv_guild)
t4=(t4/2)*3;
t4=1+random(t4);
if((adv_guild=="magemaster" && sk<3000) ||
(adv_guild=="sage" && sk<2500) ||
(pri_guild=="mage" && sk<2000) ||
sk<1500)
ppl->improve_skill("thunder spell",t4);
}
風系法術
施法級數完全無限制。
if(sk>999 && race!="elf" &&
adv_guild!="magemaster" &&
adv_guild!="sage" &&
adv_guild!="alchemist") return 1;
t4=sk/100;
if(up!=1 && tar_level>LEVEL-50 && lv>=t4)
{
ints=ppl->query("stat/int")/60;
if(sk<900)
ppl->improve_skill("wind spell",1+lv+random(lv)+ints);
else
{
damage=ppl->query("record_data/windtop_value");
if( sk > 999 && sk<(1000+100*damage) )
ppl->improve_skill("wind spell",1+lv+random(lv)+ints);
// laechan 避免 bug 並允許雙倍的熟練度
if(sk>1499 && sk<1600)
{
if(race=="elf" ||
adv_guild=="magemaster" ||
adv_guild=="sage" ||
adv_guild=="alchemist")
ppl->improve_skill("wind spell",1+lv+random(lv)+ints);
}
}
地系法術
施法級數完全無限制。
if(up!=1 && tar_level>LEVEL-50 && lv>=t4)
{
ints=ppl->query("stat/int")/60;
if(ppl->query("skill/earth spell")<1600)
ppl->improve_skill("earth spell",1+lv+random(lv)+ints);
}
光系法術
if((string)ppl->query("race")!="elf" && pri_guild!="clerical" && pri_guild!="mage")
{
write("你必須是妖精、或主公會法師或牧師的人才能使用光系法術喔。\n");
return 0;
}
max=10+(int)ppl->query("guild/mage")/5;
if(pri_guild!="mage" && pri_guild!="clerical" && lv>max)
{
write("你最高只能施展 "+max+" 級的光系法術喔。\n");
return 0;
}
if(pri_guild=="mage")
{
if(adv_guild=="magemaster" && lv>30)
{
write("你最高只能施展出 30 級的光系法術喔。\n");
return 0;
}
else if(adv_guild=="sage" && lv>25)
{
write("你最高只能夠施展出 25 級的光系法術喔。\n");
return 0;
}
else if((!adv_guild || adv_guild=="alchemist") && lv>20)
{
write("你最多只能施展出 20 級的光系法術喔。\n");
return 0;
}
}
if(hit>0 && up!=1 && tar_level>LEVEL-50 && lv>=t4)
{
sm=11+(int)me->query("guild/mage")/5;
if(sm>20) sm=20; // 自練最高 2000
if(sk<sm*100) // 加熟練度的第一首要條件
{
ints=me->query("stat/int");
t4=i*(lv+(dam/15000)+(ints/100));
if(pri_guild=="mage" && adv_guild)
t4=(t4/2)*3;
t4=1+random(t4);
me->improve_skill("light spell",t4);
}
}

Links booklink

Contact Us: admin [ a t ] ucptt.com