Coder Social home page Coder Social logo

flhook's Introduction

FLHook Discovery 3.1.0

This is the public repository for Discovery Freelancer's FLHook. The client hook and the server anticheat are not available due to their sensitivity. It's also currently missing ducktales and disabledock.

The original SVN can be found here: http://forge.the-starport.net/projects/flhookplugin

This project is configured to run under Visual Studio 2017. Everybody can contribute with the Community Edition. The Windows SDK version is 8.1. The compiler is VC141.

Our current starport revision is #267.

If you find old contributions you wish to refactor, you are welcome to do so

How to use

Open the solution FLHook.sln Do not use the solution in DEBUG configuration. Always use RELEASE.

Your compiled plugins are in Binaries/bin-vc14/flhook_plugins. Sometimes it also like to not copy over the new dll from the plugin's folder into bin-vc14/flhook_plugins for mysterious reasons.

License

Don't claim other's work as your own. Past that, do what you want. This has been a collaborative project for years and we expect you to respect that.

Contributing

Send pull requests or create issues to discuss

flhook's People

Contributors

aingar avatar conradweiser avatar corran-raisu avatar danswann avatar dd84ai avatar dsyalex avatar dsydalziel avatar johnwildkins avatar kazinsal avatar lazrius avatar lnvoker avatar oliverpechey avatar phoenixxclaw avatar zibbizor avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

flhook's Issues

baseplugin: holiday base deploying bug

According to code in Playercommands.cpp

void BaseDeploy(uint client, const wstring &args)
{
if (set_holiday_mode)
{
PrintUserCmdText(client, L"ERR Cannot create bases when holiday mode is active");
return;
}
...

Base deploy during holidays should not be possible. Because all bases become invincible 100% HP.
There are multiple sayings, that it is not working and people deploy their bases during holidays.

Admin command to jump drive to a particular system and coordinates

Oh another admin command for jump drives would be neat I just realised. But put that at the very bottom. .coordinate SYSTEM X Y Z
Basically being able to admin put in coordinates. I always find using a jump drive looking much better than just .beaming everyone.

(from Skorak)

playercntl: aux bug

Succeded to replicate the bug in local server
posessing Aux ID (dsy_license_pf_34_grp), for some reason makes you rephacked to USI and Synth food (co_ss_grp & co_ni_grp).

image

givecash: Transaction reference

Someone once wrote: "I wish you could add a comment to the givecash command. To put a reason at the end like on real bank transfers."

alley -> rep doesn't work

LI06_01_base is Red Base in conn.
rep doesn't work

Result: Reputation is still pf_08_grp. It should be set to li_n_guardian and read Unidentifed to player and be very hostile :)

The code is in alley -> rep.cpp -> void REP::LoadSettings() line 32

It seems to be reading the config file and grabbing the values correctly as it output to console saying as much. Doesn't seem to be setting the rep though, although this code is repeated all over the place as far as I can see so I'm not sure why?

Also as a side note, this pattern:
uint obj_rep_group; pub::Reputation::GetReputationGroup(obj_rep_group, newrep); pub::Reputation::SetAffiliation(solarnick, obj_rep_group);

Should probably be it's own function as I found it repeated a lot throughout the project.

/maketag /invite$ and /i$ not working

Compiled and running on my test server. Most things seem to be working but we found a few commands do not.

Commands not working:
/maketag
/invite$
/i$

Reproduce: Make a blank disco server with the compiled flhook from here. Try to invite a second player...

Then give yourself enough credits to make a tag on player1 with a password, player2 can use "/renameme [TAG].Player2" with no password. Player2 will rename fine...

Discovery FLHook 3.0.0 - DSAce not publicly available

While this is technically not a bug, I would not know where to contact you regarding gaining access to DSAce. I have been using and modifying the FLHook within this repo (thanks by the way :) but after reading the files concerning DSAce it says that it's only allowed among a select few. I was wondering whether I could gain access to continuing with our project.

Regards,
FLHD

P.S. (Yes I made an account just to request this :P )

Base Player Documentation out of date

A while ago an update was made to change base defense modes.

