スクリプト

Last-modified: 2025-04-17 (木) 15:07:39

動かすために変更するスクリプトの箇所

Main,AccessClass,Sounds の3つのクラスに変更を加えています
これはとりあえず動かすための変更で
このスクリプトではcharaData,partyData,itemData,questDataを(しょうがなく)SharedObejctでローカルに保存しています
一応、自己責任でお願いします

まだログ保存、ログイン、ログアウト、レジスト、リプレイ、ゾンビから復活、レスキューなど対応していない機能も多く、とりあえずでいれているデータも多い

スクリプト内のどの行かを()に書いています、上から順に変更した場合の行数なのでだいたいそのあたりだと思ってください。

Main

追加 | Main にSharedObjectを追加します、"InishieCloneSaveData"の部分はなんでもいいです、それがセーブファイルの名前になります(186,188)

private var try_cnt:int = 0;

の次の行に↓を挿入

public var mso:SharedObject;

public function Main()
{

の次の行に↓を挿入

this.mso = SharedObject.getLocal("InishieCloneSaveData","/");



削除 | よくわからないがJavaScriptの呼び出しになんかを設定している?(210)

ExternalInterface.addCallback("flashFunc",this.getJavaScriptCall);


AccessClass

変更 | サーバーと送受信をしている箇所なのでけっこう変えないといけない
ここではxmlファイルから読み込んでいるがデータを読み込めれば他の方法でもよさそう
{xmlファイルをおいてるフォルダ}はxmlファイルを置いてる場所に適宜変える(331)
変更時にパスの"\"の部分を"\\"か"/"に変えといてください("aaa\bbb\ccc"→"aaa\\bbb\\ccc")
変更前

this.loader.dataFormat = URLLoaderDataFormat.VARIABLES;
this.loader.addEventListener(Event.OPEN,this.loaderOpenFunc);
this.loader.addEventListener(Event.COMPLETE,this.loaderCompleteFunc);
this.loader.addEventListener(IOErrorEvent.IO_ERROR,this.URLLoaderIOErrorFunc);
this.loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR,this.loaderSecurityErrorFunc);
this.access_time = getTimer() / 1000;
addEventListener(Event.ENTER_FRAME,this.loadEnterFrameFunc);
this.loader.load(_loc2_);

変更後

        _loc2_.data = _loc3_;
        _loc2_.method = URLRequestMethod.POST;
        this.loader.data = _loc3_;
        var save_path:* = "{xmlファイルをおいてるフォルダ}\\";
        var xmlLoader:* = new URLLoader();
        if(this.loader.data.mode == "first")
        {
           save_path += "inishieFirst.xml";
           xmlLoader.addEventListener(Event.COMPLETE,this.newFirstLCFunc);
        }
        else if(this.loader.data.mode == "mapload" || this.loader.data.mode == "mapload2")
        {
           var areaML:* = this.loader.data.mapname.split("_")[0];
           var floorML:* = this.loader.data.mapname.split("_")[1];
           xmlLoader.addEventListener(Event.COMPLETE,this.loaderComp_mapload);
           save_path += areaML == 0 || areaML == -1 ? "inishieMapTown.xml" : (1 <= areaML && areaML <= 15 ? "inishieMapA" + areaML + ".xml" : (500 <= areaML ? "inishieMapPC.xml" : "inishieXML.xml"));
        }
        else
        {
           save_path += "inishieXML.xml";
           xmlLoader.addEventListener(Event.COMPLETE,this.newloaderCompleteFunc);
        }
        trace(save_path);
        xmlLoader.load(new URLRequest(save_path));



