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

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

1名無しタソ:2003/03/19(水) 15:04 ID:H6iFBgf2
無いようなので立ててみました。

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じゃないんだから

170名無しさん:2003/07/04(金) 19:07 ID:tkhQsRMo
>>168

ログに書いてあるのは読みましたが・・・・

「DiffだとWinでPATCH出来なかった」ってヤツでしょ?

171名無しさん:2003/07/04(金) 19:09 ID:gtith2/o
ログすら読まないんで嫌がらせだとか何でとか
diff形式にしろとか書き込んでるイカれた人間にマナーなんて認識あるのか?
つーか、2chにはまってるのはお前だろ、俺は興味無いって

172名無しさん:2003/07/04(金) 19:22 ID:fCsDM8q6
>171
はて、俺はdiff形式にしろなんて一言も言ってませんが

たしかに>163の嫌がらせって発言については同感ですね。
パッチあげた作者に失礼ですよ。

>つーか、2chにはまってるのはお前だろ、俺は興味無いって
それは俺に対してかな?まぁ興味が無いのは俺も同じなわけですが


これ以上やっても、無駄なんで失礼します

173名無しさん:2003/07/04(金) 19:27 ID:OZlMf4VA
興味あるないは関係なくすぐ煽り入れる人落ち着きましょう(つД`)

174名無しさん:2003/07/04(金) 20:15 ID:B5Cx3klo
いいんじゃん
揚げ足取りやめようよ
(*゚∀゚)ノチンチコーレ

175名無しさん:2003/07/04(金) 20:24 ID:376Q9xXg
>163で書いてるのは、patchがあたらんかったってログを読んだ上でだよ。
diffなら機械的にあてられなかったんなら、最悪手動でパッチあてりゃ
いいだろうと書いてるの。

.exeの場合動かせなかったりエラーが発生したらそれまでだろうが。

176名無しさん:2003/07/04(金) 20:26 ID:gtith2/o
>172お前がdiff形式にしろと書いてるなんざ書いてないだろ、ギャグに走るな(笑
つーか、興味無いなら何故2chの話題ふるんだ?お前の巣だから誘ってるのかい?

177名無しさん:2003/07/04(金) 20:27 ID:0KAfN12I
と、とりあえずexe形式でCRCエラーが出なかった人はいるの?

178名無しさん:2003/07/04(金) 20:45 ID:tkhQsRMo
>>177

Common.pasでCRCエラーでした。

179初心者スレ120:2003/07/04(金) 20:55 ID:2bGc5pRM
ポツリ一言。
exeパッチだとソースが同じでもコンパイルの仕方が違うとCRCエラーが出たりするんですよね。

さてと、diffあげろーと書くがいますが、一応今まで出ているものを取り込んでいるものなので
自分で実装できるはずです。
がんばりましょう。
めんどくせって人は待ちましょう。
そのうち私が取り込んでdiff出しますので。

あと、ここはアップ報告スレであって議論スレ等ではありませんよ。
続きはバグ報告か雑談で。

…半分寝ぼけているんで間違ったことかいてたらすません。

180名無しさん:2003/07/04(金) 21:06 ID:PzxYhJZc
自分で組み込めないくせにパッチ作者に文句言うクレクレ厨は放置で。

181Cardinal:2003/07/04(金) 23:25 ID:DapNlOHM
>>174
(*゚∀゚)ノチンチコーレ
なんだかとても懐かしかった。

最近何もしてない分際でこういうことを言うのはアレなんですが、
コードを書いたりデータを用意したりしてそれを公開して下さる方々は、
皆さん善意でやってます。給料が出てるわけじゃありません。
感謝こそすれど、そこに注文をつけたりというのはどうかなと。
#勿論、注文要望を聞く聞かないはコードを書いた方の自由ですけど。

182名無しさん:2003/07/04(金) 23:47 ID:DUFgWwvA
code氏が自分で作った部分に関してはここで一度も出ていないので
自分で取り込むためにコードが見たい。
exe版パッチではどうにもならないからせめてdiff形式でもいいからお願いします

これだけのことだったんですが
なんで荒れるんでしょうか。

183名無しさん:2003/07/05(土) 00:17 ID:jg9glRx2
クレクレには書かないと理解出来んか・・
彼が使用しているというWDiffっつうツールは
配布出来る差分は実行ファイルでしか吐き出せないんだよね、
DIFFファイルは書き出せないし
他のツールで作るとエラー吐くらしいのでDIFFで配れってのは無理な話だ。

集団でdiffにしろとか要望出す暇が有るなら皆で
エラー吐かないdiff作成ツールを教えてあげたらどうだい?
少しぐらい手を貸そうって思わんのかな・・
俺的にはwindiffがお勧めなわけだが

184削除しますた:削除しますた
削除しますた

185削除しますた:削除しますた
削除しますた

186名無しさん:2003/07/05(土) 00:45 ID:JEQgosEw
>>183
diffを作ったがうまく適用できない
したがってwdiffで配布した
という話なので
そのうまく適用できないものが見たいとお願いしたんです
人を貶める前にまず自分がちゃんと読解できてるのか、情報を集めるようにしてくださいよ

187名無しさん:2003/07/05(土) 00:49 ID:motzLncs
煽らない煽らない(;´Д`)
上手くあたらないと言う事はpatch.exeに問題があるんじゃないですかねむしろ・・・

