4
« on: February 26, 2012, 09:55:28 PM »
I tried that, the new file is:
MissionDefinition CLASS:
Êþº¾ 1 +data/missions/thewolfpack/MissionDefinition java/lang/Object 4com/fs/starfarer/api/mission/MissionDefinitionPlugin <init> ()V Code
LineNumberTable LocalVariableTable this -Ldata/missions/thewolfpack/MissionDefinition;
defineMission 6(Lcom/fs/starfarer/api/mission/MissionDefinitionAPI;)V &com/fs/starfarer/api/mission/FleetSide PLAYER (Lcom/fs/starfarer/api/mission/FleetSide; ISS $com/fs/starfarer/api/fleet/FleetGoal ATTACK &Lcom/fs/starfarer/api/fleet/FleetGoal; ! # " 1com/fs/starfarer/api/mission/MissionDefinitionAPI $ % initFleet e(Lcom/fs/starfarer/api/mission/FleetSide;Ljava/lang/String;Lcom/fs/starfarer/api/fleet/FleetGoal;ZI)V ' ( ENEMY * HSS , - ESCAPE / Independent raiding party ! 1 2 3 setFleetTagline =(Lcom/fs/starfarer/api/mission/FleetSide;Ljava/lang/String;)V 5 Hegemony convoy with escort 7 BThe enemy ships will attempt to flee towards the bottom of the map ! 9 : ; addBriefingItem (Ljava/lang/String;)V = BControlling the Nav Buoys is critical to preventing a quick escape ? &Disable as many enemy ships as you can A ISS Batavian must survive C
medusa_Attack E G F *com/fs/starfarer/api/fleet/FleetMemberType H I SHIP ,Lcom/fs/starfarer/api/fleet/FleetMemberType; K ISS Batavian ! M N O
addToFleet ¦(Lcom/fs/starfarer/api/mission/FleetSide;Ljava/lang/String;Lcom/fs/starfarer/api/fleet/FleetMemberType;Ljava/lang/String;Z)Lcom/fs/starfarer/api/fleet/FleetMemberAPI; Q wolf_Strike ! S N T ”(Lcom/fs/starfarer/api/mission/FleetSide;Ljava/lang/String;Lcom/fs/starfarer/api/fleet/FleetMemberType;Z)Lcom/fs/starfarer/api/fleet/FleetMemberAPI; V tempest_Attack X wasp_wing E Z [ I FIGHTER_WING ] gemini_Standard _ dagger_wing ! a b ; defeatOnShipLoss d enforcer_Balanced f
hound_Assault h lasher_CS j tarsus_Standard l
talon_wing n mining_drone_wingFz FZÀ ! r s t initMap (FFFF)V
v x w java/lang/Math y z random ()DBÈ DH ! ~ € addNebula (FFF)V>™™š?@ „
comm_relay ! † ‡ ˆ addObjective (FFLjava/lang/String;)V?333>€ Œ sensor_arrayDz ?LÌÍ nav_buoy>LÌÍ api 3Lcom/fs/starfarer/api/mission/MissionDefinitionAPI; width F height minX minY i I x y radius
SourceFile MissionDefinition.java ! / *·
±
++² ² ¹ +² &)² +¹ +² .¹ 0 +² &4¹ 0 +6¹ 8 +<¹ 8 +>¹ 8 +@¹ 8 +² B² DJ¹ L W+² P² D¹ R W+² P² D¹ R W+² P² D¹ R W+² U² D¹ R W+² W² Y¹ R W+² W² Y¹ R W+² \² D¹ R W+² ^² Y¹ R W+J¹ ` +² &c² D¹ R W+² &c² D¹ R W+² &e² D¹ R W+² &e² D¹ R W+² &g² D¹ R W+² &g² D¹ R W+² &i² D¹ R W+² &i² D¹ R W+² &i² D¹ R W+² &i² D¹ R W+² &i² D¹ R W+² &i² D¹ R W+² &i² D¹ R W+² &i² D¹ R W+² &i² D¹ R W+² &k² Y¹ R W+² &k² Y¹ R W+² &k² Y¹ R W+² &k² Y¹ R W+² &k² Y¹ R W+² &k² Y¹ R W+² &m² Y¹ R WoEpF+$v
n$
n%v
n%
n¹ q $v
n8%v
n86§ 6¸ u$j$
nf8¸ u%j%
nf8{¸ u|jb8 + ¹ } „¡ÿÉ+$jb%‚jbƒ¹ … +$‰jb%Šjb‹¹ … +$‰jbb%Šjbfƒ¹ … +$Žjb%‚jb¹ … +$‘jb%Šjb¹ … ± æ 9 + 6 > F N V ! h " x # ˆ $ ˜ % ¨ . ¸ / È 0 Ø 1 è 6 ð 9 : ; <0 =@ >P ?` @p A€ B C D° EÀ FÐ Gà Jð K L M N0 O@ PP TS UV Vj Xp Yv a| bˆ c” d e¬ a¶ nÌ oâ pþ q r* u
f
+ + ’ “ S Ø ” • V Õ – • p » — • v µ ˜ • y = ™ š ˆ $ › • ” œ • • ž Ÿ
MissionDefinition JAVA:
package data.missions.tutorialis;
import com.fs.starfarer.api.fleet.FleetGoal;
import com.fs.starfarer.api.fleet.FleetMemberType;
import com.fs.starfarer.api.mission.FleetSide;
import com.fs.starfarer.api.mission.MissionDefinitionAPI;
import com.fs.starfarer.api.mission.MissionDefinitionPlugin;
public class MissionDefinition implements MissionDefinitionPlugin {
public void defineMission(MissionDefinitionAPI api) {
// Set up the fleets so we can add ships and fighter wings to them.
// In this scenario, the fleets are attacking each other, but
// in other scenarios, a fleet may be defending or trying to escape
api.initFleet(FleetSide.PLAYER, "ISS", FleetGoal.ATTACK, false, 5);
api.initFleet(FleetSide.ENEMY, "HSS", FleetGoal.ESCAPE, true, 5);
// Set a small blurb for each fleet that shows up on the mission detail and
// mission results screens to identify each side.
api.setFleetTagline(FleetSide.PLAYER, "Independent raiding party");
api.setFleetTagline(FleetSide.ENEMY, "Hegemony convoy with escort");
// These show up as items in the bulleted list under
// "Tactical Objectives" on the mission detail screen
api.addBriefingItem("The enemy ships will attempt to flee towards the bottom of the map");
api.addBriefingItem("Controlling the Nav Buoys is critical to preventing a quick escape");
api.addBriefingItem("Disable as many enemy ships as you can");
api.addBriefingItem("ISS Batavian must survive");
// Set up the player's fleet. Variant names come from the
// files in data/variants and data/variants/fighters
api.addToFleet(FleetSide.PLAYER, "medusa_Attack", FleetMemberType.SHIP, "ISS Batavian", true);
api.addToFleet(FleetSide.PLAYER, "wolf_Strike", FleetMemberType.SHIP, false);
api.addToFleet(FleetSide.PLAYER, "wolf_Strike", FleetMemberType.SHIP, false);
api.addToFleet(FleetSide.PLAYER, "wolf_Strike", FleetMemberType.SHIP, false);
api.addToFleet(FleetSide.PLAYER, "tempest_Attack", FleetMemberType.SHIP, false);
//api.addToFleet(FleetSide.PLAYER, "tempest_Attack", FleetMemberType.SHIP, false);
//api.addToFleet(FleetSide.PLAYER, "sunder_CS", FleetMemberType.SHIP, false);
//api.addToFleet(FleetSide.PLAYER, "sunder_CS", FleetMemberType.SHIP, false);
//api.addToFleet(FleetSide.PLAYER, "vigilance_FS", FleetMemberType.SHIP, false);
//api.addToFleet(FleetSide.PLAYER, "vigilance_FS", FleetMemberType.SHIP, false);
//api.addToFleet(FleetSide.PLAYER, "brawler_Assault", FleetMemberType.SHIP, false);
//api.addToFleet(FleetSide.PLAYER, "brawler_Assault", FleetMemberType.SHIP, false);
// api.addToFleet(FleetSide.PLAYER, "oort", FleetMemberType.Fortress, false);
api.addToFleet(FleetSide.PLAYER, "oort", FleetMemberType.Fortress, false);
api.addToFleet(FleetSide.PLAYER, "oort", FleetMemberType.Fortress, false);
api.addToFleet(FleetSide.PLAYER, "wasp_wing", FleetMemberType.FIGHTER_WING, false);
api.addToFleet(FleetSide.PLAYER, "gemini_Standard", FleetMemberType.SHIP, false);
api.addToFleet(FleetSide.PLAYER, "dagger_wing", FleetMemberType.FIGHTER_WING, false);
// Mark both ships as essential - losing either one results
// in mission failure. Could also be set on an enemy ship,
// in which case destroying it would result in a win.
api.defeatOnShipLoss("ISS Batavian");
// Set up the enemy fleet.
api.addToFleet(FleetSide.ENEMY, "enforcer_Balanced", FleetMemberType.SHIP, false);
api.addToFleet(FleetSide.ENEMY, "enforcer_Balanced", FleetMemberType.SHIP, false);
api.addToFleet(FleetSide.ENEMY, "hound_Assault", FleetMemberType.SHIP, false);
api.addToFleet(FleetSide.ENEMY, "hound_Assault", FleetMemberType.SHIP, false);
api.addToFleet(FleetSide.ENEMY, "lasher_CS", FleetMemberType.SHIP, false);
api.addToFleet(FleetSide.ENEMY, "lasher_CS", FleetMemberType.SHIP, false);
api.addToFleet(FleetSide.ENEMY, "tarsus_Standard", FleetMemberType.SHIP, false);
api.addToFleet(FleetSide.ENEMY, "tarsus_Standard", FleetMemberType.SHIP, false);
api.addToFleet(FleetSide.ENEMY, "tarsus_Standard", FleetMemberType.SHIP, false);
api.addToFleet(FleetSide.ENEMY, "tarsus_Standard", FleetMemberType.SHIP, false);
api.addToFleet(FleetSide.ENEMY, "tarsus_Standard", FleetMemberType.SHIP, false);
api.addToFleet(FleetSide.ENEMY, "tarsus_Standard", FleetMemberType.SHIP, false);
api.addToFleet(FleetSide.ENEMY, "tarsus_Standard", FleetMemberType.SHIP, false);
api.addToFleet(FleetSide.ENEMY, "tarsus_Standard", FleetMemberType.SHIP, false);
api.addToFleet(FleetSide.ENEMY, "tarsus_Standard", FleetMemberType.SHIP, false);
//api.addToFleet(FleetSide.ENEMY, "broadsword_wing", FleetMemberType.FIGHTER_WING, false);
api.addToFleet(FleetSide.ENEMY, "talon_wing", FleetMemberType.FIGHTER_WING, false);
api.addToFleet(FleetSide.ENEMY, "talon_wing", FleetMemberType.FIGHTER_WING, false);
api.addToFleet(FleetSide.ENEMY, "talon_wing", FleetMemberType.FIGHTER_WING, false);
api.addToFleet(FleetSide.ENEMY, "talon_wing", FleetMemberType.FIGHTER_WING, false);
api.addToFleet(FleetSide.ENEMY, "talon_wing", FleetMemberType.FIGHTER_WING, false);
api.addToFleet(FleetSide.ENEMY, "talon_wing", FleetMemberType.FIGHTER_WING, false);
api.addToFleet(FleetSide.ENEMY, "mining_drone_wing", FleetMemberType.FIGHTER_WING, false);
// Set up the map.
float width = 16000f;
float height = 14000f;
api.initMap((float)-width/2f, (float)width/2f, (float)-height/2f, (float)height/2f);
float minX = -width/2;
float minY = -height/2;
// All the addXXX methods take a pair of coordinates followed by data for
// whatever object is being added.
// And a few random ones to spice up the playing field.
// A similar approach can be used to randomize everything
// else, including fleet composition.
for (int i = 0; i < 7; i++) {
float x = (float) Math.random() * width - width/2;
float y = (float) Math.random() * height - height/2;
float radius = 100f + (float) Math.random() * 800f;
api.addNebula(x, y, radius);
}
// Add objectives. These can be captured by each side
// and provide stat bonuses and extra command points to
// bring in reinforcements.
// Reinforcements only matter for large fleets - in this
// case, assuming a 100 command point battle size,
// both fleets will be able to deploy fully right away.
api.addObjective(minX + width * 0.3f, minY + height * 0.75f, "comm_relay");
api.addObjective(minX + width * 0.7f, minY + height * 0.25f, "sensor_array");
api.addObjective(minX + width * 0.7f + 1000, minY + height * 0.25f - 1000, "comm_relay");
api.addObjective(minX + width * 0.8f, minY + height * 0.75f, "nav_buoy");
api.addObjective(minX + width * 0.2f, minY + height * 0.25f, "nav_buoy");
}
}
If it helps; this is what the error message said:
Fatal: Error compiling [data.missions.Tutorialis.MissionDefinition]
Cause: Parsing compilation unit "com.fs.starfarer.loading.A$1@2144f"
Check starfarer.log for more info.
Also; I am using the mod "Mod Pack"
This is what my log said(at the end):
java.lang.RuntimeException: Error compiling [data.missions.Tutorialis.MissionDefinition]
at com.fs.starfarer.loading.scripts.ScriptStore$1.run(Unknown Source)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.lang.ClassNotFoundException: Parsing compilation unit "com.fs.starfarer.loading.A$1@21447f"
at org.codehaus.janino.JavaSourceIClassLoader.findIClass(JavaSourceIClassLoader.java:180)
at org.codehaus.janino.IClassLoader.loadIClass(IClassLoader.java:158)
at org.codehaus.janino.JavaSourceClassLoader.generateBytecodes(JavaSourceClassLoader.java:192)
at org.codehaus.janino.JavaSourceClassLoader.findClass(JavaSourceClassLoader.java:157)
at java.lang.ClassLoader.loadClass(ClassLoader.java:307)
at java.lang.ClassLoader.loadClass(ClassLoader.java:248)
... 2 more
Caused by: org.codehaus.commons.compiler.CompileException: Source file "data/missions/Tutorialis/MissionDefinition.java" does not declare class "data.missions.Tutorialis.MissionDefinition"
at org.codehaus.janino.JavaSourceIClassLoader.findIClass(JavaSourceIClassLoader.java:165)
... 7 more
223692 [Thread-6] INFO com.fs.profiler.Profiler - ID Calls Duration Percent
223694 [Thread-6] INFO com.fs.profiler.Profiler - --------------------------------