アイテムの設定について - 胡蝶 飛鳥 2008/08/04(Mon) 16:46 No.232
├ Re: アイテムの設定について - GEN 2008/08/04(Mon) 23:21 No.233
├ Re: アイテムの設定について - 胡蝶 飛鳥 2008/08/06(Wed) 12:03 No.234
├ Re: アイテムの設定について - GEN 2008/08/06(Wed) 16:51 No.235
├ Re: アイテムの設定について - 胡蝶 飛鳥 2008/08/06(Wed) 20:07 No.237
├ Re: アイテムの設定について - GEN 2008/08/06(Wed) 21:16 No.238
└ Re: アイテムの設定について - 胡蝶 飛鳥 2008/08/07(Thu) 01:09 No.239
No.232 アイテムの設定について - 胡蝶 飛鳥
 
|
こんにちは。少々お聞きしたいことがありまして書き込みさせていただきました。 今現在他店からあるアイテム(以後Xとします)を回収するアイテムを作っています。
@@use time 1m scale 枚 action 回収する name Xを回収する info 他店からXを回収します arg target|nocount need 1 回収アイテム func _local_ return "$DTS->{shopname}にはXはありません" if($DTS->{item}[@@ITEMNO"100"]); $DTS->{item}[@@ITEMNO"100"-1]--; $DTS->{item}[@@ITEMNO"100"-1]=$ITEM[@@ITEMNO"100"]->{limit} if($DTS->{item}[@@ITEMNO"100"-1]>$ITEM[@@ITEMNO"100"]->{limit}); WriteLog(1,0$DT->{shopname}."が".$DTS->{shopname}."からXを回収しました"); $ret="$DTS->{shopname}からXを回収しました"; return $ret; _local_
と記述しているのですが、回収するときにそのXを持っている店舗だけをリストに表示する方法が分からないのです。 もしよろしければご教授いただけないでしょうか。 お忙しい中失礼いたしました。
|
2008/08/04(Mon) 16:46
No.233 Re: アイテムの設定について - GEN
 
|
実際に試していないので保証できませんが、以下のような方法を提案したいと思います。ゲーム街のハードの選択に使っている方法です。これで実現できなければすいません。
@新たに「target2」というパラメーターを作成する(名前は何でもよい)。 A「item-m.cgi」を「custom」フォルダに入れる。 B上のファイルに、以下のような部分がある。 if($USE->{arg}=~ /target/) { $select_target="<SELECT NAME=tg>"; foreach (@DT) { $select_target.="<OPTION VALUE='$_->{id}'>$_->{shopname}"; } $select_target.="</SELECT>に対して"; }
これを真似して、このソースの下に「target2」の記述をする。その記述の中で、アイテムを持っているかの判定をする。具体的には以下のような感じ。
if($USE->{arg}=~ /target2/) { $select_target="<SELECT NAME=tg>"; foreach (@DT) {if (アイテム持っているとき) { $select_target.="<OPTION VALUE='$_->{id}'>$_->{shopname}"; }} $select_target.="</SELECT>に対して"; }
改造したitem-m.cgiをcustomにアップロードします。 こんな感じにするとどうでしょうか。
|
2008/08/04(Mon) 23:21
No.234 Re: アイテムの設定について - 胡蝶 飛鳥
 