とりあえず以降は
http://jbbs.shitaraba.com/computer/bbs/read.cgi?BBS=5402&amp;KEY=1047083238
雑談スレででも

188名無しさん:2003/07/05(土) 00:57 ID:jg9glRx2
>そのうまく適用できないものが見たい
後から書かれていない内容を書き足してまで揚げ足取るなって(笑

189名無しさん:2003/07/05(土) 01:54 ID:fP/dx3wY
>>186
さすがクレクレ厨、必死だな(;´Д`)

190名無しさん:2003/07/05(土) 02:03 ID:KL.IZEIo
>>189
>>187

191code:2003/07/05(土) 02:08 ID:VluUXKpk
はう…ごめんですm(_ _)m
ツールの扱いが不備なばかりにいろいろご迷惑をおかけして…

こちらで、動作テストの結果、半実装しているものに関して
バグがいろいろ出てしまったのでしばらくパッチアップ控えますね
windiff使ってみてるんですが…環境のせいですかねぇ…
うまく差分が取れないんですよ(;_; ショボーン
もう少しやってみます。

あ、あと書きミスったんですが047は037当てたあとにやってください。
こっちは私のコメントミスですm(_ _)m

192code:2003/07/05(土) 02:33 ID:VluUXKpk
とりあえず、diff出力うまくいかないんで…パッチアップ止めますね。
037に関してもdiffじゃ無いとダメとか、いらない議論の材料になってる
ようなので、公開止めときます。

まぁ、diffが出来次第アップする心積もりですが…
出来なかったら…パッチは出さないでおきますね。

193削除しますた:削除しますた
削除しますた

194名無しさん:2003/07/05(土) 03:25 ID:motzLncs
>>193
これリンクしちゃまずいかも・・・(;´Д`)
googleでいけるけどね・・・

195code:2003/07/05(土) 04:14 ID:VluUXKpk
名無しさんどうもです。
 やっぱり、うちの環境ではdiffは出来るけどパッチはあたらないという
 不思議な現象が出てますが。まぁ、一応diffとして出来たので上げときます。
 自分のところで戻せないものをUPするのは大変気が引けるのですが…。

 変更点は前のものと同じですが。止まったり桁あふれの関係で半実装のものは
 はずしました。

 前にも書きましたが
 ※結構あいまいに書いた部分があったりするのでやっぱり危険物扱いかな(w
 ※人柱になってもいいよって人だけやってみてください(激汗
 ※このパッチで起こった論争に関しては一切関与しませんのであしからず。

 あぷろだ2の[weiss044.zip]に上げさせていただきました。

196名無しさん:2003/07/05(土) 04:32 ID:motzLncs
>>195
おつかえさまですm(_ _)m
patch当て無事成功しました

ITEMDBは個人的には前のバルムンの馬鹿仕様も好きだったり(*´д`*)

197119(バージョンスレ):2003/07/05(土) 08:37 ID:bAFSrkxg
まだASで無限ループに入ってしまう原因がわかりません><
122: //BM
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, $8f, MUseLV, tl.Data2[MUseLV] * 1000, tc);
SkillProcessType := 0;
end;
と//ポータル発動前->発動後の任意の場所に
end else if tn.JID = $8f 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;
tl := tc1.Skill[116].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; //魔法攻撃での回復は未実装
tn.Tick := Tick;
WFIFOW( 0, $0114);
WFIFOW( 2, 116);
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;
DelSkillUnit(tm, tn);
追加でブラストマインが使用できます
ただ爆発のエモがわかりませんでした
あと時間が少し短いかも・・・

198119(バージョンスレ):2003/07/05(土) 08:39 ID:bAFSrkxg
123: //CT
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, $98, MUseLV, tl.Data2[MUseLV] * 1000, tc);
SkillProcessType := 0;
end;

$98: //CT
begin
for i1 := -2 to 2 do begin
for j1 := -2 to 2 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[116].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; //魔法攻撃での回復は未実装
tn.Tick := Tick;
WFIFOW( 0, $0114);
WFIFOW( 2, 123);
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;
でクレイモアトラップが使用できますが処理が違うかも・・・
相乗効果もできてないです

199119(バージョンスレ):2003/07/05(土) 08:41 ID:bAFSrkxg
87: //アイスウォール
begin
xy.X := MPoint.X - Point.X;
xy.Y := MPoint.Y - Point.Y;
if abs(xy.X) > abs(xy.Y) * 3 then begin
//横向き
if xy.X > 0 then b := 6 else b := 2;
end else if abs(xy.Y) > abs(xy.X) * 3 then begin
//縦向き
if xy.Y > 0 then b := 0 else b := 4;
end else begin
if xy.X > 0 then begin
if xy.Y > 0 then b := 7 else b := 5;
end else begin
if xy.Y > 0 then b := 1 else b := 3;
end;
end;
DebugOut.Lines.Add(Format('IceWall: (%d,%d) %d', [xy.X, xy.Y, b]));
//縦向き
xy.X := MPoint.X;
xy.Y := MPoint.Y;
tn := SetSkillUnit(tm, ID, xy, Tick, $8d, tl.Data2[MUseLV], tl.Data2[MUseLV] * 1000);
tn.CData := tc;
tn.MUseLV := MUseLV;
SetLength(bb, 1);
bb[0] := 2;
DirMove(tm, xy, b, bb);
tn := SetSkillUnit(tm, ID, xy, Tick, $8d, tl.Data2[MUseLV], tl.Data2[MUseLV] * 1000);
tn.CData := tc;
tn.MUseLV := MUseLV;
xy.X := MPoint.X;
xy.Y := MPoint.Y;
bb[0] := 6;
DirMove(tm, xy, b, bb);
tn := SetSkillUnit(tm, ID, xy, Tick, $8d, tl.Data2[MUseLV], tl.Data2[MUseLV] * 1000);
tn.CData := tc;
tn.MUseLV := MUseLV;
if (b mod 2) <> 0 then begin
//斜め向き
xy.X := MPoint.X;
xy.Y := MPoint.Y;
bb[0] := 3;
DirMove(tm, xy, b, bb);
tn := SetSkillUnit(tm, ID, xy, Tick, $8d, tl.Data2[MUseLV], tl.Data2[MUseLV] * 1000);
tn.CData := tc;
tn.MUseLV := MUseLV;
xy.X := MPoint.X;
xy.Y := MPoint.Y;
bb[0] := 5;
DirMove(tm, xy, b, bb);
tn := SetSkillUnit(tm, ID, xy, Tick, $8d, tl.Data2[MUseLV], tl.Data2[MUseLV] * 1000);
tn.CData := tc;
tn.MUseLV := MUseLV;
end;
WFIFOW( 0, $0117);
WFIFOW( 2, MSkill);
WFIFOL( 4, ID);
WFIFOW( 8, 10);
WFIFOW(10, MPoint.X);
WFIFOW(12, MPoint.Y);
WFIFOL(14, 1);
SendBCmd(tm, xy, 18);
SkillProcessType := 0;
end;

$8d: //アイスウォール
begin
//ノックバック処理
//if (dmg[0] > 0) and (ts1.Data.Race <> 1) then begin
SetLength(bb, 2);
bb[0] := 4;
bb[1] := 4;
xy := ts1.Point;
DirMove(tm, ts1.Point, ts1.Dir, bb);
//ブロック移動
if (xy.X div 8 <> ts1.Point.X div 8) or (xy.Y div 8 <> ts1.Point.Y div 8) then begin
with tm.Block[xy.X div 8][xy.Y div 8].Mob do begin
assert(IndexOf(ts1.ID) <> -1, 'MobBlockDelete Error');
Delete(IndexOf(ts1.ID));
end;
tm.Block[ts1.Point.X div 8][ts1.Point.Y div 8].Mob.AddObject(ts1.ID, ts1);
end;
ts1.pcnt := 0;
//パケ送信
WFIFOW(0, $0088);
WFIFOL(2, ts1.ID);
WFIFOW(6, ts1.Point.X);
WFIFOW(8, ts1.Point.Y);
SendBCmd(tm, ts1.Point, 10);
//end;
//Dec(tn.Count);
//if tn.Count = 0 then begin //ここの処理がうまくいくかどうか謎
//DelSkillUnit(tm, tn);
//Dec(k);
//c := -1;
//continue;
//end else begin
Dec(c);
//end;
end;
でウィザードのアイスウォールが使用できます
ただ壊すことができないのでプレイヤーには障害物として判定されません

200名無しさん:2003/07/05(土) 11:38 ID:EYhgasKs
codeさんおつかれさまです。
正常にあたりましたよー

ところで、当然skill_dbに実装されたスキルのデータ書かないといけませんよね・・・・。
119さんと名無しさんのスキルはdbの追加もしたので使えたみたいです。
よろしければ、codeさんの書いたスキルのdbを書き込んでくれませんか・・・?

201スクリプトスレ144:2003/07/05(土) 12:44 ID:TnzfW79E
[Weiss045.zip]にNPCスクリプトの追加を上げました。U0x007cからのdiffです。
皆さんがスキルの実装などやっておられる中、大した変更でなくて申し訳ないですが
NPCからスキルレベルの参照/変更が出来るようになっています。
レンジのチェックなどかなり手を抜いているので変な値入れると暴走すると思います。
それからあちこちで露呈させてしまってますがわたしはかなりへっぽこなので
取り扱いにはご注意を&自己責任でお願いします。

#NPCスクリプト関係って需要無いんですかね…?


新着レスの表示


名前: E-mail(省略可)

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

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

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

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