Freelancer Community Network
Reminder: Internet Explorer 6 or below are NOT supported.
HomeHome
ForumForum
WikiWiki
DownloadsDownloads
ForgeForge
Multiplayer Connection Tutorial
Collapse/Expand Random Image
Collapse/Expand Login
Username:

Password:

Remember me



Lost Password?

Register now!
Collapse/Expand Chat
Collapse/Expand Who's Online
53 user(s) are online (38 user(s) are browsing Forum)

Members: 1
Guests: 52

MeisterLampe, more...
Collapse/Expand Donations
Monthly costs: -30€
Income (ads): +5€
Donations (last month): +0€

Current balance: 55€
(last updated 04/2021)

Please make a donation if you want to help keeping The-Starport online:

Thanks!
Collapse/Expand Links
Collapse/Expand Advertisement
There are currently 98 users playing Freelancer on 43 servers.
October. 26, 2021
The Starport Forum Index > All Posts (Skotty.)

Bottom Bottom   Previous Topic   Next Topic

(1) 2 3 4 ... 33 »


Re: SP looking for mods autopilot/autoturrets
Just can't stay away
Joined:
2010/2/17 20:45
From Germany
Group:
Registered Users
Senior Members
Posts: 497
Offline
I wouldn't know such mods to exist. If,then they are probably more of external bots that control the ship for you – what one usually would put under the category of cheats.
The original concept of FL had in mind to use the turrets automatically, but they removed this feature. The quite useless back turrets are a left-over of this.

Posted on: 10/22 21:49
How to create .SUR files - Tutorial
Top
Topic | Forum


Re: Interesting thing just happened
Just can't stay away
Joined:
2010/2/17 20:45
From Germany
Group:
Registered Users
Senior Members
Posts: 497
Offline
Factions all have certain values assigned on how good they are standing to another faction. Those values are determining when and against who they defend each other. And if one value is higher than that of another faction, they may as well turn it around and have attack each other. It all depends on the rare constellations of such factions meeting and setting this chain of "defense priorities" in action.

Posted on: 10/22 21:47
How to create .SUR files - Tutorial
Top
Topic | Forum


Re: make random mission alway have friendly ship spawn
Just can't stay away
Joined:
2010/2/17 20:45
From Germany
Group:
Registered Users
Senior Members
Posts: 497
Offline
The part of how exactly random missions are assembled is still not understood as far as I am aware. So the answer is no.

Posted on: 10/19 10:04
How to create .SUR files - Tutorial
Top
Topic | Forum


Re: Wracks Drops ändern
Just can't stay away
Joined:
2010/2/17 20:45
From Germany
Group:
Registered Users
Senior Members
Posts: 497
Offline
Wracks sind an sich ganz normale Solar-Objects. D.h. du findest sie in der solararch.ini. Um den Inhalt der Wracks zu bearbeiten musst du entsprechende loadouts in der solararch.ini als Default, oder in den entsprechenden OBJECT-Einträgen in den Systemen spezifisch angeben.

Posted on: 9/27 15:45
How to create .SUR files - Tutorial
Top
Topic | Forum


Re: Rufanstieg bei allen Fraktionen wenn Nomaden gekillt werden
Just can't stay away
Joined:
2010/2/17 20:45
From Germany
Group:
Registered Users
Senior Members
Posts: 497
Offline
Hier findest du einiges was nicht auf Starport ist: http://adoxa.altervista.org/freelancer/tools.html
TINI sollte das Programm sein was du benötigst.

Posted on: 8/18 19:40
How to create .SUR files - Tutorial
Top
Topic | Forum


Re: Rufanstieg bei allen Fraktionen wenn Nomaden gekillt werden
Just can't stay away
Joined:
2010/2/17 20:45
From Germany
Group:
Registered Users
Senior Members
Posts: 497
Offline
Die Programme sollten hier im Starport im Download-Bereich zu finden sein. Wenn du es nicht findest, lade ich meine Sammlung an Tools mal hoch.

