Matrix Games Forums

Forums  Register  Login  Photo Gallery  Member List  Search  Calendars  FAQ 

My Profile  Inbox  Address Book  My Subscription  My Forums  Log Out

[LUA][SOLVED] Changes in 1.12 (?)

 
View related threads: (in this forum | in all forums)

Logged in as: Guest
Users viewing this topic: none
  Printable Version
All Forums >> [New Releases from Matrix Games] >> Command: Modern Operations series >> Tech Support >> [LUA][SOLVED] Changes in 1.12 (?) Page: [1]
Login
Message << Older Topic   Newer Topic >>
[LUA][SOLVED] Changes in 1.12 (?) - 5/19/2017 6:04:05 AM   
snowburn


Posts: 188
Joined: 9/24/2013
From: Bovril, Argentina
Status: offline
Hello!!

I've the following code in one of my scenarios, it was working fine until update 1.12, but now it gives this error:

Lua script execution error: [string "Scud is Destroyed"]:3 invalid arguments to method call



this is the code im using:

local number=ScenEdit_GetKeyValue('destroyedScud')
number=number+1
ScenEdit_SetKeyValue('destroyedScud', number)

print(ScenEdit_GetKeyValue('destroyedScud'))

ScenEdit_SpecialMessage('United States', number..' Scud groups destroyed, '..9-number..' remains' )

if number==3 then
ScenEdit_SpecialMessage('United States', 'INIT MISSION 1' )
ScenEdit_AssignUnitToMission("Flogger E #1", "Patrol North Long")
ScenEdit_AssignUnitToMission("Flogger E #2", "Patrol North Long")
ScenEdit_AssignUnitToMission("Flogger E #3", "Patrol North Long")
ScenEdit_AssignUnitToMission("Flogger E #4", "Patrol North Long")
ScenEdit_AssignUnitToMission("Flogger E #5", "Patrol North Long")
ScenEdit_AssignUnitToMission("Flogger E #6", "Patrol North Long")
ScenEdit_AssignUnitToMission("Flogger G #1", "Patrol North Long")
ScenEdit_AssignUnitToMission("Flogger G #2", "Patrol North Long")
ScenEdit_AssignUnitToMission("Flogger G #3", "Patrol North Long")
ScenEdit_AssignUnitToMission("Flogger G #4", "Patrol North Long")

elseif number==4 then
ScenEdit_SpecialMessage('United States', 'INIT INTERCEPT 1' )
ScenEdit_AssignUnitToMission("Foxbat #5", "Intercept 1")
ScenEdit_AssignUnitToMission("Foxbat #6", "Intercept 1")

elseif number==5 then
ScenEdit_SpecialMessage('United States', 'INIT MISSION 2' )
ScenEdit_AssignUnitToMission("Fulcrum A #1", "Patrol East Long")
ScenEdit_AssignUnitToMission("Fulcrum A #2", "Patrol East Long")
ScenEdit_AssignUnitToMission("Fulcrum A #3", "Patrol East Long")
ScenEdit_AssignUnitToMission("Fulcrum A #4", "Patrol East Long")
ScenEdit_AssignUnitToMission("Fulcrum A #5", "Patrol East Long")
ScenEdit_AssignUnitToMission("Fulcrum A #6", "Patrol East Long")
ScenEdit_AssignUnitToMission("Fulcrum A #7", "Patrol East Long")
ScenEdit_AssignUnitToMission("Fulcrum A #8", "Patrol East Long")
ScenEdit_AssignUnitToMission("Fulcrum A #9", "Patrol East Long")
ScenEdit_AssignUnitToMission("Fulcrum A #10", "Patrol East Long")
ScenEdit_AssignUnitToMission("Fulcrum A #11", "Patrol East Long")
ScenEdit_AssignUnitToMission("Fulcrum A #12", "Patrol East Long")

elseif number==7 then
ScenEdit_SpecialMessage('United States', 'INIT MISSION 3' )
ScenEdit_AssignUnitToMission("Mirage EQ-6 #1", "Patrol West Long")
ScenEdit_AssignUnitToMission("Mirage EQ-6 #2", "Patrol West Long")
ScenEdit_AssignUnitToMission("Mirage EQ-6 #3", "Patrol West Long")
ScenEdit_AssignUnitToMission("Mirage EQ-6 #4", "Patrol West Long")
ScenEdit_AssignUnitToMission("Mirage EQ-6 #5", "Patrol West Long")
ScenEdit_AssignUnitToMission("Mirage EQ-6 #6", "Patrol West Long")
ScenEdit_AssignUnitToMission("Mirage EQ-6 #7", "Patrol West Long")
ScenEdit_AssignUnitToMission("Mirage EQ-6 #8", "Patrol West Long")
ScenEdit_AssignUnitToMission("Mirage EQ-6 #9", "Patrol West Long")
ScenEdit_AssignUnitToMission("Mirage EQ-6 #10", "Patrol West Long")
ScenEdit_AssignUnitToMission("Mirage EQ-6 #11", "Patrol West Long")
ScenEdit_AssignUnitToMission("Mirage EQ-6 #12", "Patrol West Long")

elseif number==8 then
ScenEdit_SpecialMessage('United States', 'INIT INTERCEPT 2' )
ScenEdit_AssignUnitToMission("Foxbat #1", "Intercept 2")
ScenEdit_AssignUnitToMission("Foxbat #2", "Intercept 2")
ScenEdit_AssignUnitToMission("Foxbat #3", "Intercept 2")
ScenEdit_AssignUnitToMission("Foxbat #4", "Intercept 2")

