Sirvoid's Survival Mod !

Hey everyone ! I did a modification of the ClassicalSharp Client.

I added things for the Survival Test mode

  • PvE and PvP

  • Fall Damage

  • Inventory

  • Chests

  • A crafting system with some small crafts

  • And more !

That's still a work in progress , I'm doing that for fun and I wanted to show you guys what I did ! ^^

Server : Sirvoid's Modded Survival Server [v0.6.0]


Tutorial by Tommy100

--------Downloads:--------

Source Code

ClassicalSharp (Client Only):

Download This and the DirectX or OpenGl version of the mod there :

OpenGL Build

DirectX Build (Recommended for windows)

--------------------------------

Video demonstration of the chests: https://youtu.be/3RA52BGjYl8

For any Feature Request/Bug/Crash please report it here


Updates:

(0.6.1)

-Doors & Trapdoors now working propely in multiplayer.

-No more chest corruptions in multiplayer.

-Others small bug fix.

(0.6.0)

-Added Chests.

-Chests are saved locally in singleplayer and on the server in multiplayer.

-Added the possibility to move 1 block at a time in the inventory.

-Added Bookshelves and chest craft.

(0.5.0)

-Inventory Save (Save localy in singleplayer and on the server in multiplayer).

-iron and diamond tools.

-A new better inventory and Crafting GUI.

-The tools durability are now like the indev version.

-Changed a bit the map gen.

-Added Stone Brick craft.

-Bug Fixes with the inventory.

(0.4.3)

-Added PvP Support for the client. (Is working only on my server)

(0.4.2)

-Client-sided mobs are disabled on servers (I added server-sided mobs on my server)

-Doesn't need to put game-survivalmode=true in your option.txt file anymore.

(0.4.1)

-Added Wood and Stone Sword , Axe and Shovel.

-Temporarily removed the death message due to a bug.

-Bug fixes.

(0.4.0)

-Added Door

-Added TrapDoor

-Added Ladder

-Inventory slots are now limited to 27

(0.3.0)

-Added Diamond Ore & Diamond Block.

-Change some things in the map generator (Added diamond ore to the map generator too).

-No longer need to reopen the inventory or the crafting gui everytime you move a block inside them.

-Added stick craft.

-Added Wood and Stone Pick Craft.

-With a pick you break block faster and you deal more damage.

-Pick have durability (Wood = 60 , Stone = 132).

-Monster now have different hp.

-Monster now have different Damage.

-Fix bugs

(0.2.1)

-Sneak (Work in Creative too)

-Entity Limit

DaMiningBoyAlpha Fri May 5 at 3:08:24 (2017)

Sweet!

Kingoscargames1 Fri May 5 at 9:26:11 (2017)

is it safe to login?

Yes I didn't compile the launcher that's only ClassicSharp so you need to apply these files to your Classicube.

UnknownShadow200 Fri May 5 at 22:28:56 (2017)

Doesn't necessarily make it safe. The modified version that decrypted and uploaded passwords modified the client while leaving the launcher untouched.

Sigh So is there any way to publish a compiled Classical Sharp client that is truly secure to the user? Because some people doesn't have knowledge in compiling things.

ok?

I can't craft anything! How do you craft items?

Tag365 posted:

I can't craft anything! How do you craft items?

Check The Vid , i think that'd help.

--

also , this is awesome. :o i won't have you rush into things but if you could kind of optimize it (ish , sort of?) i dunno , just when i look at the enemies my fps goes down alot > . <

edit: wait , hold on i know this isn't finished. not implying it is finished. just saying xD

hey thats pretty good!

RinLen posted:

Check The Vid , i think that'd help.

--

also , this is awesome. :o i won't have you rush into things but if you could kind of optimize it (ish , sort of?) i dunno , just when i look at the enemies my fps goes down alot > . <

edit: wait , hold on i know this isn't finished. not implying it is finished. just saying xD

That's strange I don't have this problem.

On what system are you ?

EDIT: I Added the link to a directX build (recommended for windows)

Miguel2004 posted:

hey thats pretty good!

Thanks ! ^^

