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

【Weiss】バージョンアップ報告スレ

7065:2003/05/24(土) 23:22 ID:3GcBHOow
>68
どうやら2HQでのエラーは#ccolorで色変更していると起こるだけの様でした。
初期色であれば問題無く、他色は職に関わらず全てエラーでした。試した所、旧Verから元々落ちるようです。
>69さんのパッチを利用させて頂いておりますが、WEISS.EXEのアドレス00499E90でアドレスFFFFFFFFに対する読込違反で落ちるのは
自分だけでしょうね…初心者スレ558本人です。
自分の当てたDiff後のものをMD5スレにあげました。a0x0019aまでは合っています。
皆様方と適合している様でしたら良いのですが。

71初心者スレ120:2003/05/25(日) 07:25 ID:MnSf3.h6
>>70
やっぱりバグありましたか…。_| ̄|○|||
デバッガを使ってどこで落ちるのかを調べてもらえませんか?
私の方では今のところ読み込み違反起きてないもので。

7265:2003/05/25(日) 08:02 ID:1/zHhwas
if tm.Block[a][b].MobProcTick < Tick then begin

main.pas内の2739行目で沈没船付近の島からポータルでプロンテラへ飛ぶと発生します
DiffはU0x002まで当てたものを使用しました。

7377:2003/05/25(日) 14:02 ID:z0seKSuc
うちでもOD2Fから兄貴村に飛ぶとなりますね・・・。
どーもtmが変わってない・・・?

74初心者スレ120:2003/05/25(日) 15:48 ID:MnSf3.h6
確かに起きますね…。
やはりtmの値が変わらないようで。
なんでだ…。

7565:2003/05/25(日) 16:32 ID:1/zHhwas
U0x002現在、ムカーカードによるHP自然回復速度10%向上が効果として見られないようです。
(確認した方法はアクセサリのスロットを4にしてムカー1枚ずつ差しての4枚までBPMチェッカーで確認)
スキルのHP回復向上のVITによる追加回復値も適用されていないようです。(VIT99でも50しか回復せず)
Diffをa0x0019aに戻し確認したところ、上記2点の問題見られませんでした。
通常のHP自然回復速度はステータスによって変化が見られたので問題無いようです。
SP自然回復15%上昇するエギラカードは4枚まで差すごとに上がったので、問題無く機能しているようです。
お手が空きましたら、確認の程どうぞ宜しくお願い致します。

7665:2003/05/25(日) 16:39 ID:1/zHhwas
良く見るとSP自然回復15%カードも速度変わっていないように思える…

77初心者スレ120:2003/05/25(日) 16:42 ID:MnSf3.h6
やっぱり意味不明…。
発生条件は
ポタで移動する前のマップサイズより、移動後の座標位置が大きい場合。
のようです。
回避方法は
if tm.Block[a][b] = nil then continue;

if tm.Block[a][b].MobProcTick < Tick then begin
の前に追加する。

マップの移動処理が終わる前にこの処理が発生するからなのかな?

78初心者スレ120:2003/05/25(日) 16:49 ID:MnSf3.h6
>>77
U0x002でCalcStat()を幾つかの関数に解体したのが原因です…。
ので修正するまで0x0019aかU0x001のCalcStat()に戻してください…。
まだ在りそうだな…。_| ̄|○|||

79初心者スレ120:2003/05/25(日) 16:49 ID:MnSf3.h6
77じゃ無くて76だ…。∧‖∧

