Stack overflow????

Post your scripting questions / solutions here

Moderator: Moderators

Post Reply
kkcahdcakcyt
Sergeant
Posts: 71
Joined: Wed Aug 03, 2005 11:16 pm

Stack overflow????

Post by kkcahdcakcyt »

I got that error............no clue wut it means, looked but didn't see any other topics about it
User avatar
ViPER
General
Posts: 1058
Joined: Fri Jan 14, 2005 5:48 pm
Location: California
Contact:

Post by ViPER »

Is this in Spearhead ?
jv_map
Site Admin
Posts: 6521
Joined: Tue Sep 03, 2002 2:53 pm
Location: The Netherlands
Contact:

Post by jv_map »

You've been starting too many threads. (script threads)
Image
kkcahdcakcyt
Sergeant
Posts: 71
Joined: Wed Aug 03, 2005 11:16 pm

Post by kkcahdcakcyt »

yeah it was an error upon trying to start a map with edited .scr.

Um...so too many threads going at once? or overall?
any suggestions on how to fix?
User avatar
ViPER
General
Posts: 1058
Joined: Fri Jan 14, 2005 5:48 pm
Location: California
Contact:

Post by ViPER »

post your script
kkcahdcakcyt
Sergeant
Posts: 71
Joined: Wed Aug 03, 2005 11:16 pm

Post by kkcahdcakcyt »

Code: Select all

// **********************************************************************
// king of hill mod
// script borrowed and changed by kkcahdcakcyt
// Original script from Viper/Jv_map
// **********************************************************************

main:

// set scoreboard messages
setcvar "g_obj_alliedtext1" "King of the Hill" 
setcvar "g_obj_alliedtext2" "=[CoH]=" 
setcvar "g_obj_alliedtext3" "Allies: 0" 

setcvar "g_obj_axistext1" "Axis: 0" 
setcvar "g_obj_axistext2" "winning team" 
setcvar "g_obj_axistext3" "no score" 

setcvar "g_scoreboardpic" "mohdm1" 

level.randomcoord[0] = ( 950 30 270 ) 
level.randomcoord[1] = ( 237 -90 80 ) 
level.randomcoord[2] = ( 950 30 270 ) 
level.randomcoord[3] = ( 237 -90 80 ) 
level.randomcoord[4] = ( 950 30 270 ) 
level.randomcoord[5] = ( 237 -90 80 )  

local.master = spawn ScriptMaster 
   local.master aliascache point_scored sound/items/RadioBomb.wav soundparms 2.0 0.0 1.0 0.0 10000 10000 item loaded maps "dm obj" 
   local.master aliascache final_countdown sound/items/final_countdown.wav soundparms 1.3 0.0 1.0 0.0 10000 10000 local loaded maps "dm moh obj " 


	level waitTill prespawn

	//*** Precache Dm Stuff
	exec global/DMprecache.scr

	level.script = maps/dm/mohdm1.scr
	exec global/ambient.scr mohdm1

	thread dinnerroom
	thread messages
	thread scores

spawn script_models "model" "fx/dummy.tik" "targetname" "speaker" 
   $speaker.origin = ( 0 0 0) 
   $speaker notsolid 

	level waittill spawn

end

//-----------------------------------------------------------------------------
get_hill:
spawn script_model "targetname" "green" 
$green model "fx/corona_green_bright.tik"
$green.origin = (level.randomcoord[randomint(5)])
$green light 0 1 0 900
$green notsolid

local.t = spawn TriggerAll "targetname" "hill"
local.t.origin = ($green.origin) 
local.t setsize ( 1 -1 -1 ) ( 550 385 250 )    
local.t wait 0.1 //0.05 // trigger every frame 
local.t.lasttriggertime = 0.0    
local.t setthread dinnerroom_trigger 


dinnerroom:    
   // defines 
   group.TEAM[allies] = 0 
   group.TEAM[axis] = 1 
   group.TIME_FOR_POINT = 15.0 
   group.time_in_room[group.TEAM[allies]] = 0.0 
   group.time_in_room[group.TEAM[axis]] = 0.0 
   group.POINTS[allies] = 0 
   group.POINTS[axis] = 0 

thread get_hill
    
   while(1) 
   {    
      // check if someone currently is in the   trigger 
      // small time tolerance   because   trigger   events sometimes get lost :/ 
      if(level.time -   $hill.lasttriggertime   <= 0.2) //0.20 
      { 
         // add to this teams counter 
         local.team = group.TEAM[local.t.lasttriggerteam] 
         local.otherteam = !local.team    
         group.time_in_room[local.team]+= 0.05    
         // reset other team's counter    
         group.time_in_room[local.otherteam] = 0.0    
       
         if(group.time_in_room[local.team] >= group.TIME_FOR_POINT) 
         {    
            // add a point 
            group.POINTS[local.t.lasttriggerteam]++ 
               if(local.team == 0) 
               { 
                  thread alliedpoint 
               } 
               else 
               { 
                  thread axispoint 
               } 
            group.time_in_room[local.team] = 0.0 
         } 
      } 
      else 
      { 
         // reset counters for both teams 
         group.time_in_room[group.TEAM[allies]] = 0.0 
         group.time_in_room[group.TEAM[axis]] = 0.0 
      } 
      waitframe 
   }    