追加 | さらにサーバー側で行っていたであろう処理に関する関数を追加する(341)*1
追加関数

  • newFirstLCFunc : 最初にデータをロードする関数
  • newloaderCompleteFunc : いろいろサーバーと通信する関数
  • loaderComp_mapload : ロードしたマップデータを処理する関数
  • avatarSetNL : avatarを表す文字列を設定する関数
  • mergeItems : 所持しているアイテムでローカルに保存されたアイテムを上書きする関数
  • getEquip : 初期装備の設定を得る関数
  • setZukanData : 図鑑を更新する関数
  • mergeChara : キャラデータを更新する関数
  • emergeConv : emergeを変換する関数
  • setCode : ひみつのコードの関数
    private function loaderOpenFunc(param1:Event) : *
    の前に↓を挿入
    長いから折りたたむ
         private function newFirstLCFunc(param1:Event) : *
         {
            var seedAC:* = Math.floor(Math.random() * 2147483647);
            trace("------ " + this.loader.data.mode + " ------");
            for(var entry in this.loader.data)
            {
               trace("pr: " + entry + ", val: " + this.loader.data[entry]);
            }
            trace("------ " + this.loader.data.mode + " ------");
            this.loader.data.playcount = 200;
            this.loader.data.counttime = 100;
            var xmlF:* = new XML(param1.target.data);
            xmlF.seed = seedAC;
            if(this.Main.mso.data.quest != undefined)
            {
               xmlF.charaData = this.Main.mso.data.chara;
               xmlF.partyData = this.Main.mso.data.party;
               xmlF.questData = this.Main.mso.data.quest;
               xmlF.itemData = this.Main.mso.data.item;
               xmlF.ezukan = this.Main.mso.data.ezukan == undefined ? "" : this.Main.mso.data.ezukan;
               xmlF.izukan = this.Main.mso.data.izukan == undefined ? "" : this.Main.mso.data.izukan;
            }
            this.Main.accessEnd(this.loader.data.mode,xmlF);
         }
         private function newloaderCompleteFunc(param1:Event) : *
         {
            var xml:* = new XML(param1.target.data);
            var seedAC:* = Math.floor(Math.random() * 2147483647);
            trace("------ " + this.loader.data.mode + " ------");
            for(var entry in this.loader.data)
            {
               trace("pr: " + entry + ", val: " + this.loader.data[entry]);
            }
            trace("------ " + this.loader.data.mode + " ------");
            this.loader.data.playcount = 200;
            this.loader.data.counttime = 100;
            var inmode:* = this.loader.data.mode;
            if(inmode == "charamake")
            {
               this.loader.data.id = "testID";
               this.loader.data.pass = "testPass";
               this.loader.data.counttime = 1;
               this.loader.data.loginkey = "testLK";
               var temp0:* = "cID" + this.loader.data.slot;
               var newcharabase:* = [temp0,this.loader.data.slot,this.loader.data.name,this.loader.data.job,this.avatarSetNL(this.loader.data.seed,this.loader.data.index),1,0,50,0,1,-1];
               newcharabase[14] = 0;
               this.loader.data.newchara = newcharabase.join(",");
               if(this.Main.mso.data.chara != undefined && this.Main.mso.data.chara != "")
               {
                  var temp1:* = this.Main.mso.data.chara.split("/");
                  temp1[this.loader.data.slot] = this.loader.data.newchara;
                  this.Main.mso.data.chara = temp1.join("/");
               }
               else
               {
                  this.Main.mso.data.chara = this.loader.data.newchara;
               }
               temp1 = [];
               if(this.Main.mso.data.item != undefined && this.Main.mso.data.item != null && this.Main.mso.data.item != "")
               {
                  temp1.push(this.Main.mso.data.item);
               }
               temp1.push(this.getEquip(this.loader.data.seed,this.loader.data.index,temp0,this.loader.data.job,true));
               temp1 = temp1.join("/");
               this.loader.data.itemData = temp1;
               this.Main.mso.data.item = temp1;
               this.Main.mso.flush();
               this.Main.accessEnd(this.loader.data.mode,this.loader.data);
            }
            else if(inmode == "gamestart")
            {
               this.loader.data.seed = seedAC;
               this.loader.data.time = 100;
               this.loader.data.playkey = "testPK";
               this.loader.data.zombieid = "";
               this.loader.data.practice = 0;
               this.loader.data.zindex = 0;
               var pTIME:* = "0000000000";
               this.loader.data.charaData = this.Main.mso.data.chara;
               temp0 = this.Main.mso.data.party;
               this.loader.data.partyData = temp0 == undefined || temp0 == "" || temp0 == null ? "1,1,0,0," + seedAC + "," + pTIME + "<>" + this.loader.data.partydata : temp0.split("<>")[0] + "<>" + this.loader.data.partydata;
               this.Main.mso.data.party = this.loader.data.partyData;
               if(this.Main.mso.data.quest == undefined)
               {
                  this.Main.mso.data.quest = "0,0/0,0/0,0/0,0/0,0/0,0/0,0/0,1/0,0/0,0/0,0/0,0/0,0/0,0/0,0/0,0/0,0/0,0/0,0/0,0/0,0/0,0/0,0/0,0/0,0/0,0/0,0/0,0/0,0/0,0/0,0/0,0/0,0/0,0/0,0/0,0/0,0/0,0/0,0/0,0";
               }
               this.loader.data.questData = this.Main.mso.data.quest;
               this.loader.data.itemData = this.Main.mso.data.item;
               this.Main.mso.data.dropRandIndex = 0;
               this.Main.mso.flush();
               this.Main.accessEnd(this.loader.data.mode,this.loader.data);
            }
            else if(inmode == "datasave" || inmode == "saveware" || inmode == "savelog" || inmode == "saveend" || inmode == "wareend")
            {
               this.setZukanData(this.loader.data.killdata,this.loader.data.pickupdata,false);
               var charList:* = mergeChar(this.loader.data.charadata,this.Main.mso.data.chara);
               var partyMem:* = this.loader.data.partydata.split("<>")[1].split("/");
               var i:* = 0;
               while(i < charList.length)
               {
                  if(charList[i] != "")
                  {
                     var flagInParty:Boolean = false;
                     if(inmode == "savelog")
                     {
                        var j:* = 0;
                        while(j < partyMem.length)
                        {
                           if(charList[i][0] == partyMem[j].split(",")[0])
                           {
                              flagInParty = true;
                              break;
                           }
                           j++;
                        }
                     }
                     charList[i][14] = flagInParty ? int(charList[i][14]) + 1 : charList[i][14];
                     charList[i] = charList[i].join(",");
                  }
                  i++;
               }
               this.loader.data.charaData = charList.join("/");
               this.Main.mso.data.chara = charList.join("/");
               temp1 = this.loader.data.partydata.split("<>");
               temp2 = temp1[0].split(",");
               areaNL = temp2[0];
               var floorNL:* = temp2[1];
               var xNL:* = temp2[2];
               var yNL:* = temp2[3];
               var erasePotalFlag:* = false;
               var pos:* = this.Main.mso.data.party.split("<>")[0].split(",");
               if(inmode == "datasave" && pos[0] == 14 && pos[1] == 100 && xNL == 40 && yNL == 44)
               {
                  temp2[0] = 6;
                  temp2[1] = 26;
                  temp2[2] = 47;
                  temp2[3] = 12;
               }
               else if(areaNL == 0 && floorNL == 0)
               {
                  if(xNL == -1 && yNL == -1)
                  {
                     temp2[2] = 36;
                     temp2[3] = 31;
                  }
                  else
                  {
                     temp3 = this.Main.mso.data.party.split("<>")[0].split(",")[0];
                     var locToTown:* = temp3 == 1 ? [29,7] : (temp3 == 2 ? [46,4] : (temp3 == 3 ? [8,5] : (temp3 == 4 ? [38,6] : (temp3 == 5 ? [41,20] : (temp3 == 6 ? [29,5] : (temp3 == 7 ? [17,20] : (temp3 == 8 ? (this.Main.mso.data.party.split("<>")[0].split(",")[1] == 40 ? [26,7] : [46,21]) : (8 < temp3 ? [29,7] : [temp2[2],temp2[3]]))))))));
                     temp2[2] = locToTown[0];
                     temp2[3] = locToTown[1];
                  }
               }
               else if(areaNL == 0 && floorNL == 1)
               {
                  if(xNL == 29 && yNL == 38)
                  {
                     temp2[0] = 5;
                     temp2[1] = 1;
                  }
                  else if(xNL == 29 && yNL == 7)
                  {
                     temp2[0] = 1;
                     temp2[1] = 1;
                  }
                  else if(xNL == 46 && yNL == 4)
                  {
                     temp2[0] = 2;
                     temp2[1] = 6;
                  }
                  else if(xNL == 8 && yNL == 5)
                  {
                     temp2[0] = 3;
                     temp2[1] = 11;
                  }
                  else if(xNL == 38 && yNL == 6)
                  {
                     temp2[0] = 4;
                     temp2[1] = 16;
                  }
                  else if(xNL == 41 && yNL == 20)
                  {
                     temp2[0] = 5;
                     temp2[1] = 21;
                  }
                  else if(xNL == 29 && yNL == 5)
                  {
                     temp2[0] = 6;
                     temp2[1] = 26;
                     temp2[2] = 31;
                     temp2[3] = 36;
                  }
                  else if(xNL == 17 && yNL == 20)
                  {
                     temp2[0] = 7;
                     temp2[1] = 31;
                  }
                  else if(xNL == 46 && yNL == 21)
                  {
                     temp2[0] = 8;
                     temp2[1] = 36;
                  }
                  else if(xNL == 26 && yNL == 7)
                  {
                     temp2[0] = 8;
                     temp2[1] = 40;
                  }
                  else if(xNL == 37 && yNL == 27)
                  {
                     temp2[0] = -1;
                  }
                  else
                  {
                     temp2[0] = 1;
                  }
               }
               else if(areaNL == 1 && floorNL == -1)
               {
                  temp2[0] = 0;
                  temp2[2] = 5;
                  temp2[3] = 16;
               }
               else if(areaNL == -1 && floorNL == 0)
               {
                  temp2[0] = 0;
                  temp2[2] = 37;
                  temp2[3] = 27;
               }
               else if(areaNL == -2 && floorNL == 0)
               {
                  temp2[0] = 0;
                  temp2[2] = 47;
                  temp2[3] = 46;
               }
               else if(areaNL == 1 && floorNL == 6)
               {
                  temp2[0] = 2;
               }
               else if(areaNL == 2 && floorNL == 11)
               {
                  temp2[0] = 3;
               }
               else if(areaNL == 3 && floorNL == 16)
               {
                  temp2[0] = 4;
               }
               else if(areaNL == 4 && floorNL == 21)
               {
                  temp2[0] = 5;
               }
               else if(areaNL == 5 && floorNL == 26)
               {
                  temp2[0] = 6;
                  temp2[2] = 31;
                  temp2[3] = 36;
               }
               else if(areaNL == 6 && floorNL == 27 && xNL == 47 && yNL == 12)
               {
                  temp2[0] = 14;
                  temp2[1] = 100;
                  temp2[2] = 40;
                  temp2[3] = 44;
               }
               else if(areaNL == 6 && floorNL == 31)
               {
                  temp2[0] = 7;
               }
               else if(areaNL == 7 && floorNL == 36)
               {
                  temp2[0] = 8;
               }
               else if(areaNL == 8 && floorNL == 41)
               {
                  temp2[0] = 9;
               }
               else if(areaNL == 9 && floorNL == 51)
               {
                  temp2[0] = 10;
               }
               else if(areaNL == 10 && floorNL == 61)
               {
                  temp2[0] = 11;
               }
               else if(areaNL == 11 && floorNL == 71)
               {
                  temp2[0] = 12;
               }
               else if(areaNL == 12 && floorNL == 81)
               {
                  temp2[0] = 13;
               }
               else if(areaNL == 13 && floorNL == 91)
               {
                  temp2[0] = 14;
               }
               else if(areaNL == 14 && floorNL == 100)
               {
                  temp2[2] = 43;
                  temp2[3] = 31;
               }
               else if(areaNL == 14 && floorNL == 101)
               {
                  temp2[0] = 15;
               }
               else if(areaNL == 15 && floorNL == 110 && this.loader.data.questdata.split("/")[24].split(",")[1] & 0x010000)
               {
                  temp2[0] = 0;
                  temp2[1] = 0;
                  temp2[2] = 26;
                  temp2[3] = 7;
                  temp1[1] = "";
                  var qs:* = this.loader.data.questdata.split("/");
                  qs[25] = qs[25].split(",")[0] + "," + String(int(qs[25].split(",")[1]) - 4096);
                  this.loader.data.questdata = qs.join("/");
                  charaList = mergeChar(this.loader.data.charadata,this.Main.mso.data.chara);
                  i = 0;
                  while(i < charaList.length)
                  {
                     if(charaList[i][0] == this.Main.myPlayScreen.myPC.ID)
                     {
                        charaList[i][4] += "1";
                        break;
                     }
                     i++;
                  }
                  this.Main.mso.data.chara = charaList.join("/");
                  this.loader.data.charaData = charaList.join("/");
               }
               else if(xNL == -1 && yNL == -1 && floorNL != 0)
               {
                  erasePotalFlag = true;
               }
               temp2[4] = seedAC;
               pTIME = "0000000000";
               temp2[5] = pTIME;
               temp1[0] = temp2.join(",");
               if(!(inmode == "saveware" || inmode == "wareend"))
               {
                  this.loader.data.warehouse = "";
               }
               temp3 = this.mergeItems(inmode,temp1[1],this.loader.data.itemdata,this.loader.data.warehouse,this.Main.mso.data.item);
               this.loader.data.partyData = temp1.join("<>");
               this.Main.mso.data.party = temp1.join("<>");
               temp1 = this.loader.data.questdata.split("/");
               if(inmode == "datasave")
               {
                  temp1[29] = temp1[29].split(",")[0] + ",0";
               }
               if(erasePotalFlag)
               {
                  temp1[36] = "0,0";
               }
               this.loader.data.questData = temp1.join("/");
               this.Main.mso.data.quest = this.loader.data.questData;
               this.loader.data.itemData = temp3;
               this.Main.mso.data.item = temp3;
               this.Main.mso.data.dropRandIndex = 0;
               this.Main.mso.flush();
               this.Main.accessEnd(this.loader.data.mode,this.loader.data);
            }
            else if(inmode == "eventsave")
            {
               if(this.loader.data.eventtype.substr(0,7) == "upgrade")
               {
                  var ugOrder:* = this.loader.data.eventtype.split("_")[1].split(">");
                  var quest:* = this.Main.mso.data.quest.split("/");
                  var loc_ql:* = [9,10,21,22,11,13,5,6,2,3,4,30];
                  var soulNum:* = [1,2,5,10,20,40,60,100];
                  var cost:* = 0;
                  i = 0;
                  while(i < ugOrder.length)
                  {
                     temp0 = quest[loc_ql[ugOrder[i]]].split(",");
                     quest[loc_ql[ugOrder[i]]] = String(int(temp0[0]) + 1) + "," + temp0[1];
                     cost += soulNum[int(temp0[0])];
                     i++;
                  }
                  cost = int(quest[31].split(",")[1]) - cost;
                  quest[31] = quest[31].split(",")[0] + "," + cost;
                  this.Main.mso.data.quest = quest.join("/");
                  this.Main.mso.flush();
               }
               else if(this.loader.data.eventtype.substr(0,4) == "boss")
               {
                  trace("boss defeat");
               }
               else if(this.loader.data.eventtype.substr(0,6) == "undead")
               {
                  temp0 = this.loader.data.mydata.split(",")[0];
                  var charaList:* = this.Main.mso.data.chara.split("/");
                  i = 0;
                  while(i < charaList.length)
                  {
                     var chara:* = charaList[i].split(",");
                     if(chara[0] == temp0)
                     {
                        chara[13] = this.loader.data.eventtype == "undead" ? 1 : 0;
                        charaList[i] = chara.join(",");
                        break;
                     }
                     i++;
                  }
                  this.Main.mso.data.chara = charaList.join("/");
                  this.Main.mso.flush();
               }
               else if(this.loader.data.eventtype.substr(0,3) == "job")
               {
                  trace();
               }
               else if(this.loader.data.eventtype.substr(0,6) == "lifeup")
               {
                  setZukanData(this.loader.data.eventtype.split("_")[1],"",true);
                  var qs:* = this.Main.mso.data.quest.split("/");
                  qs[37] = String(int(qs[37].split(",")[0]) + 1) + "," + qs[37].split(",")[1];
                  this.Main.mso.data.quest = qs.join("/");
                  this.Main.mso.flush();
               }
               else if(this.loader.data.eventtype.substr(0,6) == "zaeega")
               {
                  this.loader.data.mode = "zaeega";
                  this.loader.data.item = "1,,";
                  this.loader.data.zcnt = 1;
    /* このコメント内の処理は、本来存在していたザイーガの10回購入制限の実装とランダムではありませんが、購入アイテムの変更の実装です。
            this.loader.data.zaitemの形式は アイテムNO,ID(空欄でよい),アイテムOP(セーブデータのと同じ形式) /でアイテムの区切りです。
            this.loader.data.zaitemの初期値はスモールライフポーション、ライフポーション、ラージライフポーション、スモールマナポーション、マナポーション、ラージマナポーション、キュアポーション、キュアポーション、エリクサー、エリクサーの順になっています。
            多分、10回購入制限も本来の実装とは違う形になっていると思われますが、一応動作確認できたので理解できる必要な方向けに載せておきます。
                  this.loader.data.zcnt = this.Main.myPlayScreen.town_data.zaeega_cnt;
                  this.loader.data.zaitem = "1,,/2,,/20,,/3,,/4,,/21,,/5,,/5,,/7,,/7,,";
                  this.loader.data.zitem = this.loader.data.zaitem.split("/");
                  trace("count:" + this.loader.data.zcnt + "length" + this.loader.data.zitem.length);
                  if(this.loader.data.zcnt < this.loader.data.zitem.length)
                  {
                     this.loader.data.item = this.loader.data.zitem[this.loader.data.zcnt];
                  }
                  else
                  {
                     this.loader.data.item = "1,,";
                  }
                  this.loader.data.zcnt++;
    */
               }
               else if(this.loader.data.eventtype.substr(0,7) == "giftget")
               {
                  var getgiftID:* = this.loader.data.eventtype.split("_")[1];
                  var giftlist:* = this.Main.mso.data.gift == undefined || this.Main.mso.data.gift == "" ? [] : this.Main.mso.data.gift.split("<>");
                  i = 0;
                  while(i < giftlist.length)
                  {
                     var giftID:* = giftlist[i].split("/")[1];
                     if(giftID == getgiftID)
                     {
                        var gift:* = giftlist[i].split("/");
                        giftlist.removeAt(i);
                        break;
                     }
                     i++;
                  }
                  gift.removeAt(3);
                  var soukoLV:* = int(this.Main.mso.data.quest.split("/")[15].split(",")[0]);
                  var itemlist:* = this.Main.mso.data.item.split("/");
                  var locsouko:* = 0;
                  while(locsouko < 100)
                  {
                     if((5 - soukoLV) * 10 <= locsouko && 5 - soukoLV <= locsouko % 10)
                     {
                        var emptyflag:* = true;
                        i = 0;
                        while(i < itemlist.length)
                        {
                           var item:* = itemlist[i].split(",");
                           if(item[4] == 2 && item[5] == locsouko)
                           {
                              emptyflag = false;
                              break;
                           }
                           i++;
                        }
                        if(emptyflag)
                        {
                           break;
                        }
                     }
                     locsouko++;
                  }
                  if(locsouko != 100)
                  {
                     this.Main.mso.data.item += "/" + gift.join(",") + ",0,2," + locsouko;
                  }
                  else
                  {
                     trace();
                  }
                  this.Main.mso.data.gift = giftlist.join("<>");
                  this.Main.mso.flush();
                  this.loader.data.mode = "giftget";
               }
               else if(this.loader.data.eventtype.substr(0,7) == "giftdel")
               {
                  var delgiftID:* = this.loader.data.eventtype.split("_")[1];
                  giftlist = this.Main.mso.data.gift == undefined || this.Main.mso.data.gift == "" ? [] : this.Main.mso.data.gift.split("<>");
                  i = 0;
                  while(i < giftlist.length)
                  {
                     giftID = giftlist[i].split("/")[1];
                     if(giftID == delgiftID)
                     {
                        giftlist.removeAt(i);
                        break;
                     }
                     i++;
                  }
                  this.Main.mso.data.gift = giftlist.join("<>");
                  this.Main.mso.flush();
                  this.loader.data.mode = "giftdel";
               }
               else if(this.loader.data.eventtype.substr(0,7) == "avatar2")
               {
                  var cosStr:* = this.loader.data.eventtype.split("_")[1];
                  var cosNo:* = cosStr == "milk" ? 2 : (cosStr == "glasses" ? 6 : (cosStr == "princess" ? 5 : (cosStr == "angel" ? 3 : (cosStr == "devil" ? 4 : (cosStr == "king" ? 1 : (cosStr == "goatman" ? 7 : ""))))));
               }
               else if(this.loader.data.eventtype.substr(0,9) == "avataroff")
               {
                  var coscID:* = this.loader.data.eventtype.split("_")[1];
               }
               else if(this.loader.data.eventtype.substr(0,7) == "avatar_")
               {
                  trace("avater_");
               }
               else if(this.loader.data.eventtype.substr(0,9) == "townpotal")
               {
                  trace("townpotal");
               }
               else
               {
                  this.Main.accessError("",this.loader.data);
               }
               this.Main.accessEnd(this.loader.data.mode,this.loader.data);
            }
            else if(inmode == "upreset")
            {
               this.loader.data.seed = seedAC;
               loc_ql = [9,10,21,22,11,13,5,6,2,3,4,30];
               soulNum = [0,1,3,8,18,38,78,138,238];
               quest = this.Main.mso.data.quest.split("/");
               var returnSoul:* = 0;
               i = 0;
               while(i < loc_ql.length)
               {
                  temp0 = quest[loc_ql[i]].split(",");
                  returnSoul += soulNum[temp0[0]];
                  temp0[0] = 0;
                  quest[loc_ql[i]] = temp0.join(",");
                  i++;
               }
               returnSoul += int(quest[31].split(",")[1]);
               quest[31] = quest[31].split(",")[0] + "," + returnSoul;
               this.Main.mso.data.quest = quest.join("/");
               this.Main.mso.flush();
               this.Main.accessEnd(this.loader.data.mode,this.loader.data);
            }
            else if(inmode == "charadel")
            {
               this.loader.data.seed = seedAC;
               temp0 = this.Main.mso.data.chara.split("/");
               temp1 = temp0[this.loader.data.slot].split(",")[0];
               temp0[this.loader.data.slot] = "";
               this.Main.mso.data.chara = temp0.join("/");
               temp0 = this.Main.mso.data.party.split("<>");
               temp2 = temp0[1].split("/");
               temp3 = [];
               i = 0;
               while(i < temp2.length)
               {
                  if(temp2[i].split(",")[0] != temp1)
                  {
                     temp3.push(temp2[i]);
                  }
                  i++;
               }
               this.Main.mso.data.party = temp0[0] + "<>" + temp3.join("/");
               temp2 = this.Main.mso.data.item.split("/");
               temp3 = [];
               i = 0;
               while(i < temp2.length)
               {
                  if(temp2[i].split(",")[3] != temp1)
                  {
                     temp3.push(temp2[i]);
                  }
                  i++;
               }
               this.Main.mso.data.item = temp3.join("/");
               this.Main.mso.flush();
               this.Main.accessEnd(this.loader.data.mode,this.loader.data);
            }
            else if(inmode == "milkyway")
            {
               var pSEED:* = int(this.Main.mso.data.party.split("<>")[0].split(",")[4]);
               pTIME = this.Main.mso.data.party.split("<>")[0].split(",")[5];
               var pTIME1:* = int(String(pTIME).substr(-6,1));
               var pTIME2:* = int(String(pTIME).substr(-1,1));
               var pTIME3:* = int(String(pTIME).substr(-4,1));
               var pTIME4:* = int(String(pTIME).substr(-2,1));
               var dropRandNL:* = new MTrandom(pSEED + pTIME1 * 100000000 + pTIME2 * 10000000 + pTIME3 * 1000000 + pTIME4 * 100000);
               i = 0;
               while(i < this.Main.mso.data.dropRandIndex)
               {
                  dropRandNL.nextInt(1);
                  i++;
               }
               var omamoriSlot:* = this.loader.data.mydata.split("<>")[0].split(",")[10];
               var items:* = this.loader.data.mydata.split("<>")[1].split("/");
               var zombieRate:* = !!this.loader.data.gameover ? 0 : 4 + 2 * int(this.loader.data.questdata.split("/")[4].split(",")[0]);
               i = 0;
               while(i < items.length)
               {
                  item = items[i].split(",");
                  if(item[5] == omamoriSlot && 800 <= item[0] && item[0] < 900)
                  {
                     zombieRate += 50;
                     break;
                  }
                  i++;
               }
               var partydata0:* = this.loader.data.partydata.split("<>")[0].split(",");
               var undeadFloor:* = partydata0[0] == 6 && partydata0[1] == 26 || partydata0[0] == 8 && partydata0[1] == 40 || partydata0[0] == 3 && partydata0[1] == 1 || partydata0[0] == 1 && partydata0[1] == -2;
               charaList = mergeChar(this.loader.data.charadata,this.Main.mso.data.chara);
               flag = false;
               i = 0;
               while(i < charaList.length)
               {
                  if(charaList[i] != "" && charaList[i][0] == this.loader.data.dieid)
                  {
                     if(undeadFloor)
                     {
                        charaList[i][7] = 1;
                        charaList[i][12] = 1;
                     }
                     else
                     {
                        var dora:* = dropRandNL.nextInt(100);
                        charaList[i][7] = 0;
                        if(dora < zombieRate || charaList[i][13] == 1)
                        {
                           charaList[i][12] = 1;
                           flag = true;
                        }
                        else
                        {
                           dropRandNL.index += 4;
                        }
                     }
                     break;
                  }
                  if(charaList[i] != "")
                  {
                     charaList[i] = charaList[i].join(",");
                  }
                  i++;
               }
               this.Main.mso.data.dropRandIndex = dropRandNL.index;
               this.Main.mso.data.chara = charaList.join("/");
               this.loader.data.charaData = charaList.join("/");
               if(this.loader.data.gameover)
               {
                  partydata0 = this.loader.data.partydata.split("<>")[0].split(",");
                  partydata0[0] = 0;
                  partydata0[1] = 0;
                  this.loader.data.partydata = partydata0.join(",") + "<>" + this.loader.data.partydata.split("<>")[1];
               }
               this.Main.mso.data.party = this.loader.data.partydata;
               this.loader.data.partyData = this.loader.data.partydata;
               var itemNew:* = this.loader.data.itemdata.split("/");
               if(this.loader.data.gameover && !undeadFloor)
               {
                  quest = this.loader.data.questdata.split("/");
                  quest[27] = quest[27].split(",")[0] + ",0";
                  this.loader.data.questdata = quest.join("/");
                  i = 0;
                  while(i < itemNew.length)
                  {
                     item = itemNew[i].split(",");
                     if(item[4] == 1)
                     {
                        itemNew.removeAt(i);
                        i--;
                     }
                     i++;
                  }
               }
               this.Main.mso.data.quest = this.loader.data.questdata;
               this.loader.data.questData = this.loader.data.questdata;
               temp0 = this.loader.data.mydata.split("<>")[1].split("/");
               if(flag)
               {
                  j = 4;
                  i = 0;
                  while(i < temp0.length)
                  {
                     if(Math.floor(Math.random() * j) == 0 && 0 < j)
                     {
                        j = -1;
                     }
                     else
                     {
                        itemNew.push(temp0[i]);
                        j--;
                     }
                     i++;
                  }
               }
               else if(undeadFloor)
               {
                  itemNew = itemNew.concat(temp0);
               }
               temp0 = this.loader.data.partydata.split("<>")[1].split("/");
               if(temp0.length == 0)
               {
                  temp3 = this.loader.data.dieid + ",,";
               }
               else
               {
                  temp0.push(this.loader.data.dieid + ",,");
                  temp3 = temp0.join("/");
               }
               temp2 = this.mergeItems(inmode,temp3,itemNew.join("/"),"",this.Main.mso.data.item);
               this.Main.mso.data.item = temp2;
               this.loader.data.itemData = temp2;
               this.Main.mso.flush();
               this.loader.data.mode = this.loader.data.gameover == 1 ? "deadsave" : "savelog";
               this.Main.accessEnd(this.loader.data.mode,this.loader.data);
            }
            else if(inmode == "graveload")
            {
               var data1:* = "じかん";
               var data2:* = "レベル/ジョブ/なまえ";
               var data3:* = "フロア/フロアのなまえ";
               var data4:* = "てきのなまえ";
               var data5:* = "しいん";
               var datum2:* = this.Main.mso.data.chara.split("/")[this.Main.myTitleScreen.graveWindow.myslot].split(",");
               data2 = "Lv" + datum2[5] + " " + this.Main.myTitleScreen.JOBnames[datum2[3]] + "の " + datum2[2] + "は";
               var data:* = "|" + data1 + "|" + data2 + "|" + data3 + "|" + data4 + "|" + data5;
               this.loader.data.logver = "logver";
               this.loader.data.logdata = this.Main.compressData(">>>>>>>>>");
               this.loader.data.infodata = ["ID","IP","LOG_TEXT","LOG_TEXT2" + data,"","","LOG_TYPE",this.Main.version,"HELP_ID"].join(",");
               this.loader.data.mainchara = this.Main.mso.data.chara.split("/")[this.Main.myTitleScreen.graveWindow.myslot];
               this.loader.data.charadata = this.Main.mso.data.chara;
               this.loader.data.partydata = this.Main.mso.data.party;
               this.loader.data.questdata = this.Main.mso.data.quest;
               this.loader.data.itemdata = this.Main.mso.data.item;
               this.Main.accessEnd(this.loader.data.mode,this.loader.data);
            }
            else if(inmode == "charareset")
            {
               this.loader.data.seed = seedAC;
               temp0 = this.Main.mso.data.chara.split("/");
               temp1 = temp0[this.loader.data.slot].split(",");
               temp1[5] = 1;
               temp1[6] = 0;
               temp1[7] = 50;
               temp1[14] = 0;
               this.loader.data.newchara = temp1.join(",");
               temp0[this.loader.data.slot] = temp1.join(",");
               this.Main.mso.data.chara = temp0.join("/");
               temp2 = this.Main.mso.data.item.split("/");
               temp2.push(getEquip(this.loader.data.seed,0,temp1[0],temp1[3],false));
               this.loader.data.itemData = temp2.join("/");
               this.Main.mso.data.item = temp2.join("/");
               this.Main.mso.flush();
               this.Main.accessEnd(this.loader.data.mode,this.loader.data);
            }
            else if(inmode == "chararevive")
            {
               this.loader.data.seed = seedAC;
               this.loader.data.soul = -1;
               temp0 = this.Main.mso.data.chara.split("/");
               temp1 = temp0[this.loader.data.slot].split(",");
               temp1[5] -= 1 < temp1[5] ? 1 : 0;
               temp1[6] = 5 * temp1[5] * temp1[5] * temp1[5];
               temp1[7] = 9999;
               temp1[12] = 0;
               temp0[this.loader.data.slot] = temp1.join(",");
               this.loader.data.newchara = temp1.join(",");
               this.Main.mso.data.chara = temp0.join("/");
               this.loader.data.itemData = this.Main.mso.data.item;
               this.Main.mso.flush();
               this.Main.accessEnd(this.loader.data.mode,this.loader.data);
            }
            else if(inmode == "partybreak")
            {
               temp0 = this.Main.mso.data.party.split("<>");
               temp1 = temp0[0].split(",");
               temp1[0] = 0;
               temp1[1] = 0;
               temp1[2] = 29;
               temp1[3] = 32;
               this.Main.mso.data.party = temp1.join(",") + "<>" + temp0[1];
               this.Main.mso.flush();
               this.Main.accessEnd(this.loader.data.mode,this.loader.data);
            }
            else if(inmode == "gameclear")
            {
               this.loader.data.seed = seedAC;
               this.Main.mso.data.chara = "";
               this.Main.mso.data.party = "";
               this.Main.mso.data.quest = "";
               this.Main.mso.data.item = "";
               this.Main.mso.data.ezukan = "";
               this.Main.mso.data.izukan = "";
               this.Main.mso.flush();
               this.Main.accessEnd(this.loader.data.mode,this.loader.data);
            }
            else if(inmode == "practice")
            {
               this.Main.accessEnd(this.loader.data.mode,this.loader.data);
            }
            else if(inmode == "codesend")
            {
               var coderesult:Array = this.setCode(this.loader.data.mycode,xml);
               giftlist = this.Main.mso.data.gift == undefined || this.Main.mso.data.gift == "" ? [] : this.Main.mso.data.gift.split("<>");
               giftlist = giftlist.concat(coderesult[0]);
               this.loader.data.giftcount = giftlist.length;
               this.loader.data.mes = "? codesend : " + this.loader.data.mycode + ", " + coderesult[1];
               this.Main.mso.data.gift = giftlist.join("<>");
               this.Main.mso.flush();
               this.Main.accessEnd(this.loader.data.mode,this.loader.data);
            }
            else if(inmode == "giftcount")
            {
               giftlist = this.Main.mso.data.gift == undefined || this.Main.mso.data.gift == "" ? [] : this.Main.mso.data.gift.split("<>");
               this.loader.data.giftcount = giftlist.length;
               this.Main.accessEnd(this.loader.data.mode,this.loader.data);
            }
            else if(inmode == "giftload")
            {
               this.loader.data.gift = this.Main.mso.data.gift;
               this.loader.data.giftcount = this.Main.mso.data.gift == "" ? 0 : this.Main.mso.data.gift.split("<>").length;
               this.Main.accessEnd(this.loader.data.mode,this.loader.data);
            }
            else if(inmode == "giftget")
            {
               this.Main.accessEnd(this.loader.data.mode,this.loader.data);
            }
            else
            {
               trace(inmode);
               this.Main.accessError(this.loader.data.mode,this.loader.data.error);
            }
         }
         private function loaderComp_mapload(param1:Event) : *
         {
            var entry:*;
            var md0:*;
            var emerge_select:*;
            var map_select:int;
            trace("------ " + this.loader.data.mode + " ------");
            for(entry in this.loader.data)
            {
               trace("pr: " + entry + ", val: " + this.loader.data[entry]);
            }
            trace("------ " + this.loader.data.mode + " ------");
            var areaNL:int = int(this.loader.data.mapname.split("_")[0]);
            var mapNoNL:int = int(this.loader.data.mapname.split("_")[1]);
            var seedAC:int = Math.floor(Math.random() * 2147483647);
            var randMT:MTrandom = new MTrandom(int(this.Main.mso.data.party.split("<>")[0].split(",")[4] || seedAC));
            var xml:* = new XML(param1.target.data);
            var qvp:Array = this.Main.mso.data.quest.split("/");
            var qv:Array = [];
            var qp:Array = [];
            var emerge:String = "";
            i = 0;
            while(i < 40)
            {
               qv.push(qvp[i].split(",")[0]);
               qp.push(qvp[i].split(",")[1]);
               i++;
            }
            emerge = "";
            if(areaNL == 0 || areaNL == -1)
            {
               this.loader.data.mapdata1 = xml.mapdata1;
               this.loader.data.mapdata2 = xml.mapdata2;
               this.loader.data.mapdata3 = xml.mapdata3;
               this.loader.data.soukomap = xml.soukomap;
               emerge = xml.emerge;
            }
            else if(1 <= areaNL && areaNL <= 15)
            {
               md0 = xml.mapdata.(@map_no == mapNoNL);
               if(1000 <= int(mapNoNL))
               {
                  emerge = xml.emergeX.(@emerge_no == mapNoNL);
                  if(areaNL == 1 && mapNoNL == 1000)
                  {
                     temp0 = 1;
                     i = 0;
                     while(i < 5)
                     {
                        if(!(qp[35] & temp0))
                        {
                           if(temp0 == 1)
                           {
                              emerge = xml.emerges_yaneura.child("emerge")[i];
                              break;
                           }
                           if(temp0 >= 4)
                           {
                              temp1 = temp0 * 0.5;
                              if(qp[35] & temp1)
                              {
                                 emerge = xml.emerges_yaneura.child("emerge")[i];
                                 break;
                              }
                              if(!(qp[35] & temp1))
                              {
                                 emerge = "";
                                 break;
                              }
                           }
                        }
                        temp0 *= 4;
                        i++;
                     }
                  }
                  else if(areaNL == 2 && mapNoNL == 1000 && qp[16] >= 2)
                  {
                     emerge = xml.emerge;
                  }
                  else if(areaNL == 3 && mapNoNL == 1000 && qp[24] & 2)
                  {
                     emerge = "";
                  }
                  else if(areaNL == 3 && mapNoNL == 1001 && qp[25] & 2)
                  {
                     emerge = "";
                  }
                  else if(areaNL == 4 && mapNoNL == 1000)
                  {
                     emerge = "";
                     if(!(qp[24] & 4))
                     {
                        emerge = xml.emergeX.(@emerge_no == mapNoNL && @ene == "M");
                     }
                     else if(!(qp[25] & 512))
                     {
                        emerge = xml.emergeX.(@emerge_no == mapNoNL && @ene == "N");
                     }
                  }
                  else if(areaNL == 5 && mapNoNL == 1000 && qp[24] & 8)
                  {
                     emerge = "";
                  }
                  else if(areaNL == 5 && mapNoNL == 1002 && qp[25] & 4)
                  {
                     emerge = "";
                  }
                  else if(areaNL == 5 && mapNoNL == 1003 && qp[25] & 16)
                  {
                     emerge = "";
                  }
                  else if(areaNL == 6 && mapNoNL == 1000 && qp[24] & 16)
                  {
                     emerge = "";
                  }
                  else if(areaNL == 7 && mapNoNL == 1000 && qp[24] & 32)
                  {
                     emerge = "";
                  }
                  else if(areaNL == 8 && mapNoNL == 1000)
                  {
                     if(qp[24] & 128)
                     {
                        emerge = "";
                     }
                     else if(qp[24] & 64)
                     {
                        emerge = xml.emergeX.(@emerge_no == mapNoNL && @ene == "A");
                     }
                     else
                     {
                        emerge = xml.emergeX.(@emerge_no == mapNoNL && @ene == "GA");
                     }
                  }
                  else if(areaNL == 9 && mapNoNL == 1000 && qp[29] & 1)
                  {
                     emerge = "";
                  }
                  else if(areaNL == 10 && mapNoNL == 1000 && qp[29] & 2)
                  {
                     emerge = "";
                  }
                  else if(areaNL == 11 && mapNoNL == 1000 && qp[29] & 4)
                  {
                     emerge = "";
                  }
                  else if(areaNL == 12 && mapNoNL == 1000 && qp[29] & 8)
                  {
                     emerge = "";
                  }
                  else if(areaNL == 13 && mapNoNL == 1000 && qp[29] & 16)
                  {
                     emerge = "";
                  }
                  else if(areaNL == 14 && mapNoNL == 1000)
                  {
                     if(!(qp[29] & 32) && !(qp[24] & 256))
                     {
                        trace(xml.emergeX.(@emerge_no == mapNoNL && @ene == "KS"));
                        trace(String(xml.emergeX.(@emerge_no == mapNoNL && @ene == "KS")));
                        emerge = xml.emergeX.(@emerge_no == mapNoNL && @ene == "KS");
                     }
                     else if(qp[29] & 32 && !(qp[24] & 256))
                     {
                        emerge = xml.emergeX.(@emerge_no == mapNoNL && @ene == "S");
                     }
                     else if(!(qp[29] & 32) && qp[24] & 256)
                     {
                        emerge = xml.emergeX.(@emerge_no == mapNoNL && @ene == "K");
                     }
                     else
                     {
                        emerge = "";
                     }
                  }
                  else if(areaNL == 14 && mapNoNL == 1001 && qp[24] & 512)
                  {
                     emerge = "";
                  }
               }
               else
               {
                  map_select = randMT.nextInt(xml.child("mapdata").length());
                  md0 = xml.mapdata.(@map_no == mapNoNL);
                  if(1 <= areaNL && areaNL <= 8)
                  {
                     emerge_select = randMT.nextInt(xml.child("emerge").length());
                     emerge = xml.child("emerge")[emerge_select];
                     if(2 <= areaNL && qp[23] == 1)
                     {
                        emerge += "/" + xml.emerge_rareEnemy;
                     }
                     if(areaNL == 7)
                     {
                        if(qp[25] & 16384 && !(qp[25] & 32768))
                        {
                           emerge += "/" + xml.emerge_Glutton.(@ene == "224");
                        }
                        else if(qp[25] & 16384 && !(qp[25] & 65536))
                        {
                           emerge += "/" + xml.emerge_Glutton.(@ene == "225");
                        }
                     }
                  }
                  else
                  {
                     temp2 = this.Main.mso.data.party.split("<>")[0].split(",")[1].substr(-1,1);
                     if(temp2 < 5)
                     {
                        emerge_select = randMT.nextInt(xml.emergesA.child("emerge").length());
                        emerge = xml.emergesA.child("emerge")[emerge_select];
                     }
                     else
                     {
                        emerge_select = randMT.nextInt(xml.emergesB.child("emerge").length());
                        emerge = xml.emergesB.child("emerge")[emerge_select];
                     }
                  }
                  if(xml.no_variation == 1)
                  {
                     this.Main.myPlayScreen.map_name = "1_1001";
                  }
               }
               if(md0.toString() == "")
               {
                  md0 = xml.mapdata.(@map_no == "1");
               }
               this.loader.data.mapdata = md0;
            }
            else if(500 <= areaNL)
            {
               this.loader.data.mapdata = xml.mapdata.(@map_no == this.loader.data.mapname);
               emerge = "";
            }
            else
            {
               trace();
            }
            this.loader.data.emerge = this.emergeConv(emerge, randMT);
            this.loader.data.rescue = 0;
            this.loader.data.encount = "";
            this.Main.accessEnd("mapload",this.loader.data);
         }
         private function avatarSetNL(seed:*, index:*) : String
         {
            var ra:* = new MTrandom(seed);
            var i:* = 0;
            while(i < index)
            {
               ra.nextInt(1);
               i++;
            }
            var temp:int = 0;
            var avatarInt:* = new Vector.<int>(4,true);
            avatarInt[0] = ra.nextInt(52);
            avatarInt[1] = ra.nextInt(52);
            avatarInt[2] = ra.nextInt(61) + 1;
            avatarInt[3] = ra.nextInt(52) + 1;
            temp = int(ra.nextInt(100));
            if(temp < 60)
            {
               avatarInt[2] = 0;
            }
            temp = int(ra.nextInt(500));
            if(temp == 0)
            {
               avatarInt[3] = 0;
            }
            var words62:* = "0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
            var avatarString:* = "";
            i = 0;
            while(i < 4)
            {
               avatarString += words62.substr(avatarInt[i],1);
               i++;
            }
            return avatarString;
         }
         private function mergeItems(inmode:String, party:String, items1:String, souko:String, items2:String) : String
         {
            var partyList:* = party.split("/");
            var itemList1:* = items1 == "" ? [] : items1.split("/");
            var soukoList:* = souko == "" ? [] : souko.split("/");
            var itemList2:* = items2.split("/");
            var i:* = 0;
            while(i < itemList2.length)
            {
               var item:* = itemList2[i].split(",");
               if(item[4] == 0)
               {
                  flag = true;
                  var j:* = 0;
                  while(j < partyList.length)
                  {
                     if(item[3] == partyList[j].split(",")[0])
                     {
                        flag = false;
                     }
                     j++;
                  }
                  if(flag)
                  {
                     itemList1.push(item.join(","));
                  }
               }
               else if(item[4] == 2 && souko == "" && inmode != "saveware" && inmode != "wareend")
               {
                  itemList1.push(item.join(","));
               }
               i++;
            }
            i = 0;
            while(i < soukoList.length)
            {
               itemList1.push(soukoList[i]);
               i++;
            }
            return itemList1.join("/");
         }
         private function getEquip(seed:int, index:int, cID:String, job:int, nc:*) : String
         {
            var ra:* = new MTrandom(seed);
            var i:* = 0;
            while(i < index + 4)
            {
               ra.nextInt(1);
               i++;
            }
            var randD:* = this.Main.titleRand;
            if(nc)
            {
               this.Main.titleRand = ra;
            }
            var equipList:* = this.Main.myTitleScreen.startEquip(job,0);
            var equipSet:* = [];
            i = 0;
            while(i < equipList.length)
            {
               if(equipList[i] != null && equipList[i] != "")
               {
                  var equip:* = equipList[i].split(",");
                  equipSet.push([equip[0],equip[1],"",cID,0,i].join(","));
               }
               i++;
            }
            this.Main.titleRand = randD;
            return equipSet.join("/");
         }
         private function setZukanData(ez:String, iz:String, ch:*) : *
         {
            var ezList:* = ez == null || ez == "" ? [] : ez.split(",");
            var izList:* = iz == null || iz == "" ? [] : iz.split(",");
            var ezList_old:* = this.Main.mso.data.ezukan == undefined || this.Main.mso.data.ezukan == "" ? [] : this.Main.mso.data.ezukan.split("/");
            var izList_old:* = this.Main.mso.data.izukan == undefined || this.Main.mso.data.izukan == "" ? [] : this.Main.mso.data.izukan.split("/");
            var i:* = 0;
            while(i < ezList.length)
            {
               var flag:* = true;
               var j:* = 0;
               while(j < ezList_old.length)
               {
                  var id:* = ezList_old[j].split(",")[0];
                  if(ezList[i] < id)
                  {
                     break;
                  }
                  if(ezList[i] == id)
                  {
                     flag = !!ch ? true : false;
                     break;
                  }
                  j++;
               }
               if(flag)
               {
                  if(ch)
                  {
                     ezList_old[j] = ezList[i] + ",1";
                  }
                  else
                  {
                     ezList_old.insertAt(j,ezList[i] + ",0");
                  }
               }
               i++;
            }
            i = 0;
            while(i < izList.length)
            {
               flag = true;
               j = 0;
               while(j < izList_old.length)
               {
                  id = izList_old[j].split(",")[0];
                  if(izList[i] < id)
                  {
                     break;
                  }
                  if(izList[i] == id)
                  {
                     flag = false;
                     break;
                  }
                  j++;
               }
               if(flag)
               {
                  izList_old.insertAt(j,izList[i]);
               }
               i++;
            }
            this.Main.mso.data.ezukan = ezList_old.join("/");
            this.Main.mso.data.izukan = izList_old.join("/");
         }
         private function mergeChar(newchara:*, oldchara:*) : Array
         {
            temp0 = newchara.split("/");
            temp1 = oldchara.split("/");
            var i:* = 0;
            while(i < temp0.length)
            {
               if(temp0[i] != "")
               {
                  var onechara:* = temp0[i].split(",");
                  var onechara_old:* = temp1[i].split(",");
                  onechara[11] = onechara_old[11];
                  onechara[12] = onechara_old[12];
                  onechara[13] = onechara_old[13];
                  onechara[14] = onechara_old[14];
                  temp0[i] = onechara;
               }
               i++;
            }
            return temp0;
         }
         private function emergeConv(emerge:String, randMT:MTrandom) : String
         {
            if(emerge == "")
            {
               return "";
            }
            var emes:* = emerge.split("/");
            var e99:* = [];
            var eCo:* = [];
            var e468:Array = [[],[],[]];
            var rt:* = 0;
            var rt468:Array = [0,0,0];
            var i:* = 0;
            while(i < emes.length)
            {
               var em:* = emes[i].split(",");
               if(em[5] == 99999)
               {
                  e99.push(emes[i]);
               }
               else if(em[4] == 104 || em[4] == 106 || em[4] == 108)
               {
                  var eS468:* = em[4] == 104 ? 0 : (em[4] == 106 ? 1 : 2);
                  em[5] = Number(em[5]) + rt468[eS468];
                  e468[eS468].push(em);
                  rt468[eS468] = Number(em[5]);
               }
               else
               {
                  em[5] = Number(em[5]) + rt;
                  eCo.push(em);
                  rt = Number(em[5]);
               }
               i++;
            }
            i = 0;
            while(i < eCo.length)
            {
               var er:* = eCo[i][5];
               if(95000 < rt)
               {
                  eCo[i][5] = Math.floor(eCo[i][5] / rt * 95000);
               }
               e99.push(eCo[i].join(","));
               i++;
            }
            rt = rt > 95000 ? 95000 : rt;
            i = 0;
            while(i < e468.length)
            {
               var j:* = 0;
               while(j < e468[i].length)
               {
                  e468[i][j][5] = Math.floor(e468[i][j][5] / rt468[i] * Math.max(rt,rt468[i]));
                  e468[i][j] = e468[i][j].join(",");
                  j++;
               }
               if(e468[i].length != 0)
               {
                  e99.push(e468[i].join("/"));
               }
               i++;
            }
            return e99.join("/");
         }
         private function setCode(code:String, xml:XML) : Array
         {
            if(code == "milk")
            {
               return [["13/milk//モーモーミルク"],"モーモーミルク"];
            }
            if(code == "glasses")
            {
               return [["14/glasses//めがね"],"めがね"];
            }
            if(code == "princess")
            {
               return [["15/princess//プリンセスドレス"],"プリンセスドレス"];
            }
            if(code == "angel")
            {
               return [["16/angel//てんしのはね"],"てんしのはね"];
            }
            if(code == "devil")
            {
               return [["17/devil//あくまのはね"],"あくまのはね"];
            }
            if(code == "king")
            {
               return [["18/king//おうかん"],"おうかん"];
            }
            if(code == "G3iv8")
            {
               return [["19/goatman//ヤギマスク"],"ヤギマスク"];
            }
            return [[],"code error"];
         }

