[wizs] 種族抗性等級作法。

看板mud_sanc (Sanctuary - 聖殿)作者 (希多)時間14年前 (2011/07/31 19:15), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串1/2 (看更多)
還沒寫,不過大致上想法如下: /cmds/std/_wear.c mappings RACE_ANTI=([ "human":({"ice/100","fire/50"}) ]) if(type=="body") { mixed anti_all; anti_all = RACE_ANTI[user->query("race")]; foreach(anti_lv in anti_all) if(sscanf(anti_lv,"%s/%s",kind,lv)==1) ob->add("anti_kind/"+kind,atoi(lv) ); user->set("armor_body",ob); } 之後在 /adm/daemons/shut_d.c 新增: // 種族等級抗性 if(wand=(object)tar->query("armor_body")) if(anti_tmp=(int)wand->query("anti_kind/"+kind)) { if(c>9) c=9; // 威力級數 max = 9 。 if( anti_tmp > (c+2) ) damage = 0; } ----------------------------------- c+2的部份要額外在決定,因為現在調到1-9了! 所以看要改防禦級數與技能威力差多少才會造就威力無效。 由於防禦級數,只有 body 才有,其他部位都"只能"是抗性啪數。 (就算其他部位有寫防禦級數也無效。) 所以方便上來說,就直接wear時讀陣列把種族抗性級數加上去就好了! 依照上述寫法,remove也要同樣有個減回去的措施。 雖然,可能有人沒裝body,會造就失去效果啦! 不過這應該是極少數,所以還是方便為主...avert 不寫在shut的原因是,如果那裏多一堆程式碼, 會讓sanc越來越慢,因為那裡會常常執行到,會狂判斷! -- Norr@Sanc 風,吹散了一切煩惱,只留下平靜的思考。 雨,淋落了一切紛亂,只剩下無比的快樂。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 122.117.46.189
文章代碼(AID): #1EDJbOlk (mud_sanc)
討論串 (同標題文章)
文章代碼(AID): #1EDJbOlk (mud_sanc)