Posted on: 8/17 20:19
How to create .SUR files - Tutorial
Top
Topic | Forum


Re: Rufanstieg bei allen Fraktionen wenn Nomaden gekillt werden
Just can't stay away
Joined:
2010/2/17 20:45
From Germany
Group:
Registered Users
Senior Members
Posts: 497
Offline
Quote:

adoxa wrote:
Rheinwehr - Rheinland Military (no, I suspect that's something else)


It is somewhat correct. Rheinwehr is a very free German translation here (and a good one in my opinion) which takes up on the naming of the Bundeswehr, Reichswehr etc., in context of German military forces.
"Wehr" is a German term that defines many things, often related to defense against something. See https://en.wiktionary.org/wiki/Wehr .

Posted on: 8/17 15:37
How to create .SUR files - Tutorial
Top
Topic | Forum


Re: Rufanstieg bei allen Fraktionen wenn Nomaden gekillt werden
Just can't stay away
Joined:
2010/2/17 20:45
From Germany
Group:
Registered Users
Senior Members
Posts: 497
Offline
Quote:

adoxa wrote:
Sorry for the English, but I was curious about the different "Navy" (_n_) names.
Shall I translate or explain them for you, or what do you need?

Quote:

Boomer wrote:
[...] Wenn ich weiß wo diese Infos zu finden sind, kann ich diese vllt. vom meinem eigenen Programm was ich bauen will, auslesen.
In DATA\initialworld.ini findest du jede Fraktion die existiert und ihren ids_name-Eintrag. Dieser verweist auf eine der DLLs im EXE-Ordner, vermutlich dann auf eine DLL von Discovery. Du brauchst ein Tool wie z.B. FLDev um diese Namen dann aus diesen Dateien auszulesen.

Posted on: 8/17 13:24
How to create .SUR files - Tutorial
Top
Topic | Forum


Re: Rufanstieg bei allen Fraktionen wenn Nomaden gekillt werden
Just can't stay away
Joined:
2010/2/17 20:45
From Germany
Group:
Registered Users
Senior Members
Posts: 497
Offline
Code:
; li_n_grp = Liberty-Marine
; li_lsf_grp = Liberty Security Force
; li_p_grp = Liberty Police, Inc.
; br_n_grp = Bretonianische Streitkräfte
; br_p_grp = Bretonia-Polizeibehörde
; ku_n_grp = Kusari-Marinestreitkräfte
; ku_p_grp = Kusari-Staatspolizei
; rh_n_grp = Rheinwehr
; rh_p_grp = Rheinland-Bundespolizei
; co_shi_grp = Samura Industries - Samura Heavy Industries
; co_khc_grp = Daumann Hoch- und Tiefbau
; co_kt_grp = Kishiro Technologies
; br_m_grp = Bretonia Mining and Metals
; co_me_grp = Deep Space Engineering - Monument Engineering
; co_be_grp = Border World Exports - Bowex
; co_rs_grp = Republikanische Großspedition
; co_vr_grp = Ageira Technologies - Valhalla Research
; co_ni_grp = Synth Foods, Inc. - NutraForm, Inc.
; rh_m_grp = Krüger Mineralien - Krüger Bergbau
; co_ti_grp = Planetform, Inc. - Terraform, Inc.
; co_ic_grp = Interspace Commerce
; co_ss_grp = Universal Shipping - Sirius Shipping
; co_hsp_grp = Cryer Pharmaceuticals - Hauser-Scott Biopharmaceuticals
; co_alg_grp = ALG-Abfallentsorgung
; co_os_grp = Orbital Kuren und Kreuzfahrten - Orbital Spa and Cruise
; co_nws_grp = Gateway Shipping - 
; fc_c_grp = Korsaren - Corsairs
; fc_ou_grp = Ausgestoßene - Outcasts
; fc_rh_grp = Rote Hessen
; fc_bd_grp = Blutdrachen - Black Dragons
; fc_j_grp = Schrotties - Junkers
; fc_h_grp = Hogosha
; fc_m_grp = Mollys
; fc_x_grp = Xenos
; fc_b_grp = Bundschuh
; fc_g_grp = Gaianer
; fc_lh_grp = Wegelagerer - Lane Hackers
; fc_u_grp = Unionisten
; fc_gc_grp = Goldene Crysantheme
; fc_lwb_grp = LWB - Landwirtrechtsbewegung
; fc_fa_grp = Bauernallianz - Farmers Alliance
; fc_lr_grp = Liberty Rogues
; fc_or_grp = Der Orden
; gd_gm_grp = Knappschaft unabhängiger Gasschürfer - Gas Miners Guild
; fc_uk_grp = <kein Name>
; fc_n_grp = Nomaden - Slomon-K'Hara
; fc_ln_grp = Liberty-Marine (Nomaden)
; fc_bn_grp = Bretonianischen Streitkräfte (Nomaden)
; fc_kn_grp = Kusari-Marinestreitkräfte (Nomaden)
; fc_rn_grp = Rheinwehr (Nomaden)
; fc_ouk_grp = Kress' Männer
; fc_q_grp = Quintaine's Männer
; fc_f_grp = Flüchtlinge
; gd_z_grp = Zoner
; gd_im_grp = Knappschaft der unabhängigen Bergleute - Independend Miners Guild
; gd_bh_grp = Gilde der Kopfgeldjäger

Posted on: 8/16 19:41
How to create .SUR files - Tutorial
Top
Topic | Forum


Re: Rufanstieg bei allen Fraktionen wenn Nomaden gekillt werden
Just can't stay away
Joined:
2010/2/17 20:45
From Germany
Group:
Registered Users
Senior Members
Posts: 497
Offline

  1. Öffne empathy.ini, unter DATA/MISSIONS.

  2. Suche nach Zeile group = fc_n_grp.

  3. Setze bei event = object_destruction am Ende einen Wert um den sich dein Ruf bei den Nomaden verschlechtert wenn du sie abschießt (z.B. -1)

  4. Setze in den nachfolgenden Zeilen für jede Fraktion als letzten Wert einen Multiplikator.


Dieser Multiplikator pro Fraktion gibt an um wie viel sich dein Ruf bei der Fraktion verändert wenn du 1 Nomaden abschießt. Der Multiplikator bezieht sich auf den Wert von event = object_destruction. D.h. wenn der Multiplikator -0.1 ist, dann ändert sich dein Ruf um -1 x -0.1 = 0.1. Der maximale Ruf-Wert bei einer Fraktion (alle Rufbalken grün) ist 1. D.h. Multiplikator -0.1 hieße, dass du mit 10 abgeschossenen Nomaden eine neutrale Fraktion auf voll grün bekommst.

Posted on: 8/15 17:04
How to create .SUR files - Tutorial
Top
Topic | Forum


Re: The Magic behind Random Missions and Difficulty
Just can't stay away
Joined:
2010/2/17 20:45
From Germany
Group:
Registered Users
Senior Members
Posts: 497
Offline
Thanks for the clarification, I edited the post.

Posted on: 1/27 10:46
How to create .SUR files - Tutorial
Top
Topic | Forum


The Magic behind Random Missions and Difficulty
Just can't stay away
Joined:
2010/2/17 20:45
From Germany
Group:
Registered Users
Senior Members
Posts: 497
Offline
Table of Contents:

  1. Difficulty

  2. Difficulty Calculation for Job Offers (mBase.ini)

  3. Amount of NPCs created by Difficulty and NPC Level (npcranktodiff.ini)

  4. Requirements to have Missions offered on a Base

  5. Payment by Difficulty (diff2money.ini)




Difficulty

A basic requirement and variable for random missions is the Difficulty. It is an arbitrary decimal number in a range of [0, 100] (meaning 0 and 100 are included).

If needed the maximum difficulty can be adjusted by those offsets:
Code:
content.dll, 1143D4, 100f = maximum value of misn difficulty
content.dll, 1175F0, 100f = maximum value of DestroyMission difficulty (I think; it's part of the StateMachine)
content.dll, 11B22C, 100f = maximum value of rank_diff and generated mission difficulty
(Source, adoxa)



Difficulty Calculation for Job Offers (mBase.ini)

A key to understand how Difficulty works is the way how it is used and calculated. This is unfortunately not very easy to understand at first.
The main use is within mBase.ini where the values are set which difficulty a player can get from a base or NPC.

The difficulty number displayed in-game when reading a mission offer has a somewhat direct connection to the chosen technical difficulty behind. Apparently those in-game numbers are hard-coded somewhere for specific difficulty values.

Commonly the mission_type parameter can be understood as:
Code:
mission_type = DestroyMission, <minDiff>, <maxDiff>, <weight>

The weight is an arbitrary value, used relative to the sum of weights given. E.g. having one faction offer missions with weight=1, and another faction offering with weight=2 makes the second faction's missions appear in 2 out of 3 cases.

minDiff and maxDiff are important for the calculation of the real Difficulty that will be available for the player. Especially important is to note that maxDiff is not necessarily really the maximum.
The calculations are as follows:

Single Player
Code:

rank_diff = based on internal MissionNum and DATA\MISSIONS\rankdiff.ini

factor = 1.3689^3 = 2.565164201769
diff = rank_diff * factor, where diff is in range of [0, 100]

If diff <= minDiff, then the player gets the message on the job-board to become a better pilot.

If diff >= maxDiff:
    d = maxDiff / factor, where d becomes >= minDiff
    finalDifficulty = maxDiff - cos(rnd * pi/2) * (maxDiff - d), where rnd is a random value in range of [0, 1)
else
    diff = rank_diff / factor, where diff1 is in range of [minDiff, 100]
    finalDifficulty = maxDiff - cos(rnd * pi/2) * (maxDiff - diff), where rnd is a random value  in range of [0, 1)


Multi Player
Code:
rnd is a random value in range of [0, 3)
If rnd is 0:
    diff = maxDiff
else
    diff = maxDiff * 1.3689^(rnd * 2 + 2)
diff is limited to a range of [0, 100]
finalDifficulty = diff - cos(rnd * pi/2) * (diff - minDiff), where rnd is a random value  in range of [0, 1)
(Source, adoxa)

Looking especially on the first part of the multiplayer-specific calculation shows that maxDiff is not a constant value, but is getting multiplied by a random factor. This can make multiplayer missions go beyond the naively intended levels.

To understand the influence of the minDiff and maxDiff values in those calculations I do recommend to look on a graph plot for some simple values.
As an example in multiplayer when minDiff is 0 and maxDiff is 1 in the final calculation, the graph looks like this
If minDiff and maxDiff are swapped interesting results like this can be achieved. In those plots the left axis shows the probability to get the mission, whereas the lower axis shows the difficulty level to get.

To limit the difficulty in multiplayer between the minDiff and maxDiff value, the following patch can be applied on Content.dll using bwpatchw.
Code:
# Make MP job difficulty exactly between min and max difficulty in mbases.ini.
# Jason Hood (adoxa), 22 February, 2010.
# Fixed 3 June, 2010.

File: content.dll # v1.1
0AAD7A: 89 44 E4 04 D9 44 E4 20 D8 64 E4  [ 99 B9 03 00 00 00 F7 F9 85 D2 74 ]
        1C EB 04 66 B8 FB 06 DB 44 E4 04  [ 33 D9 05 30 B2 FB 06 DD 5C 24 04 ]
        D8 0D D0 97 39 06 DE C9 D8 44 E4  [ FF D6 99 DD 44 24 04 B9 03 00 00 ]
        1C 5E 83 C4 10 C3                 [ 00 F7 F9 8D 54 12                ]
(Source, adoxa)



Amount of NPCs created by Difficulty and NPC Level (npcranktodiff.ini)

It is possible to define exactly how many NPCs of a specific level are being created for a specific Difficulty. This is handled within the npcranktodiff.ini.

A line looks as follows:
Code:
NpcRank = <NPC Level>, <Difficulty for 1 Ship>, <Difficulty for 2 Ships>, <Difficulty for 3 Ships>, ...

Important to note:

  • Only exactly one line of NpcRank is picked for the spawn per wave in a job.

  • The amount of spawned ships is determined by the highest Difficulty in that line (e.g. if Difficulty is 5 and the 3rd ship column is 5, then 3 ships get spawned).

  • By default the game can handle up to 8 ships per line. To allow for more, see the following.



The game uses a table of weights to define a preference for the amount of ships being spawned. It is as follows:
Code:
Ships  SP   MP
1      0    0
2      3    2
3      9    3
4      6    9
5      2    6
6      1    4
7      1    2
8      1    1
(Source, adoxa)
The weights here are again relative to their sum. E.g. in multiplayer the sum is 27, so 4 ships get spawned in 9 out of 27 cases (33.3%). As you can see, 1 ship has weight of 0. This means the game never will pick an NpcRank where the Difficulty for only the first ship would match.
This table is very important to keep in mind. At any Difficulty picked, there always should be NpcRanks defined that cover all those ship counts.
If you notice your job-board being more empty than it should be, it could be that the game tries to pick a ship count which is not provided for the current Difficulty.

This table can be adjusted at the offset 11CC58 in Content.dll. First are the weights for singleplayer (starting for 0 ships, 1 ship, 2 ships, etc.) and after that for multiplayer (also starting for 0 ships, 1 ship, ...).

If you want to allow NpcRanks with more than 8 ships being spawned, you must create your own weight-table.
Code:
content.dll 0F8A4B 58CCFB->00CBFC = use 30-float array at 12CB08 (created manually!) for SP ship weighting vector ~adoxa
content.dll 0F8A54 7CCCFB->80CBFC = use 30-float array at 12CB88 (created manually!) for MP ship weighting vector ~adoxa
(Source, adoxa)



Requirements to have Missions offered on a Base

There are 4 requirements that must be met to have a mission of a specific Difficulty being offered to a player:

  • The enemy faction must have an NPC spawn of any unrelated level/difficulty within at least one mission vignette zone in the system.

  • The enemy faction must have at least one NpcShip from npcships.ini assigned via faction_prop.ini that must have the same level as any Difficulty-matching NpcRank, and have npc_class class_fighter.

  • The enemy faction must have at least one NpcShip from npcships.ini assigned via faction_prop.ini that must have the matching npc_class diff-label + class_fighter for the matching NpcRank. And this NpcShip must have a level matching +-1.

  • There must be at least one NpcRank that can spawn ships within the picked Difficulty range.



This sounds quite daunting, so let's explain this on an example:

We want to have some faction offer missions against fc_lr_grp in our system. For this we at first need a mission zone:
Code:
[Zone]
nickname = Zone_destroy_vignette_01
pos = 0, 0, 0
shape = SPHERE
size = 10000
mission_type = unlawful, lawful
sort = 99.500000
vignette_type = open


Now we must make sure the enemy spawns within this zone, so it will get selected by the game to be associated with this enemy faction.
Code:
[Zone]
nickname = Zone_destroy_vignette_01_pop
pos = 0, 0, 0
shape = SPHERE
size = 100000
sort = 1
toughness = 19
density = 1
repop_time = 25
max_battle_size = 4
relief_time = 35
encounter = area_scout, 1, 1
faction = fc_lr_grp, 1


Now we must find out which Difficulty our mission may have. For this we check in our mBase.ini:
Code:
mission_type = DestroyMission, 0, 0.112387, 100


With this value we now go into our npcranktodiff.ini file and look which line might match. Keep in mind the game has certain weights on how many ships it prefers to spawn (see above chapter). One of the possible NpcRanks might be:
Code:
NpcRank = 1, 0.00985, 0.03569, 0.07754, 0.13539, 0.20923, 0.29908, 0.40493, 0.52677


With this we know that we want to spawn level 1 NPCs.
Now we must make sure fc_lr_grp has at least one ship matching this with an npc_class of class_fighter:
Code:
[NPCShipArch]
nickname = fc_lr_pi_fighter_d1
loadout = fc_lr_pi_fighter_loadout01
level = d1
ship_archetype = pi_fighter
pilot = pilot_pirate_med
state_graph = FIGHTER
npc_class = unlawful, class_fighter, d1

We see that the level=d1, matching our NpcRank. And we see the npc_class contains d1 and class_fighter, so it also can spawn the ship.
Important to know is that one ship with the required level must exist. But it does not need to be the same ship that is being spawned.
The ships that will be spawned are determined by their matching npc_class label. Meaning that if your ship has d1, but npc_class d100, it will not be spawned.
You can and must have at least one (but it can be another) ship with a matching npc_class diff-label for d1, and class_fighter. Important here is that whatever ship has the matching npc_class must match the level +1.
So we could say we have a level d2 ship with npc_class=diff1, class_fighter, it would be able to be spawned. But only if there is another ship defined somewhere that has level=d1. This may look like this and still get spawned in our d1 mission:
Code:
[NPCShipArch]
nickname = fc_lr_pi_fighter_d1-d2
loadout = fc_lr_pi_fighter_loadout01
level = d2
ship_archetype = pi_fighter
pilot = pilot_pirate_med
state_graph = FIGHTER
npc_class = unlawful, class_fighter, d1, d2




Payment by Difficulty (diff2money.ini)

Defining payments for specific Difficulties is very easy and straight-forward to be done in diff2money.ini.
A line looks as follows:
Code:
Diff2Money = <Start Difficulty>, <Payment>

You can add as many or as few of those lines as you like. The payments between each defined Difficulty are linearly interpolated. You should at least provide a line for Difficulty 0 and 100 to allow the game to compute any payments between.

Posted on: 1/23 0:36
How to create .SUR files - Tutorial
Top
Topic | Forum


Re: Maximum number available for equipment
Just can't stay away
Joined:
2010/2/17 20:45
From Germany
Group:
Registered Users
Senior Members
Posts: 497
Offline
Quote:

Minerobba wrote:
nothing to do with the size of the game.


Not the size, but it may be there is a buffer overflow. Meaning there are more items added to the game than it can handle, and things beginning to act up internally and overwriting each other in unpredictable ways.

Posted on: 1/22 1:17
How to create .SUR files - Tutorial
Top
Topic | Forum


Re: NPCs play their retreat voicelines as soon as they undock
Just can't stay away
Joined:
2010/2/17 20:45
From Germany
Group:
Registered Users
Senior Members
Posts: 497
Offline
Would it be possible for you to upload your mod, or only those files needed? Perhaps so we could test on our own pace and trying to isolate the issue? It sounds really curious.

Posted on: 2020/11/16 3:10
How to create .SUR files - Tutorial
Top
Topic | Forum


Re: NPCs play their retreat voicelines as soon as they undock
Just can't stay away
Joined:
2010/2/17 20:45
From Germany
Group:
Registered Users
Senior Members
Posts: 497
Offline
By the values it looks all correct to me. By default pilot_outcast_ace uses behaviour to never flee. At maximum the area_trade_trader encounter overrides it with a pilot fleeing, but the others should not. Especially area_defend never flees.
The NPCShipArch and Loadout look correct to me.
Btw this archetype = bw_elite2 in the Loadout I have never seen before. I think that does not exist or is unused.

Posted on: 2020/11/15 13:10
How to create .SUR files - Tutorial
Top
Topic | Forum



Top Top
(1) 2 3 4 ... 33 »



[Advanced Search]