TASP-OnLine- / ホーム / SOLDOUT改造講座 / ライブラリー

No.45 特定のアイテムを持っていると使えないコマンド

提供者 提供者のWEBサイト この改造のサポート
zakさん 草原の町〜The Town of Grassland〜 スレッドNo.434


サンプル説明
アイテムA,B,Cの内のどれか一つを所持していると残りの2つのアイテムを作成できなくなるります。
そのままコピー&ペーストで使用できますので、いろいろと応用してみてください♪
なお、文中のコメント(# 以降の灰色の部分)は削除してもらっても構いません♪


inc-item-data.cgiへの記述項目
基本サンプルとしての紹介です。組込みは各自で自由に行ってください♪
青字は任意のものに変更する必要があります♪
最低限のことしか書いていないのでこのままコピペでは使用できません♪
@ITEM
  no 1
  name アイテムA

@ITEM
  no 2
  name アイテムB

@ITEM
  no 3
  name アイテムC

@ITEM
  no 4
  name 材料
  limit 100

@ITEM
  no 5
  code how-to-make-item
  name アイテムの作り方
  @USE
    name アイテムAの作成
      use 10 材料
      get 10 アイテムA
  @USE
    name アイテムBの作成
      use 20 材料
      get 10 アイテムB
  @USE
    name アイテムCの作成
      use 30 材料
      get 10 アイテムC

inc-init-item-function.cgiへの記述項目
ファンクションへの記述関数です。青字はの内容に合わせて変更が必要です。
$USEのデータ形式については、customize.txt を参照してください♪
# 以降の灰色になっているコメント部分はコピペ後に削除しても構いません♪
if(defined($item'USE[0]))
  #アイテムにコマンドが設定されているか?
{
  my @USE=@item'USE;

  if($USE[0]->{code} eq "how-to-make-item")
  #使おうとしているアイテムは「アイテムの作り方」か?
  {
    if($DT->{item}[2-1] || $DT->{item}[3-1])
  #アイテムBまたはアイテムCを持っているか?
    {
      $USE[0]->{use}[0]->{count}=999;
  #「アイテムAの材料」の必要数を倉庫の在庫最大数より多い数に設定
    }

    if($DT->{item}[1-1] || $DT->{item}[3-1])
  #アイテムAまたはアイテムCを持っているか?
    {
      $USE[1]->{use}[0]->{count}=999;
  #「アイテムBの材料」の必要数を倉庫の在庫最大数より多い数に設定
    }

    if($DT->{item}[1-1] || $DT->{item}[2-1])
  #アイテムAまたはアイテムBを持っているか?
    {
      $USE[2]->{use}[0]->{count}=999;
  #「アイテムCの材料」の必要数を倉庫の在庫最大数より多い数に設定
    }
  }
}

文面を提供してくれたzakさんに多謝♪

TASP-OnLine- / ホーム / SOLDOUT改造講座 / ライブラリー
 © 2000-2001 ¥30 < stels@donguri.sakura.ne.jp> All Rights Reserved.