end 

dinnerroom_trigger:    
  // self is the trigger 
  self.lasttriggerteam = parm.other.dmteam 
  self.lasttriggertime = level.time    
end 

//----------------------------------------------------------------------------- 

alliedpoint: 
   iprintlnbold "Allies occupy the winery and" 
   iprintlnbold "       downed a jug of Vino" 
   setcvar "g_obj_alliedtext3" ("Allies: " + group.POINTS[allies]) 
   huddraw_string 202 ("Allied: " + group.POINTS[allies]) 
   $speaker playsound point_scored "levelwide" 
   wait 1 
   $speaker playsound dfr_victory_v01 "levelwide" 
   thread checkwinner 
end 

//----------------------------------------------------------------------------- 

axispoint: 
   iprintlnbold "Axis score" 
   setcvar "g_obj_axistext1" ("Axis: " + group.POINTS[axis]) 
   huddraw_string 204 ("Axis: " + group.POINTS[axis]) 
   $speaker playsound point_scored "levelwide" 
   wait 1 
   $speaker playsound den_victory_v01 "levelwide" 
   thread checkwinner 
end 

//----------------------------------------------------------------------------- 

checkwinner: 
   if(group.POINTS[allies] > group.POINTS[axis]) 
      { 
      setcvar "g_obj_axistext3" ("is ALLIES") 
      } 
   else if(group.POINTS[axis] > group.POINTS[allies]) 
      { 
      setcvar "g_obj_axistext3" ("is AXIS") 
      } 
   else 
      { 
      setcvar "g_obj_axistext3" ("it's a TIE") 
      } 
end 

//----------------------------------------------------------------------------- 

scores: 

   while(1){ 

   huddraw_virtualsize 200 1 
   huddraw_align  200 right top 
   huddraw_font   200 "verdana-12" 
   huddraw_rect   200 -100 50 200 14 
   huddraw_color  200 0 1 0 
   huddraw_alpha  200 1.0 
   huddraw_string 200 "King of the Hill" 
    
   huddraw_virtualsize 202 1 
   huddraw_align  202 right top 
   huddraw_font   202 "verdana-12" 
   huddraw_rect   202 -80 80 100 14 
   huddraw_color  202 0 1 1 
   huddraw_alpha  202 1.0 
   huddraw_string 202 ("Allies: " + group.POINTS[allies]) 

   huddraw_virtualsize 203 1 
   huddraw_shader 203 ("textures/hud/allies") 
   huddraw_align  203 right top 
   huddraw_rect   203 -100 80 14 14 
   huddraw_alpha  203 1.0 

   huddraw_virtualsize 204 1 
   huddraw_align  204 right top 
   huddraw_font   204 "verdana-12" 
   huddraw_rect   204 -80 95 100 14 
   huddraw_color  204 1 0 0 
   huddraw_alpha  204 1.0 
   huddraw_string 204 ("Axis: " + group.POINTS[axis]) 

   huddraw_virtualsize 205 1 
   huddraw_shader 205 ("textures/hud/axis") 
   huddraw_align  205 right top 
   huddraw_rect   205 -100 95 14 14 
   huddraw_alpha  205 1.0 

   wait 5 

   } 

end 

//----------------------------------------------------------------------------- 

messages: 
   wait 20 
   iprintln "CAPTURE AND HOLD THE north/east WINERY!!" 
   wait 80 
   iprintln "CAPTURE AND HOLD THE north/east WINERY!!" 
   wait 140 
   iprintln "CAPTURE AND HOLD THE north/east WINERY!!" 
   wait 120 
   goto messages 
end 
User avatar
bdbodger
Moderator
Posts: 2596
Joined: Tue Feb 25, 2003 7:34 am
Location: canada
Contact:

Post by bdbodger »

//-----------------------------------------------------------------------------
get_hill:
spawn script_model "targetname" "green"
$green model "fx/corona_green_bright.tik"
$green.origin = (level.randomcoord[randomint(5)])
$green light 0 1 0 900
$green notsolid

local.t = spawn TriggerAll "targetname" "hill"
local.t.origin = ($green.origin)
local.t setsize ( 1 -1 -1 ) ( 550 385 250 )
local.t wait 0.1 //0.05 // trigger every frame
local.t.lasttriggertime = 0.0
local.t setthread dinnerroom_trigger


