Game Modding | Call of Duty: Black Ops 3 | Radiant
ModmeBot:
Thread By: Stonermagoo420
Ive done it before but now it dosnt work tell if me where i messed up i put a kvp script_flag:enter_test_zone on the doors which are script models and when i walk through door i die... any help please heres my gsc: (i only have 3 zones including the start zone, 2 are connected to the start zone in the middle but not connected to eachother) idk what i did wrong
its not working idk..
ModmeBot:
Reply By: Stonermagoo420
please help me idk why this is happening my volumes are touching and the gsc is set up right i just dont know what to do to fix this problem..
ModmeBot:
Reply By: TrueGamerCalls
Stonermagoo420
Ive done it before but now it dosnt work tell if me where i messed up i put a kvp script_flag:enter_test_zone on the doors which are script models and when i walk through door i die... any help please heres my gsc: (i only have 3 zones including the start zone, 2 are connected to the start zone in the middle but not connected to eachother) idk what i did wrong function main() { level thread set_perk_limit(10); // This sets the perk limit to 10 _INIT_ZCOUNTER(); zm_usermap::main(); thread init_power(); grow_soul::init( ); level._zombie_custom_add_weapons =&custom_add_weapons; //Setup the levels Zombie Zone Volumes level.zones = []; level.zone_manager_init_func =&usermap_test_zone_init; init_zones[0] = "start_zone"; level thread zm_zonemgr::manage_zones( init_zones ); level.pathdist_type = PATHDIST_ORIGINAL; thread eeDoor(); } function usermap_test_zone_init() { zm_zonemgr::add_adjacent_zone("start_zone","test_zone","enter_test_zone"); zm_zonemgr::add_adjacent_zone("start_zone","zone_2","enter_zone_2"); level flag::init( "always_on" ); level flag::set( "always_on" ); } function custom_add_weapons() { zm_weapons::load_weapon_spec_from_table("gamedata/weapons/zm/zm_levelcommon_weapons.csv", 1); } function set_perk_limit(num) { wait( 30 ); level.perk_purchase_limit = num; } function init_power() { level flag::wait_till("power_on"); level util::set_lighting_state(3); } function eeDoor() { level.itemsRequired = 3; level.itemsCollected = 0; level thread item1(); level thread item2(); level thread item3(); } function item1() { trig1 = GetEnt("ee_trig1", "targetname"); obj1 = GetEnt("ee_obj1", "targetname"); trig1 SetHintString(""); trig1 SetCursorHint("HINT_NOICON"); while(1) { trig1 waittill("trigger", player); level.itemsCollected++; thread eeCheckDone(player); break; } trig1 Delete(); obj1 Delete(); } function item2() { trig2 = GetEnt("ee_trig2", "targetname"); obj2 = GetEnt("ee_obj2", "targetname"); trig2 SetHintString(""); trig2 SetCursorHint("HINT_NOICON"); while(1) { trig2 waittill("trigger", player); level.itemsCollected++; thread eeCheckDone(player); break; } trig2 Delete(); obj2 Delete(); } function item3() { trig3 = GetEnt("ee_trig3", "targetname"); obj3 = GetEnt("ee_obj3", "targetname"); trig3 SetHintString(""); trig3 SetCursorHint("HINT_NOICON"); while(1) { trig3 waittill("trigger", player); level.itemsCollected++; thread eeCheckDone(player); break; } trig3 Delete(); obj3 Delete(); } function eeCheckDone(player) { while(1) { self waittill(level.shootablesCollected >= level.itemsRequired); if(level.itemsCollected == level.itemsRequired) { //self playlocalsound( level.zmb_laugh_alias ); objDoor = GetEnt("ee_door", "targetname"); objDoor Delete(); objDoor = GetEnt("ee_door2", "targetname"); objDoor Delete(); objClip = GetEnt("ee_clip", "targetname"); objClip Delete(); } break; } } function _INIT_ZCOUNTER() { ZombieCounterHuds = []; ZombieCounterHuds["LastZombieText"] = "Zombie Left"; ZombieCounterHuds["ZombieText"] = "Zombie's Left"; ZombieCounterHuds["LastDogText"] = "Dog Left"; ZombieCounterHuds["DogText"] = "Dog's Left"; ZombieCounterHuds["DefaultColor"] = (1,1,1); ZombieCounterHuds["HighlightColor"] = (1, 0.55, 0); ZombieCounterHuds["FontScale"] = 1.5; ZombieCounterHuds["DisplayType"] = 0; // 0 = Shows Total Zombies and Counts down, 1 = Shows Currently spawned zombie count ZombieCounterHuds["counter"] = createNewHudElement("left", "top", 2, 10, 1, 1.5); ZombieCounterHuds["text"] = createNewHudElement("left", "top", 2, 10, 1, 1.5); ZombieCounterHuds["counter"] hudRGBA(ZombieCounterHuds["DefaultColor"], 0); ZombieCounterHuds["text"] hudRGBA(ZombieCounterHuds["DefaultColor"], 0); level thread _THINK_ZCOUNTER(ZombieCounterHuds); } function _THINK_ZCOUNTER(hudArray) { level endon("end_game"); for(;;) { level waittill("start_of_round"); level _ROUND_COUNTER(hudArray); hudArray["counter"] SetValue(0); hudArray["text"] thread hudMoveTo((2, 10, 0), 4); hudArray["counter"] thread hudRGBA(hudArray["DefaultColor"], 0, 1); hudArray["text"] SetText("End of round"); hudArray["text"] thread hudRGBA(hudArray["DefaultColor"], 0, 3); } } function _ROUND_COUNTER(hudArray) { level endon("end_of_round"); lastCount = 0; numberToString = ""; hudArray["counter"] thread hudRGBA(hudArray["DefaultColor"], 1.0, 1); hudArray["text"] thread hudRGBA(hudArray["DefaultColor"], 1.0, 1); hudArray["text"] SetText(hudArray["ZombieText"]); if(level flag::get("dog_round")) hudArray["text"] SetText(hudArray["DogText"]); for(;;) { zm_count = (zombie_utility::get_current_zombie_count() + level.zombie_total); if(hudArray["DisplayType"] == 1) zm_count = zombie_utility::get_current_zombie_count(); if(zm_count == 0) {wait(1); continue;} hudArray["counter"] SetValue(zm_count); if(lastCount != zm_count) { lastCount = zm_count; numberToString = "" + zm_count; hudArray["text"] thread hudMoveTo((10 + (4 * numberToString.Size), 10, 0), 4); if(zm_count == 1 && !level flag::get("dog_round")) hudArray["text"] SetText(hudArray["LastZombieText"]); else if(zm_count == 1 && level flag::get("dog_round")) hudArray["text"] SetText(hudArray["LastDogText"]); hudArray["counter"].color = hudArray["HighlightColor"]; hudArray["counter"].fontscale = (hudArray["FontScale"] + 0.5); hudArray["text"].color = hudArray["HighlightColor"]; hudArray["text"].fontscale = (hudArray["FontScale"] + 0.5); hudArray["counter"] thread hudRGBA(hudArray["DefaultColor"], 1, 0.5); hudArray["counter"] thread hudFontScale(hudArray["FontScale"], 0.5); hudArray["text"] thread hudRGBA(hudArray["DefaultColor"], 1, 0.5); hudArray["text"] thread hudFontScale(hudArray["FontScale"], 0.5); } wait(0.1); } } function createNewHudElement(xAlign, yAlign, posX, posY, foreground, fontScale) { hud = newHudElem(); hud.horzAlign = xAlign; hud.alignX = xAlign; hud.vertAlign = yAlign; hug.alignY = yAlign; hud.x = posX; hud.y = posY; hud.foreground = foreground; hud.fontscale = fontScale; return hud; } function hudRGBA(newColor, newAlpha, fadeTime) { if(isDefined(fadeTime)) self FadeOverTime(fadeTime); self.color = newColor; self.alpha = newAlpha; } function hudFontScale(newScale, fadeTime) { if(isDefined(fadeTime)) self ChangeFontScaleOverTime(fadeTime); self.fontscale = newScale; } function hudMoveTo(posVector, fadeTime) // Just because MoveOverTime doesn't always work as wanted { initTime = GetTime(); hudX = self.x; hudY = self.y; hudVector = (hudX, hudY, 0); while(hudVector != posVector) { time = GetTime(); hudVector = VectorLerp(hudVector, posVector, (time - initTime) / (fadeTime * 1000)); self.x = hudVector[0]; self.y = hudVector[1]; wait(0.0001); } } its not working idk..
ModmeBot:
Reply By: Wild
TrueGamerCalls
Stonermagoo420 Ive done it before but now it dosnt work tell if me where i messed up i put a kvp script_flag:enter_test_zone on the doors which are script models and when i walk through door i die... any help please heres my gsc: (i only have 3 zones including the start zone, 2 are connected to the start zone in the middle but not connected to eachother) idk what i did wrong function main() { level thread set_perk_limit(10); // This sets the perk limit to 10 _INIT_ZCOUNTER(); zm_usermap::main(); thread init_power(); grow_soul::init( ); level._zombie_custom_add_weapons =&custom_add_weapons; //Setup the levels Zombie Zone Volumes level.zones = []; level.zone_manager_init_func =&usermap_test_zone_init; init_zones[0] = "start_zone"; level thread zm_zonemgr::manage_zones( init_zones ); level.pathdist_type = PATHDIST_ORIGINAL; thread eeDoor(); } function usermap_test_zone_init() { zm_zonemgr::add_adjacent_zone("start_zone","test_zone","enter_test_zone"); zm_zonemgr::add_adjacent_zone("start_zone","zone_2","enter_zone_2"); level flag::init( "always_on" ); level flag::set( "always_on" ); } function custom_add_weapons() { zm_weapons::load_weapon_spec_from_table("gamedata/weapons/zm/zm_levelcommon_weapons.csv", 1); } function set_perk_limit(num) { wait( 30 ); level.perk_purchase_limit = num; } function init_power() { level flag::wait_till("power_on"); level util::set_lighting_state(3); } function eeDoor() { level.itemsRequired = 3; level.itemsCollected = 0; level thread item1(); level thread item2(); level thread item3(); } function item1() { trig1 = GetEnt("ee_trig1", "targetname"); obj1 = GetEnt("ee_obj1", "targetname"); trig1 SetHintString(""); trig1 SetCursorHint("HINT_NOICON"); while(1) { trig1 waittill("trigger", player); level.itemsCollected++; thread eeCheckDone(player); break; } trig1 Delete(); obj1 Delete(); } function item2() { trig2 = GetEnt("ee_trig2", "targetname"); obj2 = GetEnt("ee_obj2", "targetname"); trig2 SetHintString(""); trig2 SetCursorHint("HINT_NOICON"); while(1) { trig2 waittill("trigger", player); level.itemsCollected++; thread eeCheckDone(player); break; } trig2 Delete(); obj2 Delete(); } function item3() { trig3 = GetEnt("ee_trig3", "targetname"); obj3 = GetEnt("ee_obj3", "targetname"); trig3 SetHintString(""); trig3 SetCursorHint("HINT_NOICON"); while(1) { trig3 waittill("trigger", player); level.itemsCollected++; thread eeCheckDone(player); break; } trig3 Delete(); obj3 Delete(); } function eeCheckDone(player) { while(1) { self waittill(level.shootablesCollected >= level.itemsRequired); if(level.itemsCollected == level.itemsRequired) { //self playlocalsound( level.zmb_laugh_alias ); objDoor = GetEnt("ee_door", "targetname"); objDoor Delete(); objDoor = GetEnt("ee_door2", "targetname"); objDoor Delete(); objClip = GetEnt("ee_clip", "targetname"); objClip Delete(); } break; } } function _INIT_ZCOUNTER() { ZombieCounterHuds = []; ZombieCounterHuds["LastZombieText"] = "Zombie Left"; ZombieCounterHuds["ZombieText"] = "Zombie's Left"; ZombieCounterHuds["LastDogText"] = "Dog Left"; ZombieCounterHuds["DogText"] = "Dog's Left"; ZombieCounterHuds["DefaultColor"] = (1,1,1); ZombieCounterHuds["HighlightColor"] = (1, 0.55, 0); ZombieCounterHuds["FontScale"] = 1.5; ZombieCounterHuds["DisplayType"] = 0; // 0 = Shows Total Zombies and Counts down, 1 = Shows Currently spawned zombie count ZombieCounterHuds["counter"] = createNewHudElement("left", "top", 2, 10, 1, 1.5); ZombieCounterHuds["text"] = createNewHudElement("left", "top", 2, 10, 1, 1.5); ZombieCounterHuds["counter"] hudRGBA(ZombieCounterHuds["DefaultColor"], 0); ZombieCounterHuds["text"] hudRGBA(ZombieCounterHuds["DefaultColor"], 0); level thread _THINK_ZCOUNTER(ZombieCounterHuds); } function _THINK_ZCOUNTER(hudArray) { level endon("end_game"); for(;;) { level waittill("start_of_round"); level _ROUND_COUNTER(hudArray); hudArray["counter"] SetValue(0); hudArray["text"] thread hudMoveTo((2, 10, 0), 4); hudArray["counter"] thread hudRGBA(hudArray["DefaultColor"], 0, 1); hudArray["text"] SetText("End of round"); hudArray["text"] thread hudRGBA(hudArray["DefaultColor"], 0, 3); } } function _ROUND_COUNTER(hudArray) { level endon("end_of_round"); lastCount = 0; numberToString = ""; hudArray["counter"] thread hudRGBA(hudArray["DefaultColor"], 1.0, 1); hudArray["text"] thread hudRGBA(hudArray["DefaultColor"], 1.0, 1); hudArray["text"] SetText(hudArray["ZombieText"]); if(level flag::get("dog_round")) hudArray["text"] SetText(hudArray["DogText"]); for(;;) { zm_count = (zombie_utility::get_current_zombie_count() + level.zombie_total); if(hudArray["DisplayType"] == 1) zm_count = zombie_utility::get_current_zombie_count(); if(zm_count == 0) {wait(1); continue;} hudArray["counter"] SetValue(zm_count); if(lastCount != zm_count) { lastCount = zm_count; numberToString = "" + zm_count; hudArray["text"] thread hudMoveTo((10 + (4 * numberToString.Size), 10, 0), 4); if(zm_count == 1 && !level flag::get("dog_round")) hudArray["text"] SetText(hudArray["LastZombieText"]); else if(zm_count == 1 && level flag::get("dog_round")) hudArray["text"] SetText(hudArray["LastDogText"]); hudArray["counter"].color = hudArray["HighlightColor"]; hudArray["counter"].fontscale = (hudArray["FontScale"] + 0.5); hudArray["text"].color = hudArray["HighlightColor"]; hudArray["text"].fontscale = (hudArray["FontScale"] + 0.5); hudArray["counter"] thread hudRGBA(hudArray["DefaultColor"], 1, 0.5); hudArray["counter"] thread hudFontScale(hudArray["FontScale"], 0.5); hudArray["text"] thread hudRGBA(hudArray["DefaultColor"], 1, 0.5); hudArray["text"] thread hudFontScale(hudArray["FontScale"], 0.5); } wait(0.1); } } function createNewHudElement(xAlign, yAlign, posX, posY, foreground, fontScale) { hud = newHudElem(); hud.horzAlign = xAlign; hud.alignX = xAlign; hud.vertAlign = yAlign; hug.alignY = yAlign; hud.x = posX; hud.y = posY; hud.foreground = foreground; hud.fontscale = fontScale; return hud; } function hudRGBA(newColor, newAlpha, fadeTime) { if(isDefined(fadeTime)) self FadeOverTime(fadeTime); self.color = newColor; self.alpha = newAlpha; } function hudFontScale(newScale, fadeTime) { if(isDefined(fadeTime)) self ChangeFontScaleOverTime(fadeTime); self.fontscale = newScale; } function hudMoveTo(posVector, fadeTime) // Just because MoveOverTime doesn't always work as wanted { initTime = GetTime(); hudX = self.x; hudY = self.y; hudVector = (hudX, hudY, 0); while(hudVector != posVector) { time = GetTime(); hudVector = VectorLerp(hudVector, posVector, (time - initTime) / (fadeTime * 1000)); self.x = hudVector[0]; self.y = hudVector[1]; wait(0.0001); } } its not working idk.. I think one of the problems is "zone_2" It always needs to end with a zone. So I would put "second_zone" or something like that.
ModmeBot:
Reply By: mathfag
Double check that you didn't make any spelling mistakes in the KVP. It once took me 20 mins to realize I wrote scrlpt_flag with a L