EpochModTeam / DayZ-Epoch

Experimental DayZ Mod for Arma 2
http://epochmodteam.github.io/DayZ-Epoch
225 stars 399 forks source link

Epoch 1.0.7 Known Issues and Bugs #2123

Closed AirwavesMan closed 2 years ago

AirwavesMan commented 3 years ago

How to report Epoch 1.0.7 bugs and problems:

Write your problem as exact as possible and please provide more information as only one sentence. Before your report a bug, please check if this bug got already reported at the end of this post under *Known Bugs**.

1. What mods do you have installed and on what map do you play?

Epoch, Overpoch (Overwatch+Epoch), Overpochins (Overwatch+Origins+Epoch)
Chernarus, Napf, Namalsk, Taviana, Sauerland, Panthera, Lingor and other

Since Epoch comes with most Overwatch Cars and Weapons it is highly recommended not to use Overwatch anymore.

2. What scripts do you have installed?

This is very important because there can be relations betwenn different scripts.

3. Which Anti Hack do you have installed?

Epoch-Antihack-Admin-Tools (free) - highly recommended https://epochmod.com/forum/topic/47272-epoch-antihack-admin-tools/
Epoch Admin Tools (free)
infistar (not free) - not recommended, outdated and full of bugs and problems, avoid it if you can

4. What is the name of your server host?

Certain Gameserver Hoster will not work very well with a custom epoch. If you have a dedicated server you should be good. 5. Check your launch parameters from your server and your client.?

Do not start the server or the client with -nologs
Add to your client –showScriptErrors
    You can do that in the DayZ Launcher --> settings --> Check Show Script Errors or you start your game with a batch file.

6. Provide Logs from 5.?

This means show us your server and client logs. Client logs can be found under
    C:\Users\YourUsername\AppData\Local\ArmA 2 OA
    It is possbile that the folder is hidden in windows. You can make it visible:
        https://support.microsoft.com/en-us/help/4028316/windows-view-hidden-files-and-folders-in-windows-10
    If you have Battleye kicks show the kick logs from your battleye folder.
If you have problems with lost gear you can add the HiveExt.log as well. The file is in the same folder like the server.rpt
Do not post the logs directly here, use pastebin.com, google drive or something like that and add the link.

Known Bugs:

dreamforceinc commented 3 years ago

KFC Anti Hack What is it?

AirwavesMan commented 3 years ago

https://epochmod.com/forum/topic/47272-epoch-antihack-admin-tools/

I will edit the name. KFC as name looks outdated.

looter809 commented 3 years ago

https://pastebin.com/XE5RTbL8

Any way to remove all of these errors at server startup? It's possible some of my code may just not be up to date, if that's the case do you have any idea where I should be looking at to update the code?

ndavalos commented 3 years ago

https://pastebin.com/XE5RTbL8

Any way to remove all of these errors at server startup? It's possible some of my code may just not be up to date, if that's the case do you have any idea where I should be looking at to update the code?

Looks to me like you don't have the right version of the mod running? I downloaded the pre-release files (last thing AMan posted) and I'm not seeing these errors in my rpt startup. I would wipe your mod directory and make sure that you have the right files in there first.

looter809 commented 3 years ago

No, it's the pre-release version, 100% sure. Maybe I have addons missing in the mission.sqm for some of the extra scripts I'm running, but I doubt that. Any other ideas? I am running Infistar and those errors do pop up right before infistar writes it's been started, but I think it was showing these errors even when I removed infistar.

edit: I have a new idea. I checked the database and it has the vehicles around the map that are showing errors. My guess is that maybe some of the vehicle classes changed and I'm still running a 1.0.6.2 database. Oops.

ndavalos commented 3 years ago

No, it's the pre-release version, 100% sure. Maybe I have addons missing in the mission.sqm for some of the extra scripts I'm running, but I doubt that. Any other ideas? I am running Infistar and those errors do pop up right before infistar writes it's been started, but I think it was showing these errors even when I removed infistar.

