[技能] 关于六系法术

楼主: 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