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

eddy34

Members
  • Posts

    52
  • Joined

  • Last visited

    Never

Everything posted by eddy34

  1. eddy34

    Programming Contest

    Hello Guys, sorry. But I do not speak English very well, would like to know the following. When finished Pet, just post here to compete? Or send by MP for someone? xD
  2. eddy34

    New Developer Voting

    Now that I've seen it, had inscription? o.O Well, since I already lost … My vote is for Nyan! \ o / Good Luck, Bro. xD
  3. Thanks for the thanks. xD I'm adding one more image (done quickly) to make it clearer how will the Tileset: ![](http://i1079.photobucket.com/albums/w509/Guardian34/Funcionamento.png)
  4. ![](http://i1079.photobucket.com/albums/w509/Guardian34/ELSoftLogo2.png) Auto Tile Restore ![](http://i1079.photobucket.com/albums/w509/Guardian34/ATR1.png) Result : ![](http://i1079.photobucket.com/albums/w509/Guardian34/1-3.png) Hello people. Today I came to bring a mini programinha you coming helping me these days … Slated for me, this program makes, pre Tiles set for Auto Tile are removed and saved in a way where there is no need to use the Auto Tile to put them. There are two folders : **Images** and **Converted**. Images 96x128 (Auto Tile) are the only functional yet. They should be added in the **Images**. When you open the program select the image in the list and click **Create** . The image will be converted and will meet in the **Converted**. Download : [Click Here](http://www.4shared.com/rar/KgA3Bh-j/Auto_Tile_Restore.html?) Credits : GuardianBR
  5. Do not have much to say, is simply amazing! I'm proud to be your friend. xD Keep it up you will go far.
  6. davidsaid, try this tutorial : [Click Here](http://www.touchofdeathforums.com/smf2/index.php/topic,81545.0.html) I'm sorry to the creator of the topic, but it's not because I did your tutorial yet. And as the guy with ta problem, recommending to the similar system that I've tested it and ta working. xD I hope you do not mind Thanks!
  7. I found another bug. This did not mean it xD And it is quite strange. For example, you click on the map and as he walks to get to it you use the Alt + Tab to switch window. When you return to the game window, he ta round and round the map nothing to do with the coordinate. At least when you back it goes right to coordinated, but it's still pretty weird.
  8. In **Public Sub CheckInputKeys** have this: ``` chaton ``` You used the tutorial on shortcuts, but forgot to remove for mounting the tutorial. Fixes it. Other than that, almost perfect. xD If you have NPC on the map, or blocked, the player simply has to click there and elsewhere for him to walk. Or use the arrow keys.
  9. Partner, I was only doing this tutorial one of these days. But I "redid" the tutorial but since Spell Arrow and not per item. But I noticed a little problem, I do not know if it was because I swapped to Spell. But I guess not, so to posting here. For example, if I set the damage to the arrow 10\. It always takes 10 damage from the NPC, regardless of agility of it, or critical. So if you want the fix: **Server** Find : ``` ' check for npc hit For i = 1 To MAX_MAP_NPCS If x = MapNpc(GetPlayerMap(Index)).Npc(i).x And y = MapNpc(GetPlayerMap(Index)).Npc(i).y Then ' they're hit, remove it and deal that damage ;) If CanPlayerAttackNpc(Index, i, True) Then PlayerAttackNpc Index, i, TempPlayer(Index).ProjecTile(PlayerProjectile).damage ClearProjectile Index, PlayerProjectile Exit Sub Else ClearProjectile Index, PlayerProjectile Exit Sub End If End If Next ``` Replace With : ``` ' check for npc hit For i = 1 To MAX_MAP_NPCS If x = MapNpc(GetPlayerMap(Index)).Npc(i).x And y = MapNpc(GetPlayerMap(Index)).Npc(i).y Then ' they're hit, remove it and deal that damage ;) If CanPlayerAttackNpc(Index, i, True) Then damage = TempPlayer(Index).ProjecTile(PlayerProjectile).damage - CanNpcBlock(i) ' take away armour damage = damage - RAND(1, (Npc(i).stat(Stats.Agility) * 2)) ' randomise from 1 to max hit damage = RAND(1, damage) ' * 1.5 if it's a crit! If CanPlayerCrit(Index) Then damage = damage * 1.5 SendActionMsg GetPlayerMap(Index), "Critical!", BrightCyan, 1, (GetPlayerX(Index) * 32), (GetPlayerY(Index) * 32) End If PlayerAttackNpc Index, i, damage ClearProjectile Index, PlayerProjectile Exit Sub Else ClearProjectile Index, PlayerProjectile Exit Sub End If End If Next ``` Find : ``` ' check if hit player For i = 1 To Player_HighIndex ' make sure they're actually playing If IsPlaying(i) Then ' check coordinates If x = Player(i).x And y = GetPlayerY(i) Then ' make sure it's not the attacker If Not x = Player(Index).x Or Not y = GetPlayerY(Index) Then ' check if player can attack If CanPlayerAttackPlayer(Index, i, False, True) = True Then ' attack the player and kill the project tile PlayerAttackPlayer Index, i, TempPlayer(Index).ProjecTile(PlayerProjectile).damage ClearProjectile Index, PlayerProjectile Exit Sub Else ClearProjectile Index, PlayerProjectile Exit Sub End If End If End If End If Next ``` Replace with : ``` ' check if hit player For i = 1 To Player_HighIndex ' make sure they're actually playing If IsPlaying(i) Then ' check coordinates If x = Player(i).x And y = GetPlayerY(i) Then ' make sure it's not the attacker If Not x = Player(Index).x Or Not y = GetPlayerY(Index) Then ' check if player can attack If CanPlayerAttackPlayer(Index, i, False, True) = True Then ' Get the damage we can do damage = TempPlayer(Index).ProjecTile(PlayerProjectile).damage ' if the npc blocks, take away the block amount damage = (damage - CanPlayerBlock(i)) ' take away armour damage = damage - RAND(1, (GetPlayerStat(i, Agility) * 2)) ' randomise for up to 10% lower than max hit damage = RAND(1, damage) ' * 1.5 if can crit If CanPlayerCrit(index) Then damage = damage * 1.5 SendActionMsg getplayermap(Index), "Critical!", BrightCyan, 1, (GetPlayerX(index) * 32), (GetPlayerY(index) * 32) End If ' attack the player and kill the project tile PlayerAttackPlayer Index, i, Damage ClearProjectile Index, PlayerProjectile Exit Sub Else ClearProjectile Index, PlayerProjectile Exit Sub End If End If End If End If Next ``` I did it fast, is to use the TryPlayerAttackNpc or TryPlayerAttackPlayer. But something is already better than ever cause the same damage. xD If item does not occur with this error, I'm sorry. But tests ae by guarantee. Oh, and good tutorial.
  10. Very good partner, it's always good to have a better quality that weighs less. xD
  11. @Deathbeam: > Dont SendDataToAll, send it to map like this - SendDataToMap GetPlayerMap(Index), Buffer.ToArray() LOL I had not realized that I had committed this blunder. kkkk ' Thanks, you're just right. =D
  12. I did not apply for access because it is unnecessary. Already have a function outside the GetPlayerPremium would not be necessary for access. The premium to be removed, I put only log out yourself. It was deliberate. :)
  13. eddy34

    [EO] Titles 1.2

    Good job Ricardo, thanks for sharing your knowledge. :)
  14. You will only gain more experience if you do the premium system. What defines it is this code: ``` ' Premium If GetPlayerPremium(attacker) = "Sim" Then exp = exp * 2 End If ``` You can cut it if you want. ;) How to add items, equips, sprites, etc.. Yes you can, but you'll have to schedule more things. For example, if you want to add the item application only for premium players, you can. But you have to do it, you know? Someone can help too, of course. =D It has the functions GetPlayerPremium on the server only. Then he will do something for the system, just make the server using this function.
  15. @DepTa: > I have not tried the tutorial above, > and who would I ask here, > > Only two times more experience than the normal player ?? > how to add the other, and how? > > sorry if this noob question :( I'm sorry but I do not quite understand your question. It is a system "VIP" where a person who purchases the plan takes two times more experience than normal players. And this system is taken automatically by date.
  16. @jcsnider: > Just going to add a side note that this should also work perfectly for my Nightly editions for those who are wondering. > > Good job GuardianBR! > I hope to see more contributions from you in the future :D And you'll see. ;) @iHero: > You also started, good luck brother. > ~~He also is Brazilian~~ > > :D Thanks brother. \o/
  17. @Likestodraw: > They both are pretty much the same, though I like this form a LITTLE better. Great work! Thank You. It was reported a bug to me where it goes Premium for players who are offline. The error in the server. So who made ​​the tutorial, I ask you to replace its Sub HandleChangePremium and HandleRemovePremium by these: ``` Sub HandleChangePremium(ByVal Index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long) Dim Buffer As clsBuffer Dim A As String Dim B As String Dim C As Long Dim D As String Set Buffer = New clsBuffer Buffer.WriteBytes Data() A = Buffer.ReadString B = Buffer.ReadString C = Buffer.ReadLong D = FindPlayer(A) If IsPlaying(D) Then ' Check access if everything is right, change Premium If GetPlayerAccess(Index) < ADMIN_DEVELOPER Then Call PlayerMsg(Index, "You do not have access to complete this action!", White) Exit Sub Else Call SetPlayerPremium(D, "Sim") Call SetPlayerStartPremium(D, B) Call SetPlayerDaysPremium(D, C) GlobalMsg "The player " & GetPlayerName(D) & " became Premium. Congratulations!", BrightCyan End If SendPlayerData D SendDataPremium D End If Set Buffer = Nothing End Sub Sub HandleRemovePremium(ByVal Index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long) Dim Buffer As clsBuffer Dim A As String Dim B As String Set Buffer = New clsBuffer Buffer.WriteBytes Data() A = Buffer.ReadString B = FindPlayer(A) If IsPlaying(B) Then ' Check access if everything is right, change Premium If GetPlayerAccess(Index) < ADMIN_DEVELOPER Then Call PlayerMsg(Index, "You do not have access to complete this action!", White) Exit Sub Else Call SetPlayerPremium(B, "Não") Call SetPlayerStartPremium(B, vbNullString) Call SetPlayerDaysPremium(B, 0) PlayerMsg B, "His days of premium sold out.", BrightCyan End If SendPlayerData B SendDataPremium B End If Set Buffer = Nothing End Sub ``` I just added a isPlaying If there. :) Already added in Tutorial.
  18. @marlongb: > Thank you, very nice tutorial. > > How do I create a button to call the "frmEditor_Premium" in "picAdmin"? I'm sorry, I forgot to put it in the tutorial. In picAdmin, create a button with the name **cmdAPremium**. Add this to it: ``` ' If debug mode, handle error then exit out If Options.Debug = 1 Then On Error GoTo errorhandler ' Check Access If GetPlayerAccess(MyIndex) < ADMIN_DEVELOPER Then Exit Sub End If Call SendRequestEditPremium ' Error handler Exit Sub errorhandler: HandleError "cmdAPremium_Click", "frmMain", Err.Number, Err.Description, Err.Source, Err.HelpContext Err.Clear Exit Sub ``` Already added to the Tutorial. @Mortal: > Looks very cool :D Thanks for the release ;-) > Nice Second post Thank You =D @Synergy: > Can you drop the orange first letter.. I know you're trying to make your posts seem that little bit special, but orange on cream/white isn't very contrasting. > > Cool tutorial though. :P It is the intent is to make it more beautiful. And I already was thinking about taking it, the hard work. : P @Notsu: > Is this similar to "Membership System" by Richy? I had not seen the tutorial, but is rather similar. Although I think this is more complete.
  19. Hello Guys! Today I am here to teach you how to create a system for your game Premium where the Premium is withdrawn automatically by date. The system is a system Premium many know, only the name system VIP. In this tutorial System Premium gives only two times more experience than the normal player. Other features should be added for you. We go to the tutorial. **Client Side** Client creates a new Form with the name frmEditor_Premium. Let it as follows: ![](http://i1079.photobucket.com/albums/w509/Guardian34/TutorialPremium.png) If you do not want to create this form, download it here: [Click Here](http://www.mediafire.com/?q98hsr7l96sc2bp) Give the following properties for the textbox in order from top to bottom: **Name : txtPlayer** **Name : txtSPremium** **Name : txtDPremium** Now, take the following properties for commands buttons in order from left to right: **Name : cmdPremium** **Name : cmdRPremium** **Name : cmdExit** Now enter this code in frmEditor_Premium: ``` ' Premium System By : GuardianBR Option Explicit Private Sub cmdExit_Click() ' If debug mode, handle error then exit out If Options.Debug = 1 Then On Error GoTo errorhandler Me.Visible = False ' Error handler Exit Sub errorhandler: HandleError "cmdExit_Click", "frmEditor_Premium", Err.Number, Err.Description, Err.Source, Err.HelpContext Err.Clear Exit Sub End Sub Private Sub cmdPremium_Click() ' If debug mode, handle error then exit out If Options.Debug = 1 Then On Error GoTo errorhandler 'Check Access If GetPlayerAccess(MyIndex) < ADMIN_DEVELOPER Then Exit Sub End If 'Check for blanks fields If txtPlayer.text = vbNullString Or txtSPremium.text = vbNullString Or txtDPremium.text = vbNullString Then MsgBox ("There are blank fields, please fill out.") Exit Sub End If 'If all right, go for the Premium Call SendChangePremium(txtPlayer.text, txtSPremium.text, txtDPremium.text) ' Error handler Exit Sub errorhandler: HandleError "cmdPremium_Click", "frmEditor_Premium", Err.Number, Err.Description, Err.Source, Err.HelpContext Err.Clear Exit Sub End Sub Private Sub cmdRPremium_Click() ' If debug mode, handle error then exit out If Options.Debug = 1 Then On Error GoTo errorhandler 'Check Access If GetPlayerAccess(MyIndex) < ADMIN_DEVELOPER Then Exit Sub End If 'Check for blanks fields If txtPlayer.text = vbNullString Then MsgBox ("The name of the player is required for this operation.") Exit Sub End If 'If all is right, remove the Premium Call SendRemovePremium(txtPlayer.text) ' Error handler Exit Sub errorhandler: HandleError "cmdRPremium_Click", "frmEditor_Premium", Err.Number, Err.Description, Err.Source, Err.HelpContext Err.Clear Exit Sub End Sub ``` Create a button on PicAdmin. She is in frmMain. Put the name cmdAPremium. Then Add : ``` ' If debug mode, handle error then exit out If Options.Debug = 1 Then On Error GoTo errorhandler ' Check Access If GetPlayerAccess(MyIndex) < ADMIN_DEVELOPER Then Exit Sub End If Call SendRequestEditPremium ' Error handler Exit Sub errorhandler: HandleError "cmdAPremium_Click", "frmMain", Err.Number, Err.Description, Err.Source, Err.HelpContext Err.Clear Exit Sub ``` Now, at the end of ModClientTCP add: ``` Sub SendRequestEditPremium() 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 CRequestEditPremium SendData Buffer.ToArray() Set Buffer = Nothing ' Error handler Exit Sub errorhandler: HandleError "SendRequestEditPremium", "modClientTCP", Err.Number, Err.Description, Err.Source, Err.HelpContext Err.Clear Exit Sub End Sub Sub SendChangePremium(ByVal Name As String, ByVal Start As String, ByVal Days As Long) 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 CChangePremium Buffer.WriteString Name Buffer.WriteString Start Buffer.WriteLong Days SendData Buffer.ToArray() Set Buffer = Nothing ' Error handler Exit Sub errorhandler: HandleError "SendChangePremium", "modClientTCP", Err.Number, Err.Description, Err.Source, Err.HelpContext Err.Clear Exit Sub End Sub Sub SendRemovePremium(ByVal Name As String) 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 CRemovePremium Buffer.WriteString Name SendData Buffer.ToArray() Set Buffer = Nothing ' Error handler Exit Sub errorhandler: HandleError "SendRemovePremium", "modClientTCP", Err.Number, Err.Description, Err.Source, Err.HelpContext Err.Clear Exit Sub End Sub ``` In ModDirectDraw7, try this: ``` For i = 1 To Action_HighIndex Call BltActionMsg(i) Next i ``` Below add: ``` If Premium vbNullString Then Call DrawPremium End If ``` Then, in ModEnumerations. Above that: ``` ' Make sure SMSG_COUNT is below everything else SMSG_COUNT ``` Add: ``` SPlayerDPremium SPremiumEditor ``` Also in ModEnumerations above that: ``` ' Make sure CMSG_COUNT is below everything else CMSG_COUNT ``` Add : ``` CRequestEditPremium CChangePremium CRemovePremium ``` Now, at the end of ModGlobals, add: ``` ' Premium Public Premium As String Public RPremium As String ``` In ModHandleData, try this: ``` HandleDataSub(SPartyVitals) = GetAddress(AddressOf HandlePartyVitals) ``` Below add: ``` HandleDataSub(SPlayerDPremium) = GetAddress(AddressOf HandlePlayerDPremium) HandleDataSub(SPremiumEditor) = GetAddress(AddressOf HandlePremiumEditor) ``` Then, at the end of ModHandleData add: ``` Private Sub HandlePlayerDPremium(ByVal Index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long) Dim Buffer As clsBuffer Dim A As String Dim B As Long, c As Long ' If debug mode, handle error then exit out If Options.Debug = 1 Then On Error GoTo errorhandler Set Buffer = New clsBuffer Buffer.WriteBytes Data() ' Catch Data A = Buffer.ReadString B = Buffer.ReadLong c = Buffer.ReadLong ' Changing global variables If A = "Sim" Then Premium = "Premium : " & A RPremium = "You have : " & c - B & " days of Premium." Else Premium = vbNullString RPremium = vbNullString End If ' Error handler Exit Sub errorhandler: HandleError "HandlePlayerDPremium", "modHandleData", Err.Number, Err.Description, Err.Source, Err.HelpContext Err.Clear Exit Sub End Sub Private Sub HandlePremiumEditor() Dim i As Long ' If debug mode, handle error then exit out If Options.Debug = 1 Then On Error GoTo errorhandler ' Check Access If GetPlayerAccess(MyIndex) < ADMIN_DEVELOPER Then Exit Sub End If ' If you have everything right, up the Editor. With frmeditor_Premium .Visible = True End With ' Error handler Exit Sub errorhandler: HandleError "HandlePremiumEditor", "modHandleData", Err.Number, Err.Description, Err.Source, Err.HelpContext Err.Clear Exit Sub End Sub ``` Now, at the end of ModText add: ``` Public Sub DrawPremium() Dim x As Long Dim x2 As Long Dim y As Long x = Camera.Left + ((MAX_MAPX + 1) * PIC_X / 2) - getWidth(TexthDC, Trim$(Premium)) x2 = Camera.Left + ((MAX_MAPX + 1) * PIC_X / 2) - getWidth(TexthDC, Trim$(RPremium)) y = Camera.top + 1 Call DrawText(TexthDC, x - 190, y, Premium, QBColor(BrightBlue)) Call DrawText(TexthDC, x2 - 145, y + 20, RPremium, QBColor(BrightRed)) End Sub ``` Finally the customer, in ModTypes, try this: ``` ' Client use only ``` Add up: ``` ' Premium Premium As String StartPremium As String DaysPremium As Long ``` **Server Side** In ModCombat, In Sub PlayerAttackNpc, find this: ``` ' Calculate exp to give attacker exp = Npc(npcNum).exp ``` Below add: ``` ' Premium If GetPlayerPremium(attacker) = "Sim" Then exp = exp * 2 End If ``` Now In ModEnumerations. Find it: ``` ' Make sure SMSG_COUNT is below everything else SMSG_COUNT ``` Above, add: ``` SPlayerDPremium SPremiumEditor ``` Also in ModEnumerations, find this: ``` ' Make sure CMSG_COUNT is below everything else CMSG_COUNT ``` Above, add: ``` CRequestEditPremium CChangePremium CRemovePremium ``` In ModHandleData, find this: ``` HandleDataSub(CPartyLeave) = GetAddress(AddressOf HandlePartyLeave) ``` Below add: ``` HandleDataSub(CRequestEditPremium) = GetAddress(AddressOf HandleRequestEditPremium) HandleDataSub(CChangePremium) = GetAddress(AddressOf HandleChangePremium) HandleDataSub(CRemovePremium) = GetAddress(AddressOf HandleRemovePremium) ``` Also in ModHandleData, add it at the end: ``` Sub HandleRequestEditPremium(ByVal index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long) ' Check Access If GetPlayerAccess(index) < ADMIN_DEVELOPER Then Call PlayerMsg(index, "You do not have access to complete this action!", White) Exit Sub End If Call SendPremiumEditor(index) End Sub Sub HandleChangePremium(ByVal Index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long) Dim Buffer As clsBuffer Dim A As String Dim B As String Dim C As Long Dim D As String Set Buffer = New clsBuffer Buffer.WriteBytes Data() A = Buffer.ReadString B = Buffer.ReadString C = Buffer.ReadLong D = FindPlayer(A) If IsPlaying(D) Then ' Check access if everything is right, change Premium If GetPlayerAccess(Index) < ADMIN_DEVELOPER Then Call PlayerMsg(Index, "You do not have access to complete this action!", White) Exit Sub Else Call SetPlayerPremium(D, "Sim") Call SetPlayerStartPremium(D, B) Call SetPlayerDaysPremium(D, C) GlobalMsg "The player " & GetPlayerName(D) & " became Premium. Congratulations!", BrightCyan End If SendPlayerData D SendDataPremium D End If Set Buffer = Nothing End Sub Sub HandleRemovePremium(ByVal Index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long) Dim Buffer As clsBuffer Dim A As String Dim B As String Set Buffer = New clsBuffer Buffer.WriteBytes Data() A = Buffer.ReadString B = FindPlayer(A) If IsPlaying(B) Then ' Check access if everything is right, change Premium If GetPlayerAccess(Index) < ADMIN_DEVELOPER Then Call PlayerMsg(Index, "You do not have access to complete this action!", White) Exit Sub Else Call SetPlayerPremium(B, "Não") Call SetPlayerStartPremium(B, vbNullString) Call SetPlayerDaysPremium(B, 0) PlayerMsg B, "His days of premium sold out.", BrightCyan End If SendPlayerData B SendDataPremium B End If Set Buffer = Nothing End Sub ``` Now the end of ModPlayer, add: ``` ' Premium Function GetPlayerPremium(ByVal index As Long) As String GetPlayerPremium = Trim$(Player(index).Premium) End Function Sub SetPlayerPremium(ByVal index As Long, ByVal Premium As String) Player(index).Premium = Premium End Sub ' Start Premium Function GetPlayerStartPremium(ByVal index As Long) As String GetPlayerStartPremium = Trim$(Player(index).StartPremium) End Function Sub SetPlayerStartPremium(ByVal index As Long, ByVal StartPremium As String) Player(index).StartPremium = StartPremium End Sub ' Days Premium Function GetPlayerDaysPremium(ByVal index As Long) As Long GetPlayerDaysPremium = Player(index).DaysPremium End Function Sub SetPlayerDaysPremium(ByVal index As Long, ByVal DaysPremium As Long) Player(index).DaysPremium = DaysPremium End Sub Sub CheckPremium(ByVal index As Long) ' Check Premium If GetPlayerPremium(index) = "Sim" Then If DateDiff("d", GetPlayerStartPremium(index), Date) < GetPlayerDaysPremium(index) Then If GetPlayerPremium(index) = "Sim" Then Call PlayerMsg(index, "Thank you for purchasing the Premium Plan, Good Game!", White) End If ElseIf DateDiff("d", GetPlayerStartPremium(index), Date) >= GetPlayerDaysPremium(index) Then If GetPlayerPremium(index) = "Sim" Then Call SetPlayerPremium(index, "Não") Call PlayerMsg(index, "His days with the Premium plan exhausted, Good Game!", White) End If End If End If End Sub ``` Now the end of ModServerTCP, add: ``` Sub SendDataPremium(ByVal index As Long) Dim Buffer As clsBuffer Dim A As Long If GetPlayerPremium(index) = "Sim" Then A = DateDiff("d", GetPlayerStartPremium(index), Now) Else A = 0 End If Set Buffer = New clsBuffer Buffer.WriteLong SPlayerDPremium Buffer.WriteString GetPlayerPremium(index) Buffer.WriteLong A Buffer.WriteLong GetPlayerDaysPremium(index) SendDataTo index, Buffer.ToArray() Set Buffer = Nothing End Sub Sub SendPremiumEditor(ByVal index As Long) Dim Buffer As clsBuffer Set Buffer = New clsBuffer Buffer.WriteLong SPremiumEditor SendDataTo index, Buffer.ToArray() Set Buffer = Nothing End Sub ``` In ModTypes, PlayerRec In Type, find this: ``` Dir As Byte ``` Below add: ``` ' Premium Premium As String StartPremium As String DaysPremium As Long ``` In ModPlayer, find this: ``` Call SendWornEquipment(index) Call SendMapEquipment(index) Call SendPlayerSpells(index) Call SendHotbar(index) ``` Below, add: ``` Call CheckPremium(index) ``` In ModDatabase, In Sub AddChar, find this: ``` Player(index).Class = ClassNum ``` Below, add: ``` Player(index).Premium = "Não" Player(index).StartPremium = "00/00/0000" Player(index).DaysPremium = 0 ``` Also in ModDatabase, In Sub ClearPlayer, find this: ``` Player(index).Class = 1 ``` Below add: ``` Player(index).Premium = "Não" Player(index).StartPremium = "00/00/0000" Player(index).DaysPremium = 0 ``` In ModHandleData, In Sub HandleLogin, find this: ``` ' Show the player up on the socket status ``` Above, add: ``` Call SendDataPremium(index) ``` Also in ModHandleData in HandleAddChar, find: ``` Call AddChar(index, Name, Sex, Class, Sprite) ``` Below add: ``` Call SendDataPremium(index) ``` Credits: GuardianBR
  20. Hello Guys! Today I teach you to fix a bug in Eclipse Origins attack. For that I will explain the problem. The following image: ![](http://i1079.photobucket.com/albums/w509/Guardian34/BugAttack.png) Problem: When attacking, the sprite in your client moves from a Sprite to Sprite 2\. However, on account of the other players you're still standing with a sprite. What makes the game without animation stopped. Okay, let's resolution. **Server Side** In **Sub HandleAttack** find this: ``` ' Send this packet so they can see the person attacking 'SendAttack Index ``` Switch to: ``` ' Send this packet so they can see the person attacking SendAttack Index ``` Then the end of **ModServerTCP**, add: ``` Sub SendAttack(ByVal index As Long) Dim Buffer As clsBuffer Set Buffer = New clsBuffer Buffer.WriteLong ServerPackets.SAttack Buffer.WriteLong index SendDataToMap GetPlayerMap(Index), Buffer.ToArray() Set Buffer = Nothing End Sub ``` Sorry if you have an error in either English or topic, I am Brazilian and this is my first post. Credits : GuardianBR
×
×
  • Create New...