Page 1 of 2

Nonsensical error [Solved]

Posted: Sun Dec 14, 2008 11:29 am
by Master_Ben
So I made a custom unit. Done it before, never had trouble. Now I get the weirdest error only when I add this unit that isn't I think, related to the unit:
Hidden/Spoiler:
Message Severity: 3
.\Source\LuaHelper.cpp(312)
CallProc failed: (none):0: attempt to perform arithmetic on a nil value
stack traceback:
(none): in function `AddCommandPost'
(none): in function `ScriptPostLoad'
When I remove the unit, bam, no error. It's bizzare.

Lua:
Hidden/Spoiler:
--
-- Copyright (c) 2005 Pandemic Studios, LLC. All rights reserved.
--

-- load the gametype script
ScriptCB_DoFile("ObjectiveConquest")
ScriptCB_DoFile("setup_teams")

-- REP Attacking (attacker is always #1)
REP = 1;
CIS = 2;
-- These variables do not change
ATT = REP;
DEF = CIS;


function ScriptPostLoad()


--This defines the CPs. These need to happen first
cp1 = CommandPost:New{name = "cp1"}
cp2 = CommandPost:New{name = "cp2"}
cp3 = CommandPost:New{name = "cp3"}
cp4 = CommandPost:New{name = "cp4"}



--This sets up the actual objective. This needs to happen after cp's are defined
conquest = ObjectiveConquest:New{teamATT = ATT, teamDEF = DEF,
textATT = "game.modes.con",
textDEF = "game.modes.con2",
multiplayerRules = true}

--This adds the CPs to the objective. This needs to happen after the objective is set up
conquest:AddCommandPost(cp1)
conquest:AddCommandPost(cp2)
conquest:AddCommandPost(cp3)
conquest:AddCommandPost(cp4)

conquest:Start()

EnableSPHeroRules()

end


---------------------------------------------------------------------------
-- FUNCTION: ScriptInit
-- PURPOSE: This function is only run once
-- INPUT:
-- OUTPUT:
-- NOTES: The name, 'ScriptInit' is a chosen convention, and each
-- mission script must contain a version of this function, as
-- it is called from C to start the mission.
---------------------------------------------------------------------------
function ScriptInit()

ReadDataFile("ingame.lvl")


SetMaxFlyHeight(30)
SetMaxPlayerFlyHeight (30)

SetMemoryPoolSize ("ClothData",20)
SetMemoryPoolSize ("Combo",50) -- should be ~ 2x number of jedi classes
SetMemoryPoolSize ("Combo::State",650) -- should be ~12x #Combo
SetMemoryPoolSize ("Combo::Transition",650) -- should be a bit bigger than #Combo::State
SetMemoryPoolSize ("Combo::Condition",650) -- should be a bit bigger than #Combo::State
SetMemoryPoolSize ("Combo::Attack",550) -- should be ~8-12x #Combo
SetMemoryPoolSize ("Combo::DamageSample",6000) -- should be ~8-12x #Combo::Attack
SetMemoryPoolSize ("Combo::Deflect",100) -- should be ~1x #combo
SetMemoryPoolSize("SoldierAnimation", 380)

ReadDataFile("sound\\yav.lvl;yav1cw")
ReadDataFile("dc:SIDE\\rep.lvl",
-- "rep_inf_ep3_rifleman",
-- "rep_inf_ep3_rocketeer",
-- "rep_inf_ep3_engineer",
-- "rep_inf_ep3_sniper",
-- "rep_inf_ep3_officer",
-- "rep_inf_ep3_jettrooper",
-- "rep_hover_fightertank",
-- "rep_hero_anakin",
"rep_clon9",
"rep_inf_trooperneyo")
-- "rep_hover_barcspeeder"

ReadDataFile("dc:SIDE\\rep212th.lvl",
"rep_inf_ep3_rifleman",
"rep_inf_ep3_rocketeer",
"rep_inf_ep3_engineer",
"rep_inf_ep3_commander",
"rep_inf_ep3_sniper",
"rep_inf_ep3_officer",
"rep_inf_ep3_jettrooper")


ReadDataFile("SIDE\\cis.lvl",
"cis_inf_rifleman",
"cis_inf_rocketeer",
"cis_inf_engineer",
"cis_inf_sniper",
"cis_inf_officer",
"cis_inf_droideka",
"cis_hero_darthmaul",
"cis_hover_aat")


ReadDataFile("SIDE\\tur.lvl",
"tur_bldg_laser",
"tur_bldg_tower")

SetupTeams{
rep = {
team = REP,
units = 20,
reinforcements = 150,
soldier = { "rep_inf_ep3_rocketeer",9, 25},
assault = { "rep_inf_ep3_engineer",1, 3},
engineer = { "rep_inf_ep3_sniper",1, 3},
sniper = { "rep_inf_ep3_commander",1, 3},
officer = {"rep_inf_trooperneyo",1, 3},
special = { "rep_clon9",1, 3},
AddUnitClass(REP, "rep_inf_ep3_rifleman",1,4)
},
cis = {
team = CIS,
units = 20,
reinforcements = 150,
soldier = { "cis_inf_rifleman",9, 25},
assault = { "cis_inf_rocketeer",1, 4},
engineer = { "cis_inf_engineer",1, 4},
sniper = { "cis_inf_sniper",1, 4},
officer = {"cis_inf_officer",1, 4},
special = { "cis_inf_droideka",1, 4},
}
}



SetHeroClass(CIS, "cis_hero_darthmaul")
SetHeroClass(REP, "rep_hero_anakin")




-- Level Stats
-- ClearWalkers()
AddWalkerType(0, 4) -- special -> droidekas
AddWalkerType(1, 0) -- 1x2 (1 pair of legs)
AddWalkerType(2, 0) -- 2x2 (2 pairs of legs)
AddWalkerType(3, 0) -- 3x2 (3 pairs of legs)
local weaponCnt = 1024
SetMemoryPoolSize("Aimer", 75)
SetMemoryPoolSize("AmmoCounter", weaponCnt)
SetMemoryPoolSize("BaseHint", 1024)
SetMemoryPoolSize("EnergyBar", weaponCnt)
SetMemoryPoolSize("EntityCloth", 32)
SetMemoryPoolSize("EntityFlyer", 32)
SetMemoryPoolSize("EntityHover", 32)
SetMemoryPoolSize("EntityLight", 200)
SetMemoryPoolSize("EntitySoundStream", 4)
SetMemoryPoolSize("EntitySoundStatic", 32)
SetMemoryPoolSize("MountedTurret", 32)
SetMemoryPoolSize("Navigator", 128)
SetMemoryPoolSize("Obstacle", 1024)
SetMemoryPoolSize("PathNode", 1024)
SetMemoryPoolSize("SoundSpaceRegion", 64)
SetMemoryPoolSize("TreeGridStack", 1024)
SetMemoryPoolSize("UnitAgent", 128)
SetMemoryPoolSize("UnitController", 128)
SetMemoryPoolSize("Weapon", weaponCnt)

SetSpawnDelay(10.0, 0.25)
--ReadDataFile("dc:LXA\\LXA.lvl", "LXA_conquest")
ReadDataFile("dc:LXA\\LXA.lvl", "LXA_conquest")
SetDenseEnvironment("false")




-- Sound

SetSoundEffect("ScopeDisplayZoomIn", "binocularzoomin")
SetSoundEffect("ScopeDisplayZoomOut", "binocularzoomout")

voiceSlow = OpenAudioStream("sound\\global.lvl", "rep_unit_vo_slow")
AudioStreamAppendSegments("sound\\global.lvl", "cis_unit_vo_slow", voiceSlow)
AudioStreamAppendSegments("sound\\global.lvl", "global_vo_slow", voiceSlow)

voiceQuick = OpenAudioStream("sound\\global.lvl", "rep_unit_vo_quick")
AudioStreamAppendSegments("sound\\global.lvl", "cis_unit_vo_quick", voiceQuick)

OpenAudioStream("sound\\global.lvl", "cw_music")
-- OpenAudioStream("sound\\global.lvl", "global_vo_quick")
-- OpenAudioStream("sound\\global.lvl", "global_vo_slow")
OpenAudioStream("sound\\yav.lvl", "yav1")
OpenAudioStream("sound\\yav.lvl", "yav1")
OpenAudioStream("sound\\yav.lvl", "yav1_emt")

SetBleedingVoiceOver(REP, REP, "rep_off_com_report_us_overwhelmed", 1)
SetBleedingVoiceOver(REP, CIS, "rep_off_com_report_enemy_losing", 1)
SetBleedingVoiceOver(CIS, REP, "cis_off_com_report_enemy_losing", 1)
SetBleedingVoiceOver(CIS, CIS, "cis_off_com_report_us_overwhelmed", 1)

SetOutOfBoundsVoiceOver(2, "cisleaving")
SetOutOfBoundsVoiceOver(1, "repleaving")

SetAmbientMusic(REP, 1.0, "rep_yav_amb_start", 0,1)
SetAmbientMusic(REP, 0.8, "rep_yav_amb_middle", 1,1)
SetAmbientMusic(REP, 0.2, "rep_yav_amb_end", 2,1)
SetAmbientMusic(CIS, 1.0, "cis_yav_amb_start", 0,1)
SetAmbientMusic(CIS, 0.8, "cis_yav_amb_middle", 1,1)
SetAmbientMusic(CIS, 0.2, "cis_yav_amb_end", 2,1)

SetVictoryMusic(REP, "rep_yav_amb_victory")
SetDefeatMusic (REP, "rep_yav_amb_defeat")
SetVictoryMusic(CIS, "cis_yav_amb_victory")
SetDefeatMusic (CIS, "cis_yav_amb_defeat")

SetSoundEffect("ScopeDisplayZoomIn", "binocularzoomin")
SetSoundEffect("ScopeDisplayZoomOut", "binocularzoomout")
--SetSoundEffect("BirdScatter", "birdsFlySeq1")
--SetSoundEffect("WeaponUnableSelect", "com_weap_inf_weaponchange_null")
--SetSoundEffect("WeaponModeUnableSelect", "com_weap_inf_modechange_null")
SetSoundEffect("SpawnDisplayUnitChange", "shell_select_unit")
SetSoundEffect("SpawnDisplayUnitAccept", "shell_menu_enter")
SetSoundEffect("SpawnDisplaySpawnPointChange", "shell_select_change")
SetSoundEffect("SpawnDisplaySpawnPointAccept", "shell_menu_enter")
SetSoundEffect("SpawnDisplayBack", "shell_menu_exit")


--OpeningSateliteShot
AddCameraShot(0.908386, -0.209095, -0.352873, -0.081226, -45.922508, -19.114113, 77.022636);

AddCameraShot(-0.481173, 0.024248, -0.875181, -0.044103, 14.767292, -30.602322, -144.506851);
AddCameraShot(0.999914, -0.012495, -0.004416, -0.000055, 1.143253, -33.602314, -76.884430);
AddCameraShot(0.839161, 0.012048, -0.543698, 0.007806, 19.152437, -49.802273, 24.337317);
AddCameraShot(0.467324, 0.006709, -0.883972, 0.012691, 11.825212, -49.802273, -7.000720);
AddCameraShot(0.861797, 0.001786, -0.507253, 0.001051, -11.986043, -59.702248, 23.263165);
AddCameraShot(0.628546, -0.042609, -0.774831, -0.052525, 20.429928, -48.302277, 9.771714);
AddCameraShot(0.765213, -0.051873, 0.640215, 0.043400, 57.692474, -48.302277, 16.540724);
AddCameraShot(0.264032, -0.015285, -0.962782, -0.055734, -16.681797, -42.902290, 129.553268);
AddCameraShot(-0.382320, 0.022132, -0.922222, -0.053386, 20.670977, -42.902290, 135.513001);
end
Any help would be appreciated.

Re: Nonsensical error

Posted: Sun Dec 14, 2008 10:53 pm
by Teancum
That's command post related. If you added/deleted a command post or renamed one you'll need to update the lua.

Re: Nonsensical error

Posted: Mon Dec 15, 2008 4:58 pm
by Master_Ben
Teancum wrote:That's command post related. If you added/deleted a command post or renamed one you'll need to update the lua.
I think I know what you mean but could you tell me to make sure?

Also, then why does the error disappear when I remove the unit?

Re: Nonsensical error

Posted: Mon Dec 15, 2008 5:09 pm
by Fiodis
If you have more than 4 (or less than 4) cps, you need to edit the LUA:
Hidden/Spoiler:
--This defines the CPs. These need to happen first
cp1 = CommandPost:New{name = "cp1"}
cp2 = CommandPost:New{name = "cp2"}
cp3 = CommandPost:New{name = "cp3"}
cp4 = CommandPost:New{name = "cp4"}
cp5 = CommandPost:New{name = "cp5"}
And
Hidden/Spoiler:
--This adds the CPs to the objective. This needs to happen after the objective is set up
conquest:AddCommandPost(cp1)
conquest:AddCommandPost(cp2)
conquest:AddCommandPost(cp3)
conquest:AddCommandPost(cp4)
conquest:AddCommandPost(cp5)
If you have less than 4, you need to delete the corresponding lines.

As for the unit, I have no clue. Perhaps it is generating a separate, unrelated, Severity-2-but-still-crashing type error? Search through your log for any mention of the unit, and post here if you find anything. I've had hordes of severity-2's crash on me sometimes.

Re: Nonsensical error

Posted: Mon Dec 15, 2008 7:00 pm
by Tourny
Is the

ReadDataFile("dc:SIDE\\rep.lvl",
-- "rep_inf_ep3_rifleman",
-- "rep_inf_ep3_rocketeer",
-- "rep_inf_ep3_engineer",
-- "rep_inf_ep3_sniper",
-- "rep_inf_ep3_officer",
-- "rep_inf_ep3_jettrooper",
-- "rep_hover_fightertank",
-- "rep_hero_anakin",
"rep_clon9",
"rep_inf_trooperneyo")
-- "rep_hover_barcspeeder"

Normal practice? If I was the computer in that situation, I would get confused.

Which unit are you talking about? rep_clon9 or rep_inf_trooperneyo?

I got the nil value thing when I was trying to put in a teleport, but I think it might mean that one of your units doesn't exist in the right place.

Re: Nonsensical error

Posted: Mon Dec 15, 2008 8:51 pm
by Master_Ben
Tourny wrote:Is the

ReadDataFile("dc:SIDE\\rep.lvl",
-- "rep_inf_ep3_rifleman",
-- "rep_inf_ep3_rocketeer",
-- "rep_inf_ep3_engineer",
-- "rep_inf_ep3_sniper",
-- "rep_inf_ep3_officer",
-- "rep_inf_ep3_jettrooper",
-- "rep_hover_fightertank",
-- "rep_hero_anakin",
"rep_clon9",
"rep_inf_trooperneyo")
-- "rep_hover_barcspeeder"

Normal practice? If I was the computer in that situation, I would get confused.
Normally, yes. But I'm not positive I want to keep my custom sides yet.
Tourny wrote:Which unit are you talking about? rep_clon9 or rep_inf_trooperneyo?

I got the nil value thing when I was trying to put in a teleport, but I think it might mean that one of your units doesn't exist in the right place.
rep_inf_trooperneyo. I can't see that being correct as if all I do is comment out it's readdatafile line it works fine.

Thanks Fiodis and Tean, will try. :)

