#include "net_common.h" void OnCache() { LoadScene("IN02"); PlayNetGameMusic(in02_music); SetAudioEnvironment(ENVIRONMENT_CITY); } void OnHostGame() { int ObjectID; for (int i = 1 ; i <= 7 ; i++) { ObjectID = FindItem(NumToStr("UITEM%02d_00", i)); ShowEntity(ObjectID, 0); ActivateEntity(ObjectID, 0); ObjectID = FindItem(NumToStr("UITEM%02d_01", i)); ShowEntity(ObjectID, 0); ActivateEntity(ObjectID, 0); } } void SWITCH_InitItem(int id) { SetItemAttrib(id, ITEM_MODEL, "in02switch", 1); SetItemAttrib(id, ITEM_PHYSICS, ITEM_PHYSICS_NONE); SetItemAttrib(id, ITEM_LIFTABLE, 0); SetItemAttrib(id, ITEM_PICKABLE, 0); SetItemAttrib(id, ITEM_ROTATEAXIS, 1, 0, 0); SetItemAttrib(id, ITEM_ROTATEANGLE, -0.3); SetItemAttrib(id, ITEM_ROTATESPEED, -0.3); SetItemAttrib(id, ITEM_HP, 0); } void SWITCH_OnAttack(int id, int charaId, int damage) { int ObjectID; if (GetItemAttrib(id, ITEM_HP) == 1) return; for (int i = 0 ; i < 12 ; i++) { ObjectID = FindItem(NumToStr("SWITCH_%02d", i)); if (ObjectID == id) break; } if (i >= 12) return; float x1, y1, z1, x2, y2, z2; GetEntityPos(id, x1, y1, z1); Play3DSound("inte_01_switch_on", x1, y1, z1); ObjectID = FindItem(NumToStr("DOORA_%02d", i)); SetItemMachine(ObjectID, 1); GetEntityPos(ObjectID, x1, y1, z1); ObjectID = FindItem(NumToStr("DOORB_%02d", i)); SetItemMachine(ObjectID, 1); GetEntityPos(ObjectID, x2, y2, z2); Play3DSound("inte_12_stone_door_open", (x1+x2)/2, (y1+y2)/2, (z1+z2)/2); SetSceneObjectSwitch(NumToStr("LIGHT_%02d", i), "VISIBLE", 1); SetItemMachine(id, 1); SetItemAttrib(id, ITEM_HP, 1); } void SWITCH_OnReach(int id, int np) { ActivateEntity(id, 0); } void DOORA_InitItem(int id) { SetItemAttrib(id, ITEM_MODEL, "in02doora", 1); SetItemAttrib(id, ITEM_PHYSICS, ITEM_PHYSICS_NONE); SetItemAttrib(id, ITEM_LIFTABLE, 0); SetItemAttrib(id, ITEM_PICKABLE, 0); SetItemAttrib(id, ITEM_ROTATEAXIS, 0, 1, 0); SetItemAttrib(id, ITEM_ROTATEANGLE, 1.7); SetItemAttrib(id, ITEM_ROTATESPEED, 0.8); } void DOORA_00_OnReach(int id, int np) { float x, y, z; float dx, dy, dz; int ObjectID; GetEntityPos(id, x, y, z); GetEntityDir(id, dx, dy, dz); ObjectID = FindItem("uitem02_00"); ShowEntity(ObjectID, 1); ActivateEntity(ObjectID, 1); ActivateEntity(id, 0); } void DOORA_01_OnReach(int id, int np) { float x, y, z; float dx, dy, dz; int ObjectID; GetEntityPos(id, x, y, z); GetEntityDir(id, dx, dy, dz); ObjectID = FindItem("uitem03_00"); ShowEntity(ObjectID, 1); ActivateEntity(ObjectID, 1); ActivateEntity(id, 0); } void DOORA_02_OnReach(int id, int np) { float x, y, z; float dx, dy, dz; int ObjectID; GetEntityPos(id, x, y, z); GetEntityDir(id, dx, dy, dz); if (var_rule == RULE_DEATH_MATCH) ObjectID = FindItem("uitem04_00"); else if (var_rule == RULE_TEAM_DEATH_MATCH) ObjectID = FindItem("uitem07_00"); else if (var_rule == RULE_VIP) ObjectID = 0; ShowEntity(ObjectID, 1); ActivateEntity(ObjectID, 1); ActivateEntity(id, 0); } void DOORA_03_OnReach(int id, int np) { float x, y, z; float dx, dy, dz; int ObjectID; GetEntityPos(id, x, y, z); GetEntityDir(id, dx, dy, dz); if (var_rule == RULE_DEATH_MATCH) ObjectID = FindItem("uitem05_00"); else if (var_rule == RULE_TEAM_DEATH_MATCH) ObjectID = FindItem("uitem05_00"); else if (var_rule == RULE_VIP) ObjectID = 0; ShowEntity(ObjectID, 1); ActivateEntity(ObjectID, 1); ActivateEntity(id, 0); } void DOORA_04_OnReach(int id, int np) { float x, y, z; float dx, dy, dz; int ObjectID; GetEntityPos(id, x, y, z); GetEntityDir(id, dx, dy, dz); ObjectID = FindItem("uitem06_00"); ShowEntity(ObjectID, 1); ActivateEntity(ObjectID, 1); ActivateEntity(id, 0); } void DOORA_05_OnReach(int id, int np) { float x, y, z; float dx, dy, dz; int ObjectID; GetEntityPos(id, x, y, z); GetEntityDir(id, dx, dy, dz); ObjectID = FindItem("uitem01_00"); ShowEntity(ObjectID, 1); ActivateEntity(ObjectID, 1); ActivateEntity(id, 0); } void DOORA_06_OnReach(int id, int np) { float x, y, z; float dx, dy, dz; int ObjectID; GetEntityPos(id, x, y, z); GetEntityDir(id, dx, dy, dz); ObjectID = FindItem("uitem02_01"); ShowEntity(ObjectID, 1); ActivateEntity(ObjectID, 1); ActivateEntity(id, 0); } void DOORA_07_OnReach(int id, int np) { float x, y, z; float dx, dy, dz; int ObjectID; GetEntityPos(id, x, y, z); GetEntityDir(id, dx, dy, dz); ObjectID = FindItem("uitem03_01"); ShowEntity(ObjectID, 1); ActivateEntity(ObjectID, 1); ActivateEntity(id, 0); } void DOORA_08_OnReach(int id, int np) { float x, y, z; float dx, dy, dz; int ObjectID; GetEntityPos(id, x, y, z); GetEntityDir(id, dx, dy, dz); if (var_rule == RULE_DEATH_MATCH) ObjectID = FindItem("uitem04_01"); else if (var_rule == RULE_TEAM_DEATH_MATCH) ObjectID = FindItem("uitem07_01"); else if (var_rule == RULE_VIP) ObjectID = 0; ShowEntity(ObjectID, 1); ActivateEntity(ObjectID, 1); ActivateEntity(id, 0); } void DOORA_09_OnReach(int id, int np) { float x, y, z; float dx, dy, dz; int ObjectID; GetEntityPos(id, x, y, z); GetEntityDir(id, dx, dy, dz); if (var_rule == RULE_DEATH_MATCH) ObjectID = FindItem("uitem05_00"); else if (var_rule == RULE_TEAM_DEATH_MATCH) ObjectID = FindItem("uitem05_00"); else if (var_rule == RULE_VIP) ObjectID = 0; ShowEntity(ObjectID, 1); ActivateEntity(ObjectID, 1); ActivateEntity(id, 0); } void DOORA_10_OnReach(int id, int np) { float x, y, z; float dx, dy, dz; int ObjectID; GetEntityPos(id, x, y, z); GetEntityDir(id, dx, dy, dz); ObjectID = FindItem("uitem06_01"); ShowEntity(ObjectID, 1); ActivateEntity(ObjectID, 1); ActivateEntity(id, 0); } void DOORA_11_OnReach(int id, int np) { float x, y, z; float dx, dy, dz; int ObjectID; GetEntityPos(id, x, y, z); GetEntityDir(id, dx, dy, dz); ObjectID = FindItem("uitem01_01"); ShowEntity(ObjectID, 1); ActivateEntity(ObjectID, 1); ActivateEntity(id, 0); } void DOORB_InitItem(int id) { SetItemAttrib(id, ITEM_MODEL, "in02doorb", 1); SetItemAttrib(id, ITEM_PHYSICS, ITEM_PHYSICS_NONE); SetItemAttrib(id, ITEM_LIFTABLE, 0); SetItemAttrib(id, ITEM_PICKABLE, 0); SetItemAttrib(id, ITEM_ROTATEAXIS, 0, 1, 0); SetItemAttrib(id, ITEM_ROTATEANGLE, -1.7); SetItemAttrib(id, ITEM_ROTATESPEED, -0.8); } void DOORB_OnReach(int id, int np) { ActivateEntity(id, 0); } void TRIGGERHURT_InitItem(int id) { SetItemAttrib(id, ITEM_PHYSICS, ITEM_PHYSICS_NONE); SetItemAttrib(id, ITEM_LIFTABLE, 0); SetItemAttrib(id, ITEM_PICKABLE, 0); } void TRIGGERHURT_OnTouch(int id, int charaId) { float x, y, z; if (IsItem(charaId)) { if (GetItemString(charaId, ITEM_MODEL) == "boom") { BombExplode(charaId); } else if (GetItemString(charaId, ITEM_MODEL) == "Box01") { BreakItem(charaId, 150); } return; } GetEntityPos(id, x, y, z); // damage CharaHurt(charaId, 1, 80, x, y, z); } void CLTRGHINT01_InitItem(int id) { SetItemAttrib(id, ITEM_PHYSICS, ITEM_PHYSICS_NONE); SetItemAttrib(id, ITEM_LIFTABLE, 0); SetItemAttrib(id, ITEM_PICKABLE, 0); } void CLTRGHINT01_OnTouch(int id, int charaId) { if (!IsLocalPlayerChara(charaId)) return; string idx = substr(GetItemString(id, ITEM_NAME), 12, 2); int ObjectID; ObjectID = FindItem("switch_"+idx); if (ObjectID <= 0) return; float x, y, z; GetEntityRot(ObjectID, x, y, z); if (z != 0) return; ShowHint(HINT_IN02_1); }