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

Valentine90

Members
  • Posts

    115
  • Joined

  • Last visited

    Never

Everything posted by Valentine90

  1. Hello! Just responding. You said were co-founder of Aldeia RPG, but I do not even know you. I am Brazilian and I can say that brother in Brazil continues being brother, as anywhere in the world. I know Terabin for years, he's also an administrator of the Aldeia RPG.
  2. Hello! ollixsykes is not co-founder of AldeiaRPG, nor is he brother of Terabin. I'm administrator of AldeiaRPG.
  3. **Netplay Diamond** Author: Valentine Version: 1.0.0 **About:** Netplay Diamond is a structure for creating 2D online games. It is currently considered a beta, and is still in active development, so do not be surprised if some things still do not work. **Images:** » Login ![](http://i.imgur.com/eKfTt8O.png) » Character creation ![](http://i.imgur.com/NMe9s5r.png) » Shop ![](http://i.imgur.com/OaAzpMf.png) » Trade ![](http://i.imgur.com/gma77JR.png) **Download:** [4shared](https://www.4shared.com/rar/75HxUKx9ca/Netplay_Diamond_100.html) [Mega](https://mega.nz/#!fYwxSRgT!AK1p3GBCB6KoK1KrPts3m9xr5OGLGe5eXWhY8MinuX0) **Tips:** **1) How to make the server work:** To learn how to make the server work, see Read me. **2) Data update:** Use the converter when you make any changes to the map, classes and/or enemies of the database. The converter updates the server information, ensuring that there are no errors. **Credits:** **Creator:** Valentine **Thanks to everyone who contributes to the following systems:** Socket: Paulo Soreto Input: Blizzard Resolução: Paulo Soreto, PedroHLC e Poccil **Thanks also:** Paulo Soreto Cidiomar Kaique Hunter Terabin
  4. **Evolution Maker** By: Valentine Version: 1.0.0 **Images:** Client: ![](http://i.imgur.com/FagCLv6.png) Editor: ![](http://i.imgur.com/YB5PZS2.png) Site: ![](http://i.imgur.com/lB4JABJ.png) **Download:** [Engine](https://mega.nz/#!jJZjiC4C!ZTRJQ88B8T8a0m3YG1mY2TSU1fEsHy9NBbEQHF6K8IM) [Library](https://mega.nz/#!fNgUiRbS!4Kc_RKz9gLk8rd2Je2_GubSrY5Z239O7tBV51B8hTHY) [Site](https://mega.nz/#!bUIGnAwZ!7klGJPLxoBz_N9ZpxXzNcjBWNO1IOg4aiJgz5wh8l_o) [Config Graphics](https://mega.nz/#!nUxwRB5C!ggPET1xuTHBeSq36c8TW9SOLHrtf1tX_EnKi-UEDFbo) [Mysql connector odbc 3.51.27 - win32](https://mega.nz/#!6ARQhC5S!r24pnXiHKw0TBvQ9_AizByeYcOWc3mN4rfni35GgCd8) [WampServer](https://sourceforge.net/projects/wampserver/) **Tips:** If after the installation of the Eloria Libraries there is still an error in some dll, go to run and type: > regsvr32 "C:\Windows\system32\**name_of_the_dll**.dll" Now replace **name_of_the_dll** by the name of the dll that appears in the error message and click OK. **Credits:** Valentine Robin
  5. **Sorry my English** If you have a target and he leaves the game or dies, it is not cleaned of your player, you will continue with a selected target even if that player is no longer online or live on that map. **1** - In **modPlayer**, search for: ``` Call SetPlayerVital(index, Vitals.HP, 0) ``` **2**- Beneath add: ``` ' Loop through entire map and purge NPC from targets For i = 1 To Player_HighIndex If IsPlaying(i) And IsConnected(i) Then If GetPlayerMap(i) = GetPlayerMap(index) Then If TempPlayer(i).targetType = TARGET_TYPE_PLAYER Then If TempPlayer(i).target = index Then TempPlayer(i).target = 0 TempPlayer(i).targetType = TARGET_TYPE_NONE SendTarget i End If End If End If End If Next ``` **3 -** Search for: ``` TempPlayer(index).InGame = False ``` **4 -** Beneath add: ``` ' Loop through entire map and purge NPC from targets For i = 1 To Player_HighIndex If IsPlaying(i) And IsConnected(i) Then If GetPlayerMap(i) = GetPlayerMap(index) Then If TempPlayer(i).targetType = TARGET_TYPE_PLAYER Then If TempPlayer(i).target = index Then TempPlayer(i).target = 0 TempPlayer(i).targetType = TARGET_TYPE_NONE SendTarget i End If End If End If End If Next ``` **Credits:** Valentine
  6. Could you explain better what it is this fix? what problem had in Eclipse Origins v2 what was corrected by you? I'm not understanding.
  7. Are you sure that this problem exists in the **EO**? because here is already: ``` ' build class combo .cmbClass.Clear .cmbClass.AddItem "None" ```
  8. This fix is ​​for Original EO v2 (Robin)?
  9. **Sorry my english** Seems a little mistake, this is one of the most most dangerous bugs that I've seen, this is the fix that can not miss in your game because it is an important thing is the connection between the client and server. The _Eclipse Origins_ and derivatives have an anti flood system that prevents overloads the server, so that a player can only occupy a maximum of 1000 bytes per second in memory of the server computer, and also you only can send and 25 messages receive between client and server, this is great, but has a big problem, even if a player is not a hacker, one time or another depending on the system, the player can unwittingly exceed these limits, the problem is that when you pass that limit, NEVER MORE you can receive anything from the server, forcing to the player having to disconnect and try a new connection to the server. This error went unnoticed because not it happens this problem with players admins. **Open Server** **1 -** In **modServerTCP**, search for: ``` If GetPlayerAccess(index) 25 Then Exit Sub End If End If ``` **2 -** Replace by: ``` If GetPlayerAccess(index) 25 Then If GetTickCount < TempPlayer(index).DataTimer Then Exit Sub End If End If End If ``` **Credits:** Valentine
  10. **Sorry my english** When you attack a Resource (eg a tree) is not observed the attack time of the gun, causing the player to attack more than it should. **Open Server** **1-** In **modPlayer**, search for: ``` If Map(GetPlayerMap(index)).Tile(x, y).Type = TILE_TYPE_RESOURCE Then ``` **2-** ABOVE add: ``` ' Check attack timer If GetPlayerEquipment(index, Weapon) > 0 Then If GetTickCount < TempPlayer(index).AttackTimer + Item(GetPlayerEquipment(index, Weapon)).Speed Then Exit Sub Else If GetTickCount < TempPlayer(index).AttackTimer + 1000 Then Exit Sub End If ``` **3 -** After of: ``` ' send message if it exists If Len(Trim$(Resource(Resource_index).EmptyMessage)) > 0 Then SendActionMsg GetPlayerMap(index), Trim$(Resource(Resource_index).EmptyMessage), BrightRed, 1, (GetPlayerX(index) * 32), (GetPlayerY(index) * 32) End If End If ``` **4 -** Add: ``` ' Reset attack timer TempPlayer(index).AttackTimer = GetTickCount ``` **Credits:** Valentine
  11. **Sorry my english** When a player dies and had shop, bank or trade open, to be reborn, they are still open and running, this tutorial will not close all the windows of these systems (exept window the trade), but will prevent it work on server if you want to complete correction closing the windows will have to make the necessary changes on the client. **Open Server** **1 -** In **modPlayer**, search for: ``` ' Clear spell casting TempPlayer(index).spellBuffer.Spell = 0 TempPlayer(index).spellBuffer.Timer = 0 TempPlayer(index).spellBuffer.target = 0 TempPlayer(index).spellBuffer.tType = 0 Call SendClearSpellBuffer(index) ``` **2 -** below add: ``` TempPlayer(index).InBank = False TempPlayer(index).InShop = 0 If TempPlayer(index).InTrade > 0 Then For i = 1 To MAX_INV TempPlayer(index).TradeOffer(i).Num = 0 TempPlayer(index).TradeOffer(i).Value = 0 TempPlayer(TempPlayer(index).InTrade).TradeOffer(i).Num = 0 TempPlayer(TempPlayer(index).InTrade).TradeOffer(i).Value = 0 Next TempPlayer(index).InTrade = 0 TempPlayer(TempPlayer(index).InTrade).InTrade = 0 SendCloseTrade index SendCloseTrade TempPlayer(index).InTrade End If ``` **Credits:** Valentine
  12. Sorry the message then, but it is of great importance. A change was made on the topic, the code: ``` TempPlayer(attacker).AttackTimer = GetTickCount ``` It should be added after: ``` If Len(Trim$(Npc(npcNum).AttackSay)) > 0 Then PlayerMsg attacker, Trim$(Npc(npcNum).Name) & ": " & Trim$(Npc(npcNum).AttackSay), White End If ``` And not after of ``` If npcNum > 0 And GetTickCount > TempPlayer(attacker).AttackTimer + attackspeed Then ``` How was the topic before!
  13. Better warn next time, which engine is being corrected, because I spent a lot of time here in creating 24 spells and testing Eo v2.
  14. This is a fix for _Eclipse Origins v2_? because I tested here and works perfectly in player not admin with 24 spells.
  15. > Is this fixed in Eo 3.0? I fix bugs of oficial Eclipse Origins v2.
  16. **Sorry my english** Robin forgot to put a code in the Function that checks the time "attack" of player against a npc, ie, the NPC can be "attacked" before the appointed time. Not a problem for monsters, but for other types of NPCs, as npc shop for example. Don't There is a very serious problem in _Eclipse Origins v2_, but in _Crystal shire_ drifts and other engines that use the types of npcs more than usual yes, however if it is a bug then it should be corrected. **Open Server** **1 -** In **modCombat**, search for: ``` If Len(Trim$(Npc(npcNum).AttackSay)) > 0 Then PlayerMsg attacker, Trim$(Npc(npcNum).Name) & ": " & Trim$(Npc(npcNum).AttackSay), White End If ``` **2 -** Below this line add: ``` ' Reset attack timer TempPlayer(attacker).AttackTimer = GetTickCount ``` **Credits:** Valentine
  17. **Sorry my english** Robin made a small mistake when calling the Function CanNpcCrit when the NPC attacks a player, leading to the Player ID to Function and not the NPC ID as it should. **Open Server** **1 -** In **modCombat**, search for: ``` If CanNpcCrit(index) Then ``` **2 -** Replace with for: ``` If CanNpcCrit(npcNum) Then ``` **Credits:** Valentine
  18. I do not quite understand what this does, could explain better?
  19. Hello, I analyzed the original **Eclipse Origins v2** here and **SendPlayerDir** is not sent when the player collides with a locked position, ie not being sent in excess.
  20. Simple but good, so a hacker will have more work to put the exact version.
  21. System Rank, which exist in all MMORPG where the player ranks higher level.
  22. **Sorry my english** Hello friends, I think we all know how a system of rank, something essential for a true MMORPG, know that there are some systems rank around and perhaps many of you already have, but this is a simple and complete do- so, system fully tested and approved. **Open Client** **1 -** In frmMain, create a Picturebox called **picRank** ![](http://img824.imageshack.us/img824/4513/57744486.png) **2 -** Within the picRank create a ListBox called **lstRank** ![](http://img811.imageshack.us/img811/9121/60970805.png) **3 -** Create a button called **cmdRefresh** ![](http://img543.imageshack.us/img543/7374/54104775.png) **Obs.:** It should stay like this: ![](http://img5.imageshack.us/img5/3637/imgahp.png) **4 -** Select the Option Visible False in the picRank ![](http://img442.imageshack.us/img442/3285/69569137.png) **5 -** In same button **cmdRefresh**, double-click and replace: ``` Private Sub cmdRefresh_Click() End Sub ``` **6 -** By: ``` Private Sub cmdRefresh_Click() ' If debug mode, handle error then exit out If Options.Debug = 1 Then On Error GoTo errorhandler SendRequestRank ' Error handler Exit Sub errorhandler: HandleError "cmdRefresh_Click", "frmMain", Err.Number, Err.Description, Err.Source, Err.HelpContext Err.Clear Exit Sub End Sub ``` **7 -** In **modConstants**, search for: ``` Public Const MAX_PARTY_MEMBERS As Long = 4 ``` **8 -** Below add: ``` Public Const MAX_RANK As Long = 10 ``` **9 -** At the end of **modClientTCP**, add: ``` Public Sub SendRequestRank() Dim Buffer As clsBuffer ' If debug mode, handle error then exit out If Options.Debug = 1 Then On Error GoTo errorhandler Set Buffer = New clsBuffer Buffer.WriteLong CRequestRank SendData Buffer.ToArray() Set Buffer = Nothing ' Error handler Exit Sub errorhandler: HandleError "SendRequestRank", "modClientTCP", Err.Number, Err.Description, Err.Source, Err.HelpContext Err.Clear Exit Sub End Sub ``` **10 -** In **modEnumerations**, search for: ``` ' Make sure CMSG_COUNT is below everything else ``` **11 -** Above this line and below of: ``` CPartyLeave ``` **12 -** Add: ``` CRequestRank ``` **Obs.:**It should stay like this: ![](http://img826.imageshack.us/img826/4250/27115231.png) **13 -** Still in **modEnumerations**, search for: ``` ' Make sure SMSG_COUNT is below everything else ``` **14 -** Above this line and below of: ``` SPartyVitals ``` **15 -** Add: ``` SRankUpdate ``` **16 -** In **modHandleData**, search for: ``` HandleDataSub(SPartyVitals) = GetAddress(AddressOf HandlePartyVitals) ``` **17 -** Below add: ``` HandleDataSub(SRankUpdate) = GetAddress(AddressOf HandleRankUpdate) ``` **18 -** At the end of **modHandleData**, add: ``` Private Sub HandleRankUpdate(ByVal Index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long) Dim Buffer As clsBuffer, i As Byte ' If debug mode, handle error then exit out If Options.Debug = 1 Then On Error GoTo errorhandler Set Buffer = New clsBuffer Buffer.WriteBytes Data() frmMain.lstRank.Clear For i = 1 To MAX_RANK frmMain.lstRank.AddItem i & ":Level: " & Buffer.ReadLong & ", Name: " & Trim$(Buffer.ReadString) Next i Set Buffer = Nothing ' Error handler Exit Sub errorhandler: HandleError "HandleRankUpdate", "modHandleData", Err.Number, Err.Description, Err.Source, Err.HelpContext Err.Clear Exit Sub End Sub ``` **19 -** In **modInput**, search for: ``` ' Whos Online Case "/who" SendWhosOnline ``` **20 -** Below add: ``` ' Request Rank Case "/rank" SendRequestRank frmMain.picRank.Visible = Not frmMain.picRank.Visible ``` **21 -** In **modGeneral**, search for: ``` frmMain.picParty.Visible = False ``` **22 -** Below add: ``` frmMain.picRank.Visible = False ``` **Open Server** **1 -** In **modConstants**, search for: ``` Public Const MAX_PARTY_MEMBERS As Long = 4 ``` **2 -** Below add: ``` Public Const MAX_RANK As Long = 10 ``` **3 -** In **modEnumerations**,search for: ``` ' Make sure SMSG_COUNT is below everything else ``` **4 -** Above this line and below of: ``` SPartyVitals ``` **5 -** Add: ``` SRankUpdate ``` **6 -** Still in **modEnumerations**, search for: ``` ' Make sure CMSG_COUNT is below everything else ``` **7 -** Above this line and below of: ``` CPartyLeave ``` **8 -** Add: ``` CRequestRank ``` **9 -** In **modHandleData**, search for: ``` HandleDataSub(CPartyLeave) = GetAddress(AddressOf HandlePartyLeave) ``` **10** - Below Add: ``` HandleDataSub(CRequestRank) = GetAddress(AddressOf HandleRequestRank) ``` **11 -** At the end of **modHandleData**, add: ``` Sub HandleRequestRank(ByVal index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long) SendRankUpdate index End Sub ``` **12 -** At the end of **modServerTCP**, add: ``` Sub SendRankUpdate(ByVal index As Long) Dim i As Byte Dim Buffer As clsBuffer Set Buffer = New clsBuffer Buffer.WriteLong SRankUpdate For i = 1 To MAX_RANK Buffer.WriteLong Rank(i).Level Buffer.WriteString Trim$(Rank(i).Name) Next i SendDataTo index, Buffer.ToArray() Set Buffer = Nothing End Sub ``` **13 -** In **modPlayer**, search for ``` Sub CheckPlayerLevelUp(ByVal index As Long) ``` **14 -** Beneath of: ``` Dim level_count As Long ``` **15 -** Add: ``` Dim RankPos As Byte ``` **16 -** Beneath of: ``` SendPlayerData index ``` **17 -** Add: ``` ' check rank RankPos = CheckRank(index) If RankPos > 0 Then ChangeRank index, RankPos End If ``` **18 -** At the end of **modPlayer**, add: ``` Private Function CheckRank(ByVal index As Long) As Byte Dim i As Byte For i = 1 To MAX_RANK If GetPlayerLevel(index) > Rank(i).Level Then CheckRank = i Exit Function End If Next i End Function Private Sub ChangeRank(ByVal index As Long, RankPos As Byte) Dim i As Long, ClearPos As Byte ' if not change position in rank If GetPlayerName(index) = Trim$(Rank(RankPos).Name) Then Rank(RankPos).Level = GetPlayerLevel(index) SaveRank Exit Sub End If ' search player in rank For i = 1 To MAX_RANK If GetPlayerName(index) = Trim$(Rank(i).Name) Then Rank(i).Name = vbNullString Rank(i).Level = 0 ClearPos = i Exit For End If Next i ' down clear position If ClearPos > 0 Then For i = ClearPos To MAX_RANK If i = MAX_RANK Then Rank(i).Name = vbNullString Rank(i).Level = 0 Else Rank(i).Name = Rank(i + 1).Name Rank(i).Level = Rank(i + 1).Level End If Next i End If ' open space in rank to player For i = MAX_RANK To RankPos Step -1 If i > RankPos Then Rank(i).Name = Rank(i - 1).Name Rank(i).Level = Rank(i - 1).Level End If Next i ' put player in rank Rank(RankPos).Name = GetPlayerName(index) Rank(RankPos).Level = GetPlayerLevel(index) SaveRank End Sub ``` **19 -** At the end of **modDatabase**, add: ``` Public Sub SaveRank() Dim filename As String, i As Byte filename = App.Path & "\data\rank.ini" For i = 1 To MAX_RANK PutVar filename, "RANK", "Name" & i, Trim$(Rank(i).Name) PutVar filename, "RANK", "Level" & i, Val(Rank(i).Level) Next i End Sub Public Sub LoadRank() Dim filename As String, i As Byte filename = App.Path & "\data\rank.ini" If FileExist(filename, True) Then For i = 1 To MAX_RANK Rank(i).Name = GetVar(filename, "RANK", "Name" & i) Rank(i).Level = Val(GetVar(filename, "RANK", "Level" & i)) Next i Else SaveRank End If End Sub ``` **20 -** In **modTypes**, search for: ``` Public Party(1 To MAX_PARTYS) As PartyRec ``` **21 -** Below add: ``` Public Rank(1 To MAX_RANK) As RankRec ``` **22 -** Beneath of: ``` Private Type OptionsRec Game_Name As String MOTD As String Port As Long Website As String End Type ``` **23 -** Add: ``` Private Type RankRec Name As String * ACCOUNT_LENGTH Level As Long End Type ``` **24 -** In **modPlayer**, search for: ``` ' Send Resource cache For i = 0 To ResourceCache(GetPlayerMap(index)).Resource_Count SendResourceCacheTo index, i Next ``` **25 -** Below add: ``` ' Check Rank For i = 1 To MAX_RANK If Trim$(Rank(i).Name) = GetPlayerName(index) Then Exit For End If If GetPlayerLevel(index) > Rank(i).Level Then Rank(i).Name = GetPlayerName(index) Rank(i).Level = GetPlayerLevel(index) SaveRank Exit For End If Next i ``` **26 -**In **modGeneral**,search for: ``` Call SetStatus("Loading animations...") Call LoadAnimations ``` **27 -** Below Add: ``` Call SetStatus("Loading rank...") Call LoadRank ``` **Credits:** Valentine
×
×
  • Create New...