Edit: It still doesn't work. I might want to mention that it only crashes when I click on the unit at the spawn screen.

Re: Nonsensical error

Posted: Tue Dec 16, 2008 6:53 pm
by Tourny
That's what happens when you try to play as an unrefined R2D2. I think it's because of camera sections with him, though. Can you post neyo's ODF?

EDIT: and any other modded files that are related to him.

Re: Nonsensical error

Posted: Tue Dec 16, 2008 9:56 pm
by Master_Ben
K will soon.

Re: Nonsensical error

Posted: Wed Dec 17, 2008 9:27 am
by RogueKnight
Teancum wrote:That's command post related. If you added/deleted a command post or renamed one you'll need to update the lua.
Me and RepSharpShooter decided it couldn't be after we looked over my lua and files, its just a random error, and I never found a fix.

Re: Nonsensical error

Posted: Wed Dec 17, 2008 6:21 pm
by Master_Ben
Okay, here we go:

Trooperneyo odf:
Hidden/Spoiler:
[GameObjectClass]
ClassParent = "rep_inf_default"


[Properties]
UnitType = "assault"

MaxSpeed = 6.0 // base forward speed
MaxStrafeSpeed = 4.5 // base right/left speed

WEAPONSECTION = 1
WeaponName = "rep_weap_inf_rifle"
WeaponAmmo = 4

