Jump to content
Axe Cop

[Release] Multiple Character Support (now compatible with Epoch 1.0.5.1)

Recommended Posts

awesome stuff...especially the custom .dll....been waiting for that one for ages :)

Will it allow us to add a couple of more cells in the database ?

the custom dll is there for month, you just have to compile it yourself: https://github.com/vbawol/DayZhiveEpoch

but yes, you can execute custom SQL queries with the CHILD 999 support (from SQF script on the server), whatever you want I think. :)

Share this post


Link to post
Share on other sites

Looks good mate.

 

Personally if possible I would make the timer between changing characters customizable by admins, myself I would go for 3 hours as thats how long a restart is on my servers, just setting it to refresh every restart won't work as people will grief around restart times. Its a shame but you really have to babysit some people and prevent as much as possible without relying on player honour.

 

If you can make it that the dead character slots are reusable outside of this timer then that would work best :)

 

I'm guessing you can call on the "lastlogin" timer as you have it displayed, would it simply be a case of telling it not to display that spawn button if the last login timer was <XX minutes?

Share this post


Link to post
Share on other sites

Update: Download and installation instructions added to the first post!

I hope that is not to complicated to install, but you can do it! :)

 

Looks good mate.

 

Personally if possible I would make the timer between changing characters customizable by admins, myself I would go for 3 hours as thats how long a restart is on my servers, just setting it to refresh every restart won't work as people will grief around restart times. Its a shame but you really have to babysit some people and prevent as much as possible without relying on player honour.

 

If you can make it that the dead character slots are reusable outside of this timer then that would work best :)

 

I'm guessing you can call on the "lastlogin" timer as you have it displayed, would it simply be a case of telling it not to display that spawn button if the last login timer was <XX minutes?

I am still thinking about some restrictions like that, the login timer might be an option but how do you want to use it for that?

That is not the time the player changes a character, only the last time he logged in with it, but I could come up with something like you can only switch the character if the last login of ALL characters was at least x minutes ago.

There might be a "problem" with that, because if you want to switch to another character slot you have to play with the one character for at least 3 hours (in your example) or wait at the login screen.. might work if you stop playing for some hours and come back, then you can choose whatever you want!?

Also if your character dies, you can only use that slot and spawn fresh (which will reset the last login time of course), but there has to some restriction even when you die, because if your base gets attacked or whatever and you have 2+ chars in your base you can just switch to another and willbe back where you just died.. not that easy :)

Share this post


Link to post
Share on other sites

Update: Download and installation instructions added to the first post!

I hope that is not to complicated to install, but you can do it! :)

 

I am still thinking about some restrictions like that, the login timer might be an option but how do you want to use it for that?

That is not the time the player changes a character, only the last time he logged in with it, but I could come up with something like you can only switch the character if the last login of ALL characters was at least x minutes ago.

There might be a "problem" with that, because if you want to switch to another character slot you have to play with the one character for at least 3 hours (in your example) or wait at the login screen.. might work if you stop playing for some hours and come back, then you can choose whatever you want!?

Also if your character dies, you can only use that slot and spawn fresh (which will reset the last login time of course), but there has to some restriction even when you die, because if your base gets attacked or whatever and you have 2+ chars in your base you can just switch to another and willbe back where you just died.. not that easy :)

got this running on my server the install was extremely easy good job one thing i have noticed is the spawn button slightly covers up the  bottom of the last login text

cc77023a18e8fc15630b8eb19cfc238c.png

Share this post


Link to post
Share on other sites

got this running on my server the install was extremely easy good job one thing i have noticed is the spawn button slightly covers up the  bottom of the last login text

thanks, might be a problem with the "screen safezone" of the ArmA UI, since all positions are relative and might be dependant on your screen resolution or however ArmA calculates that stuff..

you screenshot has a resolution of 1898x1008, what is that? :D

 

