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

【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(省略可)

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

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

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

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