np i just LOVE your mod just EPIC and PERFECT i dont have words good job!

Anyways this is cool!

But when usesound=True the game crashes after a couple of seconds. :( edit: Nevermind it dosn't happen anymore.

Update 0.4.0 :

-Added Door

-Added TrapDoor

-Added Ladder

-Inventory slots are now limited to 27

sirvoid posted:

That's strange I don't have this problem.

On what system are you ?

EDIT: I Added the link to a directX build (recommended for windows)

I'm on windows 7 ,was it an OpenGl build that you first uploaded?. glad to see a link to a direct X build :3 will test the Direct X build soon (currently on my linux OS. testing the speeds of classicube on this 2.2 gb os vs 1.X gb win7 xD )

2 errors and a chrash:

=== handled error === Occured when: AudioPlayer.PlayCurrentSound() System.InvalidOperationException: 5 at PrepareHeader (The specified device handle is invalid.) bij SharpWave.WinMmOut.CheckError(UInt32 result, String func) bij SharpWave.WinMmOut.UpdateBuffer(Int32 index, AudioChunk chunk) bij SharpWave.WinMmOut.PlayRawAsync(AudioChunk chunk) bij ClassicalSharp.Audio.AudioPlayer.PlaySound(IAudioOutput output)

=== handled error === Occured when: AudioPlayer.PlayCurrentSound() System.InvalidOperationException: 33 at Write (Cannot perform this operation while media data is still playing. Reset the device, or wait until the data is finished playing.) bij SharpWave.WinMmOut.CheckError(UInt32 result, String func) bij SharpWave.WinMmOut.UpdateBuffer(Int32 index, AudioChunk chunk) bij SharpWave.WinMmOut.PlayRawAsync(AudioChunk chunk) bij ClassicalSharp.Audio.AudioPlayer.PlaySound(IAudioOutput output)

=== crash occurred === Time: 7-5-2017 14:01:59 Running on: .NET 2.0.50727.8745, Windows - 6.2.9200.0 System.IndexOutOfRangeException: De index ligt buiten de matrixgrenzen. bij ClassicalSharp.Map.World.GetBlock(Int32 x, Int32 y, Int32 z) bij ClassicalSharp.Entities.LocalPlayer.HandleInput(Single& xMoving, Single& zMoving) bij ClassicalSharp.Entities.LocalPlayer.Tick(Double delta) bij ClassicalSharp.Entities.EntityList.Tick(ScheduledTask task) bij ClassicalSharp.Game.DoScheduledTasks(Double time) bij ClassicalSharp.Game.RenderFrame(Double delta) bij ClassicalSharp.DesktopWindow.OnRenderFrame(FrameEventArgs e) bij OpenTK.GameWindow.RaiseRenderFrame(Stopwatch render_watch, Double& next_render, FrameEventArgs render_args) bij OpenTK.GameWindow.Run() bij ClassicalSharp.Program.Main(String[] args)

-- Using Direct3D9 api -- Adapter: Intel(R) HD Graphics 520 Mode: HardwareVertexProcessing Texture memory: 4093 MB Max 2D texture dimensions: 8192 Depth buffer format: D24X8 Back buffer format: X8R8G8B8

edit: i have a other chrash but its written in dutch so i didn't post it.

and it also chrashed a couple of times when respawning but it wasn't saved in the client.log file.

RinLen posted:

I'm on windows 7 ,was it an OpenGl build that you first uploaded?. glad to see a link to a direct X build :3 will test the Direct X build soon (currently on my linux OS. testing the speeds of classicube on this 2.2 gb os vs 1.X gb win7 xD )

Yes that was a OpenGL that I upload first , I hope you will get better performance with the DirectX build ^^

Kingoscargames1 posted:

2 errors and a chrash:

=== handled error === Occured when: AudioPlayer.PlayCurrentSound() System.InvalidOperationException: 5 at PrepareHeader (The specified device handle is invalid.) bij SharpWave.WinMmOut.CheckError(UInt32 result, String func) bij SharpWave.WinMmOut.UpdateBuffer(Int32 index, AudioChunk chunk) bij SharpWave.WinMmOut.PlayRawAsync(AudioChunk chunk) bij ClassicalSharp.Audio.AudioPlayer.PlaySound(IAudioOutput output)

=== handled error === Occured when: AudioPlayer.PlayCurrentSound() System.InvalidOperationException: 33 at Write (Cannot perform this operation while media data is still playing. Reset the device, or wait until the data is finished playing.) bij SharpWave.WinMmOut.CheckError(UInt32 result, String func) bij SharpWave.WinMmOut.UpdateBuffer(Int32 index, AudioChunk chunk) bij SharpWave.WinMmOut.PlayRawAsync(AudioChunk chunk) bij ClassicalSharp.Audio.AudioPlayer.PlaySound(IAudioOutput output)

=== crash occurred === Time: 7-5-2017 14:01:59 Running on: .NET 2.0.50727.8745, Windows - 6.2.9200.0 System.IndexOutOfRangeException: De index ligt buiten de matrixgrenzen. bij ClassicalSharp.Map.World.GetBlock(Int32 x, Int32 y, Int32 z) bij ClassicalSharp.Entities.LocalPlayer.HandleInput(Single& xMoving, Single& zMoving) bij ClassicalSharp.Entities.LocalPlayer.Tick(Double delta) bij ClassicalSharp.Entities.EntityList.Tick(ScheduledTask task) bij ClassicalSharp.Game.DoScheduledTasks(Double time) bij ClassicalSharp.Game.RenderFrame(Double delta) bij ClassicalSharp.DesktopWindow.OnRenderFrame(FrameEventArgs e) bij OpenTK.GameWindow.RaiseRenderFrame(Stopwatch render_watch, Double& next_render, FrameEventArgs render_args) bij OpenTK.GameWindow.Run() bij ClassicalSharp.Program.Main(String[] args)

-- Using Direct3D9 api -- Adapter: Intel(R) HD Graphics 520 Mode: HardwareVertexProcessing Texture memory: 4093 MB Max 2D texture dimensions: 8192 Depth buffer format: D24X8 Back buffer format: X8R8G8B8

edit: i have a other chrash but its written in dutch so i didn't post it.

and it also chrashed a couple of times when respawning but it wasn't saved in the client.log file.

On what system are you and when and how are you getting these crash ?

i am using windows 10 sometimes when i load/generate a world it gives me a error message that the sounds dont work or something and then when i am breaking blocks it sometimes chrashes.

also sometimes after respawning the game just stops working and doesnt save a chrash log.

another chrash (written in dutch):

=== crash occurred === Time: 7-5-2017 14:05:09 Running on: .NET 2.0.50727.8745, Windows - 6.2.9200.0 System.AccessViolationException: Poging tot het lezen of schrijven van beveiligd geheugen. Dit duidt er vaak op dat ander geheugen is beschadigd. bij SharpDX.Direct3D9.Device.SetTexture(Int32 stage, Texture texture) bij ClassicalSharp.GraphicsAPI.Direct3D9Api.BindTexture(Int32 texId) bij ClassicalSharp.Gui.Screens.ChatScreen.RenderRecentChat(DateTime now, Double delta) bij ClassicalSharp.Gui.Screens.ChatScreen.Render(Double delta) bij ClassicalSharp.Gui.Screens.HudScreen.Render(Double delta) bij ClassicalSharp.GuiInterface.Render(Double delta) bij ClassicalSharp.Game.RenderFrame(Double delta) bij ClassicalSharp.DesktopWindow.OnRenderFrame(FrameEventArgs e) bij OpenTK.GameWindow.RaiseRenderFrame(Stopwatch render_watch, Double& next_render, FrameEventArgs render_args) bij OpenTK.GameWindow.Run() bij ClassicalSharp.Program.Main(String[] args)

-- Using Direct3D9 api -- Adapter: Intel(R) HD Graphics 520 Mode: HardwareVertexProcessing Texture memory: 4093 MB Max 2D texture dimensions: 8192 Depth buffer format: D24X8 Back buffer format: X8R8G8B8

Sirvoid , i found a bug on the Direct X build of it when i was on the newblood MAP server , i was talking to rockman and this mess happened:

http://i.imgur.com/TGBZGXz.png

Update:

this may or may not be the Direct X's Clients fault but --- when i died to a creeper on Newblood MAP spawn. it seems to have crashed my graphics card so bad that i had to restart . o . i do not know if this is because of something on the code or. . . ?

Ok I really need to found the problems with respawning. ^^"

Kingoscar seem to have problem with that too and I saw weird things too.

I'm going to check that tomorrow (currently 22:55 for me) but thanks for the report !

Kingoscargames1 Mon May 8 at 6:19:40 (2017)

another crash i got:

=== crash occurred === Time: 8-5-2017 08:05:23 Running on: .NET 2.0.50727.8745, Windows - 6.2.9200.0 System.NullReferenceException: De objectverwijzing is niet op een exemplaar van een object ingesteld. bij ClassicalSharp.Particles.ParticleManager.TickParticles(Particle[] particles, Int32& count, Double delta) bij ClassicalSharp.Particles.ParticleManager.Tick(ScheduledTask task) bij ClassicalSharp.Game.DoScheduledTasks(Double time) bij ClassicalSharp.Game.RenderFrame(Double delta) bij ClassicalSharp.DesktopWindow.OnRenderFrame(FrameEventArgs e) bij OpenTK.GameWindow.RaiseRenderFrame(Stopwatch render_watch, Double& next_render, FrameEventArgs render_args) bij OpenTK.GameWindow.Run() bij ClassicalSharp.Program.Main(String[] args)

-- Using Direct3D9 api -- Adapter: Intel(R) HD Graphics 520 Mode: HardwareVertexProcessing Texture memory: 4093 MB Max 2D texture dimensions: 8192 Depth buffer format: D24X8 Back buffer format: X8R8G8B8

also , i notice slight delay of the hitmob sounds when i have something running in the background. but that is prolly just me, not the client. thought this would be something to report to the least :O

The sound system is something I'm probably going to redo anyway ^^

since I have nothing else to do , i might aswell try to see if these work on linux (Gonna Test VIA Mono & wine) last time i tried mono , it just seems to have crash , Fam0r and Ohboy seem to have their attempts at getting it to work on mono aswell. so for now, wine it is :P

another chrash: === crash occurred === Time: 10-5-2017 20:58:31 Running on: .NET 2.0.50727.8745, Windows - 6.2.9200.0 System.IndexOutOfRangeException: De index ligt buiten de matrixgrenzen. bij ClassicalSharp.Map.World.GetBlock(Int32 x, Int32 y, Int32 z) bij ClassicalSharp.Entities.LocalPlayer.HandleInput(Single& xMoving, Single& zMoving) bij ClassicalSharp.Entities.LocalPlayer.Tick(Double delta) bij ClassicalSharp.Entities.EntityList.Tick(ScheduledTask task) bij ClassicalSharp.Game.DoScheduledTasks(Double time) bij ClassicalSharp.Game.RenderFrame(Double delta) bij ClassicalSharp.DesktopWindow.OnRenderFrame(FrameEventArgs e) bij OpenTK.GameWindow.RaiseRenderFrame(Stopwatch render_watch, Double& next_render, FrameEventArgs render_args) bij OpenTK.GameWindow.Run() bij ClassicalSharp.Program.Main(String[] args)

-- Using Direct3D9 api -- Adapter: Intel(R) HD Graphics 520 Mode: HardwareVertexProcessing Texture memory: 4093 MB Max 2D texture dimensions: 8192 Depth buffer format: D24X8

Kingoscargames1 posted:

another chrash: === crash occurred === Time: 10-5-2017 20:58:31 Running on: .NET 2.0.50727.8745, Windows - 6.2.9200.0 System.IndexOutOfRangeException: De index ligt buiten de matrixgrenzen. bij ClassicalSharp.Map.World.GetBlock(Int32 x, Int32 y, Int32 z) bij ClassicalSharp.Entities.LocalPlayer.HandleInput(Single& xMoving, Single& zMoving) bij ClassicalSharp.Entities.LocalPlayer.Tick(Double delta) bij ClassicalSharp.Entities.EntityList.Tick(ScheduledTask task) bij ClassicalSharp.Game.DoScheduledTasks(Double time) bij ClassicalSharp.Game.RenderFrame(Double delta) bij ClassicalSharp.DesktopWindow.OnRenderFrame(FrameEventArgs e) bij OpenTK.GameWindow.RaiseRenderFrame(Stopwatch render_watch, Double& next_render, FrameEventArgs render_args) bij OpenTK.GameWindow.Run() bij ClassicalSharp.Program.Main(String[] args)

-- Using Direct3D9 api -- Adapter: Intel(R) HD Graphics 520 Mode: HardwareVertexProcessing Texture memory: 4093 MB Max 2D texture dimensions: 8192 Depth buffer format: D24X8

Thanks for the crash reports but please next time report it on github (here: https://github.com/Sirvoid/Sirvoid-s-Survival-Test-ClassicalSharp-/issues) to prevent this topic to be flooded with crash reports lol

RinLen posted:

since I have nothing else to do , i might aswell try to see if these work on linux (Gonna Test VIA Mono & wine) last time i tried mono , it just seems to have crash , Fam0r and Ohboy seem to have their attempts at getting it to work on mono aswell. so for now, wine it is :P

I'm not going to be able to help you. I don't have any computer running on linux.

Ok sorry XD

sirvoid posted:

Thanks for the crash reports but please next time report it on github (here: https://github.com/Sirvoid/Sirvoid-s-Survival-Test-ClassicalSharp-/issues) to prevent this topic to be flooded with crash reports lol

I'm not going to be able to help you. I don't have any computer running on linux.

Don't worry , i have my ways, and if nothing really works, then bad luck for linux users i guess.

Kingoscargames1 posted:

Ok sorry XD

Np :p

RinLen posted:

Don't worry , i have my ways, and if nothing really works, then bad luck for linux users i guess.

I hope something is going to work ^^'

so far, Survival Test seems to run perfectly fine on Linux on Singleplayer [mono], though it crashes on multiplayer. will check out wine soon to see if it gets the same results

RinLen posted:

so far, Survival Test seems to run perfectly fine on Linux on Singleplayer [mono], though it crashes on multiplayer. will check out wine soon to see if it gets the same results

Ok if it don't work and you have a crash log send me it , maybe I could find a solution

sirvoid posted:

Ok if it don't work and you have a crash log send me it , maybe I could find a solution

https://github.com/Sirvoid/Sirvoid-s-Survival-Test-ClassicalSharp-/issues/1

this crash was taken from the client.log as it reported to me when i tried to join a server

RinLen posted:

https://github.com/Sirvoid/Sirvoid-s-Survival-Test-ClassicalSharp-/issues/1

this crash was taken from the client.log as it reported to me when i tried to join a server

I replied https://github.com/Sirvoid/Sirvoid-s-Survival-Test-ClassicalSharp-/issues/1

I can't do anything it seem to be a problem when you compiled it with Mono :s

sirvoid posted:

I replied https://github.com/Sirvoid/Sirvoid-s-Survival-Test-ClassicalSharp-/issues/1

I can't do anything it seem to be a problem when you compiled it with Mono :s

hmm... okay , Put mono aside and going to test out Wine Soon. :O if wine either works or not , i will get back to trying to get it to work with mono. weird enough it runs singleplayer well though. but will look into that aswell :/

UPDATE:

ehh , wine gets the same result as mono , works fine on single player. Crashes on multiplayer with a line of error: System.InvalidOperationException: You must compile ClassicalSharp with MonoCS defined to run on Mono, due to a limitation in Mono.

(. w . """) time to look up mono compiling tutorials.

UPDATE 2: on mono its giving me errors about not being able to locate Skeleton_hurt.ogg on /home/rinlen/audio/ , i do not know why its trying to find it there when its just in the audio folder in the executables loacation. also , linux users can use wine to play survival test singleplayer

Hm that's weird. I can not help you for that .. I don't know how things work on linux. I can't understand why it is trying to find the audio files there ...