Eメール
お名前
題 名  ※投稿キーは必須です!
本文
URL
アイコン   [イメージ参照]
暗証キー (英数字で8文字以内)
投稿キー (投稿時 投稿キー を入力してください)
文字色

最新の投稿 / ↑前のページ / ↓次のページ

No.232 アイテムの設定について - 胡蝶 飛鳥
/ URL /
 

こんにちは。少々お聞きしたいことがありまして書き込みさせていただきました。
今現在他店からあるアイテム(以後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
No.227 陳列表示について - 胡蝶 飛鳥
/ URL /
 

こんにちは。胡蝶 飛鳥と言います。
ここのサイトの追加ルーチンを使わせていただいています。
今回は一つお願いしたいことがあって書き込ませていただきました。
ここのサイトで公開されている追加ルーチンに“アトラスの改良”がありますが、これを陳列に応用できないでしょうか。
ちょっと分かりにくいので例を申し上げますと、
デフォルトの設定では、棚に陳列するときに
棚1(パン)へ標準価格のまま または□円で陳列する
となっているところを
棚1(パン 在庫○個)へ標準価格のまま または□円で陳列する
という風にしたいのです。
こうすればいちいち店内に戻って空き棚を確認しなくても、倉庫から陳列するときに直接確認できるので効率が良くなると思うのです。

お忙しい中申し訳ないのですが、検討していただけないでしょうか。よろしくお願いします。

2008/08/01(Fri) 17:29
No.228 Re: 陳列表示について - GEN
 

追加ルーチンのご利用ありがとうございます。
棚の陳列時に確認できれば、確かに効率的ですね。
簡単な改造で実現できました。
よいアイディアなので、そのまま追加ルーチンに加えさせていただきました。

追加ルーチンのページの、「陳列時に在庫確認」のページに改造法を載せましたので、参考にしてください。

よろしくお願いします〜。

2008/08/01(Fri) 22:02
No.229 Re: 陳列表示について - 胡蝶 飛鳥
 

作成していただきありがとうございます^^お早い行動に感謝です。
さっそく使用させていただきました。
そこで修正点に気付いたのですがよろしいでしょうか。
(パン 在庫○個)の個のところを各アイテムの呼び方で出来ないでしょうか。
船なら
(ラテン 在庫○隻)
剣なら
(木刀 在庫○本)
といった具合です。さすがに船で個というのはどうかと思いまして・・・。

2008/08/01(Fri) 23:14
No.230 Re: 陳列表示について - GEN
 

なるほど、確かにそうですね。
どうせやるなら、そのほうがいいですよ。
それもすぐできますよ。

$disp.="棚$cnt($ITEM[$DT->{showcase}[$cnt-1]]->{name} 在庫$DT->{item}[$DT->{showcase}[$cnt-1]-1]$ITEM[$DT->{showcase}[$cnt-1]]->{scale})";

これに変更してみてください。

お気づきの点、ご連絡ありがとうございました。
また何かありましたらお気軽にお願いします。

2008/08/01(Fri) 23:45
No.231 Re: 陳列表示について - 胡蝶 飛鳥
 

ご対応ありがとうございます。
さっそく変更させていただきました。
また何かありましたらお願いしたいと思います^^

2008/08/02(Sat) 01:05
No.225 実装させていただきました。 - 姫路鹿之助
/ URL /
 

はじめまして。
姫路鹿之助と申します。
この度、当HPの商人物語を実装する際、げんちゃんゲームランド様の
「お掃除券」
「職業に応じて内装を変える」
を、使わせて頂きました。ありがとうございますです。

ではでは、今後ともお付き合いの程、よろしくお願いいたしますです。

2008/06/14(Sat) 13:50
No.226 Re: 実装させていただきました。 - GEN
 

ご利用ありがとうございます。
今後ともよろしくお願いします。

2008/06/14(Sat) 22:32
No.222 活動不能>< - ROUTE43
/
 

はじめましてm(_ _)m
たった今元街に登録させて頂いた者ですが、
元街> からはじまる二列目のタグを使うと店外(トップや風景)
から見た表示画面へ行き同時にログアウトさせられてしまいます。
幾つかのサイトに登録してみたのですが、
どうも従来の「自店」〜からなるメニュー表示のもの以外は
みなそうなります。したがって今なんの陳列も出来てないのですが、可能ならは活動出来るようにして頂きたいのですが・・・><  お願い致しますm(_ _)m

2008/05/29(Thu) 03:21
No.223 Re: 活動不能>< - GEN
 

はじめまして。
私のパソコンでもいろいろ試した結果、
インターネットエクスプローラのインターネットオプション、
プライバシー、のインターネット・ゾーンの設定が中以上のとき、
同様の現象が出ました。

また、インターネット・ゾーンの設定は変えずに、特定のサイトを登録し、許可することで改善されると思われます。

プライバシーに関する設定ですので、設定を変更するかは、ご自身でよく考えた上で実行してください。

これで改善されなかった場合は他の原因が考えられます。
よろしくお願いします。

2008/05/29(Thu) 08:10
No.224 Re: 活動不能>< - 灘
 

解決致しました。有難うございますm(_ _)m
だめもとだったので、凄く嬉しいです><
お陰様で遊ぶ事が出来、大変感謝しております><

それでは改めまして宜しくお願いします^^


2008/05/29(Thu) 14:44
No.211 移転プログラムについて - 桃燈
/
 

はじめまして、桃燈と申します。
はじめましての状態でプログラムについての質問をするのは非常に後ろめたいのですが、私は自分のHPで商人を設置しています。
その際に、移転プログラムを導入しようとしたところ、「移転ルートがつながっていません」というエラーメッセージが出てしまいました。
設定ファイルなどはreadme通りに設定しているのですが…
私はプログラムについては触り始めたばかりで何も分からないも同然の状態です。
スクリプトとにらめっこして、プログラムフォルダのmove.cgiの
my $townmaster=ReadTown($TOWN_CODE,'getown');
OutError('移転ルートがつながっていません') if !$townmaster;
という部分を見つけたのは良いのですが、ここから先に進めないのです。
どういう問題があると考えられるでしょうか?

2008/05/04(Sun) 11:50
No.212 Re: 移転プログラムについて - げんちゃん
 

はじめまして。
移転プログラムは導入したことがないのでまったくわかりません。
移転プログラム自体は、いろいろなサイトで導入されているので、プログラムの問題はないと思います。サーバーに問題がなく、設定が正しければ動くと思うので、プログラムを触る必要はないと思います。設定をよく見直すとよいと思います。

my $townmaster=ReadTown($TOWN_CODE,'getown');
OutError('移転ルートがつながっていません') if !$townmaster;
上のスクリプトで、「if !$townmaster」は、「もし$townmasterという変数が存在しなかったら」という意味です。で、$townmasterは前の行で「$TOWN_CODE」を読み込んでいるようなので、$TOWN_CODEが正しく設定されているか確認してみるとよいと思います。

あまり詳しくなくて、お力になれず申し訳ありません。

2008/05/04(Sun) 18:29
No.213 Re: 移転プログラムについて - 桃燈
 

とても早い返信、ありがとうございます。
指摘を受けまして、プログラムを見直したところ、私が例に挙げた部分の直前にこの一行がありました。
OutError('街コードが設定されていません') if !$TOWN_CODE;
ここでエラーが出ていないということはタウンコードのほうはおそらく正常なんでしょうね^^;
ということは、ReadTownの関数に問題があるのか、'getown'の意味ということになるのでしょうか?
そうなってしまうと、こればかりはプログラムを全体的に読んで該当箇所を探さなくてはなりませんね^^;
いろいろと試していこうと思います。
その際に何か分かることがありましたらお教えください。
ありがとうございました^^

2008/05/04(Sun) 20:14
No.214 Re: 移転プログラムについて - げんちゃん
 

ReadTown関数は、「program」フォルダにある「town」フォルダ内の、街コードのついたファイルを読み込む命令のようです。移転プログラムに同封されているマニュアルによると、

5) 作成した「(街コード).cgi」を,program 内 town フォルダの中にアップします。また,移転先の「(街コード).cgi」も,同様に準備してアップします。