|
返信遅れてすみません。さっそくその方法を試してみたのですがうまくいかないようです。そこでわざわざ書いていただいたのに申し訳ないのですが、持っている店舗のみをリスト表示するという方法をやめて、エラーレポートではじくという方法にしたいと思います。そこで、
@@use time 1m scale 枚 action 回収する name Xを回収する info Xを回収します arg target|nocount need 1 回収アイテム func _local_ main::OutError('自分のお店にXがあるはずがありません!多忙な仕事でどうかなされましたか?') if($DT->{id} eq $DTS->{id}); ★main::OutError("$DTS->{shopname}にはXはありません") if($DTS->{item}[@@ITEMNO"442"]);★ $DTS->{item}[@@ITEMNO"442"-1]--; $DTS->{item}[@@ITEMNO"442"-1]=$ITEM[@@ITEMNO"442"]->{limit} if($DTS->{item}[@@ITEMNO"442"-1]>$ITEM[@@ITEMNO"442"]->{limit}); WriteLog(1,0$DT->{shopname}."が".$DTS->{shopname}."からXを回収しました"); $ret="$DTS->{shopname}からXを回収しました"; return $ret; _local_
としたのですが、自店はうまくはじかれるのですが、ほかの店舗ははじかれずにすべて回収できてしまいます。おそらく★で囲ってみた部分がよくないと思うのですが自分ではどう修正したら良いかよく分からないのです。 申し訳ありませんがご教授いただけないでしょうか。
|
2008/08/06(Wed) 12:03
No.235 Re: アイテムの設定について - GEN
 
|
私自身、「item-m.cgi」の改造がうまくいかなかったというのは気がかりです。
構文 @@ITEMNO "[商品名]:商品名or商品コード" この構文はinc-item-data.cgi内でのみ使えます。 プログラムの記述では、以下のように記述するのが普通かと思います。 変更前 ) $DTS->{item}[@@ITEMNO"442"] 変更後 ) $DTS->{item}[441] ※入れるのはコード番号-1
それを踏まえてうえで、以下のように「item-m.cgi」を変えるとどうでしょうか。
if($USE->{arg}=~ /target/) { 〜中略〜 $select_target.="</SELECT>に対して"; }
if($USE->{arg}=~ /target2/) { $select_target="<SELECT NAME=tg>"; foreach (@DT) { if ($_->{item}[441] != 0) { $select_target.="<OPTION VALUE='$_->{id}'>$_->{shopname}"; }} $select_target.="</SELECT>に対して"; }
あと、ソース内ではじくほうですが、★の中は、アイテム番号をマイナス1していません。
また、以下に変数のif文の説明を記します。 if($test) :$testという変数が定義されている場合 if(!$test) :$testという変数が定義されていない場合
なので、現在の記述ですと、「持っていない」という判断ができないのです。具体的には、以下のようにするといいと思います。
if(!$DTS->{item}[441]);
または、このあたりでしょうか。
if($DTS->{item}[441] == 0);
間違えていたらすいません。
|
2008/08/06(Wed) 16:51
No.237 Re: アイテムの設定について - 胡蝶 飛鳥
 
|
どうやら両パターンとも私の“!”の付け忘れ&記述ミスだったようです・・・申し訳ありません。 GEN様のおっしゃられるように記述したところ、どちらの方法でもうまく動作いたしましたので、リスト表示の方法をとりたいと思います。 お忙しい中わざわざ解説までしていただき、ありがとうございました^^;
P.S. 改造完了後にGEN様のサイトを私のサイトのリンクに追加してもよろしでしょうか?
|
2008/08/06(Wed) 20:07
No.238 Re: アイテムの設定について - GEN
 
|
お役に立ててよかったです。 また何かありましたらお気軽にどうぞ。
リンクについては、ぜひ追加お願いします。 こちらからもリンクに追加させていただきますよ〜。
あと、商人物語のリンクとして、「あきものえんじん」のほかに、 「無料ゲーム紹介所」 http://www.seijyuu.com/game/ というところがありまして、登録すると結構アクセスがありますよ。
今後ともよろしくお願いします〜。
|
2008/08/06(Wed) 21:16
No.239 Re: アイテムの設定について - 胡蝶 飛鳥
 
|
本当に助かりました^^感謝です。
リンクはこちらも追加いたしました。 あと細かいことで申し訳ないのですが、リンクのところの名前で“胡”が抜けてるようです><
「あきものえんじん」は知ってましたけど、「無料ゲーム紹介所」の方は知らなかったです。教えていただきありがとうございます。 後ほど登録したいと思います。
こちらこそこれからもよろしくお願いいたします。
|
2008/08/07(Thu) 01:09