Jump to content
Search In
  • More options...
Find results that contain...
Find results in...

SpiceyWolf

Members
  • Posts

    142
  • Joined

  • Last visited

    Never

Posts posted by SpiceyWolf

  1. Well there are no other genders in existence except for Male and Female. If you wanted to add another sex type the only thing left really logically would be None for robots or plants or something(Genderless). Gay is a sexual preference… really if sexual preference is something youd honestly want as a character creation feature you should make a completely new system revolving around it cause it really wouldnt contribute much to gameplay adding it to sex constants aside from comedic break at character creation xD
  2. Why are you making a check for map moral on this? Its one easier, and 2 more efficient / harder to screw up or cause bugs if you make it time based logouts anywhere, liek 10 seconds without interuption by any character interaction. the Camp on Everquest could be a good reference to a simple design.
  3. In .net vs VB6 there are MANY differences bro xD its more of a similar syntax deal. Not exactly the same but close enough the IDE usually kinda tells you how to fix it. However as far as the vb6 engines went, they called alot of API features which in .net you mostly want to avoid doing at all costs as they dont function properly. A big reason why they dont work is most of the time that the API functions were called they registered the type requirement as "any" which .net will not accept. Most of how Eclipse engines or mirage for that matter all run heavily weaved with API functions to gain power and features that vb6 otherwise would never be capable of. Aside from getting past what it doesnt have, or rather will not work with, there are alot of things youll need to learn like exception handeling ->

    Try

    Catch

    End Try

    and other things because alot of code in .net is kept pretty sensitive to the types past in. Everything needs to be exact so you either have to do alot of work keeping track of what is what so nothing cross contaminates OR having alot of exception handlers(which the main difference between those 2 options is speed and readability vs ease of programming and cluttered mess.)

    Aside if you stay determined i guarentee itll be a worthy accomplishment, an enjoyable learning journey, and youll have a great program for building you game in that will have pretty much microsofts lifespan support.

    Some tips: Look into pre-made network libraries like networkComms, netcomm, Lidgren, or other things you can find around google. Its okay to learn the string based packet sending and reading, but recommended in something you plan to keep and use, figure out how to make this work under byteconversions.

    also choose between opengl or directx9, those will be what most benefit you for a 2d engine in .net.

    If your not worried about the players hassle getting the game up and running… you can always look into vb.net xna support... that will have alot of premade game development libraries(including some for networking i believe)

    know that in .net your types would be structures or classes, where whichever you choose to use doesnt really matter - By default structures are public, classes are private but they can each be the opposite as well.

    last tip: avoid COM libraries at all costs, use them and youve just downgraded your project and added requirements for use by the player(which are only 2 bad sides so it does not help at all)

    EDIT:

    Forgot to mention that using COM libraries will also make you lose cross-platform compatability support(Mono, or other .net crossplatform supported IDE's cant use COM on OS's such as Linux or Mac)
  4. @MrMiguu Lol I have always wanted a jump system since the elysium diamond days, and a good friend working on a mario fan game explained how it is done(at least his method for doing it in eclipse stable) and I just kinda took that idea and went from there on EO(took some learning how the engine actually worked, as far as the networking went cause it was a difficult concept for me to understand)

    At any rate though xD Id finally made a Jump system, even though it isnt perfect and figured HEY Ill make a tutorial to tell everyone how to add it(granted they may want to improve on it) so at least its not some super huge mystery anymore :) And Ive never relied on scripts xD always hated them.
  5. Its a client sided animation, the only reason theres interaction with the server is to tell other people that you jumped… YOffset is used to determine stuff with moving between the tiles so your not just teleporting around the tiles... (YOffset is used for pixel movement between tiles in various directions) and so its the server telling the client to animate the yOffset moving up and down with a lack of walking animation to appear jumping.

    Best methods for making a jump system (probably only way I dont know) is to make the appearance of jumping that while the player is jumping a variable is active that other things in the engine can interact with that variable to give basicly the feel of the character ACTUALLY jumping.

    @ModMatt, thats why its not TempPlayerRec cause its client side stuff... if u used the server end to keep track then it would be heavy on the network...

    @Zopto, I havent looked in project vertigo xD I just made this on my own referencing how playermovement worked..

    @Kazuto, This systems appearance is like the character(without animation) slides straight up exactly one tile... although it is buggy looking if you try moving at the same time(unless going left or right then  it looks perfect... could use with some conditioning for moving up or down to fix the buggy look but this is all i needed to at least create a jump system for a buddy) After the player moves straight up, 1 tile space, it moves back down. The character itself isnt actually moving, its just the picture for his character moving up in correlation to where hes actually standing to appear jumping(Uses gameloop as the timer for moving)

    Any other questions or comments community?
  6. Okay, I built this inside of Eclipse Final Frontier, but it doesnt use direct X so should work on any version of EO(Crystal Shire and Mirage Source 4 variations as well)

    Now before we get started I WILL Note, that this is not perfect… took me a long time to develop this cause I had no Idea what I was doing but managed to figure it out xD Anyone experienced here probably could have done this on their own, but I haven't seen anything posted before :)

    Client Side:

    Find your PlayerRec type and add this at the bottom:

    ```
    'Jumping
    IsJumping As Long
    IsFalling As Long
    JumpY As Long 
    ```
    Find Call ProcessMovement and put this RIGHT below that line

    ```
    If Player(I).IsJumping = 1 Then
    If GetPlayerMap(I) = GetPlayerMap(MyIndex) Then
    Call ProcessJumping(I)
    End If
    Else
    Player(I).JumpY = 0
    End If

    ```

    Find Sub ProcessMovement and right above the sub add this:

    ```
    Sub ProcessJumping(ByVal Index As Long)
    If Player(Index).IsJumping = 1 And Player(Index).IsFalling = 0 Then
    If (Player(Index).JumpY >= 32) Then
    Player(Index).JumpY = 32
    Player(Index).IsFalling = 1
    Else
    Player(Index).JumpY = Player(Index).JumpY + 4
    Player(Index).YOffset = Player(Index).YOffset - 4
    End If
    ElseIf Player(Index).IsFalling = 1 Then
    If (Player(Index).JumpY <= 0) Then
    Player(Index).JumpY = 0
    Player(Index).IsFalling = 0
    Player(Index).IsJumping = 0
    Player(Index).YOffset = 0
    Else
    Player(Index).JumpY = Player(Index).JumpY - 4
    Player(Index).YOffset = Player(Index).YOffset + 4
    End If
    End If
    End Sub

    ```

    Above Sub SendPlayerMove add this:

    ```
    ]Public Sub SendPlayerJump()
    Dim buffer As clsBuffer

    Set buffer = New clsBuffer
    buffer.WriteLong CPlayerJump
    buffer.WriteLong MyIndex
    buffer.WriteLong Player(MyIndex).IsJumping
    SendData buffer.ToArray()
    Set buffer = Nothing
    End Sub

    ```

    Put SPlayerJump and CPlayerJump right below SPlayerMove and CPlayerMove…

    Find HandleDataSub(SPlayerMove) = GetAddress(AddressOf HandlePlayerMove)

    and add this under it:

    ```
    HandleDataSub(SPlayerJump) = GetAddress(AddressOf HandlePlayerJump)
    ```

    at the bottom of modHandleData put this:

    ```

    Private Sub HandlePlayerJump(ByVal Index As Long, ByRef data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)
    Dim I As Long
    Dim buffer As clsBuffer

        Set buffer = New clsBuffer
        buffer.WriteBytes data()
        I = buffer.ReadLong
        Player(I).IsJumping = buffer.ReadLong

    End Sub
    ```

    THIS PART IS A LITTLE TRICKY! you can set a button to call this, or use vbkey to call it, doesnt matter how you do it… just find a method of how u want to call the jump and put this code in it:
    ```

    Player(MyIndex).IsJumping = 1
            SendPlayerJump
    ```

    THATS IT FOR CLIENT SIDE!

    Server Side:

    Go ahead and add the Enum's back just the same way(SPlayerMove and CPlayerMove remember?)

    Find HandleDataSub(CPlayerMove) = GetAddress(AddressOf HandlePlayerMove)

    and add this under:

    ```

    HandleDataSub(CPlayerJump) = GetAddress(AddressOf HandlePlayerJump)
    ```

    Put this at the bottom of modHandleData:

    ```

    Sub HandlePlayerJump(ByVal index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)
        Dim I As Long
        Dim buffer As clsBuffer

        Set buffer = New clsBuffer
        buffer.WriteBytes Data()

        I = buffer.ReadLong
        Player(I).IsJumping = buffer.ReadLong

        SendPlayerJump I

    End Sub
    ```

    Find Sub SendPlayerMove and add this above:

    ```

    Sub SendPlayerJump(ByVal index As Long)    Dim buffer As clsBuffer

        Set buffer = New clsBuffer
        buffer.WriteLong SPlayerJump
        buffer.WriteLong index
        buffer.WriteLong Player(index).IsJumping

        SendDataToMapBut index, GetPlayerMap(index), buffer.ToArray()
        Set buffer = Nothing
    End Sub
    ```

    and last: Put this at the bottom of PlayerRec:

    ```
    'Jumping
    IsJumping As Long

    ```

    This by itself just makes the player jump… If you want this jump to interact with the world in various ways, just do call checks for 

    If Player(index).IsJumping = True -> In order to allow that interaction. This will force the player to be in jumping in order to do the interaction :) Any questions I'd be happy to answer. any support needed I'll do my best to give!
  7. Dunno if any of you are familiar with Guildwars, but GW has a system where all towns show all the players on that map, and you only go into a private instance when you leave the safe zones…(sorta like a map moral would change whether its a private instance or public) is there anyway to modify this to do that? also i havent tested yet, but does this make a new map pack for every player or something? or does it just make a temp private instance per player within that actual map of the mappack?
  8. > What i mean is.. like if you do VB6 like this
    >
    > ```
    > Public Sub Things(Byval BlahBlah As Boolean)
    >   If BlahBlah = True Then
    >       Call BlahBlah 
    >   Else
    >       Call OtherThings
    >   End if
    > End if
    >  
    > Public Sub BlahBlah()
    >    Unload frmMain
    >    End
    > End Sub
    >
    > ```
    > then .NET is also the same?

    The only difference between that code and the .net equivalence is you wouldn't do Unload frmMain, you'd have to use frmMain.Hide because unload isn't a function built into .net!
  9. > It'd be nice to have a new language on the table of available engines. Though if you're as experienced with VB.net as you say, couldn't you make it yourself? :P

    Actually Im debating it right now xD If I cant convince JC to save me some time xD
  10. For anyone interested… I will have EO2 converted to .net soon. I'll keep it in .net 4.0 I suppose for backward compatability (Win XP and such).

    I'm currently at the very end of what I need to be to give an engine. It will still have parts of vb6 in there... but at least itll work in .net. Currently all thats left to do is fix a problem with loading the frmMain(client side) and frmServer(server side).

    This will be an OPEN SOURCE release so when conversion is done, people feel free to tear in and start making replacements of the vb6 engines :)
  11. If / when there is a vb.net engine available you shouldnt worry about ever losing support with it. C# is Microsofts baby, it will be alive as long as microsoft is, and even though they may not use it, alot of C# developers that keep the language alive with microsoft support the existance and portability of vb.net as well so it will last right along side :)
  12. If you want a decent vb6 engine with SQL support, look into vbgore or greentail.aside youd be left with going without whatever said feature your looking for or grabbing a custom engine so you may program. Observing the code and misc. tutorials online for certain things should give you an idea how coding works so you may begin your own career as a programmer :)
  13. This is why we need a version in VB.net ;) GUI is always a draw the translation but as far as general text… .net can autohandle translations if you tell it to xD
  14. lol Orcywoo… i havent used EO 4.0 only peeked at it, but unless it has a built in class editor(from client side admin tools) with an option, or when you open the class files server sided txt files(it would have something that says locked= 0) then it doesnt have an ability to lock classes.
×
×
  • Create New...