Modme Forums

script_flag isn’t working for my zones, please help!!!

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

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: 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..


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: 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.


That shouldn't be the problem. I replied to your pm with help :)


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