what you can try is to adjust the positions in the dialog file RscDisplayCharacterSelect.hpp, change the y-position of the button "RscCharacterSelectButton" at line 195:

y = 0.687 * safezoneH + safezoneY;

increase the value to 0.7 or play with the value a little (0.0 is at the top of the safezone area and 1.0 at the bottom). not easy to get all the info on the screen you know. :D

Share this post


Link to post
Share on other sites

thanks, might be a problem with the "screen safezone" of the ArmA UI, since all positions are relative and might be dependant on your screen resolution or however ArmA calculates that stuff..

you screenshot has a resolution of 1898x1008, what is that? :D

 

what you can try is to adjust the positions in the dialog file RscDisplayCharacterSelect.hpp, change the y-position of the button "RscCharacterSelectButton" at line 195:

y = 0.687 * safezoneH + safezoneY;

increase the value to 0.7 or play with the value a little (0.0 is at the top of the safezone area and 1.0 at the bottom). not easy to get all the info on the screen you know. :D

thats cus i put it into windowed mode to take the screen shot using gyazo but it was running at 1920x1080 

i will play with the y value a little thanks for the tip

Share this post


Link to post
Share on other sites

Yeah the last character to login would affect the spawn buttons on the other slots unless they are fresh spawns.

 

Say I set the timer to 180 (minutes) or 108000 (seconds) depending on what variable it is, assuming its arma coding it'll be seconds right? Anyway.. 3 hours.

 

General

You can only spawn on characters that have a lastlogin > 3hours.

You cannot spawn on another character if an alive character has a login < 3hours. You must use this character.

 

If you get killed, to prevent griefing

You cannot spawn on another character if a dead character has been dead < 3 hours, you may only create and play a fresh spawn.

 

Easiest way to do this would be to force all slots to be used in order for any character to be used, which means if you die.. you have to make a new character to be able to play.

 

Might create a problem if someone forgets to make a new char after dying though.

 

You could also stop people using chars that are within XX distance aswell I guess?

Share this post


Link to post
Share on other sites

Axe Cop, I was wondering how I would go about setting a background to this screen &/OR Rather than having a character picture behind each bio, have a custom picture (such as a border with a background)...

 

 

How easy would this be to complete and what needs to be done to achieve this?

 

Share this post


Link to post
Share on other sites

Yeah the last character to login would affect the spawn buttons on the other slots unless they are fresh spawns.

 

Say I set the timer to 180 (minutes) or 108000 (seconds) depending on what variable it is, assuming its arma coding it'll be seconds right? Anyway.. 3 hours.

 

General

You can only spawn on characters that have a lastlogin > 3hours.

You cannot spawn on another character if an alive character has a login < 3hours. You must use this character.

 

If you get killed, to prevent griefing

You cannot spawn on another character if a dead character has been dead < 3 hours, you may only create and play a fresh spawn.

 

Easiest way to do this would be to force all slots to be used in order for any character to be used, which means if you die.. you have to make a new character to be able to play.

 

Might create a problem if someone forgets to make a new char after dying though.

 

You could also stop people using chars that are within XX distance aswell I guess?