8065:2003/05/25(日) 17:14 ID:1/zHhwas
>79
デバッグしかご助力出来ず負担を掛けてしまい大変申し訳ありません
出来うる限り些細な点からでもお役に立ちたいので、
手数が必要であれば是非お申し付け頂ければ幸いです。
とはいえ端から見て悪く言えば、自分は粗探ししている様にしか見えないですね(泣

81初心者スレ120:2003/05/25(日) 18:18 ID:MnSf3.h6
>>80
デバッグはみんなでやるもの。
良い物を作るには粗探しする人が沢山居る方がいいんですよ。
言われなければ気づかないバグというのは結構多いものです。

>>70>>75の修正一応完了。
回復速度の計算式が解らないので少々適当ですが。
手伝ってもらえるのならCalcStat()等の分割・変更等された関数について調べてもらえますか?
Lovが発動するけどダメージが計算されないのは私だけかな。

8265:2003/05/25(日) 18:30 ID:1/zHhwas
>81
LoVダメージ計算が出ないのは、Skilldbでダメージの欄が空白になっていると思います。
私は初期威力値がわからなかったので、欄に100を10個入れました。
例としてお役に立てれるか解りませんが
85,WZ_VERMILION,ロードオブヴァーミリオン,2,10,60,64,68,72,76,80,84,88,92,96,,,15500,-500,,9,4,100,110,120,130,140,150,160,170,180,190,10,10,10,10,10,10,10,10,10,10,2,,512,21,1,84,5
としております。
実際のダメージ比率は後々調べようと思っておりますが…既に調べられた方が居ますようでしたら
お教え頂ければ是非差し替えたいと思います。

83初心者スレ120:2003/05/25(日) 21:09 ID:nf2WFEEE
[U0x003] あぷろだ1:030.zip
>>70>>75の修正。
・インベーナム実装。
・FD実装。
・その他細々と。

初期値入れても何故かLov出来ません…。∧‖∧

8465:2003/05/25(日) 22:27 ID:1/zHhwas
上記の物に入れ替えてもダメージが発動しませんでしたか…(困
此方ではU0x002でもLoVのダメージは出ておりますが、
やはりDatabaseフォルダ内のSkill_db内の場所が
a0x0019a同梱のSkill_db初期のままですと直撃させてもダメ発生が無い様です。
なので、上記の例をそのままコピペで入れ替えても問題は無いと思いますが、先程まで若干数字を調べて参りました。
ですが、どこのHPも正確なダメージが検証されていない様です。(情報割れ)
あるHPサイトではスキル上昇に伴い威力が変わるようですが、他では一律固定ともありました。
固定であるならば、どのHPサイトも共通の1.5倍を目安にTSの80=0.8倍と考えるならば、
〜9,4,100,110,120,130,140,150,160,170,180,190,10,10〜(前後省略)を
〜9,4,150,150,150,150,150,150,150,150,150,150,10,10〜に変更し、
LVごとの威力を調整したい場合は
〜9,4,153,156,159,162,165,168,171,174,177,180,10,10〜(0.03*LVを目安にした追加威力・自分的見解予測)
確実性が無い為、前者の方が割合に信頼が置けそうですが…
発生した合計ダメージによっては、ごく稀に範囲チェックエラーを起こすようです(a0x0019a)
U0x002以降ではLoVが全て確殺ダメの時、合計表示どころか単発ダメージも出ないので、
数字に関する事は確認取れませんでしたが落ちないようです。(もう少し試したいと思います)
10,10〜と続く場所はLVごとのHitでJTを例にLoV一回辺りのHitが全LV10Hitなので一律設定に
9,4と書かれた物は属性(4=風)の様です
もしこれらを既にご存知のようでしたら、繰り返し長文を書いた事お詫び申し上げます。
更なる発展、心より願っております

8565:2003/05/26(月) 14:32 ID:ai0iJj92
U0x003にて行1207の位置でエラーが発生しました。(ログイン・ゲーム時両方)
HPDelay[i] := HPDelay[i] * HPDelayFix div 100;
HP回復+10%のムカー3枚を差したものを装備した地点で整数のオーバーフローで
再起動後もキャラセレクトまで行かない状態でした
(2枚までは回復が装備するごとに逆に遅くなり、Chara.txtで問題の起きた装備個所を削除で再ログイン可能)

他、>75>76のカード効果・HP回復向上+VITもそのまま適用されていない様です。
(SP自然回復+15%のエギラは4枚差してもエラーはありませんでしたが効果は無し)
まだ全てを試してはいないので、前Verで使えて現Verで効果の無かったものの
報告に伺いたいと思います。

インベノムにて毒状態になったモンスターは攻撃力と防御力が20秒間25%減少して、
HPが1になるまで、3秒ごとに最大HPの2%のHPを失っていく効果は
まだ現段階ではダメージと状態変化表示のみで未実装なのでしょうか?

8677:2003/05/26(月) 15:11 ID:qWpwG346
LoVの元のコードを書いたのは実は自分ですが、手元では完璧なんですよねぇ。
Cardinalさんが移植した際にミスをした、との様なことを自身で言ってらっしゃいましたが、
具体的にどこがどう変わっているのかは詳しく見てなかったりします。
コモドパッチのメンテ中にでも自分が元のコードを書いた部分辺りはチェックしてみようかと思います。
skilldbに依存せずダメージ自体がでないということは、大魔法(実は範囲攻撃魔法自体)の特徴である
不可視のオブジェを対象地点に設置し、そのオブジェが攻撃をするというルーチンのせいかもしれません。
自分でも少々わかりにくいコードだったかなと思っていますので、責任を持って直そうかと。

LoVの威力に関してはLV1で0.13%*10 以後0.03%ずつ増加、LV10にて0.4%*10になると言うのが一般的だったかな・・・。
Wiz消しちゃった(;´ー`)y─┛~~~ なむなむ

毒状態になったモンスターは現在攻撃力の減少はありません。
あれは実はバグだったということらしく、いつだかのメンテでなくなりました。

>SP自然回復+15%のエギラは4枚差してもエラーはありませんでしたが効果は無し
これはお節介かも知れませんが・・・^^;
カード効果を適用する部分のコードでは存在するスロット分しかカードを読んでいないので
無理矢理スロット1のものにカードを複数刺しても意味はないかも知れません。
itemdbを書き換えてる、イランお節介だと感じたら済みません(´-`*)

8765:2003/05/26(月) 18:23 ID:ai0iJj92
a0x0019a以前ではスロットを4にしてのステータスやエギラ・ムカーの回復の相乗効果が見られました。
元々はスロット4のアクセサリや靴なんて存在自体がおかしい事ではありますが
一度にカード効果を調べるには役立ったので。
5以上に設定すると範囲チェックエラーで落ちますのでご注意下さい。
U0x003現在も多段で差したカードに効果が見られたのですが、今回問題に出した
2枚の効果が以前の物と変わっておりまして、ムカーは一枚差す度に
HP全快までに掛かった時間が増えた事から、結果がマイナスになっているものと思いました。
エギラに関しては1枚も4枚も変わらず、0枚と1枚の差もありませんでした。
バフォメット・ドレイク・ハンターフライカード等は問題無く機能しておりましたので、
今回は2点だけ話題として出させて頂きました。
SP吸収するドラキュラカードは、以前より機能していなかったので、まだ未実装と思い話題に触れずでした(汗

>LoV
新たに実装できる方々には頭が上がりません、良い仕事をされております<(_ _)>
Skill_dbの85LoVの位置にある消費SP数を弄る事で、スキル使用した時のSPが変わった事から
現状は此方から読み出されている感じになっているのではないでしょうか。
見た限りではLoVの当たり判定が十数秒間残り、一詠唱で3回分の効果がある
見えない設置型地雷と変わらない感じになっております。(使用位置を敵が踏むと発動

U0x003にしてから、マップ間移動時の読み込み後の表示処理が異常に時間掛かりすぎているのは…
自分だけかな(汗

88初心者スレ120:2003/05/26(月) 20:46 ID:0UNITC92
回復速度に関してですが、計算式とデータテーブルを勘違いしてました…。
遅くしてどうするんだ…。
if td.HP2 <> 0 then begin //HP回復速度%
HPDelayFix := HPDelayFix + td.HP2 - 100;
end;
if td.SP2 <> 0 then begin //SP回復速度%
SPDelayFix := SPDelayFix + td.SP2 - 100;
end;
〜略〜
{追加}
for i:=0 to 3 do begin
 HPDelay[i] := HPDelay[i] * HPDelayFix div 100;
 if HPDelay[i] < 150 then HPDelay[i] := 150;
 SPDelay[i] := SPDelay[i] * SPDelayFix div 100;
 if SPDelay[i] < 150 then SPDelay[i] := 150;
end;
{追加ココまで}
こんな感じにしておけばいいかと。
これでもダメそうな気がするけど…。

SP吸収はHP吸収の式をそのまま使えます。
ドラキュラCはDatabaseの方でハンタフライCを参考に追加してください。
またはitem_db.txt新形式に対応させてください。

毒についてですが、表示と攻撃・防御25%ダウンしか処理してません。
減少間隔と継続効果時間が解らなかったもので。
ちなみに凍結で水属性化、状態1での行動不能も実装してたりします。
同じく継続時間は未実装ですが。
TCharaTMob統合化の後にでも対応しようかなと思って放置中でした。

Lovについてはコピペしてませんでした。すません。∧‖∧

処理速度について全く考えてないので重くなっている可能性が大有りです。

#3週間ほど忙しくなるので更新出来なくなるかも。

89初心者スレ120:2003/05/26(月) 20:56 ID:0UNITC92
って書いてて間違ってたよ…。∧‖∧
毒についての処理は
if (ts.view2 or 1) = 1 then begin
じゃ無くて
if (ts.view2 and 1) = 1 then begin
だ…。
すません。

90Cardinal:2003/05/27(火) 05:43 ID:Swtd5b2E
手元で現象が確認できないので何とも言えませんが・・・
Game.pas内の007dパケット処理の冒頭部分を以下のように書き換えたらどうでしょうか?

//--------------------------------------------------------------------------
$007d: //MAPロード完了
begin
tm := Map.Objects[Map.IndexOf(tc.Map)] as TMap;
while tm.Mode < 2 do
Application.ProcessMessages;

if tc.tmpMap <> '' then begin
tc.Map := tc.tmpMap;
tc.tmpMap := '';
end;
tc.MData := tm;
if CharaPID.IndexOf(tc.PID) = -1 then CharaPID.AddObject(tc.PID, tc);

91Cardinal:2003/05/27(火) 05:44 ID:Swtd5b2E
言い忘れ・・・
>>90は、マップ移動時にエラー落ちする不具合の対策です。

9265:2003/05/27(火) 13:08 ID:TmvmK3Zc
>88
追加で括られた個所の変更は行わない状態で、部分的に上記のものだけを差し替えた所、
HP/SP回復は前の計測データ前後の速度として働きました。(カード有無含む、相乗効果も確認)
追加内の変更のものも差し替えて何度か試して見る事に致します。
マップ移動後のdatabaseフォルダのオブジェ設定読み込みが遅いのかは判らないのですが、
マップの個所の飛び方次第では読み込み処理の遅延が見られません。
テストしている自分のPCのスペックですかね(汗
之に関してももう少し他のPCでも試し、判り次第報告したいと思います。
>90
差し替えてテストしておりましたが、マップによっては見えない壁に阻まれて
歩めない個所が生まれたり、稀にワープ後(マップ移動なら何処でも)にクライアントへ情報が止まったような感じで
1時間待ってもオブジェが何時までも表示されず動けない状態でした。
やはり変更後もポータルで前に表記した問題個所に飛ぶと確実にエラーになるようです。
もしかしたら自分が変に意識しすぎて移動しているのかも知れませんが、
もう少し曖昧ではなく明確なレスが出来る様、最善を尽くしたいと思います。

移動時の範囲チェックエラーの個所が2つ出ましたので、下記に記したいと思います。
お役に立てれますかどうかは判りませんが、皆様方の何かのご助力になれれば幸いです。
main.pas
if (tc.MMode = 0) and (tm.gat[NextPoint.X][NextPoint.Y] <> 0) then begin

game.pas
tm.Block[tc.Point.X div 8][tc.Point.Y div 8].CList.AddObject(tc.PID, tc);

9365:2003/05/27(火) 18:45 ID:TmvmK3Zc
>92
ある程度ソースを居れては抜いてのテストしていた時にですが、
>90のソースに差し替えない状態で、気づいた時にはポータル移動時のエラーが出なくなりました。
此方では独自に変更した点も無かったので、理由が判りません(汗
もう少し時間をかけて見ていきたいと思います。
>88
追加〜追加ここまでの中のソースも一緒に差し替えた所、
回復速度が前の時と同じくカードの適用がされていないようです。
if td.HP1 <> 0 then begin //MAXHP%(1001以上で+)
if td.HP1 > 1000 then begin
MAXHP := MAXHP + (td.HP1 - 1000);
end else Inc(MAXHPPer,(td.HP1-100));
end;
if td.HP2 <> 0 then begin //HP回復速度%
HPDelayFix := HPDelayFix + td.HP2 - 100;
end;
if td.SP1 <> 0 then begin //MAXSP%(1001以上で+)
if td.SP1 > 1000 then begin
MAXSP := MAXSP + (td.SP1 - 1000);
end else Inc(MAXSPPer,(td.SP1-100));
end;
if td.SP2 <> 0 then begin //SP回復速度%
SPDelayFix := SPDelayFix + td.SP2 - 100;
end;
end;
end;
//------------------------------------------------------------------------------
替えた個所はここのみで正常に機能が働いたので、(カード・自然回復共)
後者の追加内部は変更せず、U0x003のままで問題無いと思います。
追加内部だけを変更しない事で、
何かの不具合が生じてしまう様でしたら話は別になってしまうのですが…
お忙しいこと重々承知しておりますが、もしお時間取れます様でしたら
此方の方ご確認頂ければ幸いです。
引き続き、他の変更個所も調べていきたいと思います。

94初心者スレ120:2003/05/27(火) 19:04 ID:DWo2D7Mw
>>93
{追加}〜というのはCalcStat()のHPDelayFix,SPDelayFixについてのコードです。
本来のコードに{追加}とか書いてあるので紛らわしくてすいません。
以降は技術スレでお願いします。

9534:2003/06/02(月) 18:36 ID:L383SIYg
[037.zip]
※パッチではなくコードだけの提供です
u0x003のソースにコード.txt内のコードを適宜追加してください
・BS製造スキルの実装

96初心者スレ120:2003/06/04(水) 17:31 ID:o6JcXTWU
[U0x004] あぷろだ2:Weiss018.zip
・183さんのあぷろだ1:032.zip U0x003bの変更の取り込み
・34さんのあぷろだ1:037.zip,038.zipの変更の取り込み
・special_db.txt追加
・微妙に最新韓桜井に対応

あぷろだ1にファイルが上げれないんですけど、規制でもしてますか?

97名無しさん:2003/06/04(水) 22:06 ID:IisiSWoQ
U0x004当てるとログイン出来なくなる…。うちだけだろうか。(^-^;)

98名無しさん:2003/06/04(水) 22:12 ID:hMFGcW0.
>97
キーはplayer.txt
ソース見るとなんか項目が増えてる

99初心者スレ120:2003/06/04(水) 22:35 ID:o6JcXTWU
>>97
すません…。
DataLoad()のif ver >= 1 then begin 以降を
if (sl.Count = 11) or (sl.Count = 9) then begin
 tp := TPlayer.Create;
 with tp do begin
  ID := StrToInt(sl.Strings[0]);
  Name := sl.Strings[1];
  Pass := sl.Strings[2];
  Gender := StrToInt(sl.Strings[3]);
  Mail := sl.Strings[4];
  GMMode := StrToInt(sl.Strings[5]);
  CName[0] := sl.Strings[6];
  CName[1] := sl.Strings[7];
  CName[2] := sl.Strings[8];
   if sl.Count = 11 then begin
    CName[3] := sl.Strings[9];
    CName[4] := sl.Strings[10];
//   CName[5] := sl.Strings[11];
//   CName[6] := sl.Strings[12];
//   CName[7] := sl.Strings[13];
//   CName[8] := sl.Strings[14];
   end;
  end;
〜略〜
コレに換えてください。

お約束ですけどバグ報告はバグ報告スレへ。

100naru:2003/06/04(水) 22:41 ID:q7XwYfmU
player.txtの行末にカンマ2個付け足してもとりあえずできますね。

10134:2003/06/07(土) 02:38 ID:omuTQbiY
[041.zip]
※パッチではなくコードだけの提供です
※不具合があるのでu0x004のソースおよびchara.txt,player.txtのバックアップを忘れずにお願いします

u0x004にコード.txt内のコードを適宜追加してください
・パーティー機能

102名無しさん:2003/06/07(土) 19:13 ID:bnd6hNRE
>>101
ちょっと気になったんですが、コード.txt内に
##############
#database.pas#
##############
が2つあったんですが、2つ目の
##############
#database.pas#
##############

=================================================================================
■procedure sv3PacketProcess(Socket: TCustomWinSocket);
=================================================================================
というところは、「databese.pas」ではなく「game.pas」の方に追加で良いんですよね?
「database.pas」の方を探しても見つからなかったもので。

コード修正の手伝いの書き込みじゃなくて、すみません・・・

10334:2003/06/07(土) 19:27 ID:Qr8pxrwE
>>102
申し訳ないです。コピペして直すの忘れていたみたいです
アルファベット順にならんでるので二つdatabase.pasに関するものがあるとすれば
上が本来のdatabase.pasに追加すべきもの
下の方がgame.pasに追加すべきものとなっているはずです
修正しておきます 指摘ありがとうございます

104名無しさん:2003/06/07(土) 19:43 ID:dLfT3nwc
$007d: //MAPロード完了以下

tc.Login := 2;
+{パーティー機能追加}
SendPartyList(tc);←ここ
+{パーティー機能ココまで}

一箇所+が抜けてます
わかるとは思いますが

105Cardinal:2003/06/08(日) 22:02 ID:QCOfoYS6
[D-Weiss Alpha.$0100] あぷろだ1:046.zip
・自動データ保存/バックアップ機構追加
・player.txtのGMModeを有効にした(0=一般プレイヤー 2=GM&デバグコマンド利用可能)
・経路探索処理改良。モンスターが経路探索に失敗することのあった問題を修正。
・モンスターAI一部実装(詠唱反応、リンク)
・クライアントのバージョンにあった送受信パケットを送るようにした。
 (clientinfo.xmlのversionが100=iRO/110=jRO/121=kRO 2003/06/05現在)
・2-2次職に仮対応(データは2-1次職のものを流用しただけ)
・アクセスログをとるようにした。(logフォルダを作っておかないとエラーです)
・ホスト規制を行うようにした。
 (ホストは192.168.*.*等と指定。ただし第1,2オクテットに*は使えません)
・GUIのデザイン変更。要ComCtrlsXP。
・[script]set,checkの右辺にフラグを使えるようにした
・[script]additem,delitem,checkadditemのアイテムIDや数量に
 フラグを使えるようにした
・[script]viewpoint,input,random,optionのエラーメッセージの表記ミスを修正

(以下、[U0x001]<あぷろだ1:027.zip>より)
  ・攻撃速度式をみすとれ巣の新式に修正。
  ・TCharaのデータ構造を修正。
  ・最新韓桜井に一応対応。
  ・SkillLimit関連の修正。
  ・アイテムによるスキルの追加を実装。
  ・その他細々と修正・追加。
(以下、[U0x002]<あぷろだ1:028.zip>より)
  ・U0x001から細かい修正。
  ・リンクの実装。
  ・状態変化実装。(表示+α程度)
  ・その他細々と。
(以下、[U0x003]<あぷろだ1:030.zip>より)
  ・HP/SP自然回復速度向上カードの効果が出ない不具合を修正。
  ・インベーナム実装。
  ・FD実装。
  ・その他細々と。
(以下、<あぷろだ1:037.zip>より)
  ・BS製造スキルの実装
(以下、<あぷろだ1:038.zip>より)
  ・GMのアイテム製造の実装
  ・モンスター召還コマンドの実装
(以下、[U0x003b]<あぷろだ1:032.zip>より)
  ・[script]speed,die,ccolor,refineコマンド追加
(以下、[U0x004]<あぷろだ2:Weiss018.zip>より)
  ・special_db.txt追加
  ・微妙に最新韓桜井に対応

106Cardinal:2003/06/08(日) 22:05 ID:QCOfoYS6
補足説明。
diffが1個入ってますので必ず当ててください。
そのままだとコンパイルが通りません。
コンパイルエラーの出た箇所を修正しても、まともに動きません。

あと、clientinfo.xmlを必ず利用し、versionに適切な数値を指定してください。
versionを見て送るパケットを切り替えていますので、
HookConnectのみではおそらくまともに動きません。

あと、U0x00?系のパッチを一応取り込んだつもりですが、
取り込みが完全でないと思います。
動作確認よろしくお願いします。

107Cardinal:2003/06/08(日) 22:16 ID:QCOfoYS6
補足説明その2。
database、scriptは一切入ってませんので、各自ご用意お願いします。

108Cardinal:2003/06/08(日) 23:29 ID:QCOfoYS6
[D-Weiss Alpha.$0100-fix1] あぷろだ1:047.zip
・player.txtの読み込みに失敗する不具合を修正
・[script]InputNumberで0を指定できなかった不具合を修正
・[script]mesでメッセージ中にフラグの数値を表示できるようにした
・マップ移動の挙動がおかしい現象を修正

毎度のことながら、申し訳ないです・・・

109Cardinal:2003/06/09(月) 01:49 ID:oxguvbaw
[D-Weiss Alpha.$0100-fix2] あぷろだ1:049.zip
・[script]setで減算(-=)時、右辺がフラグだと計算が行われない不具合を修正
・[script]mes中の$charanameをキャラクター名に置き換えるようにした

110Cardinal:2003/06/09(月) 03:04 ID:oxguvbaw
[Alpha.$0100-fix3]
・武器レベルごとのボーナスが正しく計算されていない不具合を修正
・[script]setコマンドで左辺がフラグの時、
 乗算(*=)除算(/=)の計算がおかしくなる不具合を修正

_| ̄|○

111初心者スレ120:2003/06/09(月) 20:43 ID:NVli3mcw
[U0x005]あぷろだ1:051.zip
・34さんのあぷろだ1:041.zipのパーティ機能の追加。
・パーティ機能用に手続き追加。
・新2次のアイテム装備関連、スキルツリー関連を修正。
・イグ葉等用の手続きを追加。(現在使用するとバグる危険性大)

112Cardinal:2003/06/10(火) 10:41 ID:QtQUbaJs
[Alpha.$0100-fix4]
・GMアイテム製造、モンスター召還が動かない不具合を修正
 (player.txtのGMModeを2にしないとコマンドは使えません)
・他者にスキルを掛けた場合自分の方にアイコンが表示されてしまう不具合を修正
・カード挿入の際に未鑑定の装備にカードが挿せる不具合を修正
・/resetskillコマンドで余っているスキルポイントが消える不具合を修正
・敵の攻撃がすべてミスになってしまっていた不具合を修正
・NPCとモンスターが同マップ内に配置されている場合、
 NPCの表示名がおかしくなる不具合を修正
・[script]checkitemコマンドが範囲エラーで使えない問題を修正
・[script]getitemamountコマンドを追加

113Cardinal:2003/06/10(火) 10:42 ID:QtQUbaJs
補足説明。
・「ComCtrlsXP」コンポーネントにおいて、
 タブの切り替えなどでエラーが出た場合、エラーがでた場所の、
 DrawThemeParentBackground(LParam,WParam,nil);
 を
 DrawThemeParentBackground(HWND(LParam),HDC(WParam),nil);
 に置き換えれば直ります。

114Cardinal:2003/06/10(火) 10:54 ID:QtQUbaJs
補足説明その2。
というか、$0100を出してからずっと言い忘れてましたが・・・
job_db1、job_db2について、読み込む行数を13から21行に増やしてます。
足りない8行分は適当に前の行をコピーしておいてください。

115Cardinal:2003/06/11(水) 03:04 ID:cvr54A2w
[Alpha.$0100-fix5] あぷろだ1:053.zip
・2人以上でログオンし、お互いが見える位置で移動すると
 片方にクライアントエラーが出る不具合を修正
・武器製造で、製造者のIDが正しく記録されていなかった不具合を修正
・[script]speedでフラグを使えるようにしました。
 (ccolor等一部のコマンドはフラグを使えません)

あああああ・・・_| ̄|○

116Cardinal:2003/06/11(水) 03:09 ID:cvr54A2w
>>115
・[script]speedでフラグを使えるようにしました。

使えるようになってませんでした。
ちょっと吊ってきます・・・

117初心者スレ120:2003/06/13(金) 20:03 ID:16AIVt7I
[U0x006]あぷろだ1:055.zip
・カード等による回復速度補正式の修正
・AddSkillではなくSkill.Cardを利用するように修正
・公平分配時のバグの修正
・回復力向上の回復量を修正
・Player.txt、Chara.txtをD系の書式に修正

やっと暇が出来た…。

11834:2003/06/15(日) 13:31 ID:ygW.7I8s
[コード]057.zip
・カート機能

やっと書きこめるようになった…。

119名無しさん:2003/06/20(金) 00:24 ID:M4aHUcRA
バグ報告の538の者なのですが〜
54: //リザレクション
begin
if MTargetType = 1 then begin
//対プレイヤー
if (tc1.Sit <> 1) or (tc1.HP > 0) then begin
MMode := 0;
Exit;
end else begin
dmg[0] := ((tc1.MAXHP * 15 * (MUseLV - 1)) div 100) + 1;
tc1.Sit := 0;
tc1.HP := tc1.HP + dmg[0];
SendCStat1(tc1, 0, 5, tc1.HP);
//パケ送信
WFIFOW( 0, $011a);
WFIFOW( 2, MSkill);
WFIFOW( 4, dmg[0]);
WFIFOL( 6, MTarget);
WFIFOL(10, PID);
WFIFOB(14, 1);
SendBCmd(tm, tc1.Point, 15);
DecSP(tc, MSkill, MUseLV);
SkillProcessType := 0;
WFIFOW( 0, $0148);
WFIFOL( 2, tc1.PID);
WFIFOW( 6, 100);
SendBCmd(tm, tc1.Point, 8);
end;
end else begin
if ts.view1 = 2 then k1 := 21
else k1 := ts.Data.Element;
if (Random(1000) < MUseLV * 20 + Param[3] + Param[5] + BaseLV + Trunc((1 - HP / MAXHP) * 200)) and (ts.Data.MEXP = 0) then begin
dmg[0] := ts.HP;
end else begin
dmg[0] := (BaseLV + Param[3] + (MUseLV * 10)) * ElementTable[6][k1] div 100;
if dmg[0] < 0 then dmg[0] := 0; //魔法攻撃での回復は未実装
end;
if k1 mod 20 = 9 then begin
//対アンデッド
SendCSkillAtk1(tm, tc, ts, Tick, dmg[0], 1);
SkillProcessType := 1;
end else begin
DecSP(tc, MSkill, MUseLV);
SkillProcessType := 0;
end;
end;
end;
でリザをつくってみました
あとTfrmMain.CharaSkill()の//指定対象or即時発動//対プレイヤーのところに
and (MSkill <>54)
の条件を付け足すことでできました
パケットの内容があんまり理解できていないので他のを組み合わせて作りました
HPの回復量の計算がめちゃくちゃですのでどなたか修正おねがいします

120119:2003/06/20(金) 00:33 ID:M4aHUcRA
あと、
143: //死んだフリ
begin
if tc1.Sit = 1 then begin
tc1.Sit := 0;
WFIFOW( 0, $0148);
WFIFOL( 2, tc1.PID);
WFIFOW( 6, 100);
SendBCmd(tm, tc1.Point, 8);
end else begin
tc1.Sit := 1;
WFIFOW(0, $0080);
WFIFOL(2, tc.PID);
WFIFOB(6, 1);
Socket.SendBuf(buf, 7);
end;
SkillProcessType := 0;
end;
で、一応死んだフリです。
本物みたことないのでわからなかったです
リザのことですがskill_dbのRangeを1→9に変更してください

ACとセンチュアリ使ってみたいですが難しそうですね
センチュアリは効果範囲の設定が大変そう・・・

121119:2003/06/20(金) 01:16 ID:M4aHUcRA
これも見たことないので
142: //応急手当
begin
dmg[0] := 5;
tc.HP := tc.HP + dmg[0];
if tc.HP > tc.MAXHP then tc.HP := tc.MAXHP;
SendCStat1(tc, 0, 5, tc.HP);
//パケ送信
WFIFOW( 0, $011a);
WFIFOW( 2, MSkill);
WFIFOW( 4, dmg[0]);
WFIFOL( 6, MTarget);
WFIFOL(10, PID);
WFIFOB(14, 1);
SendBCmd(tm, tc.Point, 15);
DecSP(tc, MSkill, MUseLV);
SkillProcessType := 0;
end;
です。
skill_dbのTypeを4にしないとできません、ごめんなさい

122code:2003/06/20(金) 16:37 ID:Ku9V5yy2
119さんの死んだふりについて。
 死んだふりってsit(座る)に値1つ足しただけで実現しませんでしたっけ?
 死んだふりというより、これって死んでませんか?(^^;

123119:2003/06/21(土) 17:28 ID:CYCFqiYQ
>>122
ごめんなさい、ただdieとaliveを利用しただけでしたので・・・><
他のスキルも無駄があると思いますのでどなたか直していただけるとうれしいです
あぷろだ2にskill_dbをアップしたのですが、おそらくWeiss033のものよりも古いものを使用していますので、
プリーストのところだけ使用してください
common.pas
SendCSkillList()
{修正}
if (not tc.Skill[i].Data.Job[tc.Job]) and (not tc.Skill[i].Card) and (not DisableSkillLimit) then continue;
if ((290 < i) and (i < 304)) then Continue;
{修正ココまで}
のところを
{修正}
if (not tc.Skill[i].Data.Job[tc.Job]) and (not tc.Skill[i].Card) and (not DisableSkillLimit) and ((i<>12) or (tc.Job<>8)) then continue;
if ((290 < i) and (i < 304)) then Continue;
{修正ココまで}
にして
{アイテム製造修正ココまで}
のすぐあとに
if (tc.Job = 8) and (i = 12) then begin
tc.Skill[i].Data.ReqSkill[0] := 68;
tc.Skill[i].Data.ReqLV[0] := 4;
tc.Skill[i].Data.ReqSkill[1] :=70;
tc.Skill[i].Data.ReqLV[1] := 3;
end;
とすることでプリーストでSWが使用できます。

あとリザの回復計算は
dmg[0] := ((tc1.MAXHP * tl.Data1[MUseLV]) div 100) + 1;
だと思います

124119:2003/06/21(土) 17:33 ID:CYCFqiYQ
main.pasに
main
75: //グロリア
begin
tc1 := tc;
SkillProcessType := 5;
end;

CalcSkill()に
//グロリア(LUK+)
if Skill[75].Tick > Tick then begin
Bonus[5] := Bonus[5] + byte(Skill[75].Effect1);
end;
を追加することでグロリアが使用できます。
ただ、他のスキルもそうなのですが、詠唱時間がわからなかったため、skill_dbの値はエンジェと同じにしてます。

それからホーリーライトはボルト系のところに156を追加ではだめでしょうか?

125初心者スレ120:2003/06/21(土) 20:17 ID:cCrqqm/E
突っ込み一つ。
>if (tc.Job = 8) and (i = 12) then begin
>tc.Skill[i].Data.ReqSkill[0] := 68;
>tc.Skill[i].Data.ReqLV[0] := 4;
>tc.Skill[i].Data.ReqSkill[1] :=70;
>tc.Skill[i].Data.ReqLV[1] := 3;
>end;
これやると確かにプリが使えるようになりますが、逆にマジ系が使えなくなります。
スキルツリーについては現状の方式では矛盾が幾つか出るのでどうしようか悩み中。

126119:2003/06/22(日) 00:41 ID:HniCHt.A
>>初心者スレ120様
if (not tc.Skill[i].Data.Job[tc.Job]) and (not tc.Skill[i].Card) and (not DisableSkillLimit) and ((i<>12) or (tc.Job<>8)) then continue;
でマジシャンの場合を回避したつもりだったのですがだめでしょうか・・・

79: //マグヌス
begin
for j1 := 1 to 7 do begin
for i1 := 1 to 7 do begin
if ((i1 < 3) or (i1 > 5)) and ((j1 < 3) or (j1 > 5)) then Continue;
xy.X := (MPoint.X) -4 + i1;
xy.Y := (MPoint.Y) -4 + j1;
tn := SetSkillUnit(tm, PID, xy, Tick, $84, tl.Data2[MUseLV], tl.Data1[MUseLV] * 1600);
tn.CData := tc;
tn.MUseLV := MUseLV;
end;
end;
DecSP(tc, MSkill, MUseLV);
WFIFOW( 0, $0117);
WFIFOW( 2, MSkill);
WFIFOL( 4, PID);
WFIFOW( 8, 10);
WFIFOW(10, MPoint.X);
WFIFOW(12, MPoint.Y);
WFIFOL(14, 1);
SendBCmd(tm, xy, 18);
SkillProcessType := 0;
end;

TfrmMain.NPCAction()の$7f: //ファイアーウォール処理のあとに
$84: //マグヌス
begin
if ts1.view1 = 2 then m := 21
else m := ts1.Data.Element;
if (m mod 20 = 9) or ((ts1.Data.Race = 6) and (m <> 21)) then begin
//ダメージ算出
dmg[0] := tn.CData.MATK1 + Random(tn.CData.MATK2 - tn.CData.MATK1 + 1) * tn.CData.MATKFix div 100;
dmg[0] := dmg[0] * (100 - ts1.Data.MDEF) div 100; //MDEF%
dmg[0] := dmg[0] - ts1.Data.Param[3]; //MDEF-
if dmg[0] < 1 then dmg[0] := 1;
dmg[0] := dmg[0] * ElementTable[tn.CData.Skill[79].Data.Element][29] div 100;
if dmg[0] < 0 then dmg[0] := 0;
//ダメージパケ送信
WFIFOW( 0, $0114);
WFIFOW( 2, 18);
WFIFOL( 4, tn.ID);
WFIFOL( 8, ts1.ID);
WFIFOL(12, Tick);
WFIFOL(16, 0);
WFIFOL(20, ts1.Data.dMotion);
WFIFOW(24, dmg[0]);
WFIFOW(26, 1);
WFIFOW(28, 1);
WFIFOB(30, 4);
SendBCmd(tm, tn.Point, 31);
DamageProcess1(tm, tn.CData, ts1, dmg[0], Tick);
Dec(tn.Count);
if tn.Count = 0 then begin
DelSkillUnit(tm, tn);
end;
end;
end;
でマグヌスが使用できるのですが、わたしの理解不足でファイアーウォールの//ここの処理がうまくいくかどうか謎
のDec(k)以降の意味がよくわからなかったので処理が足りないかもしれません

127119:2003/06/22(日) 01:37 ID:HniCHt.A
書くの忘れちゃいました
skill_dbのマグヌスの持続時間を5,6,7,...,13,14にしないと長すぎてしまいますので〜
あとセンチュアリは表示はできるのですが、わたしには処理ができないです・・・
どこかのマスに人が入ったら全部のマスのカウントを減らして〜とかができませんでした><

12834:2003/06/22(日) 05:49 ID:ILgm5MaA
ツッコミを少々

for j1 := 1 to 7 do begin
for i1 := 1 to 7 do begin
if ((i1 < 3) or (i1 > 5)) and ((j1 < 3) or (j1 > 5)) then Continue;
xy.X := (MPoint.X) -4 + i1;
xy.Y := (MPoint.Y) -4 + j1;

これだと画面端でやるとサーバとまると思います

if (xy.X < 0) or (xy.X >= tm.Size.X) or (xy.Y < 0) or (xy.Y >= tm.Size.Y) then continue;
こんな感じで範囲外への設置を回避しないとだめです

//ダメージパケ送信
WFIFOW( 0, $0114);
WFIFOW( 2, 18);

ここも18だとFWhit時のエフェクトになるんで
79に修正ってところでしょうか

あと細かいことですが
hit処理が1回hit,ダメージはMATK*SkillLVという形ではなく
MATK*1の攻撃をディレイなくSkillLV回hitということにしてるので
弱めの敵が踏んだ場合に最大で1マスにて10匹処理できることになります

129初心者スレ120:2003/06/22(日) 07:05 ID:1XTMHwy.
Skill[i].Dataの中身SkillDBは、鯖に接続しているキャラ全部同じモノなんですよ。
なので条件分岐でマジ系を避けようともプリが居たらそれだけでマジ系が使えなくなります。
まあ個人で使う分にはいいのですが。

あとSkillDBやItemDB、MobDBはDatabase以外で書き換えてはいけません。
コレは定義なので。

130名無しさん:2003/06/22(日) 19:10 ID:HobETsmk
更なる突込みを
確かマグヌスの効果範囲って

□□■■■■□□
□□■■■■□□
■■■■■■■■
■■■■●■■■
■■■■■■■■
■■■■■■■■
□□■■■■□□
□□■■■■□□

じゃありませんでしたっけ?

for j1 := 1 to 8 do begin
for i1 := 1 to 8 do begin
if((i1 < 3) or (i1 > 6)) and ((j1 < 3) or <j1 > 6)) then continue;
if(xy.X < 0) or (xy.X >= tm.Size.X) or (xy.Y < 0) or (xy.Y >= tm.Size.Y) then continue;
xy.X := (tc.MPoint.X) -4 + i1;
xy.Y := (tc.MPoint.Y) -4 + j1;

って感じかな?

サンクチュアリに関しては
複数のNPCDataをひとつにまとめて〜のような処理をしないと
無理っぽいかなぁ

13134:2003/06/22(日) 20:42 ID:ILgm5MaA
>>130
それは表示上のことであって
119氏の配置で正解です

サンクチュアリは
持続回数、持続時間をカウントするマスターユニットのようなものを用意してやる必要性
個々のPC,MOBにhitディレイを用意してやる必要性があるため
おそらくQMとならんで実装が困難&他の部分に与える影響の大きいスキルの1つだと思います

132130:2003/06/22(日) 23:15 ID:HobETsmk
カン違いしてました
ゴメンナサイ_| ̄|○

で・・・新2次職スキルについてですが

クルセのグランドクロスを実装しようにも
相手選択のアクティブスキルとしてなら実装できるのですが
どうにも本来(?)の自分中心のスキルとして(キリエやアンゼの如く)
実装しようとするとスキルエフェクトが表示されません
ってことは敵選択指定のスキルってことですよね?

思い込み&数枚のSSからスキルを実装しようというにも限界が_| ̄|....○
どこかに韓国サクライ情報がのってるいいサイトないかなぁ

133119:2003/06/22(日) 23:53 ID:N0534wRk
>>初心者スレ120様
はう、SkillDB共通なのですね・・・
接続者ごとにロードされてるものと思ってましたTT
66: //イムポシティオ_マヌス
begin
if MTargetType = 0 then begin
MMode := 0;
Exit;
end;
SkillProcessType := 3;
end;
とcommon.pas
//イムポシティオ_マヌス(ATK+)
if Skill[66].Tick > Tick then begin
ATK[0][3] := ATK[0][3] + byte(Skill[66].Effect1);
ATK[1][3] := ATK[1][3] + byte(Skill[66].Effect1);
end;
を追加でイムポシティオ_マヌスです。
ATKパラメータがよくわからなかったので3に追加してしまいました
不都合があれば修正お願いします〜
サンクはTick mod 100=0で約1秒ごとのダメージと対象NPC周辺の$83NPCすべてのカウントを減らすことで
敵に対する処理はそこそこマネできたのですが、これ以上できませんでした・・・

134119:2003/06/23(月) 00:11 ID:ZBiPzx3M
>>34
hit処理はホントのマグヌスが当たったところを見たことなかったので情報サイトの説明を勝手に解釈して処理してしまいましたf^_^;
あとで修正します〜
>>130
新2次職スキル実装がんばってくださいね
未だにパケットの意味があんまり理解できていないわたしは絶対むりですね。。
45: //集中力向上
に155を追加して
common.pas
//大声歌唱(STR+)
if Skill[155].Tick > Tick then begin
Bonus[0] := Bonus[0] + byte(Skill[155].Effect1);
end;
を追加で大声歌唱です。
二つとも他のスキルと処理変わらないので載せるようなものではないですけど・・

1350PSC0/pc:2003/06/23(月) 10:26 ID:U777tjP2
U0x006 をベースにペットを実装してみました。
あぷろだ1の60に上げさせていただきます。
Delphi を触るのもエミュ鯖を触るのも初めてなので、至らないところは多々あると思います。叱責大歓迎。

136名無しさん:2003/06/23(月) 16:48 ID:/d/TsPkk
とりあえず乙カレー(=゚ω゚)ノ様です

137code:2003/06/23(月) 23:04 ID:gdspajRk
U0x006をベースに
 アスペルシオ(見た目だけ?…とりあえず)
 キリエエルレイソン(効果自体がちょっと怪しいです…)
 聖体降臨(効果は出るんですが…エフェクトがまだ…)
 マニピカット(見た目だけ?…とりあえず)
追加してみました(汗
あぷろだ1の62に上げさせていただきましたm(__)m

1380PSC0/pc:2003/06/24(火) 12:00 ID:E5BaMyV.
追記
現在、ペットの捕獲は必ず成功するようになっています。
変えたい場合は、Game.pas の、受信パケ $019f を処理している所を適当に書き換えてください。
個人的には、リアルラック依存ではなく、キャラの LUK やモンスターの HP 減少などによって、捕獲率が変動すると面白いと思いますが。

それと、Delphi についてもエミュ鯖についてもまったくの無知で、なんだかわからないままにいじってしまった部分もあるので、
一言いただけると嬉しいです。
厚かましいお願いではありますが、どなたかお時間に余裕がある方、添削などしていただけると、次への励みにもなると思います。
どうか、よろしくお願いいたします。

139初心者スレ120:2003/06/26(木) 23:23 ID:g.zmfvL6
とりあえずバク報告はバグ報告スレ、スキル追加等は技術スレで。
…私もよく忘れますが。

[U0x007c]あぷろだ1:063.zip
・状態異常関連を修正
・あぷろだ1:057.zip 34さんのカート機能の追加修正
・HPR回復公式を修正
・SPR回復公式を技術スレ229のものに修正
・ルート機能の実装
・取り巻き半実装
・スキル関連を手続き・関数化等いろいろと
・Lovの修正
・UP報告スレのスキル機能の取り込み(一部のみ)

コードが上手くまとまらないので途中ですが上げました。
これ以上やってるとコードがさらにグチャグチャになりそうだったので。

140初心者スレ120:2003/06/26(木) 23:28 ID:g.zmfvL6
>>139 に追加。
・Script関連をD-Weiss Alpha.$0100 fix5のものに差し替え。

141初心者スレ120:2003/06/26(木) 23:30 ID:g.zmfvL6
>>139 にさらに追加。
・Script関連の差し替えにより一部プロパティ名をD系のものに変更。

うー。まだ書き忘れてそうな気が…。

1420PSC0/pc:2003/06/27(金) 00:43 ID:./seKGdg
ぺっとはかなりぐちゃぐちゃにしてしまって申し訳ないです。
自分で言うのもなんですが、取り込みは慎重に行っていただいたほうがいいかもしれません。
何せ、自分で書いたコードの意味がわかってなかったりしますので…

143code:2003/06/28(土) 10:59 ID:EQHGCClw
UO0x007cベースに
 0PSC0/pcさんのキューペット
プリスキル
 ホーリーライト
 イムポシティオ_マヌス
 アスペルシオ
 キリエエルレイソン(旧版)
 聖体降臨(未完成)
 マニピカット

商人スキル
 大声歌唱

の追加をしてみました。

※ただし、私もコードを完全に理解しているわけではないので、バグやミスもあるかも・・・・。
というわけで、危険物扱いにさせていただきますね(汗
あぷろだ2に[weiss037.zip]で上げさせていただきました。
(ちゃれんじゃーな方のみ推奨っぽ(汗

144名無しさん:2003/07/02(水) 15:47 ID:u8N4Ji5c
diffでの差分じゃなくてexeのパッチ上げてる人は何でですか?

145119(バージョンスレ):2003/07/02(水) 22:34 ID:vAsiUZZE
精錬NPC差分汚くてごめんなさい
main.pas
121: //FT
begin
xy.X := MPoint.X;
xy.Y := MPoint.Y;
WFIFOW( 0, $0117);
WFIFOW( 2, MSkill);
WFIFOL( 4, ID);
WFIFOW( 8, MUseLV);
WFIFOW(10, MPoint.X);
WFIFOW(12, MPoint.Y);
WFIFOL(14, 1);
SendBCmd(tm, xy, 18);
SetSkillUnit(tm, ID, xy, Tick, $96, MUseLV, tl.Data2[MUseLV] * 1000, tc);
SkillProcessType := 0;
end;

$96: //FT
begin
for i1 := -1 to 1 do begin
for j1 := -1 to 1 do begin
c := 0;
while (c >= 0) and (c < tm.Block[tn.Point.X div 8 + i1][tn.Point.Y div 8 + j1].Mob.Count) do begin
ts1 := tm.Block[tn.Point.X div 8 + i1][tn.Point.Y div 8 + j1].Mob.Objects[c] as TMob;
if ts1 = nil then begin
Inc(c);
continue;
end;
if (abs(ts1.Point.X - tn.Point.X) < 2) and (abs(ts1.Point.Y - tn.Point.Y) < 2) then begin
tc1 := tn.CData;
tl := tc1.Skill[121].Data;
dmg[0] := (tc1.Param[4] + 75) * (100 + tc1.Param[3]) div 100;
dmg[0] := dmg[0] * tn.Count;
if ts1.Stat1 = 2 then m := 21
else m := ts1.Data.Element;
dmg[0] := dmg[0] * ElementTable[tl.Element][m] div 100;
if dmg[0] < 0 then dmg[0] := 0; //魔法攻撃での回復は未実装
if Random(100) < tn.CData.Skill[121].Data.Data2[tn.Count] then begin
if (ts1.Stat1 <> 2) then begin
ts1.nStat := 2;
ts1.BodyTick := Tick + tc1.aMotion;
end;
end;
tn.Tick := Tick;
WFIFOW( 0, $0114);
WFIFOW( 2, 121);
WFIFOL( 4, tn.ID);
WFIFOL( 8, ts1.ID);
WFIFOL(12, Tick);
WFIFOL(16, tc1.aMotion);
WFIFOL(20, ts1.Data.dMotion);
WFIFOW(24, dmg[0]);
WFIFOW(26, tn.Count);
WFIFOW(28, 1);
WFIFOB(30, 5);
SendBCmd(tm, tn.Point, 31);
DamageProcess1(tm, tc1, ts1, dmg[0], tick);
if ts1.HP = 0 then dec(c);
end;
inc(c);
end;
end;
end;
end;

を追加することでフリージングトラップが使用できます
ダメージ、確率、NPCの番号などは適当です(本物見たことないので)

146code:2003/07/03(木) 13:03 ID:VdRk4kRY
144>>
すみません、Cygwin上でdiffで生成したファイルをwindows上でパッチしたら
正確にあたらなかったもので…。
2.3、パッチプログラムを試してみたんですがやっぱりダメだったので。
wdiffでのsfxパッチ上げてました…。exeでパッチ上げてるのはただそれだけの理由なんです。

147スクリプトスレ144:2003/07/03(木) 16:17 ID:xWPVsaBM
U0x007cベースであんま役に立たないと思いますが以下のdiffをあげときました。
NPC Scriptからoption, jobの変更を行った場合、変更が表示に反映されていなかったのを修正(したつもり)
iniから#コマンドをGM ID以外に許すかどうか設定出来るようにした。
iniから新規キャラクター作成時にスタート地点、セーブポイントを変更出来るようにした。

148スクリプトスレ144:2003/07/03(木) 16:18 ID:xWPVsaBM
>>147
うあ、すんません。うぷろだ1の67です。Λ||Λ

149119(バージョンスレ):2003/07/03(木) 22:14 ID:hs0WNdt2
>>初心者スレ120様
7cから状態変化にもTickがあったのですね〜
見落としていました・・・
修正ありがとうございます♪
16: //SC
begin
if MTargetType = 1 then begin
MMode := 0;
Exit; //PK不可
end;
//ダメージ算出
dmg[0] := MATK1 + Random(MATK2 - MATK1 + 1) * MATKFix div 100 * ( MUseLV + 100 ) div 100;
dmg[0] := dmg[0] * (100 - ts.Data.MDEF) div 100; //MDEF%
dmg[0] := dmg[0] - ts.Data.Param[3]; //MDEF-
if dmg[0] < 1 then dmg[0] := 1;
if ts.Stat1 = 2 then k1 := 21
else k1 := ts.Data.Element;
dmg[0] := dmg[0] * ElementTable[tl.Element][k1] div 100;
if dmg[0] < 0 then dmg[0] := 0; //魔法攻撃での回復は未実装
//パケ送信
SendCSkillAtk1(tm, tc, ts, Tick, dmg[0], 1);
if Random(100) < tl.Data1[MUseLV] then begin
if (ts.Stat1 <> 1) then begin
ts.nStat := 1;
ts.BodyTick := Tick + tc.aMotion;
end;
end;
SkillProcessType := 1;
end;
でストーンカース追加です

150119(バージョンスレ):2003/07/03(木) 22:15 ID:hs0WNdt2
72: //リカバリー
begin
if MTargetType = 1 then begin
MMode := 0;
Exit; //PK不可
end else begin
if ts.Stat1 <> 2 then begin
k1 := ts.Data.Element;
if k1 mod 20 = 9 then begin
ts.ATarget := ID;
ts.ARangeFlag := false;
ts.AData := tc;
//パケ送信
WFIFOW( 0, $011a);
WFIFOW( 2, MSkill);
WFIFOW( 4, MUseLV);
WFIFOL( 6, MTarget);
WFIFOL(10, ID);
WFIFOB(14, 1);
SendBCmd(tm, ts.Point, 15);
SkillProcessType := 0;
//対アンデッド
if Boolean((1 shl 4) and ts.Stat2) then begin
ts.HealthTick[4] := ts.HealthTick[4] + 30000; //延長
end else begin
ts.HealthTick[4] := Tick + tc.aMotion;
end;
end;
end;
end;
end;
でリカバリーが追加されます
モンスターにのみ使用可能です

151119(バージョンスレ):2003/07/03(木) 22:18 ID:hs0WNdt2
76: //レックスデビーナ
begin
if MTargetType = 1 then begin
MMode := 0;
Exit; //PK不可
end else begin
if ts.Stat1 <> 2 then begin
ts.ATarget := ID;
ts.ARangeFlag := false;
ts.AData := tc;
//パケ送信
WFIFOW( 0, $011a);
WFIFOW( 2, MSkill);
WFIFOW( 4, MUseLV);
WFIFOL( 6, MTarget);
WFIFOL(10, ID);
WFIFOB(14, 1);
SendBCmd(tm, ts.Point, 15);
SkillProcessType := 0;
//対アンデッド
if Boolean((1 shl 2) and ts.Stat2) then begin
ts.HealthTick[2] := ts.HealthTick[2] + 30000; //延長
end else begin
ts.HealthTick[2] := Tick + tc.aMotion;
end;
end;
end;
end;
でレックス_ディビーナ追加できます
これでプリーストのスキルは結構使用できるようになったと思います

152119(バージョンスレ):2003/07/03(木) 22:22 ID:hs0WNdt2
レスすごく増えてしまいますが・・・
120: //フラッシャー
begin
xy.X := MPoint.X;
xy.Y := MPoint.Y;
WFIFOW( 0, $0117);
WFIFOW( 2, MSkill);
WFIFOL( 4, ID);
WFIFOW( 8, MUseLV);
WFIFOW(10, MPoint.X);
WFIFOW(12, MPoint.Y);
WFIFOL(14, 1);
SendBCmd(tm, xy, 18);
SetSkillUnit(tm, ID, xy, Tick, $96, MUseLV, tl.Data2[MUseLV] * 1000, tc);
SkillProcessType := 0;
end;

$96: //フラッシャー
begin
for i1 := -1 to 1 do begin
for j1 := -1 to 1 do begin
c := 0;
while (c >= 0) and (c < tm.Block[tn.Point.X div 8 + i1][tn.Point.Y div 8 + j1].Mob.Count) do begin
ts1 := tm.Block[tn.Point.X div 8 + i1][tn.Point.Y div 8 + j1].Mob.Objects[c] as TMob;
if ts1 = nil then begin
Inc(c);
continue;
end;
if (abs(ts1.Point.X - tn.Point.X) < 2) and (abs(ts1.Point.Y - tn.Point.Y) < 2) then begin
tc1 := tn.CData;
tl := tc1.Skill[121].Data;
dmg[0] := (tc1.Param[4] + 75) * (100 + tc1.Param[3]) div 100;
dmg[0] := dmg[0] * tn.Count;
if ts1.Stat1 = 2 then m := 21
else m := ts1.Data.Element;
dmg[0] := dmg[0] * ElementTable[tl.Element][m] div 100;
if dmg[0] < 0 then dmg[0] := 0; //魔法攻撃での回復は未実装
if Random(100) < tn.CData.Skill[121].Data.Data2[tn.Count] then begin
if Boolean((1 shl 4) and ts1.Stat2) then begin
ts1.HealthTick[4] := ts1.HealthTick[4] + 30000; //延長
end else begin
ts1.HealthTick[4] := Tick + tc1.aMotion;
end;
end;
tn.Tick := Tick;
WFIFOW( 0, $0114);
WFIFOW( 2, 120);
WFIFOL( 4, tn.ID);
WFIFOL( 8, ts1.ID);
WFIFOL(12, Tick);
WFIFOL(16, tc1.aMotion);
WFIFOL(20, ts1.Data.dMotion);
WFIFOW(24, dmg[0]);
WFIFOW(26, tn.Count);
WFIFOW(28, 1);
WFIFOB(30, 5);
SendBCmd(tm, tn.Point, 31);
DamageProcess1(tm, tc1, ts1, dmg[0], tick);
if ts1.HP = 0 then dec(c);
end;
inc(c);
end;
end;
end;
end;
でハンターのフラッシャーを追加です

153119(バージョンスレ):2003/07/03(木) 22:24 ID:hs0WNdt2
119: //SM
begin
xy.X := MPoint.X;
xy.Y := MPoint.Y;
WFIFOW( 0, $0117);
WFIFOW( 2, MSkill);
WFIFOL( 4, ID);
WFIFOW( 8, MUseLV);
WFIFOW(10, MPoint.X);
WFIFOW(12, MPoint.Y);
WFIFOL(14, 1);
SendBCmd(tm, xy, 18);
SetSkillUnit(tm, ID, xy, Tick, $95, MUseLV, tl.Data2[MUseLV] * 1000, tc);
SkillProcessType := 0;
end;

$95: //SM
begin
for i1 := -1 to 1 do begin
for j1 := -1 to 1 do begin
c := 0;
while (c >= 0) and (c < tm.Block[tn.Point.X div 8 + i1][tn.Point.Y div 8 + j1].Mob.Count) do begin
ts1 := tm.Block[tn.Point.X div 8 + i1][tn.Point.Y div 8 + j1].Mob.Objects[c] as TMob;
if ts1 = nil then begin
Inc(c);
continue;
end;
if (abs(ts1.Point.X - tn.Point.X) < 2) and (abs(ts1.Point.Y - tn.Point.Y) < 2) then begin
tc1 := tn.CData;
tl := tc1.Skill[121].Data;
dmg[0] := (tc1.Param[4] + 75) * (100 + tc1.Param[3]) div 100;
dmg[0] := dmg[0] * tn.Count;
if ts1.Stat1 = 2 then m := 21
else m := ts1.Data.Element;
dmg[0] := dmg[0] * ElementTable[tl.Element][m] div 100;
if dmg[0] < 0 then dmg[0] := 0; //魔法攻撃での回復は未実装
if Random(100) < tn.CData.Skill[121].Data.Data2[tn.Count] then begin
if (ts1.Stat1 <> 4) then begin
ts1.nStat := 4;
ts1.BodyTick := Tick + tc1.aMotion;
end;
end;
tn.Tick := Tick;
WFIFOW( 0, $0114);
WFIFOW( 2, 119);
WFIFOL( 4, tn.ID);
WFIFOL( 8, ts1.ID);
WFIFOL(12, Tick);
WFIFOL(16, tc1.aMotion);
WFIFOL(20, ts1.Data.dMotion);
WFIFOW(24, dmg[0]);
WFIFOW(26, tn.Count);
WFIFOW(28, 1);
WFIFOB(30, 5);
SendBCmd(tm, tn.Point, 31);
DamageProcess1(tm, tc1, ts1, dmg[0], tick);
if ts1.HP = 0 then dec(c);
end;
inc(c);
end;
end;
end;
end;
でサンドマン追加です。
あとフリージングトラップは$97っぽいです

154119(バージョンスレ):2003/07/03(木) 22:40 ID:hs0WNdt2
ワナを使用して1セルにたくさんのモンスターがいるときに攻撃をしていると
無限ループに入ってしまうようなのですが、原因がちょっとわかっていません><
わたしが確認したのはアングルスネアでですが、どなたか修正してくださるとうれしいです
$91: //AS
begin
if tn.Count > 0 then begin
for i1 := -1 to 1 do begin
for j1 := -1 to 1 do begin
c := 0;
while (c >= 0) and (c < tm.Block[tn.Point.X div 8 + i1][tn.Point.Y div 8 + j1].Mob.Count) do begin
ts1 := tm.Block[tn.Point.X div 8 + i1][tn.Point.Y div 8 + j1].Mob.Objects[c] as TMob;
if (ts1 = nil) then begin
Inc(c);
continue;
end;
if (abs(ts1.Point.X - tn.Point.X) < 2) and (abs(ts1.Point.Y - tn.Point.Y) < 2) then begin
tc1 := tn.CData;
if (ts1.Stat1 <> 5) then begin
ts1.nStat := 5;
ts1.BodyTick := Tick + tc1.aMotion;
end;
tn.Count := 0;
tn.Tick := Tick;
ts1.Point := tn.Point;
WFIFOW(0, $0088);
WFIFOL(2, ts1.ID);
WFIFOW(6, ts1.Point.X);
WFIFOW(8, ts1.Point.Y);
SendBCmd(tm, ts1.Point, 10);
end;
inc(c);
end;
end;
end;
if tn.Count = 0 then begin
DelSkillUnit(tm, tn);
end;
end;
end;

でアングルスネアが使用できます
あと、
DamageCalc1()の最後の方の状態1処理を
if ((ts.Stat1 = 2) or (ts.Stat1 = 4)) then begin
DamageProcess1()の最初のところの状態1処理を
if ((ts.Stat1 = 2) or (ts.Stat1 = 4)) and isBreak then begin
その下の方DebugOut.Lines.Add('(*゚∀゚)ノチンチコーレ!');の上を
else if (ts.pcnt <> 0) and (ts.Stat1 <> 5) then begin
cmdStartClick()の//状態1では行動不可のところを
if (ts.Stat1 <> 0) and (ts.Stat1 <> 5) then Continue;
if ts.Stat1 <> 5 then MobAI(tm,ts,Tick) else pcnt := 0;
としてください

155119(バージョンスレ):2003/07/03(木) 22:45 ID:hs0WNdt2
以上のスキルを使用するには
16,MG_STONECURSE,ストーンカース,1,10,25,24,23,22,21,20,19,18,17,16,,716,1000,,,9,2,24,28,32,36,40,44,48,52,56,60,30,30,30,30,30,30,30,30,30,30,,,66052,,,,,,,,,,,,,,,,,,,,,
72,PR_STRECOVERY,リカバリー,16,1,5,,,,,,,,,,,,,,,9,,,,,,,,,,,,,,,,,,,,,,,,256,,,,,,,,,,,,,,,,,,,,,
76,PR_LEXDIVINA,レックス_ディビーナ,1,10,20,20,20,20,20,18,16,14,12,10,,,,,,9,,30,35,40,45,50,55,60,60,60,60,,,,,,,,,,,,,256,24,1,,,,,,,,,,,,,,,,,,,
118,HT_SHOCKWAVE,ショックウェーブ_トラップ,2,5,45,45,45,45,45,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2048,117,1,,,,,,,,,,,,,,,,,,,
119,HT_SANDMAN,サンドマン,2,5,25,25,25,25,25,,,,,,,,,,,1,,150,120,90,60,30,,,,,,38,41,44,47,50,,,,,,,,2048,120,1,,,,,,,,,,,,,,,,,,,
120,HT_FLASHER,フラッシャー,2,5,12,12,12,12,12,,,,,,,,,,,1,,150,120,90,60,30,,,,,,38,41,44,47,50,,,,,,,,2048,115,1,,,,,,,,,,,,,,,,,,,
121,HT_FREEZINGTRAP,フリージング_トラップ,2,5,10,10,10,10,10,,,,,,,,,,,1,1,150,120,90,60,30,,,,,,38,41,44,47,50,,,,,,,,2048,120,1,,,,,,,,,,,,,,,,,,,
122,HT_BLASTMINE,ブラスト_マイン,2,5,10,10,10,10,10,,,,,,,,,,,1,3,1,1,1,1,1,,,,,,10,8,6,4,2,,,,,,,,2048,116,1,119,1,121,1,,,,,,,,,,,,,,,

156119(バージョンスレ):2003/07/03(木) 22:48 ID:hs0WNdt2
123,HT_CLAYMORETRAP,クレイモアー_トラップ,2,5,15,15,15,15,15,,,,,,,,,,,1,1,1,1,1,1,1,,,,,,20,40,60,80,100,,,,,,,,2048,118,1,122,1,,,,,,,,,,,,,,,,,
124,HT_REMOVETRAP,リムーブ_トラップ,2,1,5,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,133120,116,1,,,,,,,,,,,,,,,,,,,
125,HT_TALKIEBOX,トーキ_ボックス,2,1,1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2048,118,1,124,1,,,,,,,,,,,,,,,,,
130,HT_DETECTING,ディテクティング,4,4,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,2048,45,1,127,1,,,,,,,,,,,,,,,,,
131,HT_SPRINGTRAP,スプリング_トラップ,1,5,10,10,10,10,10,,,,,,,,,,,8,,,,,,,,,,,,,,,,,,,,,,,,2048,124,1,127,1,,,,,,,,,,,,,,,,,
が必要です
必要でないものも多いですが・・・
たくさんレス書いてしまってごめんなさい
この修正だとスタンや石化だと攻撃されてもそのままなのですが本当はどうなのでしょうか?

157code:2003/07/04(金) 11:15 ID:fqn2WsXQ
119さん
 早速、取り込ませていただきました。
 フリージングトラップとフラッシャーのラベルが
 $96で重複しているようですが、これは良いのでしょうか?

158code:2003/07/04(金) 11:18 ID:fqn2WsXQ
あ、すみません、もうかかれてましたね(汗
板汚しでしたm(__)m

159code:2003/07/04(金) 12:11 ID:fqn2WsXQ
UO0x007cベースにいろいろ取り込ませていただきましたm(__)m

※UO0x007cに対してのパッチです。
 0PSC0/pcさんのキューペット

アーチャースキル
 集中力向上

アコスキル
 ホーリーライト

シーフスキル
 石投げ

マジシャンスキル
 ストーンカース[119さん作]

ウィザードスキル
 メテオストーム(未完成)
 ストームガスト(未完成)

ブラックスミス
 ウェポンパーフェクション
 アドレナリンラッシュ
 オーバートラスト(未調整)
 マキシマイズパワー

プリスキル
 ホーリーライト
 イムポシティオ_マヌス [119さん作](65さんの指摘を反映)
 グロリア [119さん作](65さんの指摘を反映)
 リカバリー [119さん作]
 レックスデビーナ [119さん作]
 アスペルシオ
 キリエエルレイソン(旧版)
 聖体降臨(未完成)
 マニピカット

商人スキル
 大声歌唱 [119さん作]

ハンタースキル
 フリージングトラップ[119さん作]
 サンドマン[119さん作]
 フラッシャー[119さん作]
 ブラストマイン
 トーキーボックス

アサシンスキル
 グリムトゥース(未完成)
 エンチャントポイズン
 ポイズンリアクト
 ベノムダスト
 ベノムスプラッシャー

クルセイダー
 ホーリークロス[名無しさん作]

の追加をしてみました。いろいろやりすぎてミスもかなりありそうです。
バグやミス、記述漏れを見つけた方、修正お願いします。
あぷろだ2の[weiss047.zip]に上げさせていただきました。

※結構あいまいに書いた部分があったりするのでやっぱり危険物扱いかな(w
※人柱になってもいいよって人だけやってみてください(激汗

160名無しさん:2003/07/04(金) 13:27 ID:su9whBHA
>>159
おつかれさま…ですが
どういう環境でつくったパッチなのでしょうか。
0x0019からUx007cにしたものを使ってるのですがCRCエラーがでるんですよ
適用できないものでもかまわないのでdiff形式で出してもらえませんか?お願いします

161名無しさん:2003/07/04(金) 14:10 ID:OZlMf4VA
>>159
お疲れ様です
うちもcommon.pasでCRCエラーでますね。
旧版のweiss37ではCRCエラーは出なかったのですが…

それと集中力向上はかなり前から使えて効果もあったんですが実装済みじゃなかったのかな^^;

162名無しさん:2003/07/04(金) 14:48 ID:3Bsn9TuE
うーん

てか、本人以外であたった人いる?

163unix上でソースのみ追ってる人:2003/07/04(金) 15:04 ID:376Q9xXg
元々diffなんて、機械的にあたらなければ手動でパッチ可能なもんなんだし
exe配布なんてイヤガラセ以外なにものにも感じず。

164名無しさん:2003/07/04(金) 17:01 ID:fO7Qypys
Common.pasでエラーでますね・・・

MD5も一緒だからこれも作者の方の問題かな・・・・

165CygMaster:2003/07/04(金) 17:27 ID:tkhQsRMo
exeのパッチですか・・・。

何故DIFFじゃないのだろう?・・・

166名無しさん:2003/07/04(金) 18:06 ID:arWHcNJs
便乗ですみませんが、できればdiffはunified形式(diff -u)だとありがたいです。
修正しているソースにもパッチあたるし、見やすいので。

167名無しさん:2003/07/04(金) 18:36 ID:376Q9xXg
>>166
以前それ書いたら、diffで配ってる理由が
落して即実行タイプな人間を避けるのが理由だから
読み易くなるのなんて却下って言われちったよ。
勘弁して。

168名無しさん:2003/07/04(金) 18:57 ID:gtith2/o
何故exeかって作者が説明書いてるんだが・・
ログすら読まん馬鹿が多すぎるな此処は・・

169名無しさん:2003/07/04(金) 19:06 ID:fCsDM8q6
>168
とりあえずログ読む前にルールに目を通したほうがいいよ
ここは2chじゃないんだから


新着レスの表示


名前: E-mail(省略可)

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

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

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

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