[
板情報
|
カテゴリランキング
]
したらばTOP
■掲示板に戻る■
全部
1-100
最新50
|
1-
101-
201-
この機能を使うにはJavaScriptを有効にしてください
|
【Weiss】技術的なスレ
138
:
茜
:2003/04/08(火) 12:05 ID:abWkhjZM
>>135
irc で出したスキルツリーの暫定コードです。職業の制限はありません。
□[茜]スキルツリー(修得条件は前提スキルのみ・どのジョブのスキルも取れます)
================================================================================
■コードベース: α0x0016
■最終更新日時: 2003-04-06 18:37
前提スキルを満たせば、どのジョブのスキルも取ることができてしまいます。
途中経過ということで、お察しください。
それにしてもヘタレコードですね‥‥(T-T
申し訳ありません m(__)m
行頭 + その行を追加
行頭 - その行を削除
行頭その他 元々存在する行(この行近傍にパッチしてください)
================================================================================
Main.pas
--------
【implementation 節】
■procedure TfrmMain.FormCreate(Sender: TObject);
//------------------------------------------------------------------------------
//ジョブレベルアップ
Inc(tc1.SkillPoint);
‥‥
SendCStat1(tc1, 0, $0037, tc1.JobLV);
-SendCStat1(tc1, 0, $000c, tc1.SkillPoint);
WFIFOW( 0, $019b);
‥‥
SendCStat(tc1);
+CalcSkill(tc1.Socket,tc1);
end else begin
//------------------------------------------------------------------------------
Game.pas
--------
【implementation 節】
■procedure sv3PacketProcess(Socket: TCustomWinSocket);
//------------------------------------------------------------------------------
//スキル送信
+CalcSkill(Socket,tc);
-WFIFOW( 0, $010f);
-j := 0;
-for i := 1 to 157 do begin
-if tc.Skill[i].Lv <> 0 then begin
-WFIFOW( 0+37*j+4, i);
-WFIFOW( 2+37*j+4, tc.Skill[i].Data.SType);
-WFIFOW( 4+37*j+4, 0);
-WFIFOW( 6+37*j+4, tc.Skill[i].Lv);
-WFIFOW( 8+37*j+4, tc.Skill[i].Data.SP[tc.Skill[i].Lv]);
-WFIFOW(10+37*j+4, tc.Skill[i].Data.Range);
-WFIFOS(12+37*j+4, tc.Skill[i].Data.IDC, 24);
-WFIFOB(36+37*j+4, 0);
-Inc(j);
-end;
-end;
-WFIFOW( 2, 4+37*j);
-Socket.SendBuf(buf, 4+37*j);
//------------------------------------------------------------------------------
+$0112: //スキルレベルアップ要求
+begin
+RFIFOW(2, w);
+if (tc.Skill[w].Lv < tc.Skill[w].Data.MasterLV) and (tc.SkillPoint > 0) then begin
+tc.Skill[w].Lv:= tc.Skill[w].Lv + 1;
+tc.SkillPoint:= tc.SkillPoint - 1;
+
+WFIFOW(0, $010e);
+WFIFOW(2, w);
+WFIFOW(4, tc.Skill[w].Lv);
+WFIFOW(6, tc.Skill[w].Data.SP[tc.Skill[w].Lv]);
+WFIFOW(8, tc.Skill[w].Data.Range);
+if (tc.Skill[w].Lv < tc.Skill[w].Data.MasterLV) and (tc.SkillPoint > 0) then b := 1 else b := 0;
+WFIFOB(10, b);
+Socket.SendBuf(buf,11);
+CalcSkill(Socket,tc);
+
+CalcStat(tc);
+SendCStat(tc);
+end;
+end;
//------------------------------------------------------------------------------
新着レスの表示
名前:
E-mail
(省略可)
:
※書き込む際の注意事項は
こちら
※画像アップローダーは
こちら
(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板