yeh that are some good ideas! problem might be with "You can only spawn on characters that have a lastlogin > 3hours." so you cannot login again even with the same character, unless I say the character with the smallest last login time is the last one and can always be used, should be true? with the min distance should also be possible, but you may not be able to spawn at all if there are players near all of your chars, that might suck I think :P (but this could still be uses as a warning or something maybe: "be careful other players nearby"

 

 

Axe Cop, I was wondering how I would go about setting a background to this screen &/OR Rather than having a character picture behind each bio, have a custom picture (such as a border with a background)...

 

 

How easy would this be to complete and what needs to be done to achieve this?

yeah to be honest the UI design of ArmA is one of the hardest parts in my opinion, just look at my dialog file "RscDisplayCharacterSelect.hpp" and you see what I mean :D

Everything you want should be possible, if you have some time maybe look at the wiki for UI design: http://community.bistudio.com/wiki/Dialog_Control there is an weird UI editor as an external mod or use ArmA3 is has the same thing included: http://community.bistudio.com/wiki/User_Interface_Editor_(Arma_2) Imo only usable for a quick prototype or starting point for most dialogs.

Share this post


Link to post
Share on other sites

I have it working mate, well sorta.. I followed your instructions to the letter, and the pic comes up to choose a character, but its the same one all the time..

 

Any suggestions on where I screwed up

 

Bags

what "pic" do you mean? the complete character selection or just the picture in the background? that is static so always the same at the moment :D

Share this post


Link to post
Share on other sites

Got the problem as Bags2247. It always get Slot "1".

For me it is the "complete character selection"

 

If I use your HiveExt.dl, some errors show up.

Mods: @DayZ_Epoch_Server
Distribution: 0
Version 1.62.103718
Fault address:  5DB735FC 01:000225FC C:\SERVICES\ni*****\dayz\@DayZ_Epoch_Server\HiveExt.dll
file:     dayz_private_1.epoch (__cur_mp)
world:    chernarus
Prev. code bytes: 4D 8C 51 50 FF D2 83 C4 0C C6 45 FC 03 8B 4D 8C
Fault code bytes: 8B 01 8B 50 04 FF D2 84 C0 0F 84 B0 05 00 00 EB

Registers:
EAX:018DC2E4 EBX:018DC3A0
ECX:00000000 EDX:00000400
ESI:00000010 EDI:00000001
CS:EIP:0023:5DB735FC
SS:ESP:002B:018DC2A0  EBP:018DC358
DS:002B  ES:002B  FS:0053  GS:002B
Flags:00010216
=======================================================
note: Minidump has been generated into the file dayz_1.epoch.chernarus\arma2oaserver.mdmp

Share this post


Link to post
Share on other sites

 

Got the problem as Bags2247. It always get Slot "1".

For me it is the "complete character selection"

 

If I use your HiveExt.dl, some errors show up.

Mods: @DayZ_Epoch_Server
Distribution: 0
Version 1.62.103718
Fault address:  5DB735FC 01:000225FC C:\SERVICES\ni*****\dayz\@DayZ_Epoch_Server\HiveExt.dll
file:     dayz_private_1.epoch (__cur_mp)
world:    chernarus
Prev. code bytes: 4D 8C 51 50 FF D2 83 C4 0C C6 45 FC 03 8B 4D 8C
Fault code bytes: 8B 01 8B 50 04 FF D2 84 C0 0F 84 B0 05 00 00 EB

Registers:
EAX:018DC2E4 EBX:018DC3A0
ECX:00000000 EDX:00000400
ESI:00000010 EDI:00000001
CS:EIP:0023:5DB735FC
SS:ESP:002B:018DC2A0  EBP:018DC358
DS:002B  ES:002B  FS:0053  GS:002B
Flags:00010216
=======================================================
note: Minidump has been generated into the file dayz_1.epoch.chernarus\arma2oaserver.mdmp

that looks more like an app crash to me!? did you replace all 4 DLL and not just the HiveExt.dll?

I have mentioned in the instructions that I've used the latest version of the files so you might need to update all 4 instead of just the HiveExt.dll.. it's better anyway :)

Share this post


Link to post
Share on other sites

If I am using your HiveExt.dll I got this error.

 

But If I am using my default HiveExt.dll and all copyed files from you.(checked it twice) It shows only 1 Player. ( Exactly what Bags problem is)

Can you make a screenshot or something? I don't get what you mean, by default you may only see your old player in the first character slot and the other are empty!?

and with the original HiveExt.dll from epoch you can't use my mod obviously because it has no support for loading all characters at all so you should not even see one or it may get stuck because it will produce scripts errors like this!

hard to tell, maybe you missed some change to one of the files, I can only guess without more details ^^

 