Problem 1
Base Plugin ->PlayerBase.cpp -> float PlayerBase::GetAttitudeTowardsClient
Comments are out of date, saying things like if defense mode 3, at this point if player doesn't match any criteria, give him fireworks. This is no longer the case. I know this is pretty minor but I trusted the comments at first glance of trying to figure out why all the documentation pointed towards one behaviour and the actual behaviour being different.

Problem 2
Base Plugin -> PlayerCommands.cpp -> void BaseHelp
~Line 75, pages[2]

Documentation needs changing for defense mode. ie:
Defense Mode 3 - Logic: Blacklist > Whitelist > Faction Whitelist > Hostile
Above line is what is presented to the client, it is now incorrect. (Docking RIghts is still correct).

What I suggest is something like this be added to the top of the infocard:
All Defense Modes: Can only be hostile if under siege.

pvecontroller money corruption

@Kazinsal
pve controller prevents money corruption based on code
if (fValue + aClientData[iClientID].bounty_pool > 2000000000 || lNewMoney > 2000000000)

considering that money corruption happens when the value Equipment Value + Player Money more than Int 32 limitations (2,147,483,648), this code should be looking like next one to prevent corruptions:
(btw we can receive in-game equipment value through /value command)

if (SumOfPlayerMoney + SumOfPlayerEquipmentInMoney + aClientData[iClientID].bounty_pool > 2000000000)

Event module

That for example makes "drone remains" into "scientific data" that I can later on disable or stuff

(from Skorak)

Can't figure out how to build 'alley' plugin

I tried installing boost and moving the files to a directory called boost in the root of the repository, but I get this error:
LNK1104 cannot open file 'libboost_date_time-vc140-mt-1_60.lib'

npc: aigoto x, y, z

TreewyrmToday at 8:14 PM
ah
mmm... is there way to expand these?
as in have position set in absolute values as opposed deriving from your own location
similarly I assume follow to have target other than yourself

Darkwind the Dark DuckToday at 8:17 PM
well, it looks to be easily possible.

P.S. dublicate and slightly change /aicome command

base/cloak: beam cloak beam bug

Connor:

In short if you beam to a PoB, cloak and then beam back to that PoB in a short time (30 secs / 1 minute) the server will crash. When you beam the first time, it works fine. However when you beam the second time all you get is an "Ok" message however you don't beam and you stay where you are.
Then a minute later the server will crash.
[04.02.2021 19:21:27] Marcus.Wild: beam marcus.wild ulster s
[04.02.2021 19:21:27] finnished
[04.02.2021 19:21:39] Marcus.Wild: cloak
[04.02.2021 19:21:39] finnished
[04.02.2021 19:22:11] Marcus.Wild: beam marcus.wild ulster s
[04.02.2021 19:22:11] finished

[04.02.2021 19:23:31] !!TOP LEVEL EXCEPTION!!
[04.02.2021 19:23:31] Attempting to write minidump...
[04.02.2021 19:23:31] Minidump './flhook_logs/debug/flserver_04.02.2021_19.23.31-1.dmp' written.

[04.02.2021 19:27:58] Marcus.Wild: beam marcus.wild ulster s
[04.02.2021 19:27:58] finnished
[04.02.2021 19:28:05] Marcus.Wild: cloak
[04.02.2021 19:28:05] finnished
[04.02.2021 19:28:11] Marcus.Wild: beam marcus.wild ulster s
[04.02.2021 19:28:11] finished

[04.02.2021 19:29:01] !!TOP LEVEL EXCEPTION!!
[04.02.2021 19:29:01] Attempting to write minidump...
[04.02.2021 19:29:01] Minidump './flhook_logs/debug/flserver_04.02.2021_19.29.01-1.dmp' written.
I have been able to replicate this but I haven't attempted anymore since it'll keep crashing the server.
This has also happen in the past as well.

Additional POB type parameters

So they can be spawned right away with:

  • no rust
  • no eat
  • Certain modules preinstalled
  • Certain cargo already stored

(from Skorak)

bug(base) CLD3 shows as CLD2 during construction

