float BODY_0_ATTACK_RATE = 1; float BODY_0_DEFEND_RATE = 1; float BODY_0_STAMINA = 1; float BODY_1_ATTACK_RATE = 0.9; float BODY_1_DEFEND_RATE = 0.9; float BODY_1_STAMINA = 0.8; float BODY_2_ATTACK_RATE = 1.1; float BODY_2_DEFEND_RATE = 1.1; float BODY_2_STAMINA = 1.25; float NPC_1_WALK_SPEED = 30; float NPC_1_RUN_SPEED = 80; float NPC_1_SPRINT_SPEED = 160; float NPC_1_WALL_HWALK_SPEED = 80; float NPC_1_WALL_VWALK_SPEED = 80; float NPC_1_DEFEND_WALK_SPEED = 10; float NPC_2_WALK_SPEED = 35; float NPC_2_RUN_SPEED = 90; float NPC_2_SPRINT_SPEED = 170; float NPC_2_WALL_HWALK_SPEED = 90; float NPC_2_WALL_VWALK_SPEED = 90; float NPC_2_DEFEND_WALK_SPEED = 10; float NPC_3_WALK_SPEED = 40; float NPC_3_RUN_SPEED = 100; float NPC_3_SPRINT_SPEED = 180; float NPC_3_WALL_HWALK_SPEED = 100; float NPC_3_WALL_VWALK_SPEED = 100; float NPC_3_DEFEND_WALK_SPEED = 10; void SetCharaBodyType(int id, int body) { if (body == 0) { // 男體型 SetCharaAttrib(id, CHARA_WIDTH, 16); // 對場景碰撞box寬 原14 SetCharaAttrib(id, CHARA_HEIGHT, 37); // 對場景碰撞box高 SetCharaAttrib(id, CHARA_POSE_BOX0, 12, 37); // 一般狀態(直立) SetCharaAttrib(id, CHARA_POSE_BOX1, 16, 32); // 移動或站立時輕受傷動作(稍矮) SetCharaAttrib(id, CHARA_POSE_BOX2, 10, 27); // 攻擊招式 SetCharaAttrib(id, CHARA_POSE_BOX3, 10, 13); // 屈身蜷在一起的飛出大受傷動作或平躺在地(方正) SetCharaAttrib(id, CHARA_POSE_BOX4, 24, 22); // 特殊攻擊無碰撞, 只對物件碰撞 SetCharaAttrib(id, CHARA_WEAPON_OFFSET, 0, 0, 0); // 武器Dummy位移 } else if (body == 1) { // 女體型 SetCharaAttrib(id, CHARA_WIDTH, 15); SetCharaAttrib(id, CHARA_HEIGHT, 34); SetCharaAttrib(id, CHARA_POSE_BOX0, 10, 33); SetCharaAttrib(id, CHARA_POSE_BOX1, 14, 28); SetCharaAttrib(id, CHARA_POSE_BOX2, 8, 23); SetCharaAttrib(id, CHARA_POSE_BOX3, 8, 13); SetCharaAttrib(id, CHARA_POSE_BOX4, 22, 20); SetCharaAttrib(id, CHARA_WEAPON_OFFSET, -0.5, -0.1, 0); } else if (body == 2) { // 大體型 SetCharaAttrib(id, CHARA_WIDTH, 18); SetCharaAttrib(id, CHARA_HEIGHT, 41); SetCharaAttrib(id, CHARA_POSE_BOX0, 15, 42); SetCharaAttrib(id, CHARA_POSE_BOX1, 20, 37); SetCharaAttrib(id, CHARA_POSE_BOX2, 13, 32); SetCharaAttrib(id, CHARA_POSE_BOX3, 13, 13); SetCharaAttrib(id, CHARA_POSE_BOX4, 26, 24); SetCharaAttrib(id, CHARA_WEAPON_OFFSET, 0.5, -0.2, 0); } else if (body == 3) { // 小怪體型 SetCharaAttrib(id, CHARA_WIDTH, 15); SetCharaAttrib(id, CHARA_HEIGHT, 37); SetCharaAttrib(id, CHARA_POSE_BOX0, 12, 37); SetCharaAttrib(id, CHARA_POSE_BOX1, 16, 32); SetCharaAttrib(id, CHARA_POSE_BOX2, 10, 27); SetCharaAttrib(id, CHARA_POSE_BOX3, 10, 13); SetCharaAttrib(id, CHARA_POSE_BOX4, 24, 22); SetCharaAttrib(id, CHARA_WEAPON_OFFSET, 0, 0, 0); } else if (body == 4) { // 大怪體型 SetCharaAttrib(id, CHARA_WIDTH, 18); SetCharaAttrib(id, CHARA_HEIGHT, 42); SetCharaAttrib(id, CHARA_POSE_BOX0, 15, 42); SetCharaAttrib(id, CHARA_POSE_BOX1, 20, 37); SetCharaAttrib(id, CHARA_POSE_BOX2, 13, 32); SetCharaAttrib(id, CHARA_POSE_BOX3, 13, 13); SetCharaAttrib(id, CHARA_POSE_BOX4, 26, 24); SetCharaAttrib(id, CHARA_WEAPON_OFFSET, 0.5, 0, 0); } else if (body == 5) { // 王1體型 SetCharaAttrib(id, CHARA_WIDTH, 20); SetCharaAttrib(id, CHARA_HEIGHT, 48); SetCharaAttrib(id, CHARA_POSE_BOX0, 18, 45); SetCharaAttrib(id, CHARA_POSE_BOX1, 22, 40); SetCharaAttrib(id, CHARA_POSE_BOX2, 15, 35); SetCharaAttrib(id, CHARA_POSE_BOX3, 15, 15); SetCharaAttrib(id, CHARA_POSE_BOX4, 32, 30); SetCharaAttrib(id, CHARA_WEAPON_OFFSET, 1.5, 0.3, 0); } else if (body == 6) { // 王2體型 SetCharaAttrib(id, CHARA_WIDTH, 20); SetCharaAttrib(id, CHARA_HEIGHT, 54); SetCharaAttrib(id, CHARA_POSE_BOX0, 18, 45); SetCharaAttrib(id, CHARA_POSE_BOX1, 22, 40); SetCharaAttrib(id, CHARA_POSE_BOX2, 15, 35); SetCharaAttrib(id, CHARA_POSE_BOX3, 15, 15); SetCharaAttrib(id, CHARA_POSE_BOX4, 32, 30); SetCharaAttrib(id, CHARA_WEAPON_OFFSET, 1.5, 0.3, 0); } else { // 男2體型 SetCharaAttrib(id, CHARA_WIDTH, 18); SetCharaAttrib(id, CHARA_HEIGHT, 41); SetCharaAttrib(id, CHARA_POSE_BOX0, 15, 42); SetCharaAttrib(id, CHARA_POSE_BOX1, 20, 37); SetCharaAttrib(id, CHARA_POSE_BOX2, 13, 32); SetCharaAttrib(id, CHARA_POSE_BOX3, 13, 13); SetCharaAttrib(id, CHARA_POSE_BOX4, 26, 24); SetCharaAttrib(id, CHARA_WEAPON_OFFSET, 0.5, -0.2, 0); } SetCharaAttrib(id, CHARA_BODY_TYPE, body); } void SetCharaAudioName(int id, string name) { SetCharaAttrib(id, CHARA_AUDIO, "voc_"+name+"_", 50); } void SetDefaultCharaAttrib(int id, string name, int body) { // 重力改變 float Movement_Gravity = 0.75; SetCharaAttrib(id, CHARA_MODEL, name); // 模型名稱 SetCharaAttrib(id, CHARA_DISPLAY_NAME, name); // 頭頂名稱 //SetCharaAttrib(id, CHARA_ICON, "icon_h"+name); // 大頭照 SetCharaAttrib(id, CHARA_ICON2, "cs_"+name); // 大頭照2(眼睛) SetCharaAttrib(id, CHARA_MAX_HP , 1000); // 生命上限 SetCharaAttrib(id, CHARA_HP , 1000); // 生命 SetCharaAttrib(id, CHARA_RAGE , 0 ); // 氣 SetCharaAttrib(id, CHARA_STAMINA , 100 ); // 體力 SetCharaAttrib(id, CHARA_ATTACK_RATE , 1.0 ); // 攻擊力 SetCharaAttrib(id, CHARA_DEFEND_RATE , 1.0 ); // 防禦力 SetCharaAttrib(id, CHARA_TEAM, 0); // 隊伍 SetCharaAttrib(id, CHARA_WALK_SPEED , 50 ); // 走路速度 OLD 40 SetCharaAttrib(id, CHARA_RUN_SPEED , 130 ); // 跑步速度 OLD 100 SetCharaAttrib(id, CHARA_SPRINT_SPEED , 220 ); // 草上飛速度 OLD 200 SetCharaAttrib(id, CHARA_DEMONIZE_SPRINT_SPEED, 300 ); // 魔化草上飛速度 OLD 200 SetCharaAttrib(id, CHARA_JUMP_SPEED , 300 * Movement_Gravity); // 跳躍速度 OLD 300 SetCharaAttrib(id, CHARA_DOUBLE_JUMP_HSPEED , 250 * Movement_Gravity); // 二段跳水平速度 OLD 250 SetCharaAttrib(id, CHARA_DOUBLE_JUMP_VSPEED , 350 * Movement_Gravity); // 二段跳垂直速度 OLD 350 SetCharaAttrib(id, CHARA_LIFT_JUMP_SPEED , 250 * Movement_Gravity); // 舉物跳速度 OLD 250 SetCharaAttrib(id, CHARA_VJUMP_SPEED , 580 * Movement_Gravity); // 雲梯縱速度 OLD 580 SetCharaAttrib(id, CHARA_WALL_HWALK_SPEED , 130 ); // 垂直走壁速度 OLD 100 SetCharaAttrib(id, CHARA_WALL_VWALK_SPEED , 130 ); // 水平走壁速度 OLD 100 SetCharaAttrib(id, CHARA_CUTSCENE_WALK_SPEED, 25 ); // cutscene走路速度 SetCharaAttrib(id, CHARA_CUTSCENE_RUN_SPEED , 100 ); // cutscene跑步速度 SetCharaAttrib(id, CHARA_DEFEND_WALK_SPEED , 20 ); // 防禦走路速度 OLD 20 /*山米版資料 SetCharaAttrib(id, CHARA_WALK_SPEED , 60 ); // 走路速度 OLD 40 SetCharaAttrib(id, CHARA_RUN_SPEED , 160 ); // 跑步速度 OLD 100 SetCharaAttrib(id, CHARA_SPRINT_SPEED , 320 ); // 草上飛速度 OLD 200 SetCharaAttrib(id, CHARA_JUMP_SPEED , 300 * Movement_Gravity); // 跳躍速度 OLD 300 SetCharaAttrib(id, CHARA_DOUBLE_JUMP_HSPEED , 250 * Movement_Gravity); // 二段跳水平速度 OLD 250 SetCharaAttrib(id, CHARA_DOUBLE_JUMP_VSPEED , 350 * Movement_Gravity); // 二段跳垂直速度 OLD 350 SetCharaAttrib(id, CHARA_LIFT_JUMP_SPEED , 250 * Movement_Gravity); // 舉物跳速度 OLD 250 SetCharaAttrib(id, CHARA_VJUMP_SPEED , 580 * Movement_Gravity); // 雲梯縱速度 OLD 580 SetCharaAttrib(id, CHARA_WALL_HWALK_SPEED , 160 ); // 垂直走壁速度 OLD 100 SetCharaAttrib(id, CHARA_WALL_VWALK_SPEED , 160 ); // 水平走壁速度 OLD 100 SetCharaAttrib(id, CHARA_CUTSCENE_WALK_SPEED, 25 ); // cutscene走路速度 SetCharaAttrib(id, CHARA_CUTSCENE_RUN_SPEED , 100 ); // cutscene跑步速度 SetCharaAttrib(id, CHARA_DEFEND_WALK_SPEED , 30 ); // 防禦走路速度 OLD 20 */ SetCharaBodyType(id, body); // 體型 } void CE01_InitChara(int id) // KAI (A) { SetDefaultCharaAttrib(id, "ce01", 0); SetCharaAttrib(id, CHARA_DISPLAY_NAME, GetWStringFromTable(NAME_CE01)); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_0_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_0_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_0_STAMINA); SetCharaAudioName(id, "kai"); } void CE02_InitChara(int id) // KAI (B) { SetDefaultCharaAttrib(id, "ce02", 0); SetCharaAttrib(id, CHARA_DISPLAY_NAME, GetWStringFromTable(NAME_CE02)); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_0_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_0_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_0_STAMINA); SetCharaAudioName(id, "kai"); } void CE03_InitChara(int id) // MIA (A) { SetDefaultCharaAttrib(id, "ce03", 1); SetCharaAttrib(id, CHARA_DISPLAY_NAME, GetWStringFromTable(NAME_CE03)); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_1_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_1_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_1_STAMINA); SetCharaAudioName(id, "mia"); } void CE04_InitChara(int id) // MIA (B) { SetDefaultCharaAttrib(id, "ce04", 1); SetCharaAttrib(id, CHARA_DISPLAY_NAME, GetWStringFromTable(NAME_CE04)); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_1_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_1_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_1_STAMINA); SetCharaAudioName(id, "mia"); } void CE05_InitChara(int id) // Geiger (A) { SetDefaultCharaAttrib(id, "ce05", 0); SetCharaAttrib(id, CHARA_DISPLAY_NAME, GetWStringFromTable(NAME_CE05)); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_0_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_0_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_0_STAMINA); SetCharaAudioName(id, "geiger"); } void CE06_InitChara(int id) // Geiger (B) { SetDefaultCharaAttrib(id, "ce06", 0); SetCharaAttrib(id, CHARA_DISPLAY_NAME, GetWStringFromTable(NAME_CE06)); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_0_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_0_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_0_STAMINA); SetCharaAudioName(id, "geiger"); } void CE07_InitChara(int id) // Onitsuka (A) { SetDefaultCharaAttrib(id, "ce07", 1); SetCharaAttrib(id, CHARA_DISPLAY_NAME, GetWStringFromTable(NAME_CE07)); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_1_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_1_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_1_STAMINA); SetCharaAudioName(id, "onitsuka"); } void CE08_InitChara(int id) // Onitsuka (B) { SetDefaultCharaAttrib(id, "ce08", 1); SetCharaAttrib(id, CHARA_DISPLAY_NAME, GetWStringFromTable(NAME_CE08)); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_1_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_1_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_1_STAMINA); SetCharaAudioName(id, "onitsuka"); } void CE09_InitChara(int id) // Tor (A) { SetDefaultCharaAttrib(id, "ce09", 2); SetCharaAttrib(id, CHARA_DISPLAY_NAME, GetWStringFromTable(NAME_CE09)); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_2_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_2_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_2_STAMINA); SetCharaAudioName(id, "tor"); } void CE10_InitChara(int id) // Tor (B) { SetDefaultCharaAttrib(id, "ce10", 2); SetCharaAttrib(id, CHARA_DISPLAY_NAME, GetWStringFromTable(NAME_CE10)); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_2_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_2_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_2_STAMINA); SetCharaAudioName(id, "tor"); } void CE11_InitChara(int id) // Master Qi Go { SetDefaultCharaAttrib(id, "ce11", 7); SetCharaAttrib(id, CHARA_DISPLAY_NAME, GetWStringFromTable(NAME_CE11)); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_2_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_2_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_2_STAMINA); SetCharaAudioName(id, "qigo"); } void CE12_InitChara(int id) // Guard { SetDefaultCharaAttrib(id, "ce12", 3); SetCharaAttrib(id, CHARA_DISPLAY_NAME, GetWStringFromTable(NAME_CE12)); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_0_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_0_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_0_STAMINA); SetCharaAudioName(id, "guard"); } void CE13_InitChara(int id) // Guard Captain { SetDefaultCharaAttrib(id, "ce13", 3); SetCharaAttrib(id, CHARA_DISPLAY_NAME, GetWStringFromTable(NAME_CE13)); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_0_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_0_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_0_STAMINA); SetCharaAudioName(id, "guard"); } void CE14_InitChara(int id) // General { SetDefaultCharaAttrib(id, "ce14", 4); SetCharaAttrib(id, CHARA_DISPLAY_NAME, GetWStringFromTable(NAME_CE14)); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_2_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_2_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_2_STAMINA); SetCharaAudioName(id, "general"); } void CE15_InitChara(int id) // Demon Soldier { SetDefaultCharaAttrib(id, "ce15", 0); SetCharaAttrib(id, CHARA_DISPLAY_NAME, GetWStringFromTable(NAME_CE15)); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_0_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_0_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_0_STAMINA); SetCharaAudioName(id, "soldier"); } void CE16_InitChara(int id) // Demon Samurai { SetDefaultCharaAttrib(id, "ce16", 2); SetCharaAttrib(id, CHARA_DISPLAY_NAME, GetWStringFromTable(NAME_CE16)); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_0_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_0_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_0_STAMINA); SetCharaAudioName(id, "general"); } void CW01_InitChara(int id) // Kata Kang (A) { SetDefaultCharaAttrib(id, "cw01", 7); SetCharaAttrib(id, CHARA_DISPLAY_NAME, GetWStringFromTable(NAME_CW01)); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_0_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_0_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_0_STAMINA); SetCharaAudioName(id, "katakang"); } void CW02_InitChara(int id) // Kata Kang (B) { SetDefaultCharaAttrib(id, "cw02", 7); SetCharaAttrib(id, CHARA_DISPLAY_NAME, GetWStringFromTable(NAME_CW02)); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_0_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_0_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_0_STAMINA); SetCharaAudioName(id, "katakang"); } void CW03_InitChara(int id) // DeRais (A) { SetDefaultCharaAttrib(id, "cw03", 0); SetCharaAttrib(id, CHARA_DISPLAY_NAME, GetWStringFromTable(NAME_CW03)); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_0_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_0_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_0_STAMINA); SetCharaAudioName(id, "derais"); } void CW04_InitChara(int id) // DeRais (B) { SetDefaultCharaAttrib(id, "cw04", 0); SetCharaAttrib(id, CHARA_DISPLAY_NAME, GetWStringFromTable(NAME_CW04)); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_0_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_0_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_0_STAMINA); SetCharaAudioName(id, "derais"); } void CW05_InitChara(int id) // Natasha { SetDefaultCharaAttrib(id, "cw05", 1); SetCharaAttrib(id, CHARA_DISPLAY_NAME, GetWStringFromTable(NAME_CW05)); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_1_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_1_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_1_STAMINA); SetCharaAudioName(id, "natasha"); } void CW06_InitChara(int id) // Alicia { SetDefaultCharaAttrib(id, "cw06", 1); SetCharaAttrib(id, CHARA_DISPLAY_NAME, GetWStringFromTable(NAME_CW06)); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_1_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_1_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_1_STAMINA); SetCharaAudioName(id, "alicia"); } void CW07_InitChara(int id) // Zara (A) { SetDefaultCharaAttrib(id, "cw07", 1); SetCharaAttrib(id, CHARA_DISPLAY_NAME, GetWStringFromTable(NAME_CW07)); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_1_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_1_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_1_STAMINA); SetCharaAudioName(id, "zara"); } void CW08_InitChara(int id) // Zara (B) { SetDefaultCharaAttrib(id, "cw08", 1); SetCharaAttrib(id, CHARA_DISPLAY_NAME, GetWStringFromTable(NAME_CW08)); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_1_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_1_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_1_STAMINA); SetCharaAudioName(id, "zara"); } void CW09_InitChara(int id) // Demon Swordmaster { SetDefaultCharaAttrib(id, "cw09", 5); SetCharaAttrib(id, CHARA_DISPLAY_NAME, GetWStringFromTable(NAME_CW09)); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_2_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_2_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_2_STAMINA); SetCharaAttrib(id, CHARA_SFX , "USE_Giant2"); SetCharaAudioName(id, "demon"); } void CW10_InitChara(int id) // Bone Legion { SetDefaultCharaAttrib(id, "cw10", 3); SetCharaAttrib(id, CHARA_DISPLAY_NAME, GetWStringFromTable(NAME_CW10)); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_0_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_0_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_0_STAMINA); SetCharaAudioName(id, "legion"); } void CW11_InitChara(int id) // Zombie { SetDefaultCharaAttrib(id, "cw11", 3); SetCharaAttrib(id, CHARA_DISPLAY_NAME, GetWStringFromTable(NAME_CW11)); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_0_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_0_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_0_STAMINA); SetCharaAudioName(id, "zombie"); } void CW12_InitChara(int id) // Iron Phoenix { SetDefaultCharaAttrib(id, "cw12", 6); SetCharaAttrib(id, CHARA_DISPLAY_NAME, GetWStringFromTable(NAME_CW12)); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_2_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_2_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_0_STAMINA); SetCharaAttrib(id, CHARA_SFX , "USE_Giant1"); SetCharaAudioName(id, "ip"); } void GIANT_InitChara(int id) //魔王模式參數 { SetDefaultCharaAttrib(id, "cw09", 5); SetCharaAttrib(id, CHARA_ATTACK_RATE , 5.0); // 攻擊力 原8 SetCharaAttrib(id, CHARA_DEFEND_RATE , 1.5); // 防禦力 SetCharaAttrib(id, CHARA_WALK_SPEED , 50 ); // 走路速度 50 SetCharaAttrib(id, CHARA_RUN_SPEED , 160 ); // 跑步速度 130 SetCharaAttrib(id, CHARA_SPRINT_SPEED , 270 ); // 草上飛速度 220 SetCharaAttrib(id, CHARA_DEMONIZE_SPRINT_SPEED, 350 ); // 魔化草上飛速度 300 SetCharaAttrib(id, CHARA_WALL_HWALK_SPEED , 160 ); // 垂直走壁速度 130 SetCharaAttrib(id, CHARA_WALL_VWALK_SPEED , 160 ); // 水平走壁速度 130 SetCharaAttrib(id, CHARA_DEFEND_WALK_SPEED , 20 ); // 防禦走路速度 20 SetCharaAttrib(id, CHARA_SFX , "USE_Giant2"); SetCharaAudioName(id, "demon"); SetCharaAttrib(id, CHARA_DISPLAY_NAME, GetWStringFromTable(NAME_CW09)); } void GIANT2_InitChara(int id) //魔王2模式參數 { GIANT_InitChara(id); SetCharaAttrib(id, CHARA_MODEL, "cw12"); // 模型名稱 SetCharaAttrib(id, CHARA_SFX , "USE_Giant1"); SetCharaAttrib(id, CHARA_HEIGHT, 54); SetCharaAttrib(id, CHARA_DISPLAY_NAME, GetWStringFromTable(NAME_CW12)); } // ------------- 單機中的NPC敵人角色 -------------- void NPCE08_InitChara(int id) // Onitsuka (B) { SetDefaultCharaAttrib(id, "ce08", 1); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_1_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_1_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_1_STAMINA); SetCharaAttrib(id, CHARA_RAGE_INCREASE_RATE, 0); SetCharaAudioName(id, "onitsuka"); } void NPCE12_InitChara(int id) // Guard { SetDefaultCharaAttrib(id, "ce12", 3); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_0_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_0_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_0_STAMINA); SetCharaAttrib(id, CHARA_RAGE_INCREASE_RATE, 0); SetCharaAttrib(id, CHARA_WALK_SPEED , NPC_1_WALK_SPEED ); SetCharaAttrib(id, CHARA_RUN_SPEED , NPC_1_RUN_SPEED ); SetCharaAttrib(id, CHARA_SPRINT_SPEED , NPC_1_SPRINT_SPEED ); SetCharaAttrib(id, CHARA_WALL_HWALK_SPEED , NPC_1_WALL_HWALK_SPEED ); SetCharaAttrib(id, CHARA_WALL_VWALK_SPEED , NPC_1_WALL_VWALK_SPEED ); SetCharaAttrib(id, CHARA_DEFEND_WALK_SPEED , NPC_1_DEFEND_WALK_SPEED ); SetCharaAudioName(id, "guard"); } void NPCE13_InitChara(int id) // Guard Captain { SetDefaultCharaAttrib(id, "ce13", 3); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_0_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_0_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_0_STAMINA); SetCharaAttrib(id, CHARA_RAGE_INCREASE_RATE, 0); SetCharaAttrib(id, CHARA_WALK_SPEED , NPC_2_WALK_SPEED ); SetCharaAttrib(id, CHARA_RUN_SPEED , NPC_2_RUN_SPEED ); SetCharaAttrib(id, CHARA_SPRINT_SPEED , NPC_2_SPRINT_SPEED ); SetCharaAttrib(id, CHARA_WALL_HWALK_SPEED , NPC_2_WALL_HWALK_SPEED ); SetCharaAttrib(id, CHARA_WALL_VWALK_SPEED , NPC_2_WALL_VWALK_SPEED ); SetCharaAttrib(id, CHARA_DEFEND_WALK_SPEED , NPC_2_DEFEND_WALK_SPEED ); SetCharaAudioName(id, "guard"); } void NPCE14_InitChara(int id) // General { SetDefaultCharaAttrib(id, "ce14", 4); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_2_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_2_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_2_STAMINA); SetCharaAttrib(id, CHARA_RAGE_INCREASE_RATE, 0); SetCharaAttrib(id, CHARA_WALK_SPEED , NPC_3_WALK_SPEED ); SetCharaAttrib(id, CHARA_RUN_SPEED , NPC_3_RUN_SPEED ); SetCharaAttrib(id, CHARA_SPRINT_SPEED , NPC_3_SPRINT_SPEED ); SetCharaAttrib(id, CHARA_WALL_HWALK_SPEED , NPC_3_WALL_HWALK_SPEED ); SetCharaAttrib(id, CHARA_WALL_VWALK_SPEED , NPC_3_WALL_VWALK_SPEED ); SetCharaAttrib(id, CHARA_DEFEND_WALK_SPEED , NPC_3_DEFEND_WALK_SPEED ); SetCharaAudioName(id, "general"); } void NPCE15_InitChara(int id) // Soldier { SetDefaultCharaAttrib(id, "ce15", 0); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_0_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_0_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_0_STAMINA); SetCharaAttrib(id, CHARA_RAGE_INCREASE_RATE, 0); SetCharaAttrib(id, CHARA_WALK_SPEED , NPC_1_WALK_SPEED ); SetCharaAttrib(id, CHARA_RUN_SPEED , NPC_1_RUN_SPEED ); SetCharaAttrib(id, CHARA_SPRINT_SPEED , NPC_1_SPRINT_SPEED ); SetCharaAttrib(id, CHARA_WALL_HWALK_SPEED , NPC_1_WALL_HWALK_SPEED ); SetCharaAttrib(id, CHARA_WALL_VWALK_SPEED , NPC_1_WALL_VWALK_SPEED ); SetCharaAttrib(id, CHARA_DEFEND_WALK_SPEED , NPC_1_DEFEND_WALK_SPEED ); SetCharaAudioName(id, "soldier"); } void NPCE16_InitChara(int id) // Guard B { SetDefaultCharaAttrib(id, "ce16", 2); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_0_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_0_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_0_STAMINA); SetCharaAttrib(id, CHARA_RAGE_INCREASE_RATE, 0); SetCharaAttrib(id, CHARA_WALK_SPEED , NPC_2_WALK_SPEED ); SetCharaAttrib(id, CHARA_RUN_SPEED , NPC_2_RUN_SPEED ); SetCharaAttrib(id, CHARA_SPRINT_SPEED , NPC_2_SPRINT_SPEED ); SetCharaAttrib(id, CHARA_WALL_HWALK_SPEED , NPC_2_WALL_HWALK_SPEED ); SetCharaAttrib(id, CHARA_WALL_VWALK_SPEED , NPC_2_WALL_VWALK_SPEED ); SetCharaAttrib(id, CHARA_DEFEND_WALK_SPEED , NPC_2_DEFEND_WALK_SPEED ); SetCharaAudioName(id, "general"); } void NPCW10_InitChara(int id) // Bone Legion { SetDefaultCharaAttrib(id, "cw10", 3); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_0_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_0_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_0_STAMINA); SetCharaAttrib(id, CHARA_RAGE_INCREASE_RATE, 0); SetCharaAttrib(id, CHARA_WALK_SPEED , NPC_3_WALK_SPEED ); SetCharaAttrib(id, CHARA_RUN_SPEED , NPC_3_RUN_SPEED ); SetCharaAttrib(id, CHARA_SPRINT_SPEED , NPC_3_SPRINT_SPEED ); SetCharaAttrib(id, CHARA_WALL_HWALK_SPEED , NPC_3_WALL_HWALK_SPEED ); SetCharaAttrib(id, CHARA_WALL_VWALK_SPEED , NPC_3_WALL_VWALK_SPEED ); SetCharaAttrib(id, CHARA_DEFEND_WALK_SPEED , NPC_3_DEFEND_WALK_SPEED ); SetCharaAudioName(id, "legion"); } void NPCW11_InitChara(int id) // Zombie { SetDefaultCharaAttrib(id, "cw11", 3); SetCharaAttrib(id, CHARA_ATTACK_RATE, BODY_0_ATTACK_RATE * 1.0); SetCharaAttrib(id, CHARA_DEFEND_RATE, BODY_0_DEFEND_RATE * 1.0); SetCharaAttrib(id, CHARA_STAMINA_DECREASE_RATE, BODY_0_STAMINA); SetCharaAttrib(id, CHARA_RAGE_INCREASE_RATE, 0); SetCharaAttrib(id, CHARA_WALK_SPEED , NPC_1_WALK_SPEED ); SetCharaAttrib(id, CHARA_RUN_SPEED , NPC_1_RUN_SPEED ); SetCharaAttrib(id, CHARA_SPRINT_SPEED , NPC_1_SPRINT_SPEED ); SetCharaAttrib(id, CHARA_WALL_HWALK_SPEED , NPC_1_WALL_HWALK_SPEED ); SetCharaAttrib(id, CHARA_WALL_VWALK_SPEED , NPC_1_WALL_VWALK_SPEED ); SetCharaAttrib(id, CHARA_DEFEND_WALK_SPEED , NPC_1_DEFEND_WALK_SPEED ); SetCharaAudioName(id, "zombie"); }