dinnerroom:
// defines
group.TEAM[allies] = 0
group.TEAM[axis] = 1
group.TIME_FOR_POINT = 15.0
group.time_in_room[group.TEAM[allies]] = 0.0
group.time_in_room[group.TEAM[axis]] = 0.0
group.POINTS[allies] = 0
group.POINTS[axis] = 0

thread get_hill
There is your problem no end on the get_hill thread the dinnerroom thread calls the get_hill thread which runs back into the dinnerroom thread which starts the get_hill thread which runs into the dinnerroom thread which starts the get_hill thread which runs into the dinnerroom thread ....... it keeps doing that starting a new get_hill thread that runs into the dinnerroom thread (which has a while loop in it ) over and over again untill you crash
Image
User avatar
ViPER
General
Posts: 1058
Joined: Fri Jan 14, 2005 5:48 pm
Location: California
Contact:

Post by ViPER »

Also, you changed some of the var names that broke continuity in the dineroom thread. This is were you are timing the hold.

this one works, is it for a custom?

Code: Select all

// ********************************************************************** 
// king of hill mod 
// script borrowed and changed by kkcahdcakcyt 
// Original script from Viper/Ivan the Terrible/Jv_map 
// ********************************************************************** 

main: 

// set scoreboard messages 
setcvar "g_obj_alliedtext1" "King of the Hill" 
setcvar "g_obj_alliedtext2" "=[CoH]=" 
setcvar "g_obj_alliedtext3" "Allies: 0" 

setcvar "g_obj_axistext1" "Axis: 0" 
setcvar "g_obj_axistext2" "winning team" 
setcvar "g_obj_axistext3" "no score" 

setcvar "g_scoreboardpic" "mohdm1" 

level.randomcoord[0] = ( 950 30 270 ) 
level.randomcoord[1] = ( 237 -90 80 ) 
level.randomcoord[2] = ( 950 30 270 ) 
level.randomcoord[3] = ( 237 -90 80 ) 
level.randomcoord[4] = ( 950 30 270 ) 
level.randomcoord[5] = ( 237 -90 80 )  

   local.master = spawn ScriptMaster 
   local.master aliascache point_scored sound/items/RadioBomb.wav soundparms 2.0 0.0 1.0 0.0 10000 10000 item loaded maps "dm obj" 
   local.master aliascache final_countdown sound/items/final_countdown.wav soundparms 1.3 0.0 1.0 0.0 10000 10000 local loaded maps "dm moh obj " 


   level waitTill prespawn 

   //*** Precache Dm Stuff 
   exec global/DMprecache.scr 

   level.script = maps/dm/mohdm1.scr 
   exec global/ambient.scr mohdm1 

   thread dinnerroom 
   thread messages 
   thread scores 

   spawn script_models "model" "fx/dummy.tik" "targetname" "speaker" 
   $speaker.origin = ( 0 0 0) 
   $speaker notsolid 

   level waittill spawn 

end 

//----------------------------------------------------------------------------- 

dinnerroom:    
   // defines 
   group.TEAM[allies] = 0 
   group.TEAM[axis] = 1 
   group.TIME_FOR_POINT = 15.0 
   group.time_in_room[group.TEAM[allies]] = 0.0 
   group.time_in_room[group.TEAM[axis]] = 0.0 
   group.POINTS[allies] = 0 
   group.POINTS[axis] = 0 

   spawn script_model "targetname" "green" 
   $green model "fx/corona_green_bright.tik" 
   $green.origin = (level.randomcoord[randomint(5)]) 
   $green light 0 1 0 900 
   $green notsolid 

  local.t = spawn TriggerAll "targetname" "hill" 
  local.t.origin = ($green.origin) 
  local.t setsize ( 1 -1 -1 ) ( 550 385 250 )    
  local.t wait 0.1 //0.05 // trigger every frame 
  local.t.lasttriggertime = 0.0    
  local.t setthread dinnerroom_trigger 
    
   while(1) 
   {    
      // check if someone currently is in the   trigger 
      // small time tolerance   because   trigger   events sometimes get lost :/ 
      if(level.time - local.t.lasttriggertime   <= 0.2) //0.20 
      { 
         // add to this teams counter 
         local.team = group.TEAM[local.t.lasttriggerteam] 
         local.otherteam = !local.team    
         group.time_in_room[local.team]+= 0.05    
         // reset other team's counter    
         group.time_in_room[local.otherteam] = 0.0    
        
         if(group.time_in_room[local.team] >= group.TIME_FOR_POINT) 
         {    
            // add a point 
            group.POINTS[local.t.lasttriggerteam]++ 
               if(local.team == 0) 
               { 
                  thread alliedpoint 
               } 
               else 
               { 
                  thread axispoint 
               } 
            group.time_in_room[local.team] = 0.0 
         } 
      } 
      else 
      { 
         // reset counters for both teams 
         group.time_in_room[group.TEAM[allies]] = 0.0 
         group.time_in_room[group.TEAM[axis]] = 0.0 
      } 
      waitframe 
   }    
