したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | |

【Weiss】技術的なスレ

8961:2003/03/26(水) 04:08 ID:oRvkv6mQ
今度はGMコマンドのresetstateとresetskillの実装に挑戦してみました
resetstateは本家の仕様に合わせて
全ステータスを1にする
baseLvに応じたステータスポイントを与える
という処理になっています
データをいじってall99にしてるような場合は総合ポイントが減りますので注意

resetskillの方は
スキル表示の見なおしが必要なので
(skillLv0でも取得条件があれば表示しなければならない)
しばらく放置です
スキル取得関係の実装ができればこちらもすぐに修正できると思います

\tをこの掲示板でどうやって使うのかわからないので
EoRの方に見やすいものを上げておきました

//--------------------------------------------------------------------------
$0197: //GMコマンド /resetstate /resetskill(将来的にはGMチェックを入れる)
begin
RFIFOW(2, w);
if w = 0 then begin// Resetstate(ステータス再分配)の処理

//パラメータ6個を全て1にする
for i := 0 to 5 do begin
tc.ParamBase[i] := 1;
end;

//Lv1時の基本ポイント48をまず与える
tc.StatusPoint := 48;

//現在レベルまでのステータスポイント計算を逐一行う
//ここはもっと上手い方法があると思いますが私には無理(;´Д`)

for i := 1 to tc.BaseLV - 1 do begin
tc.StatusPoint := tc.StatusPoint + i div 5 + 3;
end;

//各種ステータスを再計算し、クライアントに変更を通知
CalcStat(tc);
SendCStat(tc);

end;

//if w = 1 then begin // ResetSkill(スキルポイント再分配)の処理

////減らしたポイント記録用にjを0にする
//j := 0;
////スキルレベルを0にし、減らしたポイントをjに加えていく
//for i := 1 to 157 do begin
//if (tc.Skill[i].Lv <> 0) then begin
//j := j + tc.Skill[i].Lv;
//tc.Skill[i].Lv := 0;
//end;
//end;
//tc.SkillPoint := j;

////スキル送信
////スキル計算系の関数ができたらそっちに飛ばす
////現在はスキルを全部真っ白にするだけ

//WFIFOW( 0, $010f);
//WFIFOW( 2, 4);
//Socket.SendBuf(buf, 4);

////スキルポイントの変更を通知
//SendCStat(tc);
//end;

end;
//--------------------------------------------------------------------------


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板