help for add-ons
Moderator: Forum Moderators
help for add-ons
can any one help me to find where's the error of the code?thanks:)
Code: Select all
local all_sides = wesnoth.get_sides({ {"has_unit", { canrecruit = true }} })
wesnoth.set_variable("dm_message.caption","Droid Menu")
wesnoth.set_variable("dm_message.speaker","narrator")
wesnoth.set_variable("dm_message.scroll","no")
wesnoth.set_variable("dm_message.side_for",tostring(wesnoth.current.side))
wesnoth.set_variable("dm_message.message","Select a side to droid from the list:")
wesnoth.fire("set_variables", { name="dm_message.option[0]" , {"value", { message="Cancel", image="lobby/status-lobby-s.png~FL()~CS(200,-200,0)~SCALE(30,30)", {"command",{}}}}})
for i,v in ipairs(all_sides) do
local spancolor1 = "<span color='"..tostring(wesnoth.get_variable("DROID_MENU_SYSTEM.player["..tostring(v.side).."].colorname")).."'>"
local spancolor1_end = "</span>"
if v.side == wesnoth.current.side then
wesnoth.fire("set_variables", { name="dm_message.option["..tostring(i).."]" , {"value", { message=tostring(spancolor1).."Droid "..tostring(v.side_name).." side "..tostring(v.side).." and END TURN"..tostring(spancolor1_end), {"command",{{"modify_side",{ side=tostring(v.side), controller="ai"}},{"chat",{ speaker="Droid Menu" , message=tostring(v.side_name).." Side "..tostring(v.side).." was properly droided by owner side "..tostring(wesnoth.current.side)}},{"end_turn",{}}}}}}})
wesnoth.set_variable("dm_temp_current_side_name",tostring(v.side_name))
else
wesnoth.fire("set_variables", { name="dm_message.option["..tostring(i).."]" , {"value", { message=tostring(spancolor1).."Droid "..tostring(v.side_name).." side "..tostring(v.side)..tostring(spancolor1_end), {"command",{{"modify_side",{ side=tostring(v.side), controller="ai"}},{"chat",{ speaker="Droid Menu" , message=tostring(v.side_name).." Side "..tostring(v.side).." was properly droided by owner side "..tostring(wesnoth.current.side)}}}}}}})
end
end
Re: help for add-ons
It feels like goal of your code is quite close to what I wrote some years ago
Code: Select all
[option]
message=_"change controller"
[command]
[lua]
code=<<
-- human, network, ai, network_ai, null, idle.
local count = 0
wesnoth.set_variable("Rav_DBG_control["..tostring(count).."].message", "Return")
for i, side in ipairs(wesnoth.sides) do
if i == wesnoth.current.side then
goto continue
end
count = count + 1
if side.controller == "human" then
wesnoth.set_variable("Rav_DBG_control["..tostring(count).."].message", "Change side "..tostring(i).." to ai")
wesnoth.set_variable("Rav_DBG_control[" .. tostring(count) .. "].command.modify_side[0].side", i)
wesnoth.set_variable("Rav_DBG_control[" .. tostring(count) .. "].command.modify_side[0].controller", "ai")
else
wesnoth.set_variable("Rav_DBG_control["..tostring(count).."].message", "Change side "..tostring(i).." to human")
wesnoth.set_variable("Rav_DBG_control[" .. tostring(count) .. "].command.modify_side[0].side", i)
wesnoth.set_variable("Rav_DBG_control[" .. tostring(count) .. "].command.modify_side[0].controller", "human")
end
::continue::
end
>>
[/lua]
[message]
speaker=narrator
[insert_tag]
name=option
variable=Rav_DBG_control
[/insert_tag]
[/message]
{CLEAR_VARIABLE Rav_DBG_control}
[/command]
[/option]
Re: help for add-ons
Yeah,it's enclave's droid menu's code.but it shows me a nil color value...Ravana wrote: ↑March 10th, 2020, 4:27 pm It feels like goal of your code is quite close to what I wrote some years agoCode: Select all
[option] message=_"change controller" [command] [lua] code=<< -- human, network, ai, network_ai, null, idle. local count = 0 wesnoth.set_variable("Rav_DBG_control["..tostring(count).."].message", "Return") for i, side in ipairs(wesnoth.sides) do if i == wesnoth.current.side then goto continue end count = count + 1 if side.controller == "human" then wesnoth.set_variable("Rav_DBG_control["..tostring(count).."].message", "Change side "..tostring(i).." to ai") wesnoth.set_variable("Rav_DBG_control[" .. tostring(count) .. "].command.modify_side[0].side", i) wesnoth.set_variable("Rav_DBG_control[" .. tostring(count) .. "].command.modify_side[0].controller", "ai") else wesnoth.set_variable("Rav_DBG_control["..tostring(count).."].message", "Change side "..tostring(i).." to human") wesnoth.set_variable("Rav_DBG_control[" .. tostring(count) .. "].command.modify_side[0].side", i) wesnoth.set_variable("Rav_DBG_control[" .. tostring(count) .. "].command.modify_side[0].controller", "human") end ::continue:: end >> [/lua] [message] speaker=narrator [insert_tag] name=option variable=Rav_DBG_control [/insert_tag] [/message] {CLEAR_VARIABLE Rav_DBG_control} [/command] [/option]