看板 mud_sanc 關於我們 聯絡資訊
我說明一下大致的做法。 首先,我剛剛看線上有 242 位玩家角色。 mapping allskill=([]); mixed usr=users(),skills=({}); object ppl; string msg="",sk; 對每一個玩家的每一個技能做登錄: foreach(ppl in usr) { if((int)ppl->query("level")<1) continue; skills=keys((mapping)ppl->query("skill")); foreach(sk in skills) if((int)allskill[sk]<ppl->query("skill/"+sk)) allskill[sk]=((int)ppl->query("skill/"+sk)/100)*100; } 然後再做列表: skills=keys(allskill); foreach(sk in skills) msg+=sprintf("%-30s : %4d\n",sk,allskill[sk]); this_player()->more(explode(msg,"\n"),1,1); 底下是以 running code 產生的列表結果 holyball spell : 9900 girl fist : 9900 int control : 1000 zulai fist : 9900 holywar : 3000 air fist : 100 deadly-shiv : 2000 funeral-wind : 100 pen : 9900 sky-killer : 600 steal : 1000 seal spell : 900 war-dragon axe : 9900 holybell : 3000 swordmaster : 2000 goldfield : 1500 stone-force : 1000 blade heart : 9900 wind spell : 1600 thunder spell : 3100 icefire wand : 9900 time control : 900 bakunetsu-arm : 100 snow hands : 9900 burnbloom canto : 4900 pacify spell : 1000 pactio : 100 shutskill : 1000 blizzard : 100 shadow fist : 9900 return lance : 9900 hammer : 9900 firelance : 2400 enchant : 1500 lancemaaster : 2000 sankalekouken : 9900 dragon-recipe : 1000 body control : 1000 overload lance : 9900 flyinsky blade : 1000 longsee spell : 1500 windlance : 2400 creator-key : 1500 shuttindie : 100 waver : 100 watershield : 1000 lift-sprink : 1000 pray : 3000 burn-city lance : 9900 knight heart : 9900 gate : 2600 rainbow slash : 9900 syukuchi : 200 talent-arouse : 1500 clerical heart : 9900 biotech : 2000 sneak : 4000 magic-cycle : 1000 alchemist : 1000 holy body : 3000 parry : 9900 daggermaster : 2000 drafight_power : 100 wildnerve : 100 wu-lin axe : 9900 chuck-lance : 2000 wand : 9900 pkdog rodmaster : 1000 4-season slash : 2000 4->1 slash : 500 thief heart : 9900 magnum_punch : 3000 leadership : 1500 glamorous : 2400 explorer : 100 detoxify : 1000 evilmonster : 100 barefist : 9900 affliction : 9900 blader heart : 9900 absorb : 1600 gigabrake : 100 devilpower : 1000 ride skill : 4000 battle dagger : 9900 bless : 9900 grieffing : 1000 starlight wand : 9900 encasement : 100 cleanse : 9900 cyclone hands : 9900 dragoon : 100 interchange : 100 confine spell : 3000 evil-war axe : 1000 kamekameha : 900 fire axe : 9900 fixskill : 1000 ridespurt : 1000 drink fist : 9900 magic heart : 9900 devil-light : 1000 return spell : 3000 disaster-wall : 3000 colder fist : 2000 damage : 9900 duality-unite : 3000 sanctuary : 3000 kaioken : 1000 fighting-air : 600 runes : 9000 berserk : 100 earthaxe : 1000 sagepower : 1700 handpower : 200 bow : 9900 burning hands : 9900 dark-fog : 100 sunset blade : 9900 snow-moon blade : 9900 6-cold blade : 9900 counter : 200 burnperfume : 2400 hellfire : 900 evil destroy : 2000 hakendisdulu : 500 gy-rod : 2400 swallow-mai : 9900 bousou : 100 shooter : 9900 sand hands : 9900 legendary : 2000 frozen-orb : 3000 whip : 9900 claw : 9900 powerup : 3000 armor spell : 1500 wild heart : 500 entrench : 3000 sacramenti : 3000 snow-flower : 500 spiriten : 100 axe : 9900 atfield : 9900 hafe blade : 9900 illusion spell : 1500 sword : 9900 speed-cast : 3000 literature : 1500 crack slash : 100 greencloud fist : 2900 myskill : 9900 tissuell : 1500 whirl-shield : 1000 swimskill : 100 harp : 1000 japan blade : 1000 dragon fist : 9900 pure power : 3000 light wall : 100 magnificat : 3000 vitality spell : 1500 pkdog rod : 9900 thunder guard : 1000 fister heart : 9900 bigcross : 900 dragon-paw fist : 9900 slasher heart : 9900 holy power : 3000 phoenix-recipe : 1000 holy shield : 3000 vapor calligraphy : 2000 lance : 9900 cyclone-air : 600 moon ray : 600 shield : 2400 earth spell : 2000 rideto : 100 fosan foot : 9900 ice spell : 3000 feather fist : 2000 vampire touch : 300 heavry : 4200 sleep-cloud : 100 lightning blade : 9900 taichi fist : 9900 soulin fist : 9900 firecloud fist : 2000 axemaster : 2400 SM : 9900 knight slash : 9900 furiousaxe : 2400 tyoumabaka : 100 round-on : 200 dagger : 9900 angry-fire : 100 justice heart : 900 abanlance : 2400 sleep spell : 1500 avan slash : 1200 staff : 9900 drafight : 1000 multi-attack : 2000 thunder fist : 2000 wind fist : 9900 riot-supressing rod : 9900 burnedge chapter : 9900 backstab : 2000 heal spell : 3000 6-vessels swordray : 9900 flying-sky blade : 100 fighter heart : 9900 egingin : 500 shadow teeth : 9900 blademaster : 2400 king-road : 9900 magic missile : 9900 hardskill : 100 stigmata : 3000 nine-sword : 200 spirit-melody : 1000 light spell : 3000 adventure heart : 9900 light aura : 3000 gamble : 500 god-damn : 3000 powershield : 1500 weaponmaker : 500 toothstab : 9900 drift volume : 9900 silence spell : 1000 gun : 9900 destroy spell : 600 electric hands : 9900 lancemaster : 2400 dragonsword : 1000 float spell : 1500 blood-feast : 1000 earthquake : 1000 fire spell : 3000 bloody-scraid : 900 dash : 100 crazydragon blade : 900 judo : 9900 water-lotus slash : 9900 rod : 9900 fly-cloud wand : 9900 blade : 9900 life-sprink : 9900 phantom-strike : 2400 kendo : 9900 violent-shout : 2000 detoxify spell : 1500 buddha-seal fist : 1100 wudon slash : 9900 ragnarok : 3000 elf-wings : 100 watou blade : 1000 flower rod : 9900 multi-cast : 3000 dodge : 4000 rodmaster : 2400 know-maze : 100 encourage : 3000 目前似乎共 26x 個技能,實際上登錄於 skill_stat.c 的技能 數則是 25x 個,扣掉部份「我身上的」錯誤技能,差不多match (沒記錯的話上限值 400 個左右,以前最高曾到 45x 個然後就 發生 error,因此才大砍冗餘技能,目前技能量則在安全的水位) 當然實際上這麼做會有問題的,以進階法師來說不是所有的進階 法師都把技能練到滿了,因此上面部份技能還需修正。 但是大部份都是對的,這時就可利用這一特性,「只需手動修正 幾個錯的即可」。 這東西將來會寫成 /open/cmds/database.c,並寫一個專門的指 令來控制這個房間,再讓 skills 指令讀取這個物件來取得資料 Laechan -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 210.61.157.53
longhairpan :或是不動sk,現有的fist/blade/slash/force都有?跟all 01/10 10:11
longhairpan :裡面都有[滿]這個資訊, cast目前沒有? 只有all 01/10 10:12
longhairpan :把en ?及en all也加上那些顯示 01/10 10:15
longhairpan :然後再加上對應的基本sk的技能值及練滿顯示 01/10 10:16
longhairpan :或是乾脆再加個basic ?,basic all應該也差不多都有了 01/10 10:16
laechan :寫在各指令的?及all,是分散定義在各指令內的 01/10 11:51
laechan :我這篇這個方法比較適用於 database.c 這種架構 01/10 11:51