@bags can you upload your mission and server pbo somewhere so i can take a look?

also take a look at your database do you have any characters in there with Slot 1 or 2 (it should create one if you click on an empty slot)

Share this post


Link to post
Share on other sites

OK in the DB, I only have slot 1 listed so far, and here is a link for my files.. they are in a zip format, simply because I work with the files instead of as pbo's

 

edit: link removed and files deleted

noob mistake

 

Bags

Edited by Bags2247

Share this post


Link to post
Share on other sites

xgee4dc3.png

 

Replayed all files (execpt the HiveExt.dll) And that is showen up(pic)

If I try to use your HiveExt.dll I get the error...

  CA_Animals2_Anim_Config in ca\animals2\animconfig\
  CA_CommunityConfigurationProject_E_Gameplay_AdditionalLauncherRocketsWithEnlargedSize in ca\communityconfigurationproject_e\gameplay_additionallauncherrocketswithenlargedsize\
  CAWeapons_AmmoBoxes in ca\weapons\ammoboxes\, CAweapons_m107 in ca\weapons\m107\
  CACharacters in ca\characters\
Mods: @DayZ_Epoch_Server
Distribution: 0
Version 1.62.103718
Fault address:  5DB735FC 01:000225FC C:\SERVICES\ni*****\dayz\@DayZ_Epoch_Server\HiveExt.dll
file:     dayz_private_1.epoch (__cur_mp)
world:    chernarus
Prev. code bytes: 4D 8C 51 50 FF D2 83 C4 0C C6 45 FC 03 8B 4D 8C
Fault code bytes: 8B 01 8B 50 04 FF D2 84 C0 0F 84 B0 05 00 00 EB

Registers:
EAX:018DC2E4 EBX:018DC3A0
ECX:00000000 EDX:00000400
ESI:00000010 EDI:00000001
CS:EIP:0023:5DB735FC
SS:ESP:002B:018DC2A0  EBP:018DC358
DS:002B  ES:002B  FS:0053  GS:002B
Flags:00010216
=======================================================
note: Minidump has been generated into the file dayz_1.epoch.chernarus\arma2oaserver.mdmp

And the server is restarting and restarting.

 

How can I use your HiveExt.dll?

 

Hopefully now you understand me :D

Share this post


Link to post
Share on other sites

I've installed this on my server I followed the instructions to the letter but we get a black screen upon login

 

and I'll get this in the RPT log

19:21:16 "DISCONNECT: Manana (108396166) Object: B 1-1-A:1 (Manana) REMOTE, _characterID: 0 at loc [-7244.94,19534.5,1.10648]"
19:21:16 "ERROR: Cannot Sync Character Manana as no characterID"

 

dont know if this matters but it was working before this

Share this post


Link to post
Share on other sites

OK in the DB, I only have slot 1 listed so far, and here is a link for my files.. they are in a zip format, simply because I work with the files instead of as pbo's

you did not add the dialog to your AH config (you might want to remove the public link or delete the files in your dropbox), add 'RscDisplayCharacterSelect' to your allowed menus.

other then that it seems you did everyhting like it should be, i am 95% sure it has to do with your AH blocking something, maybe try and disable your AH if it still doesn't work.

 

Note to all admins who are having problems: please disable all your anti hacks and even BattlEye to confirm it is something else. thanks :)

Share this post