end 

dinnerroom_trigger:    
  // self is the trigger 
  self.lasttriggerteam = parm.other.dmteam 
  self.lasttriggertime = level.time    
end


//----------------------------------------------------------------------------- 

alliedpoint: 
   iprintlnbold "Allies occupy the winery and" 
   iprintlnbold "       downed a jug of Vino" 
   setcvar "g_obj_alliedtext3" ("Allies: " + group.POINTS[allies]) 
   huddraw_string 202 ("Allied: " + group.POINTS[allies]) 
   $speaker playsound point_scored "levelwide" 
   wait 1 
   $speaker playsound dfr_victory_v01 "levelwide" 
   thread checkwinner 
end 

//----------------------------------------------------------------------------- 

axispoint: 
   iprintlnbold "Axis score" 
   setcvar "g_obj_axistext1" ("Axis: " + group.POINTS[axis]) 
   huddraw_string 204 ("Axis: " + group.POINTS[axis]) 
   $speaker playsound point_scored "levelwide" 
   wait 1 
   $speaker playsound den_victory_v01 "levelwide" 
   thread checkwinner 
end 

//----------------------------------------------------------------------------- 

checkwinner: 
   if(group.POINTS[allies] > group.POINTS[axis]) 
      { 
      setcvar "g_obj_axistext3" ("is ALLIES") 
      } 
   else if(group.POINTS[axis] > group.POINTS[allies]) 
      { 
      setcvar "g_obj_axistext3" ("is AXIS") 
      } 
   else 
      { 
      setcvar "g_obj_axistext3" ("it's a TIE") 
      } 
end 

//----------------------------------------------------------------------------- 

scores: 

   while(1){ 

   huddraw_virtualsize 200 1 
   huddraw_align  200 right top 
   huddraw_font   200 "verdana-12" 
   huddraw_rect   200 -100 50 200 14 
   huddraw_color  200 0 1 0 
   huddraw_alpha  200 1.0 
   huddraw_string 200 "King of the Hill" 
    
   huddraw_virtualsize 202 1 
   huddraw_align  202 right top 
   huddraw_font   202 "verdana-12" 
   huddraw_rect   202 -80 80 100 14 
   huddraw_color  202 0 1 1 
   huddraw_alpha  202 1.0 
   huddraw_string 202 ("Allies: " + group.POINTS[allies]) 

   huddraw_virtualsize 203 1 
   huddraw_shader 203 ("textures/hud/allies") 
   huddraw_align  203 right top 
   huddraw_rect   203 -100 80 14 14 
   huddraw_alpha  203 1.0 

   huddraw_virtualsize 204 1 
   huddraw_align  204 right top 
   huddraw_font   204 "verdana-12" 
   huddraw_rect   204 -80 95 100 14 
   huddraw_color  204 1 0 0 
   huddraw_alpha  204 1.0 
   huddraw_string 204 ("Axis: " + group.POINTS[axis]) 

   huddraw_virtualsize 205 1 
   huddraw_shader 205 ("textures/hud/axis") 
   huddraw_align  205 right top 
   huddraw_rect   205 -100 95 14 14 
   huddraw_alpha  205 1.0 

   wait 5 

   } 

end 

//----------------------------------------------------------------------------- 

messages: 
   wait 20 
   iprintln "CAPTURE AND HOLD THE north/east WINERY!!" 
   wait 80 
   iprintln "CAPTURE AND HOLD THE north/east WINERY!!" 
   wait 140 
   iprintln "CAPTURE AND HOLD THE north/east WINERY!!" 
   wait 120 
   goto messages 
end 
kkcahdcakcyt
Sergeant
Posts: 71
Joined: Wed Aug 03, 2005 11:16 pm

Post by kkcahdcakcyt »

yeah i'm taking your modded version of Ivan and JV_maps mod. To make it to my custom maps.

Hopefully, I'm going to try to set it up eventually like Mefy's so you just plug in the base locations and setsize in the map .scr which would send it too the dinnerroom thread that I got from you.

Too limited in my knowledge

Also....I don't think I understand completely the setsize coord strings.
If I understand correctly from the origin one string goes x distance then y then z and then does so with the next the draws a box from those two numbers?
LeBabouin
Lance Corporal
Posts: 22
Joined: Tue Jun 21, 2005 11:10 pm

Post by LeBabouin »

Both start from origin
Post Reply