So I just did a createvehicle with one of those classes and also purchased from the trader and am not seeing any errors about missing properties, so my guess is you are missing something from your mission.sqm. I would go compare your mission.sqm addons sections to what's in the server files that were released and see if there's any missing mods. Those errors you have are when it's doing a createvehicle from what's in your database with the classes mentioned in the rpt. If you look in your database you probably have some objects with those classes, and when they get spawned in by server_monitor.sqf, the engine is throwing errors because it seems to think those classes are not defined properly in the mods.

It also may be a mod you're loading has them defined wrong and it's overriding epoch. Epoch should be the last mod in the list in your server executable launch -mod params, that way it always overrides anything defined in other mods you load at startup. So like, when I launch my Taviana server, my mod params look like this: "-mod=@Taviana;@DayZ_Epoch"

Look at those 2 things I mentioned and see if you can figure it out.

ndavalos commented 3 years ago

Also, don't use the old Overwatch mod, it's unnecessary now since almost every weapon from that mod was put into Epoch, and I think the old vehicles from it too. It never got updated over the years and is kind of broken due to updates to Arma.

looter809 commented 3 years ago

I'm only using the Epoch mod on Chernarus. Checked the mission.sqm and it's using all the same addons (although I have some added that some of my AI missions' buildings use, again doubt that would be causing an issue). I still am not sure what might be causing it. I thought maybe some vehicle class names changed but that doesn't seem to be the case either.

ZizionarD commented 3 years ago

Hello! An error popped up String STR_EVAL_TYPENAN not found what does this translation refer to?

IsGoose commented 3 years ago

Hello! An error popped up String STR_EVAL_TYPENAN not found what does this translation refer to?

It refers to an error (Error Type: Number IIRC), probably saying that a translation for it is unavailable. Although, the translation isnt the issue, it is usually followed by (or it follows) a script error

DjReactive commented 3 years ago

Hello, I have an error on a clean server with standard MPMissions. (DayZ Epoch 1.0.7 / Windows / Empty DB)

String STR_EVAL_TYPENAN not found
Error in expression <play displayCtrl 1209;

if (dayz_onBack != "") then {
_onBackCtrl ctrlSetText (d>
  Error position: <!= "") then {
_onBackCtrl ctrlSetText (d>
  Error !=: Type Bool, expected Number,String,Object,Side,Group,Text,Config entry,Display (dialog),Control,Team member,Task,Location
File z\addons\dayz_code\system\handleGearFunctions.sqf, line 284

and

String STR_EVAL_TYPENAN not found
Error in expression <equip_carry < 0) then {
if (dayz_onBack != "" && !_inVehicle && !_onLadder && !r>
  Error position: <!= "" && !_inVehicle && !_onLadder && !r>
  Error !=: Type Bool, expected Number,String,Object,Side,Group,Text,Config entry,Display (dialog),Control,Team member,Task,Location
File z\addons\dayz_code\compile\fn_selfActions.sqf, line 50
Error in expression <equip_carry < 0) then {
if (dayz_onBack != "" && !_inVehicle && !_onLadder && !r>
  Error position: <!= "" && !_inVehicle && !_onLadder && !r>
  Error Generic error in expression
File z\addons\dayz_code\compile\fn_selfActions.sqf, line 50

Help me please, friends!

AirwavesMan commented 3 years ago

Upload your full client and your server rpt somewhere and add a link to them.

DjReactive commented 3 years ago

Upload your full client and your server rpt somewhere and add a link to them.

https://dayzrun.ru/uploads/RPT_logs.zip server and client rpt logs

AirwavesMan commented 3 years ago

https://dayzrun.ru/uploads/RPT_logs.zip

Please delete your client rpt and upload a new one after you have joined your server. I need the full rpt with the complete head.

AirwavesMan commented 3 years ago

You miss Arma 2 in your start parameters. Are you running the server with verifySignatures = 2;? It is also better to join discord and discuss it there instead of ping here everyone everytime.

ndavalos commented 3 years ago

Due to the size of some of the classnames I'm starting to see larger storage objects get the inventory cut off in the database due to the max amount of data you can send to an extension in arma. This causes the stored inventory to become invalid. I'm not talking about the field length in the database, but what is getting sent to hive exceeds the maximum length that can be sent to a dll in some cases.

I may have to just remove hive altogether and break up the inventory field into a smaller fields just to deal with the overflow. I'm seeing that the max amount of characters that is getting sent to the dll at 2048.

IsGoose commented 3 years ago

Due to the size of some of the classnames I'm starting to see larger storage objects get the inventory cut off in the database due to the max amount of data you can send to an extension in arma. This causes the stored inventory to become invalid. I'm not talking about the field length in the database, but what is getting sent to hive exceeds the maximum length that can be sent to a dll in some cases.

I may have to just remove hive altogether and break up the inventory field into a smaller fields just to deal with the overflow. I'm seeing that the max amount of characters that is getting sent to the dll at 2048.

There is no known limit to how much data can be sent in to the callExtension entry, only what can be returned from it (10240 bytes, 10kb).

The issue likely arises from how Epoch formats the Hive Parameters. format can only format a string up to 8KB in length, which results in ~2048 characters formatText does not have this limitation, hence why it is used in some places before a Hive Call.

Perhaps certain calls need to be re-evaluated to use formatText

ndavalos commented 3 years ago

Due to the size of some of the classnames I'm starting to see larger storage objects get the inventory cut off in the database due to the max amount of data you can send to an extension in arma. This causes the stored inventory to become invalid. I'm not talking about the field length in the database, but what is getting sent to hive exceeds the maximum length that can be sent to a dll in some cases. I may have to just remove hive altogether and break up the inventory field into a smaller fields just to deal with the overflow. I'm seeing that the max amount of characters that is getting sent to the dll at 2048.

There is no known limit to how much data can be sent in to the callExtension entry, only what can be returned from it (10240 bytes, 10kb).

The issue likely arises from how Epoch formats the Hive Parameters. format can only format a string up to 8KB in length, which results in ~2048 characters formatText does not have this limitation, hence why it is used in some places before a Hive Call.

Perhaps certain calls need to be re-evaluated to use formatText

The max you can send to an extension in arma 2 is 2048 characters https://community.bistudio.com/wiki/callExtension

Syntax: extension callExtension [function, arguments] Since Arma 3 v1.67 Parameters: extension: String - extension name function: String - extension function identifier arguments: Array - function arguments. Could be array of Anything, each element will be converted to String automatically. Current allowed max length of this array is 2048 (since Arma 3 v1.92; previous limit: 1024)

IsGoose commented 3 years ago

No, there is no specification for how many characters can be sent. The 2048 Argument Limit is only in Arma 3 for the Alt Syntax usage where the parameter is an array I have sent over 2048 characters over callExtension before, I do it regularly

ndavalos commented 3 years ago

It gives you the limit right in the link I posted.

ndavalos commented 3 years ago

And 2048 is the exact limit I am running into in the inventory in the db. Arma 3 may work fine, arma 2 isn't.

IsGoose commented 3 years ago

"Currently there is no limit how much data you can send to the extension." "There is currently a limit on how many arguments can be sent and it is 2048 (since Arma 3 v1.92; previous limit: 1024). " "Current allowed max length of this array is 2048 (since Arma 3 v1.92; previous limit: 1024)"

The issue probably is here: https://github.com/EpochModTeam/DayZ-Epoch/blob/master/SQF/dayz_server/compile/updateObject_functions.sqf#L46-L48

2048 is the limit because format will only return a string with the max size of 8KB, which is 2048 characters. So when format is used to format a large inventory in to a callExtension string parameter, it will cut said parameter length at 2048

I can assure you, you are not running in to a callExtension Limit.

ndavalos commented 3 years ago

Ok, I'll try fixing it tomorrow in the code and see what happens, if it works, then that'll be an easier fix than what I was considering doing, and won't be a big deal for server owners to update for.

IsGoose commented 3 years ago

formatText is used in quite a few places for sync and publish specifically to avoid this, but it seems object inventory sync was missed out. There might be others @AirwavesMan

AirwavesMan commented 3 years ago

There is absolutely no problem with this since we use str or formatText. Ive tested it again with the storage shed 2 and the sea fox boat with 200, 2000, 40 gear slots and Ive added only every single item once. So we had 200 different weapons over 1500 different magazines and 40 different packs. There was no problem with the sync and after restart everything was still in there. A problem is the limit of the length of lines in the rpt and I think thats the problem you acutally have.

AirwavesMan commented 3 years ago

@ndavalos There is a DB sync bug with ZSC on and when the storage items had no coins set. In this case the coins getting set to -1 to prevent the coin overriding from the hive and the DB stops the sync of the building or vehicle. Could that be your problem? Ive just added a fix for this.

looter809 commented 3 years ago

4x Wood floors that have been destroyed say "Remove Metal Floors" when removing the rubble. 20210521215201_1

AirwavesMan commented 3 years ago

4x Wood floors that have been destroyed say "Remove Metal Floors" when removing the rubble.

Fixed with https://github.com/EpochModTeam/DayZ-Epoch/commit/2e415136f5200c6490543d45d03540a8e517f2b7

looter809 commented 2 years ago

@AirwavesMan First time trying to submit a change to github (I need to get with the times...) but if I did it right I posted a fix to fn_selfActions.sqf. In case I didn't do it right: the issue I see happening is if Player A unlocks 2 safes which he/she does not own, or a friend (player B) unlocks their own safe, Player A doesn't get the option to reenter the combo to get access to lock it.

I removed the first (_typeOfCursorTarget in DZE_LockedStorage) in the unlock vault section since there is another if statement inside the main if statement which checks for that. This is why players never get the option to re-enter the combo

worldwidesorrow commented 2 years ago

@AirwavesMan First time trying to submit a change to github (I need to get with the times...) but if I did it right I posted a fix to fn_selfActions.sqf. In case I didn't do it right: the issue I see happening is if Player A unlocks 2 safes which he/she does not own, or a friend (player B) unlocks their own safe, Player A doesn't get the option to reenter the combo to get access to lock it.

I removed the first (_typeOfCursorTarget in DZE_LockedStorage) in the unlock vault section since there is another if statement inside the main if statement which checks for that. This is why players never get the option to re-enter the combo

Fixed with https://github.com/EpochModTeam/DayZ-Epoch/commit/831ad4b006a700eece130dac128f88bd026bcfdf

Victor-the-Cleaner commented 2 years ago

Hi @AirwavesMan , this is my first time posting here, so I hope this is the right place for this suggested code change, and other general observations made of Epoch 1.0.7, each with suggested fixes. See the zip file below for sample screenshots and a full description.

We enabled the Modular Object Refund feature only to find it needed work to become usable. But we have a fully working solution that you might be interested in.

The Problem

1) Refunds were often placed out of reach of the player, especially when it came to floors. 2) The long-standing issue of the cursorTarget selecting the wrong object needed to be addressed. 3) The original refund logic exposed the need for an additional player action, and a redefining of terms. 4) In designing a solution, it was necessary to modify several game files, including new tables.

Our Solution

1) Moves the refunded parts close to the player, regardless of the object's original position. 2) Highlights the selected object, giving the player the option of cancelling before the action completes. 3) Provides "Remove" and "Deconstruct" actions, giving the player a choice of convenient outcomes. 4) Delivers full installation notes and an in-depth analysis of the design rationale, including observed engine limitations.

Thank you for reading.

ModularConfig.zip

AirwavesMan commented 2 years ago

@Victor-the-Cleaner Very nice addon, thank you. Im checking it at the moment. Ill drop you a message on discord.

Edit: Your discord link is expired so please join the epoch discord and drop me a meaage.