Hallo Leute
ich hätte ein kleines Script-Problem: Ich habe mal versucht, im Script den Souvereign-Kreuzer automatisch seinen Phaser abzufeuern, egal ob KI oder menschlicher Spieler. Es feuert aber nicht, was mich zu schaffen macht, und deshalb wende ich mich an euch. Könnt ihr mein Problem lösen?
Hier der Script (Souvereign.lua):
Spoiler:
	
Und hier die entsprechende Einheit:
Spoiler:
	
							
						
					ich hätte ein kleines Script-Problem: Ich habe mal versucht, im Script den Souvereign-Kreuzer automatisch seinen Phaser abzufeuern, egal ob KI oder menschlicher Spieler. Es feuert aber nicht, was mich zu schaffen macht, und deshalb wende ich mich an euch. Könnt ihr mein Problem lösen?
Hier der Script (Souvereign.lua):
Spoiler:
Code:
	
	require("PGStateMachine")
function Definitions()
	Define_State("State_Init", State_Init);
	unit_trigger_number = 1
	force_trigger_number = 5
	ability_range = 900
	min_threat_to_use_ability = 1000
	ability_name = "ENERGY_BEAM"
	area_of_effect = 600
end
function State_Init(message)
	if message == OnEnter then
		--MessageBox("%s--Object:%s", tostring(Script), tostring(Object))
		-- prevent this from doing anything in galactic and ground mode
		--MessageBox("%s, mode %s", tostring(Script), Get_Game_Mode())
		if Get_Game_Mode() ~= "Space" then
			return
		end
--		-- Bail out if this is a human player
--		if Object.Get_Owner().Is_Human() then
--			ScriptExit()
--		end
    -- Wir brauchen diesen Vorgang, auch wenn es ein menschlicher Spieler ist
		-- Register a proximity around this unit
		rebel_player = Find_Player("EMPIRE")
		Register_Prox(Object, Unit_Prox, ability_range, rebel_player)
	elseif message == OnUpdate then
		-- reset tracked units each service.
		nearby_unit_count = 0
		recent_enemy_units = {}
	end
end
-- If an enemy enters the prox, the unit may want to use the ability
function Unit_Prox(self_obj, trigger_obj)
	DebugMessage("%s -- In Prox", tostring(Script))
	-- Note: we're explicitly tracking individual infantry here (as opposed to their parents, the squads)
    if not trigger_obj then
		DebugMessage("Warning: prox received a nil trigger_obj .")
		return
	end
	-- If we haven't seen this unit recently, track him
	if recent_enemy_units[trigger_obj] == nil then
		recent_enemy_units[trigger_obj] = trigger_obj
		nearby_unit_count = nearby_unit_count + 1
		DebugMessage("%s -- Nearby unit count %d", tostring(Script), nearby_unit_count)
		if Object.Is_Ability_Ready(ability_name) then
			DebugMessage("%s -- ability ready: %s", tostring(Script), ability_name)
			if (nearby_unit_count >= unit_trigger_number) then
				DebugMessage("%s -- met min trigger number", tostring(Script))
				aoe_pos, aoe_victim_threat = Find_Best_Local_Threat_Center(recent_enemy_units, area_of_effect)
				if (aoe_pos ~= nil) then
					if (aoe_victim_threat > min_threat_to_use_ability) then
						DebugMessage("%s -- met min threat triggered; activating ability", tostring(Script))
						Try_Ability(Object, ability_name, aoe_pos)
					end
					if (nearby_unit_count >= force_trigger_number) then
						DebugMessage("%s -- an excess of units nearby; activating ability", tostring(Script))
						Try_Ability(Object, ability_name, aoe_pos)
					end
				end
			end
		end
	end