How it was produced (quote): I can remember when I was putting a Cloak Disruptor Type-3 device to made in Ulster and then it showed it was making a Type 2. Now thats its made, it s a type 3.

Severity: Minor. It is just a cosmetic bug.

image

Latest Base Plugin problems

From my server discord:
"commands work but base info screen is borked"
Image 1
Image 2

"name still broken"
"From what i can tell my base is bugged in more ways than one, if it was only bugged in appearance (buggy menu) i would probably just put up with it. However a number of items in my base, i now don't seem to have any way to retrieve. I went through 1 by 1 and just set each resource in the base to have no minimum, which should make everything purchasable, however at least half of the commodities along with a hyperspace scanner are un-retrievable."

How to reproduce
Compile latest base plugin and flhook etc.. in this repository, start a new server.
Try to do base stuff described above.

cloak: Visible sign

lets show visual indication of nearby cloak to deaf players

idea how to show it

void ShowPlayerMissionText(uint iClientID, const wstring &text)
{
HkChangeIDSString(iClientID, 526999, text);

FmtStr caption(0, 0);
caption.begin_mad_lib(526999);
caption.end_mad_lib();

pub::Player::DisplayMissionMessage(iClientID, caption, MissionMessageType::MissionMessageType_Type2, true);

}

baseplugin: Adding -0.55 rep restriction to dock

During defensemodes 2
People can dock based on their reputation

At the moment it is not restricting from docking people with -0.55 reputation
While actually supposed to block and say things like "Your reputation stinks" and other things that can be found in playercntl

It needs to be fixed, and I am recommending regulating it purely through base plugin in the next function:
static bool IsDockingAllowed(PlayerBase *base, uint client)

reputation can be acquired in this func
float PlayerBase::GetAttitudeTowardsClient(uint client)

Update Starport revision

README.md says we're currently on TSP rev 267. The latest is 284. That's 17 commits to import.
Alley sent me a 7z file with some of the work for this done. Need to split it into one-git-commit-per-SVN-commit.

Boost again

Boost should be dropped FLHook\Dependencies\Boost instead of just FLHook\Boost - isn't it? :)

balancemagic.cfg missing

The Balance Magic Plugin is missing the config file.

balancemagic\Main.cpp line 75
string scPluginCfgFile = string(szCurDir) + "\\flhook_plugins\\balancemagic.cfg";

I'm not familiar with C++, but I'm pretty sure this LoadSetting function is trying set a bunch of damage multipliers. Should there not be a balancemagic.cfg? There are plenty of other config files, that one doesn't exist.

Thanks in advance.

base: logger

slappyToday at 12:27 AM
@darkwind think it's possible to have a log system for pobs? who logged in admin, who sold what, who changed what in shop price, shield was raised/shot by ... etc?

WPeregrineToday at 12:38 AM
At least a record of X past log ins on which password, for the one with master password access

DarkwindToday at 3:35 PM (to slappyToday aka Ikret)
Pretty much possible

DarkwindToday at 3:37 PM (to Peregrine)
Nope. That is not allowed. At best... recording which shipname tried to login or succeded to login. But recording to which password is a big no no.

WPeregrineToday at 3:40 PM
Even to the owner of the master pwd, who is the one who sets up all the pwds?
But by ship is a much better alternative, yes.

DarkwindToday at 3:43 PM
Well, thinking again... we can just designate some number to those secondary pwds.

I don't see an issue recording which pwd number in a list was used. Plus shipname, should be more than enough.

Implement NPC kill support in the event plugin

So far there is this in Plugins/Public/event/Main.cpp:

95: list lNPCTargetReputation;
313: ce.lNPCTargetReputation.push_back(rep);

90: int bonusnpc;
298: else if (ini.is_value("bonusnpc"))
300: ce.bonusnpc = ini.get_value_int(0);

/*
void __stdcall ShipDestroyed(DamageList *_dmg, DWORD *ecx, uint iKill)
{
	returncode = DEFAULT_RETURNCODE;
	//CShip *cship = (CShip*)ecx[4];

	//todo, combat event npc destruction
}
*/

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.