end

< Message edited by snowburn -- 5/23/2017 4:02:59 AM >
Post #: 1
RE: [LUA] Changes in 1.12 (?) - 5/19/2017 11:37:16 AM   
michaelm75au


Posts: 13500
Joined: 5/5/2001
From: Melbourne, Australia
Status: offline
Can you attach a save where this happens?
From memory nothing changed in ScenEdit_SetKeyValue/Get() for 1.12.

_____________________________

Michael

(in reply to snowburn)
Post #: 2
RE: [LUA] Changes in 1.12 (?) - 5/23/2017 4:02:41 AM   
snowburn


Posts: 188
Joined: 9/24/2013
From: Bovril, Argentina
Status: offline
Thanks michaelm

i've found the error:

change
ScenEdit_SetKeyValue('destroyedScud', number)

to
ScenEdit_SetKeyValue('destroyedScud', tostring(number))

i've been working on this scenario for quite a time, i hope to finish it soon :)


(in reply to michaelm75au)
Post #: 3
RE: [LUA] Changes in 1.12 (?) - 5/23/2017 10:10:06 AM   
Rory Noonan

 

Posts: 2816
Joined: 12/18/2014
From: Brooklyn, NY
Status: offline
Glad you got your problem sorted, if I may I'd like to suggest something that will help you execute code like this with less typing.

Rather than:
quote:


elseif number==7 then
ScenEdit_SpecialMessage('United States', 'INIT MISSION 3' )
ScenEdit_AssignUnitToMission("Mirage EQ-6 #1", "Patrol West Long")
ScenEdit_AssignUnitToMission("Mirage EQ-6 #2", "Patrol West Long")
ScenEdit_AssignUnitToMission("Mirage EQ-6 #3", "Patrol West Long")
ScenEdit_AssignUnitToMission("Mirage EQ-6 #4", "Patrol West Long")
ScenEdit_AssignUnitToMission("Mirage EQ-6 #5", "Patrol West Long")
ScenEdit_AssignUnitToMission("Mirage EQ-6 #6", "Patrol West Long")
ScenEdit_AssignUnitToMission("Mirage EQ-6 #7", "Patrol West Long")
ScenEdit_AssignUnitToMission("Mirage EQ-6 #8", "Patrol West Long")
ScenEdit_AssignUnitToMission("Mirage EQ-6 #9", "Patrol West Long")
ScenEdit_AssignUnitToMission("Mirage EQ-6 #10", "Patrol West Long")
ScenEdit_AssignUnitToMission("Mirage EQ-6 #11", "Patrol West Long")
ScenEdit_AssignUnitToMission("Mirage EQ-6 #12", "Patrol West Long")


I would recommend you use a for loop:

quote:


elseif number==7 then
ScenEdit_SpecialMessage('United States', 'INIT MISSION 3' )
for i = 1,12 do
ScenEdit_AssignUnitToMission("Mirage EQ-6 #"..i, "Patrol West Long")
end


You could refine this even further by adding an if condition to check that the unit exists first (to guard against a script failing when a destroyed unit is called)

quote:

elseif number==7 then
ScenEdit_SpecialMessage('United States', 'INIT MISSION 3' )
for i = 1,12 do
x = ScenEdit_GetUnit({side='whatever side',name="Mirage EQ-6 #"..i})
if x ~= nil then
ScenEdit_AssignUnitToMission(x.name, "Patrol West Long")
end
end

(in reply to snowburn)
Post #: 4
RE: [LUA] Changes in 1.12 (?) - 5/24/2017 1:22:30 AM   
michaelm75au


Posts: 13500
Joined: 5/5/2001
From: Melbourne, Australia
Status: offline
quote:

Lua script execution error: [string "Scud is Destroyed"]:3 invalid arguments to method call

The Lua error message has a bit more useful info now.
1) in what process the error occurred "[string "Scud is Destroyed"]" - this looks like an event or script name. If done in the console, 'console' would show here.
2) line number where the error occurred ":3" - line 3 of the script, which would be 'ScenEdit_SetKeyValue('destroyedScud', number)' based on the dump you gave.

Hope this is of more use to everyone than the old '["chunk"] invalid arguments to method call'. I know I have found it useful.

_____________________________

Michael

(in reply to snowburn)
Post #: 5
RE: [LUA] Changes in 1.12 (?) - 5/24/2017 5:27:46 AM   
snowburn


Posts: 188
Joined: 9/24/2013
From: Bovril, Argentina
Status: offline
@Apache85
Wow!!! i didnt knew i can use x.name, your script and your explanation are flawless, thanks!

@michaelm
you are right, "Scud is Destroyed" is the name of the event, and i haven't noticed that :3 means the line number of the error. Thanks a lot for the help


i owe a beer to both of you

please tell me if you want a preview version of the scenario

< Message edited by snowburn -- 5/24/2017 5:30:07 AM >

(in reply to michaelm75au)
Post #: 6
Page:   [1]
All Forums >> [New Releases from Matrix Games] >> Command: Modern Operations series >> Tech Support >> [LUA][SOLVED] Changes in 1.12 (?) Page: [1]
Jump to:





New Messages No New Messages
Hot Topic w/ New Messages Hot Topic w/o New Messages
Locked w/ New Messages Locked w/o New Messages
 Post New Thread
 Reply to Message
 Post New Poll
 Submit Vote
 Delete My Own Post
 Delete My Own Thread
 Rate Posts


Forum Software © ASPPlayground.NET Advanced Edition 2.4.5 ANSI

0.750