《流星蝴蝶劍》修改法詳解

  《流星蝴蝶劍》場景NPC編輯方法:

  1)游戲中20個場景代號
  01 鍾乳洞 02 秦皇陵 03 一線天 04 織雪城 05 皇天城 06 四方陣 07 死之陣 08 毒牙陣 09 決死陣 10 暫時看不清楚 11 五爪峰 12 烽火雷 13 金華城 14 炎硫島 15 飛鵬堡 16 五雷塔 17 伏虎山 18 圓滿樓 19 洛陽城 20 臥龍窟

  2)對於單個NPC的編輯
  在游戲目錄下打開Level文件夾,用記事本打開NPC*.pst就可以編輯了,當然也可以創建,*的地方一般來說是數字,也就是游戲設計者設定的文件名,前面一個數字代表出場場景,後面一個數字代表第幾個加入的NPC。當然我們自己用記事本製作的文件可以隨便命名。打開以後需要寫入以下幾點。//為註釋
  // 姓名
  string Name= “”;

  // 模型編號
  //0孟星魂 1冷燕 2鐵鬍子 3夜貓子 4和尚 5蒙古人 6孫劍 7蕭安 8子輿
  //9王強 10無名 11葉翔 12小何 13鳳凰 14石群 15屠城 16范旋 17高寄萍
  //18孫玉伯 19律香川
  int Model =1;

  // 武器1
  //0沒有(武器1一定要有) 1標 2飛輪 3火統 4雙刺 5匕首 6劍 7槍 8刀 9錘
  int Weapon = 6;

  // 武器2沒有就為0
  int Weapon2 = 7;

  // 隊伍:0不分隊伍1流星2蝴蝶
  int Team = 1;

  // 視線 100~2000
  int View = 500;

  // 反映 0~100, 100程е
  int Think = 100;

  //攻擊幾率(1輕2中3重)攻擊加防守幾率  int Attack1 = 30;
  int Attack2 = 20;
  int Attack3 = 30;

  // 防禦幾率0~100
  int Guard = 10;

  // 逃跑幾率 0~100
  int Dodge = 20;

  // 跳躍幾率 0~100
  int Jump = 20;

  // 四處張望 0~100
  int Look = 40;

  // 快速跑 0~100
  int Burst = 10;

  // 准心 0~100
  int Aim = 80;

  // 拿寶物幾率0~100
  int GetItem = 30;

  // 出生點編號
  int Spawn = 1;

  // 初始生命值
  int HP = 1000;

  // 接着必須寫入這些話
  int g_selfAddr;
  int g_self;
  OnInit(int this)
  {
  g_selfAddr = this;//g_selfAddr前面用Tab鍵創造1個空格。
  }

  //寫入開始時候的動作
  OnStart()
  {
  寫入動作函數int ChangeBehavior(句柄,動作,輔助);
  //對於這個動作函數,游戲製作人給了一個ChangeBehavior(句柄,動作,輔助)函
  //數。句柄可以填入g_self,動作是”wait”原地張望(注意引號要打入)
  //”idle”戰立不動
  //”run”無目的亂跑
  //”patrol”在地圖文件不帶「_」的那個里面有了點了,你只需在輔助的位置打入幾
  //個點的代號(1,2,3等等)兩個點之間用逗號隔開。
  //”follow”跟着某個精靈行動,吧要跟隨的精靈寫在輔助的位置上,這些精靈有
  //1)”player”玩家(注意引號)
  //2)”vip”腳下有花紋的,也就是暗殺里面死了就輸了的
  //3)”enemyvip”敵人腳底下有花紋的
  //4)”flag”腳下有持有鏢物的花紋的
  //5)”文件名不帶後綴名”也就是這版會出現的其他NPC。現在再寫的是一個。
  }

  // 執行
  OnUpdate()
  {
  int a = 0;
  }

  //寫玩以上的內容,可以存盤了,請注意要存放方式,上面的要寫入文件名.Pst,下面的保存類型要是*.*
  3)地圖文件編輯
  在Level文件夾下,您一定會發現還有sn開頭的pst文件,這就是地圖文件,對於sn01.pst等文件,我們暫時不要去改他,這些是確定一個點,也就是巡邏用的。我們更改那些個類似sn01_.pst的文件,如果您要使用Patrol,那麼等我研究好會告訴你的。地圖文件只能對一有的文件進行編輯,也用記事本打開。
  // 場景名稱(這里我已經全部打開並且在本文最上面列了表了,您可以察看

  // Rule 1=盟主 2=截鏢 3=守城 4=暗殺 5=死鬥
  int Rule = 5;

  // 回合時間(分鍾)
  int RoundTime = 20;

  // 玩家出生點
  int PlayerSpawn = 0;

  // 玩加出生方向 0~360
  int PlayerSpawnDir = 90;

  // 玩加武器1
  int PlayerWeapon = 5;

  // 玩加武器2
  int PlayerWeapon2 = 0;

  // 玩加開始生命值
  int PlayerHP = 1000;//這個值在游戲當中會自動除以10,非劇情版里面設置無效

  //部分劇情函數
  int ChangeBehavior(角色代號,動作,輔助);//和角色文件編輯一樣,注意加int
  //1)”wait”張望
  //2)”idle”等待
  //3)”run”亂跑
  //4)”follow”跟隨
  //5)”patrol”巡邏
  //6)”attacktarget”攻擊某個目標,輔助里面填入角色代號
  //7)”kill”殺死某個目標,輔助里面角色代號
  int AddNPC(角色文件名);//增加角色
  int RemoveNPC(角色文件名);//使角色離開
  //其他的函數以後再說,暫時還沒研究透徹

  // 設置游戲開始
  OnStart()
  {
  AddNPC(“文件名稱不加後綴”);//本地圖出現的NPC要幾個就要重復寫幾條
  }

  // 執行
  OnUpdate()
  {
  int a = 0;
  }

  4)最後的囉嗦
  值得注意的是,命令前面一定要加int,結束要加;,所有符號用半角,這是說給不懂程序的朋友聽的,一定要注意。地圖的劇情部分是可以不寫的。角色設定的初始動作如果設定了,在地圖編輯里面不更改的話,就會執行到戰斗結束。好了,大概就這麼多了。

來源:遊星空