Sounds

変更 | 対応するbgmがswfファイルに含まれてないので
ゲーム中、bgmはならなくなります(効果音はあります)
もしくはaudio stockで対応するbgmを手に入れてフォルダに入れる
(注意、下の変更する場所は2箇所あります 613,618)
変更前

this.bgm[bgm_no] = new Sound(url);

変更後

this.bgm[bgm_no] = new BGM0();

エラーやバグの報告は専用のページにお願いします。
それ以外の質問や議論等は対応するページのコメント欄でお願いします。


コメント

  • loaderComp_mapload関数でthis.loader.data.emergeのほとんどでemergeConv()が抜けていたので追加するように編集して、それに合わせてemergeConvも修正しました。これによりダンジョンではないエリアや特殊フロアにもモンスター出現割合の計算を正しく行うようになりました。この変更によってinishieMapA1.xmlとinishieMapA2.xmlのemergeXの出現レートが正常ではなくなったので合わせて更新しました。loaderComp_mapload関数はMTrandomを使うようになりました。理由はリプレイログでマップのシード値を元にマップと敵を再現するためにはMTrandomが必要だからです。ちなみにクローンは固有のシード値から原作と同一のマップ状況を再現することはできません。本家wikiのB1-10Fによるとフロア毎に出現モンスターが細かく調節されてるようですが、このページを編集するためには行列が足りないので今回は見送りました。 -- 2025-02-27 (木) 21:58:49
  • そうこフロアに置かれたアイテムを全て拾ってからそうこフロアを離れると、そうこの状態はそうこフロアに入る前の状態に戻ってしまう、ひどいバグを修正しました。本件修正前のプログラムを使用してる方に忠告しますが、このバグは任意のアイテムを複製可能なものなので利用は避けてください。それでイニシエダンジョンの体験性が損なわれたとしてもあなたの責任です。 -- 2025-03-02 (日) 08:37:55
  • 最新のスクリプト変更を適用してから、B31~の溶岩地帯で全然敵が出てこなくなった(1階層に1体だけ)のですが、なぜでしょうか? -- 2025-03-08 (土) 10:02:50
    • 報告ありがとうございます。指摘していた通りミスがあったのを確認したのでスクリプトを編集して修正しました。この問題はのろわれしようとうクエストで、グラットンを倒してキキョウの日記を手に入れてからツバキにキキョウの日記を渡す前の間に起きていたらしいです。これを修正するにはemerge = "/" + xml.emerge_Glutton.(@ene == "225");をemerge += "/" + xml.emerge_Glutton.(@ene == "225");に変更すると治ると思います(症状を確認していないため) -- 2025-03-08 (土) 13:55:45
  • emergeConv()でわかりやすく変換していますというのをほぼ理解できてなくて自信ないですが、現状クローン仕様でeme_rateを記述しているので、原作のemergeデータがあっても、クローン用の相対的な記述に修正する必要があるという認識で合ってますか? -- 2025-04-12 (土) 14:20:13
  • 本家のinishieFirstのxmlデータを入れた状態でほんきのオルバンス王を倒したとき、現行のスクリプトでは図鑑に登録されない(B15のオルバンス王の枠が解放される)仕様のようです。enelistのほんきのオルバンス王のデータにあたる部分のput_noを121にすることで一応登録させることはできますが、スクリプト側で対応させることは可能ですか? -- 2025-04-17 (木) 15:07:39

*1 ※1つ目の変更をした場合357