とあります。この辺のアップロードがされているか、確認してみてはいかがでしょうか。

あと、すべてのテキストファイルから、同時に文字列検索を行なえるフリーソフト(SGサーチなど)があります。これを活用すると、プログラムを全体的に読むような手間がなくて済みますので、お困りでしら利用されてはいかがでしょうか。

2008/05/04(Sun) 21:17
No.215 Re: 移転プログラムについて - 桃燈
 

そのようなフリーソフトが…Σ( ̄□ ̄;;
これは活用させていただきます^^
プログラムフォルダのタウンフォルダの街コードCGIも正常にアップされているんですね^^;
といいますか、私のところ、最近になって設置している商人を増やしまして、ノーマルの改造版を2つ、アポカリプスにcrusade、BMCを設置しています。
今までの問題は全てノーマル改造版でのみのテストを行っていましたが、改造していない残りの3つの街ではどうやら正常に動くようで、改造してあるがゆえにプログラムに問題が生じているとしか考えられませんね^^;(無改造版間での移転に関しては問題が無いのです)
もともと、ノーマル改造版は他の方が改造していたのを譲りうけたもので、譲り受けたinc-item.cgiファイルが悪さをしているということになりそうです…そんな馬鹿なorz
一人で騒いだ挙句に、げんちゃんさんにはどうしようもない部分でのエラーでした。本当に申し訳ないです。
ただ、今回の質問のおかげで分かることもございました。
ありがとうございました^^

2008/05/04(Sun) 23:53
No.216 Re: 移転プログラムについて - げんちゃん
 

改造していると、いろいろと不具合が出るのかもしれませんね。
今後ともよろしくお願いします。

2008/05/05(Mon) 11:27
No.217 Re: 移転プログラムについて - 桃燈
 

お久しぶりです^^
大学の授業中にガッツリと進入です(爆)
それはさておき、移転プログラムについてわかったことは、ノーマルの無改造版でもエラーが発生するということでしたよ。
どうもデフォルトの状態でうまくいっていないようで(苦笑)
今回は、この件につながる可能性もあるのですが、思いついたが吉日生活で別件の相談に参りました^^;
今までは無視し続け、またそれで問題が発生したことがないのですが、こんなエラーが帰ってきているんです。
index.cgi の実行により発生。(2008/02/10 09:18:22)
「../program/inc-turn.cgi」の 335行目付近に原因があるようです。
分析できませんでした。
Undefined subroutine &amp;event::stock_le called at ../program/inc-turn.cgi line 335.<br>
これがどういうことを示しているのか(出来ればprogram/inc-turn.cgiの335行目付近の意味も)分かる範囲でご教授くださるとうれしいです。
宜しくお願いします^^

2008/05/13(Tue) 16:13
No.218 Re: 移転プログラムについて - げんちゃん
 

335行目は、以下の通りです。実際に確認したので、正しいと思います。

my $extfile=GetPath($ITEM_DIR,"event-s",$key);
require $extfile if -e $extfile;
my $func="event::".$E->{startfunc}; ←335行目
($ret,$msg)=&$func(split(/[:,]/,$E->{startfuncparam}));

イベントデータ絡みのエラーではないでしょうか。アイテムデータ(inc-item-data)にあるイベントデータをすべて消した上で商品データを生成して、またエラーが出るか確認してみてはどうでしょうか。それでもエラーが出たら、原因は他にあり、エラーがなくなったら、イベントデータに何か問題があったということになると思います。

2008/05/13(Tue) 20:03
No.219 Re: 移転プログラムについて - 桃燈
 

ありがとうございます^^
イベントデータをデフォルトと比較してみましたところ、ある一つのイベントにのみ、デフォルトには無いプログラムが書き込まれているみたいでした。
読んでいて不思議だったのは$TIMESPANという変数がどこで定義されているのか、検索で検出できなかったことですが、他のプログラムの兼ね合いを見る限り、どうも異常はなさそうですし、ゲームそのものに大きな支障をきたすエラーではないので様子見とします。
これは、移転の問題とは関係なさそうですね^^;

2008/05/14(Wed) 23:37

最新の投稿 / ↑前のページ / ↓次のページ

Page: | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | | 14 |

No. 暗証キー

- YY-BOARD / 改造:げんちゃんゲームランド-