Patch - Emergency 4 : Emergency 4
- PC
Patch 1.3
- Stellt die Kompatibilität zu Emergency 4
Deluxe sicher. Installiert zu dem Zweck einige Dateien, die von EM4 nicht
direkt benötigt werden
- SuperVisor-Videos können in Mods ersetzt werden
- Anhängerlogik hinzugefügt
- Mehrere ExitPoints möglich, nächst gelegener wird angefahren
- Separate ExitPoints pro Fahrzeugtyp möglich
- Lichter von SuperStructs werden geupdatet (mitbewegt)
- Eigene Decals im Mod möglich
- Fahrzeug, welches wegen Einsatzfahrzeug stoppt, wartet nun länger
- Anzeige für verbleibende Verletzte kann auf beliebigen Counter
geändert werden
- Absturz bei Childeditierung behoben
- Partikelchilds von Objekten die gerade per Physik bewegt werden, werden
nun korrekt mitbewegt
- GTF mit weniger als 4 Schlauchanschlüssen sollte im MP keinen Absturz
mehr erzeugen
- Tastenbelegung über XML-Datei (Specs/keys.xml) frei umbelegbar;
Datei wird bei Modwechsel neu geladen
- Quasi beliebige Events per Script zur Eventliste hinzufügbar und
auch als abgeschlossen/fehlgeschlagen markierbar
- Per Startparameter kann direkt ein Mod gestartet werden, sowohl im Game
als auch Editor (-game -mod ModName oder -editor -mod ModName)
- Beim Start des FP/MP wird je nach Modus ein Script ausgeführt,
wenn vorhanden (mod:Scripts/Game/Mission/fp_freeplay.script, mod:Scripts/Game/Mission/fp_challenge.script,
mod:Scripts/Game/Mission/mp_freeplay.script, mod:Scripts/Game/Mission/mp_challenge.script)
- In der e4mod.info-Datei eines Mods kann die minimale Version von EM4
eingestellt werden, die nötig ist, um den Mod zu spielen
- Anzeige der EM4-Versionsnummer im Hauptmenü
- Dialoge, welche per Script erzeugt wurden, werden nun bei Pause, im
Hauptmenü usw, ausgeblendet
- FGRR (Kran) hebt nicht mehr das FMB an, wenn es sich in dem Bereich
eines Wracks befindet
- Skinnen nun wieder so einfach wie in EM3 (Textur ersetzen genügt;
Es ist nicht mehr nötig die v3o zu bearbeiten)
- Beim Texturimport im Editor erscheint eine Fehlermeldung, wenn das Format
nicht stimmt
- Dicke des Wasserstrahls von TLF, LPF und FLB per Script pro Fahrzeug
veränderbar
- Per Script Fahrzeugtüren öffnen/schliessen über den Namen
der Tür möglich
- Im Prototypeditor gibts neben den "Browse"-Buttons für
die Modelle nun noch einen "Edit"-Button. Dieser entpackt das
Modellfile automatisch und öffnet es dann zum Editieren im Wordpad.
- ALT+1 bis 6 selektiert die entsprechende Gruppe ohne die Kamera darauf
zu zentrieren
- Defaultbesatzungen mit mehr als einer Einheit pro Typ werden nun korrekt
angezeigt
- Kleinere Optimierungen der Ladezeit und Performance
- Events, welche sofort fehlschlagen, sollten nun seltener/gar nicht mehr
auftreten
- Editierung von einigen Objekten mit Physik korrigiert
- Gasflaschen im Tutorial sind nicht mehr beschiesbar
- Darstellung des Bloomeffektes verbessert
- Einige neue Funktionen im Editor (Editierung für die Sprachsteuerung;
Staubwolken von Fahrzeugen in virtuellen Objekten; 2 neue Liquids)
- Problem mit der Kamera in Zusammenhang mit Liquids behoben
- Fehler in der Object-Overview beim Anklicken von Partikel-Effekten behoben
- Absturz bei Pfadeditierung behoben
- Absturz im Zusammenhang mit Speicherkorruption wird nun erkannt und
behoben
scripting:
- Neue Funktionen
void Camera::StartCamShake(float duration_, float strength_, bool localOnly_
= true);
float FireObject::GetEnergy() const;
void FireObject::SetEnergy(float energy_);
int Game::GetNumInjuredPersonNotOnTransport(bool ignoreDead_ = false);
void Game::SetNavigatorCounter(const char* counter_);
const Game::char* GetNavigatorCounter();
bool Game::ExistsPickableAnimal();
bool Game::GetGameString(const char *name_, char *buffer_, int maxcount_);
bool Game::IsHomicideEventRunning();
int Game::GetMaxParkingSpace();
void Game::SetMaxParkingSpace(int space_);
float Game::GetGlobalEventFrequencyFactor();
void Game::SetGlobalEventFrequencyFactor(float factor_);
float Game::GetTimeActivePlayerSwitchMP();
void Game::SetTimeActivePlayerSwitchMP(float time_);
int Game::ShowEvent(const char* Text_, Vector Position_); // returns ID
of the event
bool Game::SetEventFinished(int eventID_, bool succesful_, int reward_);
bool Game::IsPositionAcceptable(Vector Position_);
bool GameObject::IsCommandable() const;
void GameObject::PauseParticleEffect();
void GameObject::ResumeParticleEffect();
void GameObject::PauseParticleEffectChild(const char *name_);
GameObjectList GameObject::GetObjectsWithNameInRange(float radius_, const
char* name_, int filter_ = ACTOR_OBJECT | ACTOR_PERSON | ACTOR_VEHICLE
| ACTOR_HOUSE | ACTOR_OPEN_HOUSE);
Vector GameObject::GetChildPosition(const char* name_) const;
void GameObject::SetEffect(const char* effect_, const char* params_);
void GameObject::PushActionShoot(ActionInsertMode Mode_, int TargetID_);
void GameObject::PushActionUsePath(ActionInsertMode Mode_, const char
*Path_, float Speed_ = 0.f, bool forward_ = true);
void GameObject::PushActionUsePath(ActionInsertMode Mode_, Path *Path_,
bool Forward_, float Speed_ = 0.f, bool forceUseRF_ = false);
void GameObject::PushActionScoutArea(ActionInsertMode Mode_);
void GameObject::PushActionCheckVictim(ActionInsertMode Mode_, Person
*Person_, float WaitTime_);
void GameObject::AttachSound(int soundRef_);
void GameObject::UnattachSound(int soundRef_);
bool Input::LShiftPressed();
bool Input::RShiftPressed();
bool Input::LCtrlPressed();
bool Input::RCtrlPressed();
void ScriptInterface::HideMouseCursor(bool hide_);
int OpenHouse::GetChildID(int groupID_) const;
void OpenHouse::UpdateOpenCloseState();
bool Person::IsInSight(int TargetID_) const;
void Person::Carried(bool carried_, bool hide_, GameObject *carrier_ =
NULL);
void Person::SetSpreadAngle(float angle_);
void Person::SetSightAngle(float angle_);
bool Person::IsCarWithPrefixInRange(float radius, const char* prefix,
int &id);
bool Person::GetDisableGangsterSymbol();
void Person::SetDisableGangsterSymbol(bool disable_);
void Person::SetDogPerceptionRange(float range_);
float Person::GetDogPerceptionRange();
void Person::SetUpgradeLevel(int level_);
int Person::GetUpgradeLevel() const;
bool Person::IsVictim() const;
void Vehicle::SetMaxEnergy(float energy_);
void Vehicle::PlayAnimOpenDoor(const char *name_, float time_, GameObject
*Caller_=NULL);
void Vehicle::PlayAnimCloseDoor(const char *name_, float time_, GameObject
*Caller_=NULL);
int Vehicle::GetNumUsedConnectors() const;
bool Vehicle::RemoveTrainWaggon(GameObject *waggon_);
int Vehicle::GetNumTrainWaggons();
void Vehicle::SetWaterStreamStartWidth(float width_);
float Vehicle::GetWaterStreamStartWidth() const;
void Vehicle::SetWaterStreamEndWidth(float width_);
float Vehicle::GetWaterStreamEndWidth() const;
void Weather::SetHail(bool hail_);
bool Weather::GetHail();
-Neue Konstanten
RESTRICT2_CANBEPICKEDUP in CommandRestriction2
EQUIP_DUMMYRIFLE in EquipmentType
PLACEMENT_ALIGNED_CORNERS_FLOOR in FloorPlacement
BEHAVIOUR_CIVILIAN_ZOMBIE in PersonBehaviour
Kommentarezum Artikel