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

【Weiss】技術的なスレ

141135:2003/04/09(水) 00:15 ID:SJftE4SM
s/好/よ/

誤変換...
ごめんなさい。

142cardinal:2003/04/11(金) 00:08 ID:nCDkTmMg
>>140
スキルツリーデータ、ありがとうございます。
次のバージョンあたりでskill_dbに組み込みたいと思います。

143:2003/04/11(金) 04:16 ID:6fkOkvNY
>>141
好ヽ(´ー`)ノ

□[茜]デバッグコマンドに Zeny 増減機能と髪型・髪色変更機能を追加します
================================================================================
■コードベース: α0x0016
■最終更新日時: 2003-04-11 00:09

 #zeny <数値>: Zeny を数値分増減
 #hair <数値>: 髪型変更(0-20)
 #hcolor <数値>: 髪色変更(0-8)

行頭 + その行を追加
行頭 - その行を削除
行頭その他 元々存在する行(この行近傍にパッチしてください)
================================================================================
Game.pas
--------
■procedure sv3PacketProcess(Socket: TCustomWinSocket);
//------------------------------------------------------------------------------
end else if Copy(str, 1, 5) = 'unit ' then begin
//スキル効能地表示テスト
Val(Copy(str, 6, 256), j, k);
if (k <> 0) or (j < 0) or (j > 999) then continue;
SetSkillUnit(tm, tc.PID, Point(tc.Point.X + 1, tc.Point.Y - 1), timeGetTime(), j, 1, 10000);
+end else if Copy(str, 1, 5) = 'zeny ' then begin
+//zeny
+Val(Copy(str, 6, 256), i, k);
+if (k = 0) and (i<=10000000) and (tc.Zeny+i>0) then begin
+tc.Zeny := tc.Zeny + i;
+end;
+if (tc.Zeny > 999999999) then tc.Zeny := 999999999;
+WFIFOW(0, $00b1);
+WFIFOW(2, $0014);
+WFIFOL(4, tc.Zeny);
+Socket.SendBuf(buf, 8);
+end else if Copy(str, 1, 5) = 'hair 'then begin
+//髪型
+Val(Copy(str, 6, 256), i, k);
+if (k = 0) and (i>=0) and (i<=20) then begin
+tc.Hair:= i;
+WFIFOW(0, $00c3);
+WFIFOL(2, tc.PID);
+WFIFOB(6, 1);
+WFIFOB(7, i);
+SendBCmd(tm, tc.Point, 8);
+end;
+end else if Copy(str, 1, 7) = 'hcolor 'then begin
+//髪色
+Val(Copy(str, 8, 256), i, k);
+if (k = 0) and (i>=0) and (i<=8) then begin
+tc.HairColor:= i;
+WFIFOW(0, $00c3);
+WFIFOL(2, tc.PID);
+WFIFOB(6, 6);
+WFIFOB(7, i);
+SendBCmd(tm, tc.Point, 8);
+end;
+end;
//------------------------------------------------------------------------------

144:2003/04/11(金) 04:18 ID:6fkOkvNY
ちょっとアレゲなコードかもしれません。

□[茜]Weiss.ini の [Server] 節 IP にホスト名を使用可能にします
================================================================================
■コードベース: α0x0016
■最終更新日時: 2003-04-06 18:23

 サンプルコード丸写しのため、汚いコードになっていますが、お察しください。

行頭 + その行を追加
行頭 - その行を削除
行頭その他 元々存在する行(この行近傍にパッチしてください)
================================================================================
Main.pas
--------
【var 節】

■グローバル
//------------------------------------------------------------------------------
var
+DefaultServerIP:String;
//------------------------------------------------------------------------------

■procedure TfrmMain.FormCreate(Sender: TObject);
//------------------------------------------------------------------------------
var
+wVersionRequired: Word;
+WSData: TWSAData;
+Status: Integer;
+Name: array[0..255] of Char;
+HostEnt: PHostEnt;
+IP: PChar;
//------------------------------------------------------------------------------

【implementation 節】
■procedure TfrmMain.FormCreate(Sender: TObject);
//------------------------------------------------------------------------------
begin
+wVersionRequired := MAKEWORD(1, 1);
+Status := WSAStartup(wVersionRequired, WSData);
+if Status <> 0 then begin
+MessageDlg('This version of WinSock does not support Host->IP feature!!', mterror, [mbOK], 0);
+exit;
+end;
//------------------------------------------------------------------------------
ini := TIniFile.Create(ChangeFileExt(ParamStr(0), '.ini'));
sl.Clear;
ini.ReadSectionValues('Server', sl);

+DefaultServerIP:= sl.Values['IP'];
+//DebugOut.Lines.Add(sl.Values['IP']);
+StrPCopy(Name, DefaultServerIP);
+HostEnt := GetHostByName(@Name);
+if HostEnt <> nil then begin
+IP := HostEnt^.h_addr_list^;
+sl.Values['IP']:= IntToStr(Integer(IP[0]))
++ '.' + IntToStr(Integer(IP[1]))
++ '.' + IntToStr(Integer(IP[2]))
++ '.' + IntToStr(Integer(IP[3]));
+end;
+//DebugOut.Lines.Add('->' + sl.Values['IP']);
//------------------------------------------------------------------------------

■procedure TfrmMain.FormCloseQuery(Sender: TObject; var CanClose: Boolean);
//------------------------------------------------------------------------------
ini := TIniFile.Create(ChangeFileExt(ParamStr(0), '.ini'));

-ini.WriteString('Server', 'IP', inet_ntoa(in_addr(ServerIP)));
+ini.WriteString('Server', 'IP', DefaultServerIP);
//------------------------------------------------------------------------------

145名無しさん:2003/04/11(金) 23:16 ID:a4UQ6NqE
if( 装備がカタール ){
 なんかSendする関数((整数型)クリティカル率/2);
}else{
 なんかSendする関数((整数型)クリティカル率);
}

146名無しさん:2003/04/11(金) 23:34 ID:qjZWcL7k
>>145
ステータス計算の関数の中で

if Weapon = 16 then Critical := Critical * 2;
(もし 武器がカタールならば クリティカルを2倍にする)
という処理が入ってますよ

100以上は意味がないためカットされてます

147cardinal:2003/04/12(土) 14:12 ID:ppUXvcs2
>>145
確か前に書いたと思いますが、ステータスの表示まで本鯖に合わせていくときりがないので、
カタール装備時のクリティカル2倍がCRI表示に反映されるのは、
Weissの仕様だと思ってください。

148rayn:2003/04/16(水) 00:31 ID:54JcUcTM
ひなあられと菱餅書いときます

item_db.txtへ
542,,ひなあられ,0,10,0,1,,,,,,,,,,,,,,,,,,,,,,,,,0,80,185,0,0,,,,,
543,,菱餅,0,10,0,1,,,,,,,,,,,,,,,,,,,,,,,,,0,120,270,0,0,,,,,

149名無しさん:2003/04/25(金) 22:59 ID:zUsQUlSQ
このまま廃れていってしまうのは悲しいのでアイディアください

モンスターのデータとして

状態1 01:石化 02:凍結 03:スタン 04:睡眠 05:LexA? 06:石化前の移行状態

状態2 01:毒 02:呪い 04:沈黙 08:混乱? 16:暗闇

という感じで
状態1は重複不可。攻撃を受けると状態異常が解除される
状態2は重複可。攻撃を受けても状態異常は解除されない

効果持続時間をモンスター情報に追加しなければなりませんが

状態1の情報をstates1[1..6]とでもしてその中に持続時間を格納
状態2の情報をstates2[1..5]とでもしてその中に持続時間を格納

とこういう感じで進めてみようかと思ってるんですが
他にモンスターの状態異常の実装に挑戦してる人いますか?

150名無しさん:2003/04/26(土) 00:25 ID:WJSc/A5U
スタンは殴っても解除されないはず。

151名無しさん:2003/04/26(土) 13:28 ID:WtePyAVg
>>149
状態変化じゃないかもしんないけどじゃないけど、
ハイド、AR、WP、OT、EC、2HQ
ココらへんの継続時間とかもいるね。

152名無しさん:2003/04/26(土) 15:56 ID:3AGAe/MA
>>151
プレイヤーに使うスキルの持続時間については
cardinalさんが作った部分でほぼ完結していて
パーティー全体に適用という部分がネックになってるだけですね

同じような処理をモンスター側にも組みこめば状態異常の実装は可能だと思うので
具体的にどういう効果があってどういう条件で異常が解除されるか
ということがわかれば実装可能だと思います

153名無しさん:2003/04/26(土) 19:13 ID:gzrTGDAA
>149
シグナムクルシスを忘れてるぞw
リカバリーとかも状態変化になるかな?

154名無しさん:2003/04/26(土) 20:08 ID:WtePyAVg
うーむ、外見変化に$007C使うと敵が透明になる場合があるね。
SendMData()にも$0119を使ったほうがいいのかな。

継続時間もいいけど状態異常確率も配列がいるから、
SFixPerとかでも作らないとね。
DB.txtの再構築も考えとかないと。

15577:2003/04/26(土) 23:45 ID:MU84/tJA
itemdbにどの状態異常を起こす確率を何%増やすと言った項目を作るべきかも知れませんね。
それをCalcstate内で状態異常確率変数にでも格納して、DamageCalc1内ででも計算ですかね。
毒なんかは相手のVITに応じて効果時間が変わるんでしたっけ。
なんにせよ敵に状態異常フラグ変数と状態異常tickは必要ですね。

156初心者スレ120:2003/04/27(日) 06:22 ID:T3DodOIE
item_dbは、武器・防具・カード、回復、特殊、収集品、ペットの5つに分けたらどうかな。
それかAEGISと同じようにspecial.txtを作るか。

参考になるかと思ってspecial一式あぷろだ1に上げさせてもらいました。

15777:2003/04/27(日) 13:52 ID:KYui8GFk
>156
拝見させていただきました。
自分としては・・・前者に賛成です。
今の形のままちょっと拡張すれば対応できると思うからです。

158初心者スレ120:2003/04/27(日) 16:52 ID:T3DodOIE
>>157
うーむ、ちょっと拡張しただけですむのかな…。
特に武器・防具・カードのデータベースが難問だね。
一つのアイテムに付けれる追加能力に制限を付けとかないと、
今の形のまま拡張したら思いっきり長くなりそう。

状態変化については、継続時間考えず、敵のステに関係なくカード等で設定した確立でまず作って見たほうがいいかも。
状態異常フラグは、状態1の方はフラグと継続時間は1つで良さそう。
状態2はフラグは1つで継続時間は配列かな。

15977:2003/04/28(月) 00:00 ID:mogZa5j6
うーん、制限付ければいいんじゃないかなぁとか。
4つくらいに絞って、特殊能力A・B・C・Dとかにして。

状態異常と言えば、すでに実装されているプロボックも状態異常ですよね。
テスト的に実装するのに一番簡単そうなのってなんでしょうね。
スタンとかかな?LAはちょっと簡単すぎますし。

160名無しさん:2003/04/28(月) 01:26 ID:IsFKOr/A
>>77
アイテム関係で出てくる状態変化確率は全部5%じゃないですか?
だから状態1に対してどの変化を与えるか、状態2に対してどの変化を与えるかの
二つを追加するだけで済むような気がします

スキルでの状態変化は他の要素も絡んできますし
個別に判定をいれればいいでしょう

161初心者スレ120:2003/04/28(月) 07:27 ID:mfar5sr.
>>160
一つ一つは5%でも内部で加算するから、確率は全部5%ではないよ。

//$01:石化 $02:凍結 $03:ピヨ $04:眠り $06:石化中
for i:=0 to 5 do begin
 if Random(100) < tc.SFixPer1[i] then begin
  ts.View1 := i+1;
 end;
end;
k := 1;

//i: 00:毒 01:呪い 02:沈黙 03:混乱 04:暗闇
//k: $01:毒 $02:呪い $04:沈黙 $08:混乱 $10:暗闇
for i:=0 to 4 do begin
 if Random(100) < tc.SFixPer2[i] then begin
  ts.View2 := ts.View2 or k;
 end;
 k := k*2;
end;
外見だけ変えるならこんな感じでいいのかな?
状態1の優先順位ってどうなってんでしょうね。

>>159
暗闇あたりはどうですか?
探索範囲を狭めるだけなんでコード追加もそんなに無さそうだし。

16277:2003/04/28(月) 16:03 ID:9d/UnVx2
>160
初心者スレ120さんも仰られていますが、重ね刺し等を考慮して内部的に状態変化確率の変数を用意するのが妥当だと思います。
また、imtedbのことについて仰られているとしたら、確かにその通りなのですが、
今後状態変化10%などと言うようなカードが出てくる可能性などをふまえて、拡張できるように一つの能力に対して2パラ用意し、
それをいくつか定義できるようにしておくといいと思い書きました。

〜,EXParam1a,EXParam1b,EXParam2a・・・ という定義を追加し、
・aが1xxだったらxx番の種族に+b%ダメ
・aが2xxだったらxx属性の敵に+b%ダメ と言った方式を提案してみます。
ちょっと迷いましたが、これならスキルも1xxxだった場合xxx番のスキルをbLVまで覚える
と言ったことが可能です。itemdbがどんどん大きくなるのも防げると思います。

>161
暗闇いいですね。
スタンと言ったのは目に見えるエフェクトがでるから確認しやすいかなと思ったんですが、
別にエフェクトだけ別のを使うといった芸当も可能ですしね^^;
索敵範囲で思い出したのですが、移動しないモンスやアンクルにかかったモンスの索敵範囲は
自分の攻撃射程と同じにしないとマズイんですよね。
そこら辺の優先順位を考慮したコードを考えて面倒になって止めた記憶が・・・(;´ー`)y─┛~~~
暗闇かけたアチャスケにアンクルかましたり(´ロ`;)

163初心者スレ120:2003/04/28(月) 23:52 ID:e9zyR8TI
>>162
ダメージ増減系はXYZZ形式にして
X:分類
例 1:種族 2:属性 3:サイズ 4:特殊(対ボス・遠距離)
Y:対種類
例:Xが1なら0:無 1:人間 2:動物 3:昆虫 4:植物 5:魚類 6:悪魔 7:竜族 8:不死
ZZ:発動確率
ってな感じでやったほうが簡単では。
全部同じような処理ですし、そのまま配列の添え字としても使えます。

この形式を拡張すれば、状態変化,吸収,スキル等のcom nn 形式の物を表現できるかなと。

16477:2003/04/29(火) 02:39 ID:xtfkxDSc
>163
なるほど。
ダメージ増減系に関しては先の書き込みで自分が提案したParaAとParaBをくっつけた様な方式ですね。
そのやり方でもいいと思います。
吸収・スキルはちょっと複雑になりそうですが^^;
なんにしろ、提案したいのはitemdb拡張に際して、特殊能力A・B・・・と言った定義の仕方ですので
これ以上はお任せいたしますです。

165初心者スレ120:2003/05/17(土) 19:15 ID:54WV8ZCU
かなり間が空いてしまいましたが、こんな感じになりました。

//追加変数
DamageFixR :array[0..8] of Integer; //種族
DamageFixE :array[0..9] of Integer; //属性
DamageFixS :array[0..2] of Integer; //サイズ
SFixPer1 :array[0..5] of Integer; //状態1
SFixPer2 :array[0..4] of Integer; //状態2
DrainFix :array[0..1] of Integer; //吸収
SplashAttack :boolean; //スプラッシュ
NoJamstone :boolean;

//読み込み部分
for i :=0 to 3 do begin
//XYZZ
 j := StrToInt(sl.Strings[36+i]);
 //X = 1:種族 2:属性 3:サイズ
 case ( j div 1000 ) of
  //種族 Y = 0:無, 1:人間, 2:動物, 3:昆虫, 4:植物, 5:魚類, 6:悪魔, 7:竜族, 8:不死
  1: DamageFixR[( j mod 1000 ) div 100] := j mod 100;
  //属性 Y = 0:無, 1:水, 2:地, 3:火, 4:風, 5:毒, 6:聖, 7:闇, 8:念, 9:不死
  2: DamageFixE[( j mod 1000 ) div 100] := j mod 100;
  //サイズ Y = 0:小, 1:中, 2:大
  3: DamageFixS[( j mod 1000 ) div 100] := j mod 100;
  //状態1 Y = 01:石化 02:凍結 03:スタン 04:睡眠 05:LexA? 06:石化前の移行状態
  4: SFixPer1[( j mod 1000 ) div 100 -1] := j mod 100;
  //状態2 Y = 01:毒 02:呪い 03:沈黙 04:混乱? 05:暗闇
  5: SFixPer2[( j mod 1000 ) div 100 -1 ] := j mod 100;
  //吸収 Y = 0:HP 1:SP
  6: DrainFix[( j mod 1000 ) div 100] := j mod 100;
  7: begin //その他
   case ( ( j mod 1000 ) div 100 ) of
    0: SplashAttack := true;
    1: NoJamstone := true;
    else //何もしない
   end;
  end;
  else //何もしない
 end; // 'case ( j div 1000 )'
end; // 'for i :=0 to 3 do'

状態変化はTickを使えばいいようですけど、どうしたものか…。
あとSkillLimitかけてあるはずなのにDA等のパッシブが発動するのは私だけ?

166初心者スレ120:2003/05/18(日) 07:52 ID:fBwaJb12
SkillLimitについて自己解決。

if not DisableSkillLimit then begin
 for i := 1 to 157 do begin
  if not Skill[i].Data.Job[Job] then begin
   Skill[i].Lv := 0;
  end;
 end;
end;

こいつをCalcStat()の先頭の方、//武器グラフィック の前あたりに入れておけば習得していないスキルの効果が発動しません。

16777:2003/05/18(日) 19:55 ID:Egpfw5/g
おつかれさまです。
気になった点として・・・Raceは 0無形 1不死 2動物 3植物 4昆虫 5水棲 6悪魔 7人間 8天使 9竜族 でないですか?
どうでもいいことで申し訳ないですが。
あと、カードによるスキル修得は4ケタだとLV1固定になってしまいませんでしょうか。
現時点ではそれでもOKぽいですが^^;

168初心者スレ120:2003/05/18(日) 20:37 ID:fBwaJb12
>>167
すません、種族はみすとれ巣の方のを見てました…。
スキルの方はLv1桁のモノしかないので、このままでもOKですね。
少なければ5桁のXYYZZとすればいいだけですし。

169初心者スレ120:2003/05/18(日) 21:06 ID:fBwaJb12
ってスキル数、100以上あったんですか…。∧‖∧

AddSkill :array[0..157] of Integer;

for i :=0 to 2 do begin
 j := StrToInt(sl.Strings[40+i]);
 AddSkill[j div 100] := j mod 100;
end;

こんなのを>>165のコードの後に付けて見ればいいかな…。
…この形式だとコードをDatabaseLoad()に追加するより、リストで持たせてCalcStat()で解析したほうが処理が簡単かも。

17077:2003/05/22(木) 02:22 ID:d9GXHIt.
ちょっと間があきましたがレスー。

j := StrToInt(sl.Strings[36+i]);
 //X = 1:種族 2:属性 3:サイズ
if j > 10000 then begin //スキル追加の効果
j := j - 10000;
AddSkill[j div 10] := j mod 10 + 1;
end else begin
 case ( j div 1000 ) of

こんなんどうでしょう。
XYYYZ形式で5ケタならスキルとみなし、LVはZでLV10なら9、LV1なら0を指定。

171初心者スレ120:2003/05/22(木) 21:47 ID:09i4Edy.
>>170
了解です。

17277:2003/05/27(火) 16:25 ID:6xXh87dQ
バージョンアップ報告スレへのレス。
こっちのスレで話し合う方が内容的に正しいと思われますので・・・。

LoVが正しく発動しない点に付いては理由が判明いたしました。
item&SkillUnit部に於いて自分とCardinalさんのコードの記述の仕方に食い違いがあったために
ちょっとしたエラーが発生しておりました。
(自分がSkillUnitにMobを探させていたのに対し、CardinalさんはMobにSkillUnitを探させているため)
手元で作ってあるBM CTと一緒にLoVとこれまた不具合があると言われているFP、ASともに
訂正コードを作ろうかと思います。

173初心者スレ120:2003/05/27(火) 18:25 ID:DWo2D7Mw
>>アップ報告92
{追加}〜ってのは元々コードにあるものです。
紛らわしくてすいません…。

ポタバグについてですが、ポタメモの座標とポタを出したマップのサイズを報告してもらえますか?
アップ報告77にも書いた通り、
マップの移動処理が終わらず座標だけが更新、元のマップでポタ先の座標について処理が行われる。
ポタ先の座標が元のマップの最大座標より大きい場合、範囲エラー。
という可能性があります。

>>172
私の方では、FPは発動するもののエフェクトが出ない、となってます。

TCharaTMobの統一ですが、前段階として、
type TeNPC =class
 ID:Word;
 Name:string;
 Map:string;
 Point:TPoint;
 HP:Integer;
 flag:Byte; // 1:NPC 2:キャラ 3:Mob
end;
こんな感じのを新たにTIntList32で管理してはどうでしょうか?

17477:2003/05/27(火) 20:05 ID:6xXh87dQ
>FP
エフェクトもでないのですか・・・。
確か、攻撃処理そのものにも不具合があったはずです。
FPの存在する座標にぴったり重ならないと発動しないはず。
罠類も同じく。アンクルは効果もおかしいとかなんとか。

175名無しさん:2003/05/28(水) 00:18 ID:6qPhra3g
FPは発動後にエフェクトを変更しないとなりません
0x0019a当時に追加してたものなので今構造変わってるかもしれませんが。
FPの発動部分に

tn.CID := $88;
WFIFOW(0, $00c3);
WFIFOL(2, tn.ID);
WFIFOB(6, 0);
WFIFOB(7, tn.CID);
SendBCmd(tm, tn.Point, 8);
tn.Tick := Tick + 1000;

これでエフェクトがでるはずです
罠のエフェクトも出ませんよね

17665:2003/05/28(水) 08:07 ID:VZk6//I2
此方ではU0x003のVerUPスレでの部分修正を加えた状態のソースで試しておりますが、
FP/LoV共にエフェクトは出ておりました。
ポタ移動ですが、あれ以降からエラーが発生せず、再現出来なくなってしまいました(汗
引き続き判り次第、之に関しての報告にも伺いたいと思います。

発生する合計ダメージによっては、此方魔法を使ったと同時に範囲エラーで落ちることがあります。

17765:2003/05/28(水) 08:46 ID:VZk6//I2
追加
27日パッチ後から2HQが正常に使用できる方居ますでしょうか?

17865:2003/05/28(水) 09:02 ID:VZk6//I2
すいません、動きました。今回脊髄反射で書いてしまい申し訳御座いませんでした(汗
パッチ適用後から2HQ使ってみたらエラーで鞍だけ落ちていたので、
先程もう一度試してみたら正常に動きました。
2HQはLVでの調整がコモド適用後から出来る様になっているのですね。
他にも何か変わっていないか確認しながら現状のものと照らし合わせて報告したいと思います

179名無しさん:2003/05/28(水) 11:00 ID:43jBrUiU
>>175
今はチェックができないんですが、エフェクトが見えないというのは、モンスが踏んだ時のエフェクトのことですので。

あと65さんと77さんのskill_db.txtが欲しいんですけど揚げてもらえますか?

180初心者スレ120:2003/05/28(水) 11:02 ID:43jBrUiU
すません↑私です…。

18165:2003/05/28(水) 14:39 ID:VZk6//I2
>179
お役に立てれるか判りませんが、Skill_dbをあぷろだ2にあげさせて頂きました。
あぷろだ1の物は、U0x002からと言うことですよね?再度差し替えなおして報告に伺いたいと思います。
FPのエフェクトに関しましては踏んだ時此方も出ない様です。

182初心者スレ120:2003/05/28(水) 18:07 ID:BaCLNDuw
>>181
どもです。

あと、あぷろだ1の0x003aは私じゃないです。
中見てみると消した方が良いような気もしますが…。

183名無しさん:2003/05/28(水) 19:58 ID:9zwEPlCA
非公式パッチ ver0x003++(0x003a)は私がUPしたのですが
鯖が落ちたときに巻き戻るのを阻止したかったのとデバックコマンド系をNPC側でやりたかったので作ったのですが・・・
せっかく作ったのでUPしたのですがダメでしたか?

184あぷ1管理人:2003/05/28(水) 20:17 ID:SW02zvBg
>>183
変更点の上から2つ目の機能は鯖が不特定多数に公開できるようになるので。
私はその機能に対して責任がもてないので削除させていただきました。

18565:2003/05/28(水) 20:26 ID:VZk6//I2
では…0x003aはどちら様の物でしょう…?

あぷろだ>32
ひとまず此方では前者と後者の2種、DLさせて頂きました。
まだどちらも当てて試してはいないのですが、見た限りでは興味を惹く物がありますね。
自動発行は便利そうに思えました。
サンプルスクリプト選択肢の殺人コマンド辺り、
遂にカプラも立ってるだけでは詰まらなくなって来たのでしょう(汗
まだテストをしていない状態での意見になり、間違えていたら大変失礼の事となりますが
作成者様にお伺いしたい点がありまして、
之での主な変更点はSpeed/Aliveのコメントアウトやデバッグコマンド周りと開始位置と所持金額
追加点はアカウント作成でしょうか…?
リザが機能しないので、Alive無いと他のテストに苦労しそうですが、
Speed変更が出来るオリジナルクエストは面白そうでした。

>182
ダークロードを倒した時、鯖が範囲エラーで落ちました。
他のモンスターは倒しても特に問題は発生しないようです。

186名無しさん:2003/05/28(水) 20:39 ID:QAsBYMhs
>>183
自動保存いいですね〜
垢の自動発行はini設定でon/offしてはいかがでしょう?

187183:2003/05/28(水) 20:45 ID:9zwEPlCA
確かに不特定多数に公開出来てしまうのはよろしく無いですね。
それでは一度削除した後にアカウント作成を削除してUPしてもよろしいでしょうか?
私は身内にだけ公開してやっているのですがAliveが使えてしまうとゲーム的につまらなくなってしまうので消しているのですが
デバッグはやりにくくなってしまいますね、(GMキャラだけとかの制限をかければ良いかな?)
私的には少人数でも楽しめるようにNPC制御を発達させたいのですが・・(キャラを動かすとか、モンスタ出現とか)

188183:2003/05/28(水) 20:53 ID:9zwEPlCA
とりあえずアカウント作成を削除してUPしました、U0x002-03bです。
初期場所は初心者から始まり簡単な初心者修練スクリプトと追加機能のサンプルスクリプトが
入っているので微妙に楽しめると思います。

189あぷ1管理人:2003/05/28(水) 20:53 ID:SW02zvBg
>>187
npcが発展することはとてもいいことだと思いますので、
okです。

19065:2003/05/28(水) 21:45 ID:VZk6//I2
27日パッチ後から、全体マップの下側に
ブレスや速度上昇等のスキル持続している間のアイコンが表記されるようになったのですが、
おかしな現象がありましたので報告に伺いました。
今日一度>177>178にて伺った2HQですが、話しをぶり返すようで大変申し訳御座いませんが、
使用するとクライアントだけが落ちることが高い確率であります。
U0x003にて持続スキルを使用すると、稀にマップ下側にアイコンが表示されるのですが、
表示されていない状態の時、2HQを使うと100%クライアントだけが停止します。(鯖はエラー無し
アイコンが出ている状態時では使用しても鞍はフリーズしなかったのですが、
出ないことが多い為、ほぼ使えない状態です。
稀にしかアイコン表記してくれない上、鯖側エラーが無い為にデバッガにてエラー位置特定も不明でした。
未表示時フリーズするのは2HQのみで、他の持続時間を持ったスキル(速度向上・ブレス等)は
アイコン表記の有無に関わらず鞍はフリーズしませんでした。
アイコン表記と2HQに対して、他に試されました方は居ますでしょうか?

191初心者スレ120:2003/05/28(水) 23:13 ID:BaCLNDuw
>>190
60: //ツーハンドクイックン
 begin
 tc1 := tc;
 SkillProcessType := 3;
 //パケ送信
 if ver2 < 9 then begin
〜略〜
 end;
と、ありますが、if ver2 < 9 then begin〜end;を実行しないようにすれば固まりません。
表示パケの変更かな?

0x003bが上手く当たらない…。うー。

192初心者スレ120:2003/05/28(水) 23:37 ID:BaCLNDuw
$0196のパケットが+1Bされて韓国と同じ2W+1L+1Bの計9バイトになっていたが原因でした。
追加された1Bが0ならスキル使用時のメッセージ、1ならアイコン表示となっています。
//パケ送信
WFIFOW( 0, $00b0);
WFIFOW( 2, $0035);
WFIFOL( 4, ASpeed);
WFIFOW( 8, $0196);
WFIFOW(10, 0);
WFIFOL(12, PID);
WFIFOB(17, 0);
Socket.SendBuf(buf[0], 17);
これだけだとキャラが金色に成らないようで。

あと、アイコンを表示するには$0196を使っている部分のand (ver2 >= 9)等を消せば表示されます。

193初心者スレ120:2003/05/28(水) 23:54 ID:BaCLNDuw
すません。
追加された1Bは0がアイコン消去、1がアイコン表示でした…。
>>192修正
WFIFOW( 0, $00b0);
WFIFOW( 2, $0035);
WFIFOL( 4, ASpeed);
Socket.SendBuf(buf[0], 8);
これだけでOKです。
うー。眠いときに書くものじゃないね…。

194名無しさん:2003/05/29(木) 00:51 ID:qwe7/0fc
すみませんが、今回のパッチを明瞭にしてもらえませんか?
(どのパッチに対して、どのパッチをあてるかということです)
というのも、U0x002-03b.zip(32.zip)をDLし解凍するとなぜか、
U0x002-03a.diffになっています。
U0x002-03a.diffということで、U0x002に対してパッチをあてよ
うとしますが、パッチそのものがまともにあたりません。
U0x003に対してはあたるにはあたるのですが、キャラセレでけら
れます。

そろそろ、開発者が複数絡むときのルールを作る時期なのかもし
れません。

195名無しさん:2003/05/29(木) 01:03 ID:4VNFPOZU
>>2HQでキャラが金色にならない
アイコン表示をするようにして、
skill_dbの、2HQのIconの項目を37から2に書き換えると金色になるよ。

196194:2003/05/29(木) 01:18 ID:7dGZGQl6
>U0x003に対してはあたるにはあたるのですが、キャラセレでけら
れます。
の原因わかりました。実は今回のパッチ作者がそれぞれ違うようだったので、
コンパイル済みのWeiss.exeのファイル名そそれぞれ変更していたのですが
ファイル名を変更したままで実行していました。
板汚し申し訳ありません。m(_._)m

19765:2003/05/29(木) 13:40 ID:IrTOEW5o
>193
アイコン自体が出てこないことがあるので、此方では再現性がいまいちでした。
何度かクライアントを起動しなおした時に、稀に正常になるようで
この時にアイコンが出てくる時は問題は無いようですが…
高い確率でスキル使用しても使用スキルのアイコンが出てきません。
差し替えた後は2HQは使用可能になりましたが、37を2に変更しても金色にはなりませんでした。

198名無しさん:2003/05/29(木) 16:55 ID:13cLPCnQ
>>197
アイコン自体出ない時があるってことは、どこかがおかしいのかも。
うちは上記修正でアイコンも出ますし金色にもなります。

199名無しさん:2003/05/29(木) 21:45 ID:JFlrkrSQ
>>194
パッチという形にしないで
機能毎にソースを作って各自が適切な場所に組み入れるようにしたらどうでしょうか。
機能毎にまとまっていると作った人の書き方の特徴も見えてきますし
自分なりの改変やデバッグもやりやすいと思うのですが。

200名無しさん:2003/05/29(木) 22:35 ID:IYPNYfGU
>>199
md5が一緒か調べたいときがあるのでパッチがいいかなと思います。

20177:2003/05/30(金) 02:35 ID:8/yJ1EYo
誰かコードのまとめ役がいるといいかもしれませんね。
Cardinalさんが担ってた役割をする人・・・。

202名無しさん:2003/05/30(金) 03:12 ID:vWhmmxac
>>200
パッチだと複数の開発者がいる場合に不便だから、という話なんですが・・・

>>201
まとめ役に押し付けるのも何なので、>>199の方法が自分としては良いかなと思います
コードをまとめるにしても、適宜コードを変更しなくてはならない場合だって出てくるでしょうし

203名無しさん:2003/05/30(金) 07:10 ID:vUZXOccc
プログラム初心者にはどんどん敷居が高くなるなぁ・・・。
組み込みはできても、コード書き換えはむりかなぁと・・・。

204初心者スレ120:2003/05/30(金) 08:41 ID:f19fQTEc
>>199 >>202
片っ端から関数や手続きにしたりクラス化すればそれもできますが、
現在殆どまとめて書かれてますからね。
それに、これはどこに追加すればいいんだ、という疑問が溢れそうで。

パッチを使うときの提案というか私の反省なんですが、
1:ベースとしたバージョンを明記する。
2:変更点をできるだけ細かく書く。
と、これぐらいはしておいた方がいいかな、と。

U0x003bはU0x003に対してのパッチなのかU0x002なのか
未だに判らないんですけど…。

20577:2003/05/30(金) 12:46 ID:8/yJ1EYo
全てを19aに対するパッチにしてしまえばいいかもしれないですね。
気が向いたら誰かがまとめればいいですし。

20665:2003/05/30(金) 21:30 ID:dZ6JbJLg
mob_db内1272ダークロードのMVP経験値及びアイテム空白欄が無い為エラーが起きていると思い、
空白欄を埋めて再度テストした所、同様に整数のオーバーフローが発生しました。

Main.pas747行目
WFIFOL( 2, ts.Data.MEXP * BaseExpMultiplier);

見た目的なエラータイミングはMVPアイコン出現後敵が消滅と同時に高い確率で発生します。
最初倒した時、空白であるにも関わらず特別経験値が65000000という
物凄い値を出していた事が一番の疑問ですが(汗
全ボス狩りした結果、エラーが出たのはこの敵のみです。
確認頂ければ幸いです。宜しくお願い致します。

207名無しさん:2003/05/31(土) 00:16 ID:ooOddlWY
>>206
経験値やダメージにキャップつけたほうがいいかもしれませんね

208名無しさん:2003/05/31(土) 13:24 ID:Rci5fayQ
>>206
main.pasのベースExp加算部の
l := ts.Data.EXP * (ts.EXPDist[i].Dmg) div total;

l := ts.Data.EXP * cardinal(cardinal(ts.EXPDist[i].Dmg) div total);
って直したらエラーでなくなった気がします・・・
間違ってたらごめんなさい

20965:2003/06/01(日) 01:00 ID:OX7DYUwE
>208
テストした結果、自分は正常に倒せるようになったのですが、(特別EXPも問題無し
自分以外のユーザが倒すとエラーが出るようです…(鞍での鯖キャンタイミングは前記と同一
他に何か原因があるのでしょうか…今までとは初めて見たエラー内容で
デバッガにて再現確認に難航を極めております。

210Cardinal:2003/06/01(日) 01:37 ID:2Xv3z3i2
l := ts.Data.EXP * (ts.EXPDist[i].Dmg) div total;
式の計算は左から行われます。
つまり、まず、敵の経験値に各自の与えたダメージが掛けられ、
その後に全員の与えたダメージの合計(ほんとはMAXHPなんだけど、
途中で死んだ人が与えた分のダメージは除外しないといけないため)
で割られます。
ここで、HPとEXPの高い敵を倒した場合、かけ算が発生した瞬間、
数値が32ビット整数値の限界(4Gか2Gくらい)を超えてエラーになります。
つまり、経験値とMVP経験値の部分をそれぞれ
l := 100 * (ts.EXPDist[i].Dmg) div total;
l := ts.Data.EXP * l div 100;
これに置き換えればエラーがでないはずです。

ごめんなさい。既に手元では修正済みです・・・
うぉるやふぁC等でステータス補正がマイナスになると落ちる現象も確認してます。
(これはパケット送信部の数値を型変換で修正可能)

あと、mob_dbとかitem_dbとかの空白欄は0として扱われます。

21165:2003/06/01(日) 12:31 ID:OX7DYUwE
>210
早期対応有難う御座います。早速差し替えて確認してみた所、
片方(Base)のみでは同様のエラーが発生し、双方とも差し替えて無事安定しました。
稀に特別EXPが加算されていない事が気になりましたが…気のせいでしょうか

>(これはパケット送信部の数値を型変換で修正可能)
詳しい位置と変更後が判らなかった為、確認出来ませんでした。
単に自分自信の力不足でご協力出来ないことが不甲斐無い限りです。
また何かわかり次第…
本体のバグ報告スレに書いた方が宜しいですね、其方にて報告に伺いたいと思います。

212削除しますた:削除しますた
削除しますた

21334:2003/06/06(金) 18:28 ID:knRFlMBc
パーティー機能はほとんど出来あがったんですが
delphiというかpascalの基本的な部分の理解が無いため
パーティーがまったく登録されてないという状況でいろいろと不都合出してます
不具合の存在を前提に、わかる人に手を加えてもらう目的で発表ってのはまずいでしょうかね

214初心者スレ120:2003/06/06(金) 19:17 ID:5lcjHjsk
>>213
いいと思いますよ。
さわるな!!危険!! ぐらいは書いておいた方が良いと思いますが。

215名無しさん:2003/06/07(土) 21:01 ID:0PSC0/pc
皆様の作ったもので遊んでばかりというのも気が引けるので、
向こうに上がっていたパケ表だけを頼りに、Delphi さっぱりわからない
ながらも手探りでペットに手を出してみました。
さっぱりわからないなら手を出すな、とおっしゃるのでしたらやめますが。

ルーレット出して卵手に入れるまではできたんですが、捕獲に成功した
モンスターを消す方法がわからんです。パケ $0080 送ると消えたように
見えますが、すぐに出現してしまう。$0080 は消えたように見せるだけで
実際には消していないからですよね。

モンスターを倒したときの処理を参考に除去を試みていますが上手くいかず。
何かヒントなどいただけませんでしょうか…

216numberR:2003/06/07(土) 21:42 ID:k4CKZkYo
I-Athenaベースでなので恐縮なのですが、
ペット捕獲後の孵化部分をちゃちいですが実装していますので、
ソースを読むなりしてpascalに移植しちゃって下さい。
ttp://lado.tripod.co.jp/

217numberR:2003/06/07(土) 21:45 ID:k4CKZkYo
ごめんなさい、孵化部分に対する質問ではなくて
モンスターを消す部分でしたね・・・。
腹切ってきます。

21834:2003/06/07(土) 22:09 ID:Qr8pxrwE
>>215
main.pasの
procedure TFrmMain.MonsterDie(tm:TMap; tc:TChara; ts:TMob; Tick:cardinal);
先頭から//経験値分配処理までの部分が
消滅パケットを送信
各種ステータスやフラグの初期化
モンスターの消去
プレイヤーのターゲッティング解除
となっているのでこの部分を移植すればOKだと思います
経験値分配関係の初期化も必要かな?

ペット関連の部分はモンスターの処理とほぼ同じなのですが
卵とそこから出てくるモンスターのリンク作業を考えるのが面倒でちょっと保留してます

2190PSC0/pc:2003/06/08(日) 00:07 ID:q6or.62I
>>215
アドバイスありがとうございました。
その移植はやってみたのですが、やはりうまくいかない…と思っていたら、単なる移植ミスでした。
きちんと移植したら、見事、消去に成功しました。
お騒がせして申し訳ありません。

>>216
というわけで、消去はできたので、これから孵化に取り掛かりたいと思います。
参考にさせていただきます…が、捕獲・消去とは比べ物にならないほど難しそうですな。
頑張ってみます。

2200PSC0/pc:2003/06/08(日) 15:41 ID:q6or.62I
今更間違いに気づく。
>>215 って、自分にレスしちゃってますね
>>218 の間違いです。すいません。

221名無しさん:2003/06/10(火) 12:04 ID:J7eGL4jU
訳してみました
今後のモンスターの行動パターン作成にでもどうぞ

MONSTER_TYPE_01移動する
MONSTER_TYPE_02ルート
MONSTER_TYPE_03リンク
MONSTER_TYPE_04アクティブ(+短距離 攻撃)
MONSTER_TYPE_05アクティブ(+遠距離 攻撃)
MONSTER_TYPE_06動かない
MONSTER_TYPE_07ルート+リンク(+飛仙球??)
MONSTER_TYPE_08(Lv差5以上が着たらそいつを攻撃)攻さ. レベル 差が出てみる 5書いた 奴が 攻撃範囲に 入ってくれば その プレーヤーを 先攻さ.
MONSTER_TYPE_10動かない+範囲内にきたら攻撃(ex.フローラ)
MONSTER_TYPE_13アクティブ+リンク(+短距離 攻撃)
MONSTER_TYPE_17詠唱反応
MONSTER_TYPE_19詠唱反応 横から魔法打たれても無視(JJOSA 時折も 魔法 ラックon 河NENNOMは 無視)
MONSTER_TYPE_20 詠唱反応 横から魔法打たれたらタゲ変更(JJOSA 時折も 魔法 ラックon 河NENNOMが あれば そいつ 行って 行く.)
MONSTER_TYPE_21高AI詠唱反応 横から魔法打たれたらタゲ変更(JJOSA 時折も 魔法 ラックon 河NENNOMが あれば そいつ 行って 行く.)
MONSTER_TYPE_24取り巻き(slave 人工知能)

222名無しさん:2003/06/10(火) 12:07 ID:J7eGL4jU
補足19〜21は
+アクティブです

(・x・ ).o0○スレマチガッタカモ

2230PSC0/pc:2003/06/11(水) 04:01 ID:R0eVgIyE
item_db.txt について質問なのですが、その前に確認。
受信パケ $00a0 の <type>.B が item_db.txt の Type に相当するんですよね?
この時点で間違えてたらドウシヨウ…

ペットの卵とペット用のアクセサリって、item_db.txt では、
卵の Type が 7 、アクセサリの Type が 8 になっていますが、実際にこれらのアイテムを
拾うときのパケ $00a0 を見ると、<type>.B は両方とも 4 になってはいないでしょうか?
item_db.txt の記述は 7 と 8 で正しいのでしょうか?

ついでに便乗質問。
item_db.txt の Effect って、適当に設定しちゃっていいんですか?
そんな印象を受けたもので…

パケスレの方がよかったかもしれません。

224名無しさん:2003/06/11(水) 06:16 ID:VttBsl0Y
STATUS→Eff
PROPERTY→Ele

に相当するかと
たぶん、、

2250PSC0/pc:2003/06/11(水) 23:18 ID:R0eVgIyE
>>224
え…えーっと
すいません、STATUS とか PROPERTY って何ですか?

-----------------------------------------------------

前者をちょっと補足

パケ$00a0
R 00a0 <index>.w <amount>.w <item ID>.w <identify flag>.B <attribute?>.B <refine>.B <card>.4w <equip type>.w <type>.B <fail>.B

これの後ろのほうの <type>.B が、

item_db.txt
ID,Name,Jname,Type,Price,(以下略)
501,Red_Potion,赤ポーション,0,50,(以下略)

の4番目の Type(赤ポなら 0 )に相当ですよね、と。

-----------------------------------------------------

Effect については、拡大鏡が 1 、蝿が 2 、蝶が 3 、鍛冶関係のアイテムが 100 などの数字に
なっていますが、この値に何か根拠はあるのでしょうか?
データベースの多くは流出したものをコンバートしたものだと思いますが、
流出したものでも Effect はこのような数字なのでしょうか?

#パケ $00a0 と Effect についての質問は別です。

226名無しさん:2003/06/12(木) 01:53 ID:OSBrOlEA
>>225
一度AEGIS(のデータベース)を入手することをオススメする
そうすればSTATUSやPROPERTYの意味、Effectがどうなってるか分かるし、
エミュ鯖を作る上で本物のデータがあるほどやりやすい
どこにあるか等は自分で調べること

だからと言って本物と一緒にする必要は無いんだから、
Effectの値をいくつにしようが関係ないよ
その値にあうように実装すればいいだけなんだからね

それと、次から質問スレへ行くように・・・

22734:2003/06/12(木) 19:59 ID:Xu2iTzkU
>>225
あくまで推測、ということになってしまいますが
本鯖の方でペット関連アイテムのtypeが4(装備品)として処理されている理由は
バフォメットJr.の卵 :2個
というような処理をふせぐことにあると思います
装備品…1個まで
非装備品…30000個まで という処理しかできないんじゃないかと思います

将来的にどうなるかはわかりませんが
現在のところ00a0パケットにおいてtypeはなにか特別な処理をクライアントに要求するものではありませんし
Weissの場合は上で指摘したような問題点も
typeを4として装備品扱いとし、装備品判定のところでペットアイテム除外処理をいれる
typeを7,8と設定し、個数処理の部分で例外処理を入れる
とどちらにしても柔軟な対応ができるので
あまり深く考える必要はないと思います

あとeffectについてはweiss独自の内部処理用数値で
パケット云々に影響をあたえるものでもなく とくに法則があって決められてるものでもないと思うので
これもbyteで表現できる0-255の空き番号を、他のアイテムとぶつからない様に
適当に設定してしまってかまわないと思います

2280PSC0/pc:2003/06/12(木) 21:25 ID:dCDl/yew
レスありがとうございました。

>>226
> 一度AEGIS(のデータベース)を入手することをオススメする
わかりました。探してみます。

> それと、次から質問スレへ行くように・・・
はい、すいませんでした。
次から気をつけます。

>>227
> 本鯖の方でペット関連アイテムのtypeが4(装備品)として処理されている理由は
> バフォメットJr.の卵 :2個
> というような処理をふせぐことにあると思います
確かにそうなってますね。

> 現在のところ00a0パケットにおいてtypeはなにか特別な処理をクライアントに要求するものではありませんし
type によって、アイテムがどこに置かれるかが決まるんじゃないんですか?
使用アイテムとか装備品とか収集品とか。
type が 7 や 8 だと収集品扱いになりますが、本鯖だと装備品欄に入るので。
#まぁ、本鯖を忠実に再現しなきゃならないって決まりはどこにもないんですが。

> あとeffectについてはweiss独自の内部処理用数値で
これが聞きたかったんです。ありがとうございます。

229名無しさん:2003/06/26(木) 00:22 ID:AZ4ueclY
SP自然回復公式
INT119以下 = 1+(INT/6) + (Max SP / 100)
INT120以上= 1+(INT/6) + (Max SP / 100) + [(INT-120)/2] + 4
SP計算式(現在の韓国サクライでの有力とされる計算式)
MSP = ( SP係数*BaseLv +10 ) * ( 1 + INT/100 ) + 装備INT (切り捨て)
SPR回復公式
(SkillLV* 3) + (Max SP *2 * 0.001 *SkillLV)

230名無しさん:2003/06/27(金) 13:20 ID:1WZ0fJRg
某所より
運気の回復量。
  HP=(MHP/500+4)*SLv
  SP=(SLv*2)+(MSP*0.002*SLv)
んで剣士のHP回復が
  HP=(MHP/500+5)*SLv
SPRは>>229さんのと同じでした。
モンクの蓄気のファンネr、周りのフヨフヨした球体のエフェクトが出ないのですが
どなたか出せた方いませんか?

231名無しさん:2003/06/29(日) 03:17 ID:dfW03PDE
現在、BSのスキルを実装させようと奮闘している者ですが

main.pasに
112: //ウェポンパーフェクション
begin
tc1 := tc;
SkillProcessType := 5;
end;

Common.pasのぺこ騎乗&槍装備時のサイズ補正の下あたりに
if Skill[112].Tick > Tick then begin
ATKFix[0][0] := 100;
ATKFix[0][1] := 100;
ATKFix[0][2] := 100;
end;

と追加して、ウェポンパーフェクションを使用できるようにしたのですが、
ダメージの変化はあるものの、これで本当に合っているのかは謎です。
それと、見るとわかると思うのですが、
斧・鈍器のみ適用と使用者以外(他のPTメンバー)の持続時間1/5
という処理は入ってません^^;

何かアドバイス貰えるとうれしいです・・・

232初心者スレ120:2003/07/06(日) 19:45 ID:eJC27UY.
>>231
取り込んだあとにアドバイスというのも変ですが、そのままのコードであってますよ。
if Skill[112].Tick > Tick the begin
の後にでも、武器による条件分岐をつければいいかと。
使用者の継続時間減少は、SkillEffect()の4,5: //対パーティ時間制限有りスキル の最後の方に追加するしかないかな。

233231:2003/07/06(日) 22:19 ID:Sy5dGm72
>>232
レスありがとうございます^^
なるほど、これでよかったんですね。
ということで、斧、鈍器装備時のみ発動を加えてみました。
スキル使用者以外の継続時間については、自分には無理そうです^^;

main.pasに
112: //ウェポンパーフェクション
begin
if ((WeaponType[0] = 7) or (WeaponType[0] = 8)) then begin tc1 := tc;
SkillProcessType := 5;
end else begin
WFIFOW( 0, $0110);
WFIFOW( 2, tc.MSkill);
WFIFOW( 4, 0);
WFIFOW( 6, 0);
WFIFOB( 8, 0);
WFIFOB( 9, 6);
Socket.SendBuf(buf, 10);
MMode := 0;
end;
end;

common.pasに
//ウェポンパーフェクション使用時
if Skill[112].Tick > Tick then begin
if ((WeaponType[0] = 7) or (WeaponType[0] = 8)) then begin
ATKFix[0][0] := 100;
ATKFix[0][1] := 100;
ATKFix[0][2] := 100;
end;
end;

これで、斧、鈍器以外の武器で使用した場合に、スキル使用失敗の
赤い文字が出るはずです。
SPが足りない時のパケ送信を利用したので、間違ってるかもしれませんが^^;

234231:2003/07/06(日) 22:38 ID:Sy5dGm72
ARも同じ感じで、
112: //ウェポンパーフェクション を
111,112: //AR,ウェポンパーフェクション にして

common.pasの
if Skill[60].Tick > Tick then ADelay := ADelay * 70 div 100; //ツーハンドクイックン
の下に
if Skill[111].Tick > Tick then begin
if ((WeaponType[0] = 7) or (WeaponType[0] = 8)) then
ADelay := ADelay * 70 div 100; //AR
end;
を追加すればARが使用できます。
攻撃速度のディレイ減少の部分は間違ってるかもしれませんが…

鋭い指摘待ってます・・・

235231:2003/07/07(月) 00:59 ID:IOPStofg
すいません。
if ((WeaponType[0] = 7) or (WeaponType[0] = 8)) then は
if ((WeaponType[0] = 6) or (WeaponType[0] = 7) or (WeaponType[0] = 8)) then
です^^;
片手斧の存在を忘れてました。

236初心者スレ120:2003/07/07(月) 23:42 ID:Ed8g4EoU
end else if Copy(str, 1, 5) = 'icon ' then begin
 sl := TStringList.Create;
 sl.DelimitedText := Copy(str, 6, 256);
 try
  if sl.Count <> 2 then Continue;
  Val(sl.Strings[0], i, k);
  if (k <> 0) or (i < 0) then Continue;
  Val(sl.Strings[1], j, k);
  if (k <> 0) or (j < 0) then Continue;
  WFIFOW(0, $0196);
  WFIFOW(2, i);
  WFIFOL(4, tc.ID);
  WFIFOB(8, j);
  Socket.SendBuf(buf, 9);
 finally
  sl.Free();
 end;
end;

アイコンの表示がわからない、という人はコレを使ってください。
Game.pas のしゃべる部分に追加です。
第一引数がアイコンID、第二引数が1だと表示、0だと削除。

237名無しさん:2003/07/09(水) 00:53 ID:I.D0C5IY
ウェポンパーフェクションは 斧、鈍器装備時のみ発動ではないですけど・・・
今、本鯖で片手剣で確認してきたので間違いないかと思います。
ちなみにマキシマイズパワーとオーバトラストも試してきました。
なので斧、鈍器装備時のみ発動なBSのスキルはARだけだと思います。

238231:2003/07/09(水) 03:46 ID:G5lEuTGs
ぐは、スキルの効果が載ってるサイトをよくみてみると、
斧・鈍器装備時適用なのはPTメンバーだけのようですね・・・
(現在、斧・鈍器でなくても使用可能。)とか書いてあるし・・・^^;

とりあえずは、231のコードで良いっぽいですね。
PTメンバーのみ、斧・鈍器装備時適用はどうすればいいのかな・・・

239初心者スレ120:2003/07/09(水) 13:20 ID:oxR3Beto
>>238
スキル周りはあと2,3回書き直す予定なので、その時組み込む予定です。
skill_db.txtの書式も変更しないといけないみたいですね。
スキルツリーと対象武器のデータベースを分離して作り直そうかと考え中。

240code:2003/07/23(水) 20:50 ID:G4vqsdXk
亀島のパッチ追加でどうやら移動パケットが2バイト増えて
map<int>になってるようですね・・・。


新着レスの表示


名前: E-mail(省略可)

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

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

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

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