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

Richy420Rich

Members
  • Posts

    904
  • Joined

  • Last visited

    Never

Posts posted by Richy420Rich

  1. People care too much about the stats instead of just going for the victory. It's truly 1 vs 9\. 5 of the enemy for objective, and the 4 on your team fighting for statitistics over each other. There's so many fights that could be won if only that *clean up guy* actually went in the same time. Team fights mean team fights… Not 4v5 while a guy waits for stats.

    Another issue is focus, not many know to try to bypass the tanks to focus the adc/supp/mid first, even I failed at this in quite a few games where the tank would just be all up in my face, but my 4 team mates would focus the same dude that is focusing me, why? lol focus the weaker, deadlier ones.

    There's no Lebron James if there's not 4 other players opening the lanes for him to carry. Feel free to give a kill to the guy that gave you 20-0 and he might take you to the finals. <3
  2. May it be better than a Warwick, sitting behind the enemy while you're going for the kill, he launches a bite and bam, enemy is dead and the system decided to (assist = assist + 1) instead of (kill = kill + 1) on your card.
  3. Anyone else trying to download this; simply remove /community/ from the URL.

    [http://eclipseorigins.com/Eclipse%20Worlds.zip](http://eclipseorigins.com/Eclipse%20Worlds.zip)

    Or until Seth updates the post.
  4. > this game looked so good! looks like a game that could of got a lot of people, why would he wuit when he got so far!

    Lol if you knew VB6; You'd also know that games made in VB6 will not hold many players. The server requires ALOT of CPU to keep things smooth.

    It was just not him that quit; I lost interest and quit as well. We agreed to close it down as we were not attracting as many people as we did during Ambardia Classic.

    (The irony of games that nobody plays when the servers on but questions and cries when the server is down)
  5. True, I really don't like losing items on death, I'd rather there be k/d stat keeping, with the option to reset them with in-game currencies or otherwise.

    There is many ways to sell without making a game pay2win though, all about giving the players the illusion that they're getting something worth.

    Time is harder to obtain than money, and if a player can't spend the time and if they really want something in your game, then they'll spend the money.
  6. A strategy to selling in-game items that aren't cosmetic is to sell bulk items that are "more time consuming" to get in the game. So in essence it can be choiced whether a player wants to spend the time, or the money. From the very little that I play, I feel this has been for quite some time.

    Need gold? Buy a bulk of that shit.

    Need 500 rabbit fur for that legendary rabbit suit? Buy a bulk of that shit!
  7. Yes that spot is correct. You'd put another conditional check for the Random Variable after the 'Else' of the Variable conditional.

    I'd like to think you'd just use 'Begin Quest' or 'End Quest' event commands, instead of conditional checking a quest, I might be wrong though… I'm not that fluent with the event system.

    Dungeon Master knows more about quest eventing than I do... :P
  8. So in actuality, this may be better to be added for games that are already well-built in content, rather than games just starting out. :)

    Because once all the data is cached at server startup, it won't eat any more CPU (unless content was changed/added).
  9. @[member="Marsh"] All of the data gets cached before it gets compressed and sent, so there shouldn't be no small packets.

    @J. Black whenever an item/npc - etc; gets changed and saved from the client editors, it sends the changed data to the server to be saved, on the server end, it saves the data and then it calls for an entire re-cache to include the changes. This con can be primarily due to server spikes when *constantly* messing around with client editors, as it re-iterates 'For Loops' whenever something is saved/changed.

    ```

    Public Sub ItemsCache_Create()

    Dim Buffer As clsBuffer, itemnum As Long
    Dim ItemSize As Long
    Dim ItemData() As Byte

        Set Buffer = New clsBuffer

        For itemnum = 1 To MAX_ITEMS 'Re-iteration everytime an item is saved…
            If Len(Trim$(Item(itemnum).Name)) > 0 Then 'Should not send null/empty data.
            ItemSize = LenB(Item(itemnum))
            ReDim ItemData(ItemSize - 1)
            CopyMemory ItemData(0), ByVal VarPtr(Item(itemnum)), ItemSize
            Buffer.WriteLong itemnum
            Buffer.WriteBytes ItemData
            End If
        Next

        Buffer.CompressBuffer
        AllItemsCache.Data = Buffer.ToArray 'Buffers entire cache for its packet sending.
        Set Buffer = Nothing
    End Sub
    ```
    I'll follow up and say when you have constants like this:

    ```

    Public Const MAX_ITEMS = 2000
    Public Const MAX_NPCS = 1000
    Public Const MAX_ANIMATIONS = 500
    Public Const MAX_QUESTS = 1000
    Public Const MAX_SPELLS = 255
    Public Const MAX_BOOKS = 255
    Public Const MAX_SHOPS = 255
    Public Const MAX_RESOURCES = 255

    ```
    And a Sub JoinGame(index) doing this:

    ```

    SendItems index
    SendNpcs index
    SendAnimations index
    SendQuests index
    SendSpells index
    SendBooks index
    SendShops index
    ```
    And if all or alot of this data is used up (primarily speaking for long term games, such as Ambardia was....)

    You'd be sending upto...

    **5520 individual packets…**

    Caching and compressing turns 5520 individual packets, into 7 packets.
  10. Pros

    Map cache compression is probably the best thing really worth having. As Rob pointed out, compressing is very good with the map data.

    This ends sending X amount of packets as a vanilla would iterate and send the data as individual packets, caching and sending the cache only requires one compressed packet.

    Example of what a vanilla does:

    ```

    Sub SendItems(index)
    Dim i as long

    For i = 1 To MAX_ITEMS
    SendItemUpdateTo(index) 'Sends each item data separately
    Next

    End Sub
    ```
    Example of what this will do:

    ```

    Sub SendAllItems(ByVal index As Long)

        Dim Buffer As clsBuffer
        Set Buffer = New clsBuffer
        Buffer.WriteLong SAllItems
        Buffer.WriteBytes AllItemsCache.Data 'Sends the entire cache as 1 packet.
        SendDataTo index, Buffer.ToArray()
        Set Buffer = Nothing

    End Sub
    ```
    Cons

    Caching Items/Npcs & etc; still goes through 'For Loop' iterations on the server after each update made to said data, as they need to be re-cached.
  11. Hello, I figured I would release this under the credits of Robin and jcsnider.

    What is it?

    zlib API utilizes packet compression and decompression, ya'know those tons of packets you send from the server when a player joins the game?

    **_For i = 1 To MAX_ITEMS_**!!!

    What this does is caches all of that data, Example: **ItemsCache_Create**. Sends it all in one packet, Example: **SendAllItems(index)**.

    zlib compresses that packet to make it smaller and decompresses it on the client side.

    How do I haz it?

    I simplified this very easily. I have added everything inside a vanilla EO 2.0\. [You may download the source here](https://www.dropbox.com/s/gc4fezbzn6rfr7a/EO%202.0%20Zlib%20Finished.zip?dl=0).

    Use CTRL+F and search: 'zlib

    Everything I've ported has this quickfind comment so you can just breeze through adding it all inside your engine.

    I errors?

    I forgot to mention that the zlib.dll file must be present in both the server and client folder. :D

    Final: As I said, this is credited under Robin, and to jcsnider for porting it in my project. I don't even know if I'm allowed to release this but since VB6 is uh, yeah. I'm just gon' do it.
×
×
  • Create New...