2025-10-09 09:48:26 +08:00
|
|
|
# File generated by Wizard 2.9.0 on Sep 19, 2025.
|
|
|
|
|
advanced_behavior behavior_fire
|
|
|
|
|
|
|
|
|
|
script_variables
|
|
|
|
|
WsfWeapon missile;
|
|
|
|
|
WsfControlMessage msg=WsfControlMessage();
|
|
|
|
|
string str="";
|
|
|
|
|
WsfTrack track=WsfTrack();
|
2025-10-15 11:23:32 +08:00
|
|
|
string weapon_name="";
|
2025-10-09 09:48:26 +08:00
|
|
|
end_script_variables
|
|
|
|
|
|
|
|
|
|
on_init
|
2025-10-15 11:23:32 +08:00
|
|
|
if(!PLATFORM->weapon_name)
|
|
|
|
|
{
|
|
|
|
|
missile = PLATFORM.Weapon("sam");
|
|
|
|
|
}
|
|
|
|
|
else
|
|
|
|
|
{
|
|
|
|
|
weapon_name=PLATFORM->weapon_name;
|
|
|
|
|
missile = PLATFORM.Weapon(weapon_name);
|
|
|
|
|
}
|
2025-10-09 09:48:26 +08:00
|
|
|
writeln("on_init");
|
|
|
|
|
end_on_init
|
|
|
|
|
|
|
|
|
|
on_message
|
|
|
|
|
type WSF_CONTROL_MESSAGE
|
|
|
|
|
script
|
|
|
|
|
msg=(WsfControlMessage)MESSAGE;
|
|
|
|
|
writeln("receive",msg.AuxDataString("task"));
|
|
|
|
|
str=msg.AuxDataString("task");
|
|
|
|
|
track=(WsfTrack)msg.AuxDataObject("track");
|
|
|
|
|
writeln(str);
|
|
|
|
|
# if(msg.AuxDataString("task")=="FIRE")
|
|
|
|
|
# {
|
|
|
|
|
# writeln("in fire");
|
|
|
|
|
# WsfTrack track=(WsfTrack)msg.AuxDataObject("track");
|
|
|
|
|
# missile.Fire(track);
|
|
|
|
|
# writeln("fire,remain weapon:", missile.QuantityRemaining());
|
|
|
|
|
# }
|
|
|
|
|
|
|
|
|
|
end_script
|
|
|
|
|
end_on_message
|
|
|
|
|
|
|
|
|
|
precondition
|
|
|
|
|
writeln(str);
|
|
|
|
|
if( str=="FIRE")
|
|
|
|
|
{
|
|
|
|
|
writeln("in fire");
|
|
|
|
|
return true;
|
|
|
|
|
}
|
|
|
|
|
return false;
|
|
|
|
|
end_precondition
|
|
|
|
|
|
|
|
|
|
execute
|
|
|
|
|
missile.Fire(track);
|
|
|
|
|
writeln("fire,remain weapon:", missile.QuantityRemaining());
|
|
|
|
|
str="";
|
|
|
|
|
return Success();
|
|
|
|
|
end_execute
|
|
|
|
|
|
|
|
|
|
end_advanced_behavior
|