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

Stein

Members
  • Posts

    1208
  • Joined

  • Last visited

    Never

Everything posted by Stein

  1. I don't think you can swap the character editor from the face part to a sprite editor at this point in time, could be wrong though. You can set it to use standard sprites over editable characters though. Anyhow, might be worth bringing this to JCs attention so he can look into whether or not he'd be willing to add it.
  2. Because again, you have to change every reference related to stats into a Long, not a byte. ;)
  3. Did you change the actual .Stat declaration to a long?
  4. Stein

    Character creation

    By using the full post editor on your first post. But I just changed it for you. :)
  5. Stein

    Character creation

    The rest is purely cosmetic for the face portion of the character, it won't render on the sprite itself no.
  6. Yes, however you'd need to delete all your items, NPCs and players. By default they're assigned Bytes, which are limited from 0-255, swapping them out for longs will let you go into the Billions though.
  7. Stein

    Character creation

    Depends, if you add stuff to the Hair folder on both the sprite and face portions, I reckon you'd get as many as you add. (given that they're the same values of course) I believe the things that really have an impact on your sprite are stuff like Hair, Body, Shoes, Shirt and Pants. (Judging from the graphic folders)
  8. Stein

    Character creation

    The same options on the character selection screen I would say? I'm not sure what you're talking about exactly here, or maybe I'm missing something.
  9. Stein

    Render Bank

    Sadly, this happens because it only renders to the center of the image (well, the black portion), anything outside its render target gets cut off. The only way to really solve that is either displace the text slightly, or render the entire thing manually.
  10. Hello there, since scripting has just been added to Eclipse Dawn 2.1.0, I figured I'd make a quick tutorial that shows you how easy it can be to add new functionality to your server by just changing a few files! Now, then.. Let's get started shall we? Note: The GetOpenInvSlots function does NOT take into account what you want to place in there, and may result in inaccurate results when you try and hand out currencies to the player, and assume this currency requires an additional slot. Please take this into account when using the script, I may resolve this issue later this week. This issue will not break the script, but may cause it to say your inventory is full when you have enough space when items stack with existing slots. **Step 1: Your server.** Make sure your server is up to date, and running AT LEAST Eclipse Dawn 2.1.0b, it will not work in lower versions or any other custom Eclipse Version. Please note that it does not matter whether your server is running or not, there's a method of reloading the scripts while the server runs. **Step 2: Making directories.** Since my script uses specific directories to store Data, let's make them! Head into your **Server Directory** and click on **Data**, once in there make a new folder called **ScriptData** and go inside it, in there make another folder called **Frankenstein** and enter it as well, then finaly in there make a new folder called **Chests**. If all went well, you should now have the following folder structure to get where you are: **\data\scriptdata\frankenstein\chests\.** Head back to your **Server Directory** and click the **Scripts** folder, once in there make a new folder called **User** and go inside it, in there make another called **Frankenstein**. If all went well, your folder structure should be as follows: **data\scripts\user** The reason I chose these names are simply to keep things organized in the future should I want to add more scripts of my own, or another user. But do bear in mind that it does not matter what folder structure you use, as long as you rewrite the script(s) to reflect the changes. **Step 3: Creating the file script file.** First, copy the following script: ``` ' Eclipse Dawn Chest System V1.1 ' Written by Frankenstein (Sil van Harberden) ' 29 / 09 / 2013 (DD / MM / YYYY) Function GetPlayerChestState(Index, Chest) GetPlayerChestState = GetVar("data\scriptdata\frankenstein\chests\cheststate.ini", GetPlayerName(Index), "Chest" & CSTR(Chest)) ' Error checking below, if the record is empty it returns a blank string. ' And a blank string can't be converted to a Long, so that's why we need to check this manually. If GetPlayerChestState = "" Then GetPlayerChestState = ChestStateFull Else GetPlayerChestState = CLNG(GetPlayerChestState) End If End Function Sub SetPlayerChestState(Index, Chest, State) PutVar "data\scriptdata\frankenstein\chests\cheststate.ini", GetPlayerName(Index), "Chest" & CSTR(Chest), CSTR(State) End Sub Function GetChestMaxItems(Chest) GetChestMaxItems = CLNG(GetVar("data\scriptdata\frankenstein\chests\chestcontent.ini", "Chest" & CSTR(Chest), "MaxItems")) End Function Function GetChestItemNum(Chest, Item) GetChestItemNum = CLNG(GetVar("data\scriptdata\frankenstein\chests\chestcontent.ini", "Chest" & CSTR(Chest), "Item" & CSTR(Item) & "Num")) End Function Function GetChestItemVal(Chest, Item) GetChestItemVal = CLNG(GetVar("data\scriptdata\frankenstein\chests\chestcontent.ini", "Chest" & CSTR(Chest), "Item" & CSTR(Item) & "Val")) End Function Sub OpenChest(Index, Chest, OpenMsg, EmptyMsg) Dim i, MaxItems, Item, Val, Name, OpenSlots ' Check if the chest is empty for this player before we begin. If GetPlayerChestState(Index, Chest) ChestStateEmpty Then ' The chest seems to be alright for this guy, let's move on! ' Retrieve the max amount of items in this chest. MaxItems = GetChestMaxItems(Chest) ' Check if the player has enough room for all these items. OpenSlots = GetOpenInvSlots(Index) If OpenSlots => MaxItems then ' Player has enough space to hold the items. ' And time to loop through this mess, we want to hand out the items to the player, after all. For i = 1 to MaxItems ' Retrieve the item number and amounts. Item = GetChestItemNum(Chest, i) Val = GetChestItemVal(Chest, i) ' Hand it out GivePlayerItem Index, Item, Val Next ' Set the chest state to empty. SetPlayerChestState Index, Chest, ChestStateEmpty ' Done! Let's notify our player of his opened chest! PlayerMsg Index, OpenMsg, BrightRed Else ' Player doesn't have enough space in his inventory. PlayerMsg Index, "Your inventory does not have enough space to hold all the items in this chest!", BrightRed End If Else ' Seems like this player's opened the chest before. ' Let's notify them. PlayerMsg Index, EmptyMsg, BrightRed End If End Sub ``` Now return to the **data\scripts\user** directory and make a file called **Chests.eds**, open it up and paste the above code into it. **Step 4: Editing Main.eds** Open up your Main.eds file inside the **Scripts** directory, and search for the following line: **Public Const Shield = 4**, below it paste the following: ``` ' *** ' Chest States ' *** Public Const ChestStateFull = 0 Public Const ChestStateEmpty = 1 ' *** ' Chest Strings ' *** Public Const ChestOpened = "You have opened a chest and found bountiful riches!" Public Const ChestEmpty = "You have already looted this chest before." ``` Now search for **#include** and paste the following below it: ``` ' *** ' User Created Scripts ' *** #include ``` Save the file and we should be done there. **Step 5: Creating the required *.ini files** Go to the **data\scriptdata\frankenstein\chests** folder and make a file called **ChestState.ini**, this file will hold all the data of which player has opened which chest so it is fairly important that it is always present! Now, in the same folder create a file called **ChestContent.ini**, this file will determine which chest contains which items. Copy and paste the following test data into it: ``` [Chest1] MaxItems= 1 Item1Num= 1 Item1Val= 25 ``` Here's a basic explanation as to what all these values do: **[Chest1]** This is the header that seperates one chest from another, in this case the data below this would belong to Chest #1, whereas everything below **[Chest2]** Would belong to Chest #2. **MaxItems = 1** This determines the maximum amount of item slots this chest has in it, if you look at the values under it you will see numbers between the two words in each line, this number determines the item slot it takes up, make sure you fill ALL the slots with data up to the maximum you've set or it may cause issues. **Item1Num = 1** This determines which item number slot 1 contains, if you want to add items to slot 2, simply add a new line under the header called **Item2Num**, or whichever number happens to the next one up. (make sure you adjust MaxItems accordingly!) **Item1Val = 25** This determines what amount of items slot 1 contains, if you want to add items to slot 2, simply add a new line under the header called **Item2Num**, or whichever number happens to the next one up. (make sure you adjust MaxItems accordingly!) Save the file, and let's get on to the last step! **Step 6: Opening a chest** Opening a chest is very simple, you only need to add the following command somewhere in your code, possibly on a scripted item, tile or an NPC: ``` OpenChest Index, 1, ChestOpened, ChestEmpty ``` Note that Index is not always called Index in every sub, pay attention to that. The 1 in the line can be replaced with any chest ID that you've created, and ChestOpened/ChestEmpty are default strings we added, if you want a custom message for your chest you can ofcourse simply replace the two variabled with your own text. Happy treasure hunting! **Should you have edited your script files while the server is running, go to your server console and hit the Controls tab, then hit the Scripts button. This will reload the scripts!**
  11. But since his spawnpoint is incorrect, and his engine EO4 he can't do that.
  12. Hello there, since scripting has just been added to Eclipse Dawn 2.1.0, I figured I'd make a quick tutorial that shows you how easy it can be to add new functionality to your server by just changing a few files! Now, then.. Let's get started shall we? **Step 1: Your server.** Make sure your server is up to date, and running AT LEAST Eclipse Dawn 2.1.0, it will not work in lower versions or any other custom Eclipse Version. Please note that it does not matter whether your server is running or not, there's a method of reloading the scripts while the server runs. **Step 2: Making directories.** Since my script uses specific directories to store Data, let's make them! Head into your **Server Directory** and click on **Data**, once in there make a new folder called **ScriptData** and go inside it, in there make another folder called **Frankenstein** and enter it as well, then finaly in there make a new folder called **Chests**. If all went well, you should now have the following folder structure to get where you are: **\data\scriptdata\frankenstein\chests\**. Head back to your **Server Directory** and click the **Scripts** folder, once in there make a new folder called **User **and go inside it, in there make another called **Frankenstein**. If all went well, your folder structure should be as follows: **data\scripts\user** The reason I chose these names are simply to keep things organized in the future should I want to add more scripts of my own, or another user. But do bear in mind that it does not matter what folder structure you use, as long as you rewrite the script(s) to reflect the changes. **Step 3: Creating the file script file.** First, copy the following script: ``` Function GetPlayerChestState(Index, Chest) GetPlayerChestState = GetVar("data\scriptdata\frankenstein\chests\cheststate.ini", GetPlayerName(Index), CSTR(Chest)) ' Error checking below, if the record is empty it returns a blank string. ' And a blank string can't be converted to a Long, so that's why we need to check this manually. If GetPlayerChestState = "" Then GetPlayerChestState = ChestStateFull Else GetPlayerChestState = CLNG(GetPlayerChestState) End If End Function Sub SetPlayerChestState(Index, Chest, State) PutVar "data\scriptdata\frankenstein\chests\cheststate.ini", GetPlayerName(Index), CSTR(Chest), CSTR(State) End Sub Function GetChestMaxItems(Chest) GetChestMaxItems = CLNG(GetVar("data\scriptdata\frankenstein\chests\chestcontent.ini", CSTR(Chest), "MaxItems")) End Function Function GetChestItemNum(Chest, Item) GetChestItemNum = CLNG(GetVar("data\scriptdata\frankenstein\chests\chestcontent.ini", CSTR(Chest), "Item" & CSTR(Item) & "Num")) End Function Function GetChestItemVal(Chest, Item) GetChestItemVal = CLNG(GetVar("data\scriptdata\frankenstein\chests\chestcontent.ini", CSTR(Chest), "Item" & CSTR(Item) & "Val")) End Function Sub OpenChest(Index, Chest, OpenMsg, EmptyMsg) Dim i, MaxItems, Item, Val, Name ' Check if the chest is empty for this player before we begin. If GetPlayerChestState(Index, Chest) ChestStateEmpty Then ' The chest seems to be alright for this guy, let's move on! ' Retrieve the max amount of items in this chest. MaxItems = GetChestMaxItems(Chest) ' And time to loop through this mess, we want to hand out the items to the player, after all. For i = 1 to MaxItems ' Retrieve the item number and amounts. Item = GetChestItemNum(Chest, i) Val = GetChestItemVal(Chest, i) ' Hand it out GivePlayerItem Index, Item, Val Next ' Set the chest state to empty. SetPlayerChestState Index, Chest, ChestStateEmpty ' Done! Let's notify our player of his opened chest! PlayerMsg Index, OpenMsg, BrightRed Else ' Seems like this player's opened the chest before. ' Let's notify them. PlayerMsg Index, EmptyMsg, BrightRed End If End Sub ```
  13. @ Domino, that method is very time consuming to set it up on every map in the game though. ;) @ RickLucky, you can edit your topic! Just make sure to hit the Full Editor button once you edit your first post to access the tag selection dropdownbox.
  14. There's no real way to do this as a setting, BUT you can fake it. On your starting map, have a parallel event run and check for a variable (in your case, for example DoneTutorial), if that variable is 0, do nothing. But if it's 1, warp the player out of the tutorial map back to the real world. Of course, you would need to make sure the user's DoneTutorial variable is set to 1 when he leaves the island.
  15. That single year won't make my point any less valid though.
  16. Those are some very steep wishes for a free job. Most of it can be done with Eclipse, some of it can't and you'd be best off to write a custom engine. But honestly? You'll never make it with this attitude/method. Nobody with the skills and mindset to make all that happen will do it for free just like that, especially since you have "no bank account" which makes me assume you're under the age of 14\. How trustworthy does that seem? And with the hours required to get your stuff functional, it'd take more than a bit of "I can't pay" to convince people, and then you'd need to make a lovely legal contract (which you, being underaged can't sign) that you can't sell any of it, nor own any of it. And should you sell or make a profit of it in any way the programmer would get a fairly large chunk of the proceeds, because trust me. We're not cheap. So basically, start with what YOU are capable of doing, and keep it simple. Then as you go, draw interest and get more people on your side. But never expect people to jump into an unknown project of an unknown person with steep demands and no payment.
  17. Right, look into your modServerTCP module, and modEnumerations. (specifically Enum ServerPackages) These two together should give you a bit of a clue as to how we actually send around messages. from the server to the client. (OR! Alternatively, you can use GetPlayerDamage client-side, it will need to be copied over though) and then have the client make use of said data and put it on a label each time the character data updates. :)
  18. Stein

    Eo browser

    I'm pretty sure that the one you're talking about can't be downloaded, and is still under development. ;)
  19. Stein

    Eclipse to LOL

    With the way Eclipse Is designed, this isn't going to work on ANY engine without massive rewrites to everything, from the sockets to the movement and combat mechanics. So I'd say you're better off writing something from scratch if you want it to be any good. Although, why make ANOTHER League of Derpfumes clone? We have a million of those already all over, and they rarely attract any decent amounts of players unless they do something new such as SMITE.
  20. your damage is based on a bit of a weird calculation, actually. (some engines use a different formula) Not too hard to find out what your engine uses though, it should be in modCombat. (GetPlayerDamage, I believe)
  21. There's no real solid Damage and Defense stats in the game, they're sort of calculated on run-time. Although I suppose if you run that calculation client-side (or server side and send it over) you could get it to work, although it may not always be very accurate.
  22. Stein

    Some doubts [Dx8]

    Either way you'd need to work it in yourself really. Although rendering a background image is far easier than having to implement the event system.
  23. Considering this is in the EO4 forums I'd assume it's EO4, especially since he's mentioning Events and Quests together.
  24. You can just PM any one of us in such a case honestly, or just hit us up on the shoutbox when you see us on. :P
  25. You'd be surprised, it's already working to an extent we can use it to write Tag in it on an internal demo. :)
×
×
  • Create New...