end
Und hier die entsprechende Einheit:
Spoiler:
Code:
	
	<SpaceUnit Name="Souvereign_Destroyer">
		<Text_ID>TEXT_UNIT_SOUVEREIGN</Text_ID>
		<Encyclopedia_Good_Against> Tartan_Patrol_Cruiser IPV1_System_Patrol_Craft </Encyclopedia_Good_Against>
		<Encyclopedia_Vulnerable_To> TIE_Bomber Star_Destroyer Victory_Destroyer </Encyclopedia_Vulnerable_To>
		<GUI_Row> 2 </GUI_Row>
		<Space_Model_Name>FED_SOUVEREIGN.ALO</Space_Model_Name> 
		<No_Colorization_Color> 182, 182, 182, 255 </No_Colorization_Color>
		<Mass>0.8</Mass>
		<Scale_Factor>2.5</Scale_Factor>
		<Dense_FOW_Reveal_Range_Multiplier>0.2</Dense_FOW_Reveal_Range_Multiplier>
		<Damage>40</Damage>
		<Autoresolve_Health>3600</Autoresolve_Health>
		<Shield_Points>3500</Shield_Points>
		<Tactical_Health>6000</Tactical_Health>
		<Shield_Refresh_Rate>100</Shield_Refresh_Rate>
		<Energy_Capacity>5000</Energy_Capacity>
		<Energy_Refresh_Rate>500</Energy_Refresh_Rate>
		
		<Lua_Script>Souvereign</Lua_Script>
        <Ranking_In_Category>6</Ranking_In_Category>
		<Max_Speed>3.5</Max_Speed>
		<Max_Rate_Of_Turn>1.2</Max_Rate_Of_Turn>
		<MovementClass> Space </MovementClass>
		<Space_Layer> Frigate </Space_Layer>
		<Layer_Z_Adjust>-90.0</Layer_Z_Adjust>
		<Max_Rate_Of_Roll>0.6</Max_Rate_Of_Roll>
		<Bank_Turn_Angle>25</Bank_Turn_Angle>
		<OverrideAcceleration> .04 </OverrideAcceleration>
		<OverrideDeceleration> .04 </OverrideDeceleration>
		<Armor_Type> Armor_Nebulon_B </Armor_Type>
        <Shield_Armor_Type>Shield_Frigate</Shield_Armor_Type>
		<Max_Thrust>1.5</Max_Thrust>
		<Hyperspace>Yes</Hyperspace>
		<Select_Box_Scale>290</Select_Box_Scale>
		<Select_Box_Z_Adjust>-30</Select_Box_Z_Adjust>
		<Ranged_Target_Z_Adjust>35.0</Ranged_Target_Z_Adjust>
		<Hyperspace_Speed>1.1</Hyperspace_Speed>
		<Maintenance_Cost>0.1</Maintenance_Cost>
		<Affiliation>Rebel</Affiliation>
		<Build_Initially_Locked>No</Build_Initially_Locked>
		<Build_Can_Be_Unlocked_By_Slicer>Yes</Build_Can_Be_Unlocked_By_Slicer>
		<Slice_Cost_Credits>400</Slice_Cost_Credits>
		<Tech_Level>0</Tech_Level>
		<Required_Timeline>0</Required_Timeline>
		<Required_Ground_Base_Level>0</Required_Ground_Base_Level>
		<Required_Star_Base_Level>2</Required_Star_Base_Level>
		<Required_Special_Structures />
		<Required_Planets />
		<Ship_Class>frigate</Ship_Class>
		<Formation_Priority>3</Formation_Priority>
		<Is_Escort>yes</Is_Escort>
		<Is_Bomber>no</Is_Bomber>
		<Political_Control>0</Political_Control>
		<Squadron_Capacity>10</Squadron_Capacity>
		<Transport_Capacity>16</Transport_Capacity>
		<Number_per_Squadron>1</Number_per_Squadron>
		<Build_Cost_Credits>15000</Build_Cost_Credits>
		<AI_Combat_Power>2200</AI_Combat_Power>
		<Build_Time_Seconds>30</Build_Time_Seconds>
		<Build_Tab_Space_Units>Yes</Build_Tab_Space_Units>
		<Size_Value>8</Size_Value>
		<Behavior> DUMMY_STARSHIP, SELECTABLE, POWERED, SHIELDED </Behavior>
		<SpaceBehavior>ABILITY_COUNTDOWN, SIMPLE_SPACE_LOCOMOTOR, TARGETING, REVEAL, HIDE_WHEN_FOGGED, UNIT_AI, ASTEROID_FIELD_DAMAGE, DAMAGE_TRACKING, ION_STUN_EFFECT, NEBULA, SPAWN_SQUADRON</SpaceBehavior>
		<Space_FOW_Reveal_Range>1200.0</Space_FOW_Reveal_Range>
		<Targeting_Max_Attack_Distance>1000.0</Targeting_Max_Attack_Distance>
		<Collidable_By_Projectile_Living>Yes</Collidable_By_Projectile_Living>
		<Death_Explosions>Large_Explosion_Space</Death_Explosions>
		<Death_Leave_Hulk_Behind> No </Death_Leave_Hulk_Behind>
		<Asteroid_Damage_Hit_Particles>Large_Damage_Space</Asteroid_Damage_Hit_Particles>
		
		<HardPoints>
			HP_Destroyer_00,
			HP_Destroyer_01,
			HP_Destroyer_05,
			HP_Destroyer_06,
			HP_Destroyer_03,
			HP_Destroyer_07,
			HP_Destroyer_Photon
		</HardPoints>
		
		<CategoryMask> Frigate | AntiCorvette</CategoryMask>
		<Icon_Name>Souvereign.tga</Icon_Name>
		<GUI_Model_Name>FED_SOUVEREIGN.ALO</GUI_Model_Name>
		<GUI_Distance>1000</GUI_Distance>
		<GUI_Offset>0 0 0</GUI_Offset>
		<GUI_Velocity>45</GUI_Velocity>
		<Victory_Relevant>yes</Victory_Relevant>
		<Has_Space_Evaluator>True</Has_Space_Evaluator>
		<SFXEvent_Build_Started>RHD_Build_Vehicle</SFXEvent_Build_Started>
		<SFXEvent_Build_Cancelled>RHD_Unit_Canceled</SFXEvent_Build_Cancelled>
		<SFXEvent_Build_Complete>Unit_Complete_Alpha10X</SFXEvent_Build_Complete>
		<SFXEvent_Ambient_Loop></SFXEvent_Ambient_Loop>
		<SFXEvent_Select>Unit_Select_Alpha10X</SFXEvent_Select>
		<SFXEvent_Move>Unit_Move_Alpha10X</SFXEvent_Move>
		<SFXEvent_Fleet_Move>Unit_Fleet_Move_Alpha10X</SFXEvent_Fleet_Move>
		<SFXEvent_Attack>Unit_Attack_Alpha10X</SFXEvent_Attack>
		<SFXEvent_Guard>Unit_Guard_Alpha10X</SFXEvent_Guard>
		<SFXEvent_Stop>Unit_Stop_Alpha10X</SFXEvent_Stop>
		<SFXEvent_Barrage>Unit_Barrage_Alpha10X</SFXEvent_Barrage>
		<SFXEvent_Move_Into_Asteroid_Field> Unit_Asteroids_Alpha10X </SFXEvent_Move_Into_Asteroid_Field>
		<SFXEvent_Move_Into_Nebula> Unit_Nebula_Alpha10X </SFXEvent_Move_Into_Nebula>
      <SFXEvent_Damaged_By_Asteroid> SFX_Asteroid_Detonation </SFXEvent_Damaged_By_Asteroid>
		<SFXEvent_Attack_Hardpoint> HARD_POINT_WEAPON_LASER, Unit_HP_LASER_Alpha10X </SFXEvent_Attack_Hardpoint>
		<SFXEvent_Attack_Hardpoint> HARD_POINT_WEAPON_MISSILE, Unit_HP_MISSILE_Alpha10X </SFXEvent_Attack_Hardpoint>
		<SFXEvent_Attack_Hardpoint> HARD_POINT_WEAPON_TORPEDO, Unit_HP_TORP_Alpha10X </SFXEvent_Attack_Hardpoint>
		<SFXEvent_Attack_Hardpoint> HARD_POINT_WEAPON_ION_CANNON, Unit_HP_ION_Alpha10X </SFXEvent_Attack_Hardpoint>
		<SFXEvent_Attack_Hardpoint> HARD_POINT_SHIELD_GENERATOR, Unit_HP_SHIELDS_Alpha10X </SFXEvent_Attack_Hardpoint>
		<SFXEvent_Attack_Hardpoint> HARD_POINT_ENGINE, Unit_HP_ENGINES_Alpha10X </SFXEvent_Attack_Hardpoint>
		<SFXEvent_Attack_Hardpoint> HARD_POINT_GRAVITY_WELL, Unit_HP_GRAV_Alpha10X </SFXEvent_Attack_Hardpoint>
		<SFXEvent_Hardpoint_Destroyed> HARD_POINT_WEAPON_LASER, Unit_Lost_Laser_Alpha10X </SFXEvent_Hardpoint_Destroyed>
		<SFXEvent_Hardpoint_Destroyed> HARD_POINT_WEAPON_MISSILE,   </SFXEvent_Hardpoint_Destroyed>
		<SFXEvent_Hardpoint_Destroyed> HARD_POINT_WEAPON_TORPEDO,   </SFXEvent_Hardpoint_Destroyed>
		<SFXEvent_Hardpoint_Destroyed> HARD_POINT_WEAPON_ION_CANNON,  </SFXEvent_Hardpoint_Destroyed>
		<SFXEvent_Hardpoint_Destroyed> HARD_POINT_SHIELD_GENERATOR, Unit_Lost_Shields_Alpha10X </SFXEvent_Hardpoint_Destroyed>
		<SFXEvent_Hardpoint_Destroyed> HARD_POINT_ENGINE, Unit_Lost_Engines_Alpha10X </SFXEvent_Hardpoint_Destroyed>
		<SFXEvent_Hardpoint_Destroyed> HARD_POINT_GRAVITY_WELL,  </SFXEvent_Hardpoint_Destroyed>
		<SFXEvent_Hardpoint_Destroyed> HARD_POINT_FIGHTER_BAY,  </SFXEvent_Hardpoint_Destroyed>
		<SFXEvent_Hardpoint_Destroyed> HARD_POINT_TRACTOR_BEAM, </SFXEvent_Hardpoint_Destroyed>
		<SFXEvent_Hardpoint_Destroyed> HARD_POINT_ENABLE_SPECIAL_ABILITY, </SFXEvent_Hardpoint_Destroyed>
		<SFXEvent_Engine_Idle_Loop>  </SFXEvent_Engine_Idle_Loop>
		<SFXEvent_Engine_Moving_Loop>  </SFXEvent_Engine_Moving_Loop>
		<SFXEvent_Engine_Cinematic_Focus_Loop>  </SFXEvent_Engine_Cinematic_Focus_Loop>
		
		<Death_SFXEvent_Start_Die></Death_SFXEvent_Start_Die>
		<Space_Full_Stop_Command> Yes </Space_Full_Stop_Command>
		<Is_Visible_On_Radar>Yes</Is_Visible_On_Radar>
		<Radar_Icon_Scale_Land>1.0</Radar_Icon_Scale_Land>
		<Radar_Icon_Scale_Space>1.0</Radar_Icon_Scale_Space>
		<Guard_Chase_Range>1000.0</Guard_Chase_Range>
		<Idle_Chase_Range>0.0</Idle_Chase_Range>
		<Attack_Move_Response_Range>400.0</Attack_Move_Response_Range>
		<Targeting_Stickiness_Time_Threshold>5.0</Targeting_Stickiness_Time_Threshold>
		<Targeting_Priority_Set>Frigate</Targeting_Priority_Set>
		<Unit_Abilities_Data SubObjectList="Yes">
				<Unit_Ability>
				<Type>ENERGY_WEAPON</Type>
	<Energy_Beam_Texture>w_XIIPhaser_tex.tga</Energy_Beam_Texture>
	<Energy_Beam_Color>0, 230, 255</Energy_Beam_Color>
				<GUI_Activated_Ability_Name> Piet_Energy_Weapon_Attack_Ability </GUI_Activated_Ability_Name> <!-- GUI Command Bar support -->
				<Recharge_Seconds>1</Recharge_Seconds>
				<Expiration_Seconds>1</Expiration_Seconds>
				<SFXEvent_Target_Ability> Unit_Energy_Blast_Piett </SFXEvent_Target_Ability>
				<SFXEvent_Special_Ability_Loop> Unit_Star_Destroyer_Energy_Blast </SFXEvent_Special_Ability_Loop> 
			</Unit_Ability>
		</Unit_Abilities_Data>
		
		
		<Abilities SubObjectList="Yes">
		
		<Energy_Weapon_Attack_Ability Name="Piet_Energy_Weapon_Attack_Ability">
				<Activation_Style> Space_Automatic </Activation_Style>
				<Applicable_Unit_Categories>Capital | Corvette | Frigate | Fighter | Bomber | Transport</Applicable_Unit_Categories>
				<Applicable_Unit_Types />
                <Owner_Particle_Effect>Piet_Powerup_Particle_Effect</Owner_Particle_Effect>
                <Owner_Particle_Bone_Name>HP_main_phaser</Owner_Particle_Bone_Name>
				<Activation_Min_Range>0</Activation_Min_Range>
	            <Activation_Max_Range>1000</Activation_Max_Range>
	<Energy_Beam_Texture>w_XIIPhaser_tex.tga</Energy_Beam_Texture>
	<Energy_Beam_Color>0, 230, 255</Energy_Beam_Color>
				<!-- Modifiers. If 0 - no modifier is applied, 1 - "100% increase or decrease" -->
				<Damage_Per_Frame>50</Damage_Per_Frame>			
			</Energy_Weapon_Attack_Ability>
			
			</Abilities>
		
		
		<Encyclopedia_Text> TEXT_TOOLTIP_SOUVEREIGN</Encyclopedia_Text>
		<Encyclopedia_Unit_Class> TEXT_ENCYCLOPEDIA_CLASS_CRUISER </Encyclopedia_Unit_Class>
		<Score_Cost_Credits> 2250</Score_Cost_Credits>
		<!--<MULTIPLAYER SKIRMISH VALUES BEGIN>-->
		<Tactical_Build_Cost_Multiplayer>200</Tactical_Build_Cost_Multiplayer>
		<Tactical_Build_Time_Seconds>1</Tactical_Build_Time_Seconds>
		<Tactical_Build_Prerequisites />
		<Tactical_Production_Queue>Tactical_Units</Tactical_Production_Queue>
		<!--<Build_Limit_Current_Per_Player>0</Build_Limit_Current_Per_Player>-->
		<!--<Build_Limit_Lifetime_Per_Player>0</Build_Limit_Lifetime_Per_Player>-->  
		<!--<MULTIPLAYER SKIRMISH VALUES END>-->
		<Population_Value>220</Population_Value>
	</SpaceUnit>




 
							
						
Kommentar