Persistent Destructible Universe
-
rather than system file editing, which would prolly require the client to download the files, a proper solution would be indeed logging destructions. once the server administration just cleans the logs, all bases and wrecks are back where they long to be.
however this is only efficient for servers with either large universes where the players do fly everywhere (meaning the systems are balanced) or with small player counts.
-
Huor wrote:
I am asking myself what happens when you destroy a dockable base and the players who docked there will launch to space? Did anyone had such a behaviour already?Thats what I ask myself too. Not just that but what happens at the moment a base is destroyed and the player is docked with it? Server crash?
-
I like this idea of keeping bases destroyed for a period of time, I’m already working on a method to have bases be constructed (which turned out to be relatively simple with the tools available today) but hadn’t thought of a way to reverse the process and have them be destroyed until “repaired”
-
It’s bound to crash a server if you destroy a base that someone is supposed to be docked at isn’t it? What about trade patrols aswell? They’re supposed to have an end point that results in a dock are they not? If there’s no base there I would have thought that will result in a crash also. This is like a blast from the past, I thought it had all been tried and failed for these reasons before.
Solars I would have thought fine, but dockable bases from standard FL universe is likely going to be trouble.
-
You should have 2 parts if you create a destructible base:
- one hidden where the player is docked and respawns
(similar to a planet maybe) - one visible, where you dock and what can be destroy
(maybe similar to a moor or docking ring)
The best idea will give a look at the miner ‘arrays’.
and I think I posted a script a while ago.
(Would also be cool, if we could ‘lock’ the chars,
who are docked @ a damaged base) - one hidden where the player is docked and respawns
-
Just create a invisible object with dockmount “jump” (a jumphole without fx and NONTARGETABLE).
To this object you add in your system ini:
base = destructible_base
dock_with =destructible_base
parent = destructible_solarYou will ever dock at the normal solar, but if it doesn’t exist anymore, you can just dock out via this object, because non targetable will stop selecting the object.
-
Yeah locking chars docked at a destroyed base would be cool, I was thinking about adjusting attributes on the fly something along these lines. The wrecked base would allow docking similar to the derelict and being built bases I’m putting into my mod but would have no or very limited services available based on condition of various parts of the station ie if the area assigned as the equipment market place is completely wrecked you can’t buy equipment. This would then allow the base to be damaged/ destroyed without worrying about it causing a system crash when patrols try to return.
You could even take this one step further and have players bring in goods required to fix/build the station. Using a plugin to track what the damaged base buys from players. Like say Boulder is damaged it might require 400 tons of optronics, 290 ship hull panels and some other stuff as the players bring this stuff in the plugin tracks sales at the base and deducts the stuff from the list when the list is filled the base is repaired and back to full operations. This premise would be good not just for NPC owned bases but also on RP servers that allow players/clans to build their own bases. To go even further the plugin could be used to make the RPer’s maintain their base by requiring them to bring in supplies to maintain the base if they don’t bring in the supplies then the base could start to degenerate giving their enemies an opening to attack and destroy the base.
Sorry I think I got a little off topic but I do like some of the ideas this thread is giving me
-
It would be easier just to kill anyone docked with a base that was destroyed and respawn them at a previous or predefined location that still exists.
-
LouvaDeus wrote:
… predefined location …yesyesyes
-
easy with hook when the server restarts just destroy the bases at server start up
just make a list of time and date
when the it hits that date the base will be there again
basicly remove it from the destroy list
and when the player launches just beam them to a safe
place
or instantly beam them back to the same base
so it refuses to launch -
Hey adoxa
Is it possible to check destroyed parts of ships to?Wrecks of ships in FL have already fuses for destroyed parts, but in multiplayer they will respawn.
Would be good to for big solars (like battleships) with destructible parts. -
Ah, okay. I was just tired of people saying “a plugin can do that” with seemingly no idea of just what it takes. “Freelancer 2? Yeah, a plugin can do that!”
I think it’s time for a break m8…… a well deserved break
-
@Skotty: I was looking into it, but got sidetracked by my TV tuner. I don’t expect fuses will work, not sure if actually blowing them off is any different (that’s what I was about to test). For fuses, I expect the server knows its run it once, so doesn’t run it again. For the wrecks, the initial fuse should run each time, but the loot fuse should only run once. I don’t think there’s really any way to distinguish which should run more than once and which not, so that’s probably going to have to remain.
-
Don’t know how long I tried variation of fuses
(including fuses starting other fuses) to keep
a destroyed clanbase burning and smokin’ ……
… without success. -
eh wait a sec there wee all ready have control of the fuses
void __stdcall HkLightFuse(IObjRW *ship, uint iFuseID, float fDelay, float fLifetime, float fSkip); void __stdcall HkUnLightFuse(IObjRW *ship, uint iFuseID, float fDelay); __declspec(naked) void __stdcall HkLightFuse(IObjRW *ship, uint iFuseID, float fDelay, float fLifetime, float fSkip) { __asm { lea eax, [esp+8] //iFuseID push [esp+20] //fSkip push [esp+16] //fDelay push 0 //SUBOBJ_ID_NONE push eax push [esp+32] //fLifetime mov ecx, [esp+24] mov eax, [ecx] call [eax+0x1E4] ret 20 } } __declspec(naked) void __stdcall HkUnLightFuse(IObjRW *ship, uint iFuseID, float fDunno) { __asm { mov ecx, [esp+4] lea eax, [esp+8] //iFuseID push [esp+12] //fDunno push 0 //SUBOBJ_ID_NONE push eax //iFuseID mov eax, [ecx] call [eax+0x1E8] ret 12 } } HkUnLightFuse(ship, iFuseID, 0.0f); HkLightFuse(ship, iFuseID, 0.0f, 0.5f, -1.0f);
motah worked it out ages ago
thats a example of a ship can also be a base ore eny object