Link to post
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...

  • Similar Content

    • By vbawol
      Open world survival mod set just two years after the mass extinction of billions of people. Those that remain are left with remnants of a once technological society. Try to survive, build, or explore your way through the harsh dynamic environment.
      Features
      Powerful persistence framework for Arma 3 with native Windows and Linux dedicated server support. Fully configurable script based security checks. Base Building re-envisioned for Arma 3 PhysX. Persistent secure and insecure storage devices. Upgradeable locking doors. Barter based economy and trading systems backed a single currency ¤ called "Krypto". Hostile Environment with several different types of antagonists, Air and Water temperature extremes, and Earthquakes. Hunting, Fishing, Tame Dogs, Explore & Loot: Wrecked ships, Abandoned vehicles and buildings, Perform task based missions and more! Open source APL-SA Epoch Survival MP gamemode. Open source APL-SA Modders resource configs and Class List. Assets can be used as a mod dependency on Steam workshop.
    • By Achef
      Greetings!
      So I recently started up in a new host and haven't gotten to make the server run, found that a ca/modules bis_fnc issue is recurring but doesn't affect players when running coop missions like the default arma 2 oa ones, but when trying with Epoch hive won't connect/start despite being configured.
      Hive error
      Meanwhile at line 23...
       
      I'm still bad with Pastebin, sorry.
       
      This error has been chasing me for 2 days now
    • By Sandbird
      Dayz.Epoch.1.0.62 - 3d.Editor.Live.Mission with Database interaction


      -=Youtube Demo=-
       
      What is this
      A custom mission file for the purpose of testing/writing scripts for DayZ Epoch without the need of a server.
      It emulates the dayz_server and dayz_mission files, so you can write scripts using the 3d editor. No need to use a dayz_server for debugging anymore. We all know how time consuming that is.

      Features
      Full Database integration (yes thats right... [:)] I would suggest to have a maximum of 100 objects in your object_data table for faster results.
      Took 5 min to load 10000 objs from my real database, so also make sure you dont go crazy with the MaxVehicleLimit, MaxDynamicDebris values in the init.sqf Fully working GUI, zombies, hit registration, addactions, everything! Write code and execute it on the fly. No need to start a server and join with a client to test things. 100% of your scripts will work! (dynamic weather, default loadouts, custom scripts etc) 2 setups. A default 3d editor player with a default loadout or a Real database character based on your UID Includes most of BIS_fnc functions, so actions like BIS_fn_invAdd will work (i've added most common ones...more included though...check details bellow.) Everything works...when i say everything i mean EVERYTHING !. (Spawning objects on mission start, traders (buy/sell), maintenance, character update, events, stats...etc) New Features!
      All .FSM files have been converted to .SQF meaning the mission acts as a full fledged server / client merge. New character creation has been ignored though, so the server expects that the client that is about to connect exists in the database. The server will start, wait for a 'fake client connection to happen' (you pressing the Preview button), and then it will load your character from the database, spawn Hive objects and create new based on your MaxVehicleLimit values etc, then initialize the events and finally spawn the character to his worldspace location. Use AdminTools to spawn any Perm, Temp vehicle you want, including buildings, crates etc. Building objects is working as expected with a little AddAction trick. Unfortunately the primary display (eg: findDisplay 46) isnt working inside the editor. That means that building stuff or placing objects is very hard to do since we can't 'capture' keystrokes.
      Further details below after the Installation instructions. Arma2Net is not allowed by Battleye anymore, so i am using extDB3 now. Requirements:
      A mysql server on the same machine as your Arma2 editor. Well...a remote PC would work as well...just make sure YOU ARE NOT using your original database. Make a copy of it!. This mission will interact with your database !
      If you don't have a mysql server on your pc...i suggest you get WampServer. It's the easiest php/mysql server out there.
      Installation
      Head over to the GitHub where the project is. Click Download on the right sidebar, and extract the rar file. Copy the 3d.live1062.DayzEpochTemplate.Chernarus mission file in your \My Documents\ArmA 2\missions\ folder If your active Arma profile is not the default one, then you probably should extract it in the \My Documents\ArmA 2 Other Profiles 2\missions\ folder, otherwise you won't be able to find the mission inside the editor. Copy everything inside "Arma2OA root folder" in your root Arma2OA folder (the same folder where @DayZ_Epoch_Server, MPMissions are). The real_date.dll...(Thanks to killzonekid) is used to get your machine's date/time to be used for live day/night cycles inside the game (...you can set a fixed day if you want...details bellow). The tbbmalloc - tbbmalloc_x64.dll files are provided by extDB3. They shouldnt interfere with your normal game, but they are needed for the mission to be able to connect to your MySQL server. (Make a backup of your original ones if you want, just be safe.) EATbaseExporter is used by the AdminTools, and allows you to export bases to an .sqf format so you can import them afterwards to your server. Now edit -=START HIVE MISSION=-.bat which was placed in your Arma2 folder, and fix the paths to their proper values. If you are using DZLauncher then the @Dayz_Epoch folder is probably where i placed it myself.  Battleye needs to be disabled inside the editor otherwise the extDB3 addon will not work. The .bat is taking care of that. It will disable Battleye after 7 seconds. Depending on your machine, if you see that the time isn't sufficient, raise that value a little bit. A sample Database has been provided with me as a character and a basic loadout. You can of course use your own database, just remember to delete most of your Object_Data table vehicles. The more vehicles you have there, the longer it will take for the dayz_server to spawn them. If you just want to write a script independent of cars etc...why wait 5 minutes for the server to spawn 10000 vehicles :) Open "ArmaOA\@extDB\extdb3-conf.ini" and add your test database data there. I named the test SQL DB dayz_cherno [dayz_cherno] IP = localhost Port = 3306 Username = dayz Password = mypass123 Database = dayz_cherno # dayz_cherno is the name of the database (change it in both values) # localhost is your mysql server (could be an IP value as well) # 3306 your mysql port # dayz is your database username # mypass123 is your database password  
      When the game launches, press Alt+E, select Chernarus, then Load mission 3d.live1062.DayzEpochTemplate.Chernarus
      Open \My Documents\ArmA 2\missions\3d.live1062.DayzEpochTemplate.Chernarus\init.sqf
      Go to line 61 and start editing the values there. DB_NAME is the name of your database (same as the extdb3 config file).
      Add your PlayerUID value (same as the DB one) in line 72. (That the player you want to load from the database)
      Depending which map you want to use, you have to change the dayZ_instance variable and also the MarkerP values (line 62) based on your mission.sqm file. Its for the Hive to spawn random vehicles, roadblocks and mines at proper locations based on the map. Just read the comments there for how to get the values. Its really simple. Just copy paste stuff from your mission.sqm file.
      Default setup vs Database setup
      There are 2 ways of initializing your player.
      A live database player based on his UID in the character_data table (coordinates, medical states, inventory etc) A default 3d editor player with a basic loadout. (Ignores Hive Loadouts and initial vehicle spawns) Default setup (extDB3)
      [DefaultTruePreMadeFalse = true;] This option is now the default one, because it's so much easier to set up, plus a lot of things have changed in the 1062 Epoch version. I couldn't totally separate the server files from the client files, so in the end a Database is necessary for the Mission files to work properly. To setup your character with this method, leave DefaultTruePreMadeFalse to true;  Everything is database based..so no need to do anything else. The mission will start with all your stats, inventory, conditions and spawn you where your world coordinates are. Premade Character Setup
      [DefaultTruePreMadeFalse = false;] This setup DOES NOT initialize the character based on a database entry, or does any HIVE related queries on mission start. (like load objects etc). Instead it uses some premade stats that you set, and only uses the Database on updates (buy vehicles etc) The loadout of the player is set in the init.sqf in line 77  
      player setVariable ["CharacterID", "1", true]; // Set here the characterID of the player. It can be anything...just leave it 1 if you want. player setVariable ["playerUID", "111111", true]; // Set here the playerUID of the player you want to have. player setVariable["Z_globalVariable", 100000]; player setVariable["Z_BankVariable", 100000]; player setVariable["Z_MoneyVariable", 100000]; player setVariable["humanity", 11000]; player setVariable["humanKills", 10]; player setVariable["banditKills", 20]; player setVariable["zombieKills", 30]; player setVariable ["friendlies", ["222222","333333"], true]; //Both DZE_Friends and this must be set for friendlies to work properly DZE_Friends = ["222222","333333"]; Everything else should work fine with the database....like traders, salvaging, etc...Unfortunately since the 1062 ver had many differences from the 1051 one, i couldn't really make this Profile option a standalone one, without any Database interaction. So in order for you to minimize any errors in the log file, i would suggest you load my sample db file provided, and also change those CharacterID and PlayerUID values in PLAYER_Data and CHARACTER_Data tables to the ones you set up here, just in case.... The Premade character setup is for people that want to fast debug a script they are making and don't want to wait for the Hive to load all map objects and authenticate the player first. Further Details to change (in both Profile Cases)
      The description.ext, mission.sqf, mission.biedi files have your character's name in them. Just search for the word Sandbird in all of them and change it according to the PlayerName value you have in your Player_DATA table for your PlayerUID value.
      Example taken from description.ext. DONT change the actual My_Player text. The mission file needs that string to read what you typed in the name field.
      class My_Player { name="Sandbird"; face="Face20"; glasses="None"; speaker="Male01EN"; pitch=1.1; };  
      Important info
      Init.sqf values
      DefaultTruePreMadeFalse = true; // True: Read player's data from the database (based on UID), False: the normal player the editor has StaticDayOrDynamic = true; // A static date is set at the bottom of \dayz_server\init\server_function.sqf. Set this to false if you want real time/date inside the mission. DZEdebug = false; // Set to true if you want a more detailed log file Enable Keyboard actions (menu option) // (findDisplay 46) wont work inside the editor. That means that building stuff or placing objects is very hard to do since we cant 'capture' keystrokes. I kinda fixed this with a trick. In order to build something first you have to initiate the building action (holding the object in your hands) and then scroll with your mouse wheel and select Enable Keyboard actions. This will create a layer on your screen capturing your keystrokes thus allowing you to change orientations etc. Pressing ESC twice after and it will close the fake display and return to normal play mode. You will have to do this every time you want to build something. Related to coding
      Since the Editor has some limitations because its not a real server some things will never work. For example:
      _playerUID = getPlayerUID player; will never work in the editor. To get the _playerUID you have to do this:
      _playerUID = player getVariable ["playerUID", 0];
      This is the most important thing to remember. Lots of scripts use getPlayerUID. You have to remember to change it every time you want to use it.  Of course the player value is just an example here. If you were inside a loop and it had (getPlayerUID _x) then you have to rewrite it like this: (_x getVariable["PlayerUID",0]) findDisplay 46 does not work in the editor. If you are using/making a script that uses Display 46 try using my Enable Keyboard action. It might work in your case. publicvariableServercommands don't exist in the editor. There is no server to accept the command. If you want to use addpublicvariableeventhandler you can do it with call/spawn commands. You can find the handlers usually in the PublicEH.sqf.
      Example: PVDZE_plr_Save = [player,dayz_Magazines,false,true]; publicVariable "PVDZE_plr_Save"; can be written like:
      PVDZE_plr_Save = [player,dayz_Magazines,false,true]; publicVariableServer "PVDZE_plr_Save"; // keeping this so when you move the code to the real server you remember to add it. [player,dayz_Magazines,false,true] spawn server_playerSync; // what to call is usually inside publicEH.sqf. In this case search for PVDZE_plr_Save in the PublicEH file and check the call it makes in the end. You could also change the publicVariableServer to publicVariable. That should work inside the editor. But keep in mind these changes wont work on the live server, since one command broadcasts something to the server while the other just to the client running it. I would suggest you keep the original value and do the PublicEH call instead, marking it down with some debug comments next to it, so when you are done and want to transfer the files to your live server you just remove the call and everything should work as expected.
      Don't forget to change the paths when you are adding addons to test/modify them. For example, notice the differences here:  player_switchModel = compile preprocessFileLineNumbers "dayz_code\compile\player_switchModel.sqf"; player_checkStealth = compile preprocessFileLineNumbers "\z\addons\dayz_code\compile\player_checkStealth.sqf"; The first line will look up for player_switchModel.sqf inside the editor mission files, while the 2nd one will go to the @Dayz_Epoch map file and get the .sqf file. Same thing applies for the dayz_server files (server_functions.sqf). Once you are done with your script and you have added new compile lines, you need to fix them back to their proper values before you upload them to your live server.
        If you are missing any BIS_fnc functions then check the folder dayz_code\system\functions and see if it's available there to include it in the compiles.sqf. Set DZEdebug = true;  in the init.sqf. And ALWAYS check your RPT log file for debugging. Its located at : %AppData%\Local\ArmA 2 OA folder. Related to mission file included
      You'll notice when you start the mission there are 2 bots standing there. If you double click the soldier you'll see that he initiates this script scripts\BotInit.sqf. I left that in purpose in case you want to do some scripting that requires 'another player', and you want to initialize the fake player like that. The other bot can be deleted. I just left it there because i was testing a Tag Friendly script, and needed a 3rd 'player' that has me as a friend. I've included a simple Fireworks script i made a while back only this time i used some better effects taken from aliascartoons work. Just add a 'SMAW_HEDP' into your inventory and right click on it to test it out. Here is how the old script used to look like Fireworks. Also you'll find a little 'hat script' in the files, just right click a 'IRStrobe' item to add a hat to your player. Both script were written inside the editor using the mission file above...just a small example to show you how easy it is to write code there. The @extDB folder contains a folder called debug_files. These .dlls (when replaced the ones provided) activate a more detailed log file (found under arma 2 operation arrowhead\logs folder). It will show ALL MySQL queries going in/out of the database. Very useful if you are running any custom SQL queries and the RTP log file isn't enough.
      Final Notes
      These are heavily modified files...Dont overwrite them with your own files. Add to them instead of replacing them.
      If you are writing scripts that dont require the server to restart, then you can just go to 2D editor and press Preview again after you make the changes. No need to hit Restart. As long as you are doing changes that doesnt affect the Hive loading you can basically run things on the fly. For example in the init.sqf at the bottom i added a Add BankMonkey example. That command just loads the custom\money.sqf and shows a simple extDB3 example on how to select/update a DB table. Since this command doesnt require the server to restart, you can just hit Preview, test things out, and if you want to make changes, go back to 2D Editor, edit your changes in the money.sqf file and hit Preview again. No need to hit Restart and wait for the dayz_server functions to do their thing again.
      The whole purpose of this project was to not waste any more time trying to code on this god forsaken Arma engine.
      And a personal note....You will NEVER find an easier way to code stuff for Dayz....period. This is the fastest way to write code and see it in action.

      Hope this code will help you write code faster and easier !
      ### Credits
      This mission file would not be possible without the help of these addons/people

      DayzEpochTeam | http://epochmod.com
      killzonekid | http://killzonekid.com
      extDB3 | https://bitbucket.org/torndeco/extdb3/wiki/Home
      ebayShopper | https://github.com/ebayShopper/TestKit
      JasonTM (for the latest beta AdminTools)| https://epochmod.com/forum/topic/44863-release-epoch-admin-tools-v-1107-test-branch/
    • By JakeQue
      Hi, me again.
       
      For some reason when i spawn in and collect coins or loadout the next time i disconnect and come back it puts me back into spawn and money is all disappeared. 

      There's no hive errors.
      The only error in the Server RPT is :
      And I have 2 errors in my client RPT. Looks like they relate to zsc but I have reinstalled it from scratch and still the same.
      and 
       
      Sorry to be such a noob with this one!!
  • Advertisement
  • Supporters
  • Discord

×
×
  • Create New...