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

Ruins of Hell

Members
  • Posts

    6715
  • Joined

  • Last visited

    Never

Posts posted by Ruins of Hell

  1. > Soul lol best help yet the only thing is how I make Max endurance lvl they can add points to I dont want them going like over 9000 ![:D](http://www.touchofdeathforums.com/community/public/style_emoticons/<#EMO_DIR#>/biggrin.png)
    >
    > Soul also I did this so I level 2 and have level 2 endurance so
    >
    > 2+2 = 4
    >
    > then
    >
    > 4 * 15 + 150
    >
    > is that the right formula or am I missing Frac15 whatever that is lol

    Sorry, the forum messed up my formatting (it strips backslashes in URLs, or something). It should work now.

    It's (15 * (level + endurance)) / 2 + 150.

    So level 2 and 2 endurance:

    ```

    (15 * (2 + 2)) / 2 + 150

    (15 * 4) / 2 + 150

    15 * 2 + 150

    30 + 150

    180

    ```

    With Level 5 and 10 Endurance:

    ```

    (15 * (5 + 10)) / 2 + 150

    (15 * 15) / 2 + 150

    225 / 2 + 150

    112.5 + 150

    162.5

    ```
    Now obviously you can't have 162.5 health. Since the function returns an integer, the result is rounded using what's called _banker's rounding_. I won't go into that here, only note that the result is 162.

    ```

    162

    ```
  2. > When I try to sign in I get the message: "Server seems to be down, go to touchofdeathforums.com" or something like that. How can I fix it?

    The solutions above are all valid for different cases, but it's probably better if you just start server.exe, located in the server/ directory.
  3. > Wait, but there is usually like: sever.VBP and server.VBW aren't these files the same thing? Because I can open server.vbw with the express version.

    The express version can't actual compile the files (or save the results).
  4. > Hows does the system know how much to add to your hp does it do like 2 times 15 + 150 to find next level total health added onto?

    It uses the following formula, as all of the posts above have shown. This is the formula for warrior (or class 1). The one below it is for Mage (or class 2) and the last one is for any other class.

    ```

    vital = ((GetPlayerLevel(Index) / 2) + (GetPlayerStat(Index, Endurance) / 2)) * 15 + 150

    ```

    So:

    ![](http://latex.codecogs.com/gif.latex.gif?%5Cfrac{15%28level+endurance%29}{2}+150%25.png)

    Then the next 3 formulas are for the player's magicka.
  5. > I know, but I was wondering if anyone had made it work on Eclipse Advance, as that is based on Eclipse Nightly, which is basically Eclipse Origins 3.0.

    Just taking a precursory glance, I see no reason why it shouldn't work with Eclipse Nightly. I would make a back up, add it in, and report back on whether or not it works.

    Basically, if the tutorial does any rendering, it won't work on Eclipse Nightly without adaptation.
  6. > Can you help me to know the code, to pass maps, from Eclipe Evolution 2.7 to Eclipse Event System 2.3?
    >
    > I will make a converter to share, cause I have 700 maps in my mmorpg game XD

    The Programming Board is for programming outside of Eclipse.
  7. > ~~okay, so how does someone connect to me? like what do they do after they download eclipse to their server?~~
    >
    > nevermind. is portforwarding safe? or should i use hamachi

    Portforwarding is safe.

    Hamachi is a third-party client which your users will have to install to play.

    Personally, I recommend portforwarding.
  8. > i dont know how to do it though. im trying to use this [http://www.touchofde…read-tutorials/](http://www.touchofdeathforums.com/community/index.php?/topic/83283-must-read-tutorials/) but none of the links work

    Try using the search, it's really much more improved than before. You can use the gear icon (next to the search bar, at the top-right) and then filter by forum to search just for tutorials.

    [Here's a guide for portforwarding, if you want.](http://www.touchofdeathforums.com/community/index.php?/page/index.html/wiki.html/_/eclipse-origins/tutorials-1344890800/publishing-your-game-r5)
  9. > The Npcs DO respawn.. Just seem to be invisible (only for the person who warped/died though) other players just see that person walk through the npcs the person who warped cant see.. It's a small but irritating bug, most likely caused by me, where do I start looking though lol? :L
    >
    > (Sorry for double post then..)

    Can you replicate the same issue with a default version of the event system with no source edits?
  10. > Soul it is not working. MAX_LONG was undefined, i defined it in modConstants server side.

    Sorry about that, I thought I changed it everywhere but I must have missed that one spot.

    > If i paste the same code into "Sub PlayerMapGetItem(ByVal index As Long)" i get undefined ItemVal error

    You can't just copy and paste it around, it's not a general solution. Also all of these checks should be done server-side.

    Anyway, in PlayerMapGetItem server-side, change:

    ```

    Call SetPlayerInvItemValue(index, n, GetPlayerInvItemValue(index, n) + MapItem(mapNum, i).Value)

    ```

    to:

    ```

    If AddCheckOverflow(GetPlayerInvItemValue(index, n), MapItem(mapNum, i).Value) = 0 Then

    Call SetPlayerInvItemValue(index, n, GetPlayerInvItemValue(index, n) + MapItem(mapNum, i).Value)

    Else

    Call SetPlayerInvItemValue(index, n, 2147483647)

    End If

    ```

    * * *

    So here's a generalization.

    Change:

    ```

    Call SetPlayerInvItemValue(index, n, a + ![B)](http://www.touchofdeathforums.com/community/public/style_emoticons/<#EMO_DIR#>/cool.png)

    ```

    to:

    ```

    If AddCheckOverflow(GetPlayerInvItemValue(index, n), MapItem(mapNum, i).Value) = 0 Then

    Call SetPlayerInvItemValue(index, n, a + ![B)](http://www.touchofdeathforums.com/community/public/style_emoticons/<#EMO_DIR#>/cool.png)

    Else

    Call SetPlayerInvItemValue(index, n, 2147483647)

    End If

    ```

    * * *

    > Not necessarily an error, just people being silly and not understanding the bounds of a LONG value and various other ones(And nobody ever implementing a proper solution, but then again why would you ever have such abysmal amounts of gold in your game?).

    I agree, but the engine should always be fool-proof, and not crash if someone was to manage to somehow exploit the game to gain that much gold, or if someone decides to add too much gold.
  11. Add the player's name to the packet, and then use FindPlayer(name) to convert it into an index. Then use SetPlayerSprite(FindPlayer(name), number) to set it. The packet is sent in SendSetSprite, so search for that sub to see where it is called (two places).
  12. > How would I go about adding exceptions for GMs?

    Change:

    ```

    ' Check to see if its a Party Dungeon

    If Map(mapnum).Moral = MAP_MORAL_PARTY_MAP Then

    ' Check to make sure the player is in a party. If not exit the sub so they dont change maps

    If TempPlayer(index).inParty < 1 Then

    Call PlayerMsg(index, "This is a party map. You have to be in a party to enter it.", Red)

    Exit Sub

    End If

    End If

    ```

    to:

    ```

    ' Check to see if its a Party Dungeon

    If Map(mapnum).Moral = MAP_MORAL_PARTY_MAP Then

    ' Check to make sure the player is in a party. If not exit the sub so they dont change maps

    If TempPlayer(index).inParty < 1 And GetPlayerAccess(index) = 0 Then

    Call PlayerMsg(index, "This is a party map. You have to be in a party to enter it.", Red)

    Exit Sub

    End If

    End If

    ```

    Note this line:

    ```

    If TempPlayer(index).inParty < 1 And GetPlayerAccess(index) = 0 Then

    ```

    That says, "If the player is not in a party (their party number is 0) and if the player is a regular user, then stop them from changing to a party map".
  13. > Hi I was wondering why cant you change other peoples sprites wth Admin controls in 3.0 and if there is a command to for admins. If their isnt can i edit their sprite in the .bin file of their account in the server folder because I making member characters and I would like to know how.

    No, there is no slash command to change a player's sprite.

    You can edit the particular bin file if you have a hex editor, although it's not really an official method. If you're interested, it starts at the 45 byte and is 4 bytes long.

    Of course, it would also be an easy source edit.
  14. Any windows computer will do for hosting. Memory isn't really that necessary for an Eclipse game, and bandwidth is a more limiting factor.

    To make a map PvP, go to /editmap > Properties > Moral: No moral.

    There's no webscript, although it is certainly possible.

    MP3 support can be added with this source tutorial: http://www.touchofdeathforums.com/community/index.php?/topic/128597-adding-mp3-to-eo23/

    To translate Eclipse, you'll need to edit the strings in VB6 (Visual Basic 6, programming language Eclipse is written in). Note that VB6 does not, by default support UTF-8\. Some Czech characters, such as ř or í, won't work. You'll have to find a workaround to support it.

    It's certainly possible, but it's not in Eclipse by default.
  15. > Why does the map size have to get involved with screen size ? I just don't get it…

    The idea is that the default map size should be the amount that can be viewed without scrolling, I think because the original Mirage engine didn't support scrolling at all.
  16. Similiar topic is here: [http://www.touchofde…s-of-my-money/.](http://www.touchofdeathforums.com/community/index.php?/topic/128955-engine-is-jealous-of-my-money/.)

    Eclipse does have a small problem with overflow. Here's a fix which will **STOP** the player from gaining gold after a certain amount. Note that it will not put the overflow into another stack, which would be a better idea.

    * * *

    Server-side

    Add (anywhere):

    ```

    ' Returns 0, if there is no overflow, or the overflow, if one exists. '

    Public Function AddCheckOverflow(ByVal a As Currency, ByVal b As Currency) As Long ' Currency is 8 bytes, as opposed to Long's 4 bytes. ''

    If a + b > 2147483647 Then ' 2147483647 = 2**31 - 1 '

    AddCheckOverflow = CLng((a - 2147483647) + ![B)](http://www.touchofdeathforums.com/community/public/style_emoticons/<#EMO_DIR#>/cool.png)

    Else

    AddCheckOverflow = 0

    End If

    End Function

    ```

    Then replace Function GiveInvItem with the following function:

    ```

    Function GiveInvItem(ByVal index As Long, ByVal itemnum As Long, ByVal ItemVal As Long, Optional ByVal sendUpdate As Boolean = True) As Boolean

    Dim i As Long

    ' Check for subscript out of range

    If IsPlaying(index) = False Or itemnum <= 0 Or itemnum > MAX_ITEMS Then

    GiveInvItem = False

    Exit Function

    End If

    i = FindOpenInvSlot(index, itemnum)

    ' Check to see if inventory is full

    If i <> 0 Then

    If AddCheckOverflow(GetPlayerInvItemValue(index, i), ItemVal) <> 0 Then

    ItemVal = 2147483647 - GetPlayerInvItemValue(index, i)

    End If

    Call SetPlayerInvItemNum(index, i, itemnum)

    Call SetPlayerInvItemValue(index, i, GetPlayerInvItemValue(index, i) + ItemVal)

    If sendUpdate Then Call SendInventoryUpdate(index, i)

    GiveInvItem = True

    Else

    Call PlayerMsg(index, "Your inventory is full.", BrightRed)

    GiveInvItem = False

    End If

    End Function

    ```

    There are probably more errors like this.
  17. > when I changed those values, the map stopped scrolling ( dunno if it's the right term ), my player gets out of the screen

    Sorry, I should have elaborated more than that. You have two options:

    1. Increase them, and then also change the picScreen size to fit.
    2. Go to Sub ClearMap() (client/server-side) and change the values there.

    Example:

    ```

    Map.MaxX = MAX_MAPX

    Map.MaxY = MAX_MAPY

    ```
    to:

    ```

    Map.MaxX = 14 ' change these values.

    Map.MaxY = 11

    ```
×
×
  • Create New...