WEAPONSECTION = 2
WeaponName = "rep_weap_inf_rocket_launcher"
WeaponAmmo = 4

WEAPONSECTION = 3
WeaponName = "rep_weap_inf_thermaldetonator"
WeaponAmmo = 2
WeaponChannel = 1

VOUnitType = 121
If you need anything, tell me. :P

Re: Nonsensical error

Posted: Wed Dec 17, 2008 9:30 pm
by RogueKnight
Not sure why you had to post the Neyo odf, the problem is caused by the AI not being able to spawn as that unit.

Re: Nonsensical error

Posted: Thu Dec 18, 2008 6:45 pm
by Master_Ben
Tourny wrote:That's what happens when you try to play as an unrefined R2D2. I think it's because of camera sections with him, though. Can you post neyo's ODF?

EDIT: and any other modded files that are related to him.
That's why. :wink:

Could you elaborate on that, Rouge? Thx. :)

Re: Nonsensical error

Posted: Thu Dec 18, 2008 7:20 pm
by ckmcruel
I actually don't know why, I never figured our the error, but Tourny is right, it may be something so simple as camera angles to first person views.

Re: Nonsensical error

Posted: Thu Dec 18, 2008 7:53 pm
by Master_Ben
Oh Well... *Sigh* I guess I'll have to make another unit with the same assets if anyone doesn't have any other Ideas... :(

Re: Nonsensical error

Posted: Thu Dec 18, 2008 8:37 pm
by RepSharpshooter
Master_Ben wrote:Okay, here we go:

Trooperneyo odf:
Hidden/Spoiler:
[GameObjectClass]
ClassParent = "rep_inf_default"


[Properties]
UnitType = "assault"

MaxSpeed = 6.0 // base forward speed
MaxStrafeSpeed = 4.5 // base right/left speed

WEAPONSECTION = 1
WeaponName = "rep_weap_inf_rifle"
WeaponAmmo = 4

WEAPONSECTION = 2
WeaponName = "rep_weap_inf_rocket_launcher"
WeaponAmmo = 4

WEAPONSECTION = 3
WeaponName = "rep_weap_inf_thermaldetonator"
WeaponAmmo = 2
WeaponChannel = 1

VOUnitType = 121
If you need anything, tell me. :P
Is that all? Most units reference something like rep_inf_default_rifleman.odf
Hidden/Spoiler:
[GameObjectClass]
ClassParent = "rep_inf_default"


[Properties]
WEAPONSECTION = 1
WeaponName = "rep_weap_inf_rifle"
WeaponAmmo = 4

WEAPONSECTION = 2
WeaponName = "rep_weap_inf_pistol"
WeaponAmmo = 0

WEAPONSECTION = 3
WeaponName = "rep_weap_inf_thermaldetonator"
WeaponAmmo = 4
WeaponChannel = 1

WEAPONSECTION = 4
WeaponName = "rep_weap_award_rifle"
WeaponAmmo = 4

WEAPONSECTION = 5
WeaponName = "rep_weap_award_pistol"
WeaponAmmo = 6

VOUnitType = 121
It seems you would be missing crucial data unless you put it somewhere else.

Re: Nonsensical error

Posted: Thu Dec 18, 2008 8:42 pm
by Master_Ben
Well I would, but I just edited the rep_inf_default_marine to fit my needs for testing, so in theory it isn't reference-needed because, well, it is the reference, if that makes any sense.

Re: Nonsensical error

Posted: Thu Dec 18, 2008 9:27 pm
by Maveritchell
How's that unit without a geometry working out for you?

Re: Nonsensical error

Posted: Thu Dec 18, 2008 9:41 pm
by ckmcruel
Maveritchell wrote:How's that unit without a geometry working out for you?
D 'oh! Why didn't I notice that!

Re: Nonsensical error

Posted: Fri Dec 19, 2008 7:09 am
by Teancum
Maveritchell wrote:How's that unit without a geometry working out for you?
:funny2: You're a regular comedian lately Mav!

Re: Nonsensical error

Posted: Fri Dec 19, 2008 9:01 am
by Master_Ben
Wow... :lol:

The most stupid mistake of all and I didn't noice. I feel like such a moron. :oops:

I think this happened because all the sub units reference their own geometries and the default ones don't...... Again, it makes me feel so stupid...

Thanks for the help, guys :D