[EO] Titulos 1.2
+24
Himinato
dazateam
Storm™
Over~
xurana321
~Stronger
morenoo
Guardian
RD12
Freitas
LythZerou
ExecutionS
Serafinguildets
valceir.A
Eduardo
Acciles
twisterbk
Guiizinhu
Sαkurαy
Henrique2011
Cris~
RenanR
Frozen
Ricardo
28 participantes
Página 1 de 2
Página 1 de 2 • 1, 2
[EO] Titulos 1.2
Imagens
Log - Versão 1.1 a Versão 1.2
Log - Versão 1.1 a Versão 1.2
- Correção - Ao remover algum titulo sobrecarregar o servidor;
- Nova formula de recompeça dos titulos;
- Agora o titulo pode ser arrastado para a hotbar;
- Menssagens quando usar/remover um titulo;
- Remover o titulo que está usando;
Transferir versão 1.1 para 1.2.
Anexos
Anexos
- Sistema Completo
- Extras
Começando
Primeiramente faça o download da arquivo [i]Extras, que é encontrado nos Anexos, extraia-o e adicione as formulas e modulos no seu jogo.Server~Side
frmServer
Crie um commandButton com as seguintes configurações:
Name: cmdReloadTitulos
Caption: Titulos
Dentro dele adicione:
- Código:
Dim i As Long
Call LoadTitulos
Call TextAdd("All Titulos reloaded.")
For i = 1 To Player_HighIndex
If IsPlaying(i) Then
SendTitulos i
End If
Next
modCombat
Troque a Function GetPlayerMaxVital por:
- Código:
Function GetPlayerMaxVital(ByVal index As Long, ByVal Vital As Vitals) As Long
Dim x As Long, i As Long, n As Long
If index > MAX_PLAYERS Then Exit Function
Select Case Vital
Case HP
x = ((GetPlayerLevel(index) / 2) (GetPlayerStat(index, Endurance) / 2)) * 15 150
Case MP
x = ((GetPlayerLevel(index) / 2) (GetPlayerStat(index, Intelligence) / 2)) * 5 25
End Select
For i = 1 To MAX_PLAYER_TITULOS
If GetPlayerTitulo(index, i) > 0 Then
If Titulo(GetPlayerTitulo(index, i)).Passivo = True Then
x = x Titulo(GetPlayerTitulo(index, i)).VitalRec(Vital)
End If
End If
Next
If GetPlayerTUsando(index) > 0 Then x = x + Titulo(GetPlayerTUsando(index)).VitalRec(Vital)
GetPlayerMaxVital = x
End Function
modDataBase
Na Sub AddChar abaixo de:
- Código:
Dim spritecheck As Boolean
Adicione:
- Código:
Dim y As Long, tituloRec As Long
Procure por:
- Código:
' set start spells
If Class(ClassNum).startSpellCount > 0 Then
For n = 1 To Class(ClassNum).startSpellCount
If Class(ClassNum).StartSpell(n) > 0 Then
' spell exist?
If Len(Trim$(Spell(Class(ClassNum).StartItem(n)).Name)) > 0 Then
Player(index).Spell(n) = Class(ClassNum).StartSpell(n)
End If
End If
Next
End If
Abaixo adicione:
- Código:
' set start titulos
For n = 1 To MAX_TITULOS
If Len(Trim$(Titulo(n).Nome)) > 0 Then
If Titulo(n).Tipo = TITULO_TYPE_INICIAL Then
Call SetPlayerTitulo(index, FindOpenTituloSlot(index), n)
End If
End If
Next
modEnumerations
Procure por:
- Código:
' Make sure SMSG_COUNT is below everything else
Acima adicione:
- Código:
STituloEditor
SUpdateTitulo
STitulos
Procure por:
- Código:
' Make sure CMSG_COUNT is below everything else
Acima adicione:
- Código:
CRequestEditTitulo
CSaveTitulo
CRequestTitulos
CSwapTituloSlots
CTituloComando
Procure por:
- Código:
Public Enum SoundEntity
seAnimation = 1
seItem
seNpc
seResource
seSpell
Abaixo adicione:
- Código:
seTitulo
modGeneral
Procure por:
- Código:
ChkDir App.Path & "\Data", "spells"
Abaixo adicione:
- Código:
ChkDir App.Path & "\Data", "titulos"
Procure por:
- Código:
Call SetStatus("Clearing animations...")
Call ClearAnimations
Abaixo adicione:
- Código:
Call SetStatus("Clearing titulos...")
Call ClearTitulos
Procure por:
- Código:
Call SetStatus("Loading animations...")
Call LoadAnimations
Abaixo adicione:
- Código:
Call SetStatus("Loading titulos...")
Call LoadTitulos
modHandleData
Procure por:
- Código:
HandleDataSub(CPartyLeave) = GetAddress(AddressOf HandlePartyLeave)
Abaixo adicione:
- Código:
HandleDataSub(CRequestEditTitulo) = GetAddress(AddressOf HandleRequestEditTitulo)
HandleDataSub(CSaveTitulo) = GetAddress(AddressOf HandleSaveTitulo)
HandleDataSub(CRequestTitulos) = GetAddress(AddressOf HandleRequestTitulos)
HandleDataSub(CSwapTituloSlots) = GetAddress(AddressOf HandleSwapTituloSlots)
HandleDataSub(CTituloComando) = GetAddress(AddressOf HandleTituloComando)
Procure por:
- Código:
' Send the update
'Call SendStats(Index)
Abaixo adicione:
- Código:
CheckTitulo index
Procure por:
- Código:
Case 2 ' spell
If Slot > 0 And Slot <= MAX_PLAYER_SPELLS And Player(index).Spell(Slot) Then
If Len(Trim$(Spell(Player(index).Spell(Slot)).Name)) > 0 Then
If FindHotbar(index, Player(index).Spell(Slot), SType) = False Then
Player(index).Hotbar(hotbarNum).Slot = Player(index).Spell(Slot)
Player(index).Hotbar(hotbarNum).SType = SType
End If
End If
End If
Abaixo adicione:
- Código:
Case 3 ' titulo
If Slot > 0 And Slot <= MAX_PLAYER_TITULOS Then
If GetPlayerTitulo(index, Slot) > 0 Then
If Len(Trim$(Titulo(GetPlayerTitulo(index, Slot)).Nome)) > 0 Then
Player(index).Hotbar(hotbarNum).Slot = GetPlayerTitulo(index, Slot)
Player(index).Hotbar(hotbarNum).SType = SType
End If
End If
End If
modPlayer
Procure por:
- Código:
Call SendHotbar(index)
Abaixo adicione:
- Código:
Call SendTitulos(index)
Procure por:
- Código:
If level_count > 0 Then
If level_count = 1 Then
'singular
GlobalMsg GetPlayerName(index) & " has gained " & level_count & " level!", Brown
Else
'plural
GlobalMsg GetPlayerName(index) & " has gained " & level_count & " levels!", Brown
End If
Abaixo adicione:
- Código:
CheckTitulo index
Troque a Function GetplayerStat por:
- Código:
Public Function GetPlayerStat(ByVal index As Long, ByVal Stat As Stats) As Long
Dim x As Long, i As Long
If index > MAX_PLAYERS Then Exit Function
x = Player(index).Stat(Stat)
For i = 1 To MAX_PLAYER_TITULOS
If GetPlayerTitulo(index, i) > 0 Then
If Titulo(GetPlayerTitulo(index, i)).Passivo = True Then
x = x Titulo(GetPlayerTitulo(index, i)).StatRec(Stat)
End If
End If
Next
If GetPlayerTUsando(index) > 0 Then x = x Titulo(GetPlayerTUsando(index)).StatRec(Stat)
For i = 1 To Equipment.Equipment_Count - 1
If Player(index).Equipment(i) > 0 Then
If Item(Player(index).Equipment(i)).Add_Stat(Stat) > 0 Then
x = x Item(Player(index).Equipment(i)).Add_Stat(Stat)
End If
End If
Next
GetPlayerStat = x
End Function
modServerTcp
Procure por:
- Código:
Buffer.WriteLong GetPlayerPK(index)
Abaixo adicione:
- Código:
Buffer.WriteLong GetPlayerTUsando(index)
For i = 1 To MAX_PLAYER_TITULOS
Buffer.WriteLong GetPlayerTitulo(index, i)
Next
modTypes
Acima da Type PlayerRec adicione:
- Código:
Private Type PlayerTituloRec
Titulo(1 To MAX_PLAYER_TITULOS) As Long
Usando As Long
End Type
No final da Type PlayerRec, antes do End Type, adicione:
- Código:
' Titulo
Titulo As PlayerTituloRec
' AddVital
AddVital(1 To Vitals.Vital_Count - 1) As Long
Client~Side
frmMain
Dentro da picAdmin crie um commandButton com as seguintes configurações:
Name: cmdATitulo
Caption: Titulos
Crie uma image com as seguintes configurações:
Name: imgButton
Index: 7
Dentro dele, logo após a case 6, adicione:
- Código:
Case 7
picTitulos.Visible = Not picTitulos.Visible
' show the window
picCharacter.Visible = False
picInventory.Visible = False
picSpells.Visible = False
picOptions.Visible = False
picParty.Visible = False
BltPlayerTitulos
' play sound
PlaySound Sound_ButtonClick
Agora crie três pictureBox com as seguintes configurações:
PictureBox1
Name: picTitulos
Height: 270
Width: 194
PictureBox2
Name: picTempTitulo
Height: 36
Width: 36
PictureBox3
Name: picTituloDesc
Dentro da picTituloDesc crie uma pictureBox e duas labeis com as seguintes configurações:
Picturebox1
Name: picTituloDescPic
Height: 64
Width: 64
Label1
Name: lblTituloName
Label2
Name: lblTituloDesc
Procure por:
- Código:
picSpellDesc.Visible = False
Abaixo adicione:
- Código:
picTituloDesc.Visible = False
Na Sub imgButton no final de cada case, menos da case 7, adicione:
- Código:
picTitulos.Visible = False
Dentro da picTitulos crie uma label com as seguintes configurações:
Name: lblRemoveTUsando
Caption: Parar de usar
No final do modulo adicione:
- Código:
Private Sub cmdATitulo_Click()
' If debug mode, handle error then exit out
If Options.Debug = 1 Then On Error GoTo errorhandler
If GetPlayerAccess(MyIndex) < ADMIN_DEVELOPER Then
Exit Sub
End If
SendRequestEditTitulo
' Error handler
Exit Sub
errorhandler:
HandleError "cmdATitulo_Click", "frmMain", Err.Number, Err.Description, Err.Source, Err.HelpContext
Err.Clear
Exit Sub
End Sub
Private Sub picTituloDesc_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
' If debug mode, handle error then exit out
If Options.Debug = 1 Then On Error GoTo errorhandler
picTituloDesc.Visible = False
' Error handler
Exit Sub
errorhandler:
HandleError "picTituloDesc_MouseMove", "frmMain", Err.Number, Err.Description, Err.Source, Err.HelpContext
Err.Clear
Exit Sub
End Sub
Private Sub picTitulos_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim titulonum As Long
' If debug mode, handle error then exit out
If Options.Debug = 1 Then On Error GoTo errorhandler
titulonum = IsPlayerTitulo(TituloX, TituloY)
If Button = 1 Then ' left click
If titulonum <> 0 Then
SendTituloComando "Usar", titulonum
DragTitulo = titulonum
Exit Sub
End If
ElseIf Button = 2 Then ' right click
If titulonum <> 0 Then
SendTituloComando "Remover", titulonum
DragTitulo = 0
Exit Sub
End If
End If
' Error handler
Exit Sub
errorhandler:
HandleError "picTitulos_MouseDown", "frmMain", Err.Number, Err.Description, Err.Source, Err.HelpContext
Err.Clear
Exit Sub
End Sub
Private Sub picTitulos_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim tituloslot As Long
Dim x2 As Long, y2 As Long
' If debug mode, handle error then exit out
If Options.Debug = 1 Then On Error GoTo errorhandler
TituloX = x
TituloY = y
tituloslot = IsPlayerTitulo(x, y)
If DragTitulo > 0 Then
Call BltDraggedTitulo(x picTitulos.Left, y picTitulos.top)
Else
If tituloslot <> 0 Then
x2 = x picTitulos.Left - picTituloDesc.width - 1
y2 = y picTitulos.top - picTituloDesc.height - 1
UpdateTituloWindow GetPlayerTitulo(MyIndex, tituloslot), x2, y2
LastTituloDesc = GetPlayerTitulo(MyIndex, tituloslot)
Exit Sub
End If
End If
picTituloDesc.Visible = False
LastTituloDesc = 0
' Error handler
Exit Sub
errorhandler:
HandleError "picTitulos_MouseMove", "frmMain", Err.Number, Err.Description, Err.Source, Err.HelpContext
Err.Clear
Exit Sub
End Sub
Private Sub picTitulos_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim i As Long
Dim rec_pos As RECT
' If debug mode, handle error then exit out
If Options.Debug = 1 Then On Error GoTo errorhandler
If DragTitulo > 0 Then
' drag drop
For i = 1 To MAX_PLAYER_TITULOS
With rec_pos
.top = TituloTop ((TituloOffsetY 32) * ((i - 1) \ TituloColumns))
.Bottom = .top PIC_Y
.Left = TituloLeft ((TituloOffsetX 32) * (((i - 1) Mod TituloColumns)))
.Right = .Left PIC_X
End With
If x >= rec_pos.Left And x <= rec_pos.Right Then
If y >= rec_pos.top And y <= rec_pos.Bottom Then
If DragTitulo <> i Then
SendChangeTituloSlots DragTitulo, i
Exit For
End If
End If
End If
Next
' hotbar
For i = 1 To MAX_HOTBAR
With rec_pos
.top = picHotbar.top - picTitulos.top
.Left = picHotbar.Left - picTitulos.Left (HotbarOffsetX * (i - 1)) (32 * (i - 1))
.Right = .Left 32
.Bottom = picHotbar.top - picTitulos.top 32
End With
If x >= rec_pos.Left And x <= rec_pos.Right Then
If y >= rec_pos.top And y <= rec_pos.Bottom Then
SendHotbarChange 3, DragTitulo, i
DragTitulo = 0
picTempTitulo.Visible = False
Exit Sub
End If
End If
Next
End If
DragTitulo = 0
picTempTitulo.Visible = False
' Error handler
Exit Sub
errorhandler:
HandleError "picTitulos_MouseUp", "frmMain", Err.Number, Err.Description, Err.Source, Err.HelpContext
Err.Clear
Exit Sub
End Sub
Private Sub lblRemoveTUsando_Click()
' If debug mode, handle error then exit out
If Options.Debug = 1 Then On Error GoTo errorhandler
SendTituloComando "RemoveTUsando", 0
' Error handler
Exit Sub
errorhandler:
HandleError "lblRemoveTUsando_Click", "frmMain", Err.Number, Err.Description, Err.Source, Err.HelpContext
Err.Clear
Exit Sub
Procure por:
- Código:
ElseIf Hotbar(SlotNum).sType = 2 Then ' spell
x = x picHotbar.Left 1
y = y picHotbar.top - picSpellDesc.height - 1
UpdateSpellWindow Hotbar(SlotNum).Slot, x, y
LastSpellDesc = Hotbar(SlotNum).Slot ' set it so you don't re-set values
Exit Sub
Abaixo adicione:
- Código:
ElseIf Hotbar(SlotNum).sType = 3 Then ' titulo
x = x picHotbar.Left 1
y = y picHotbar.top - picTituloDesc.height - 1
UpdateTituloWindow Hotbar(SlotNum).Slot, x, y
LastTituloDesc = Hotbar(SlotNum).Slot ' set it so you don't re-set values
Exit Sub
modClientTcp
Troque a Sub SendHotbarUse por:
- Código:
Public Sub SendHotbarUse(ByVal Slot As Long)
Dim Buffer As clsBuffer, x As Long
' If debug mode, handle error then exit out
If Options.Debug = 1 Then On Error GoTo errorhandler
' check if spell
If Hotbar(Slot).sType = 2 Then ' spell
For x = 1 To MAX_PLAYER_SPELLS
' is the spell matching the hotbar?
If PlayerSpells(x) = Hotbar(Slot).Slot Then
' found it, cast it
CastSpell x
Exit Sub
End If
Next
' can't find the spell, exit out
Exit Sub
' verificar se é titulo
ElseIf Hotbar(Slot).sType = 3 Then ' titulo
For x = 1 To MAX_PLAYER_TITULOS
If GetPlayerTitulo(MyIndex, x) = Hotbar(Slot).Slot Then
Call SendTituloComando("Usar", x)
Exit Sub
End If
Next
Exit Sub
End If
Set Buffer = New clsBuffer
Buffer.WriteLong CHotbarUse
Buffer.WriteLong Slot
SendData Buffer.ToArray()
Set Buffer = Nothing
' Error handler
Exit Sub
errorhandler:
HandleError "SendHotbarUse", "modClientTCP", Err.Number, Err.Description, Err.Source, Err.HelpContext
Err.Clear
Exit Sub
End Sub
modConstants
Procure por:
- Código:
Public Const MAX_MAINBUTTONS As Long = 6
Mude para:
- Código:
Public Const MAX_MAINBUTTONS As Long = 7
modDirectDraw7
Procure por:
- Código:
For i = 1 To NumFaces
Set DDS_Face(i) = Nothing
ZeroMemory ByVal VarPtr(DDSD_Face(i)), LenB(DDSD_Face(i))
Next
Abaixo adicione:
- Código:
For i = 1 To NumTitulos
Set DDS_Titulo(i) = Nothing
ZeroMemory ByVal VarPtr(DDSD_Titulo(i)), LenB(DDSD_Titulo(i))
Next
Procure por:
- Código:
Call DrawPlayerName(i)
Abaixo adicione:
- Código:
Call DrawPlayerTitulo(i)
Troque a Sub BltHotbar por:
- Código:
Public Sub BltHotbar()
Dim sRECT As RECT, dRECT As RECT, i As Long, num As String, n As Long
' If debug mode, handle error then exit out
If Options.Debug = 1 Then On Error GoTo errorhandler
frmMain.picHotbar.Cls
For i = 1 To MAX_HOTBAR
With dRECT
.top = HotbarTop
.Left = HotbarLeft ((HotbarOffsetX 32) * (((i - 1) Mod MAX_HOTBAR)))
.Bottom = .top 32
.Right = .Left 32
End With
With sRECT
.top = 0
.Left = 32
.Bottom = 32
.Right = 64
End With
Select Case Hotbar(i).sType
Case 1 ' inventory
If Len(Item(Hotbar(i).Slot).Name) > 0 Then
If Item(Hotbar(i).Slot).Pic > 0 Then
If DDS_Item(Item(Hotbar(i).Slot).Pic) Is Nothing Then
Call InitDDSurf("Items" & Item(Hotbar(i).Slot).Pic, DDSD_Item(Item(Hotbar(i).Slot).Pic), DDS_Item(Item(Hotbar(i).Slot).Pic))
End If
Engine_BltToDC DDS_Item(Item(Hotbar(i).Slot).Pic), sRECT, dRECT, frmMain.picHotbar, False
End If
End If
Case 2 ' spell
With sRECT
.top = 0
.Left = 0
.Bottom = 32
.Right = 32
End With
If Len(Spell(Hotbar(i).Slot).Name) > 0 Then
If Spell(Hotbar(i).Slot).Icon > 0 Then
If DDS_SpellIcon(Spell(Hotbar(i).Slot).Icon) Is Nothing Then
Call InitDDSurf("Spellicons" & Spell(Hotbar(i).Slot).Icon, DDSD_SpellIcon(Spell(Hotbar(i).Slot).Icon), DDS_SpellIcon(Spell(Hotbar(i).Slot).Icon))
End If
' check for cooldown
For n = 1 To MAX_PLAYER_SPELLS
If PlayerSpells(n) = Hotbar(i).Slot Then
' has spell
If Not SpellCD(i) = 0 Then
sRECT.Left = 32
sRECT.Right = 64
End If
End If
Next
Engine_BltToDC DDS_SpellIcon(Spell(Hotbar(i).Slot).Icon), sRECT, dRECT, frmMain.picHotbar, False
End If
End If
Case 3 ' titulo
With sRECT
.top = 0
.Left = 0
.Bottom = 32
.Right = 32
End With
If Len(Titulo(Hotbar(i).Slot).Nome) > 0 Then
If Titulo(Hotbar(i).Slot).Icone > 0 Then
If DDS_Titulo(Titulo(Hotbar(i).Slot).Icone) Is Nothing Then
Call InitDDSurf("titulos" & Titulo(Hotbar(i).Slot).Icone, DDSD_Titulo(Titulo(Hotbar(i).Slot).Icone), DDS_Titulo(Titulo(Hotbar(i).Slot).Icone))
End If
Engine_BltToDC DDS_Titulo(Titulo(Hotbar(i).Slot).Icone), sRECT, dRECT, frmMain.picHotbar, False
End If
End If
End Select
' render the letters
num = "F" & Str(i)
DrawText frmMain.picHotbar.hDC, dRECT.Left 2, dRECT.top 16, num, QBColor(White)
Next
frmMain.picHotbar.Refresh
' Error handler
Exit Sub
errorhandler:
HandleError "BltHotbar", "modDirectDraw7", Err.Number, Err.Description, Err.Source, Err.HelpContext
Err.Clear
Exit Sub
End Sub
modEnumerations
Procure por:
- Código:
' Make sure SMSG_COUNT is below everything else
Acima adicione:
- Código:
STituloEditor
SUpdateTitulo
STitulos
Procure por:
- Código:
' Make sure CMSG_COUNT is below everything else
Acima adicione:
- Código:
CRequestEditTitulo
CSaveTitulo
CRequestTitulos
CSwapTituloSlots
CTituloComando
Procure por:
- Código:
Public Enum SoundEntity
seAnimation = 1
seItem
seNpc
seResource
seSpell
Abaixo adicione:
- Código:
seTitulo
modGameLogic
Procure por:
- Código:
' faces
If NumFaces > 0 Then
For i = 1 To NumFaces 'Check to unload surfaces
If FaceTimer(i) > 0 Then 'Only update surfaces in use
If FaceTimer(i) < Tick Then 'Unload the surface
Call ZeroMemory(ByVal VarPtr(DDSD_Face(i)), LenB(DDSD_Face(i)))
Set DDS_Face(i) = Nothing
FaceTimer(i) = 0
End If
End If
Next
End If
Abaixo adicione:
- Código:
' titulos
If NumTitulos > 0 Then
For i = 1 To NumTitulos ' Check to unload surfaces
If TituloTimer(i) > 0 Then ' Only update surfaces in use
If TituloTimer(i) < Tick Then ' Unload the surface
Call ZeroMemory(ByVal VarPtr(DDSD_Titulo(i)), LenB(DDSD_Titulo(i)))
Set DDS_Titulo(i) = Nothing
TituloTimer(i) = 0
End If
End If
Next
End If
Procure por:
- Código:
' spells
Case SoundEntity.seSpell
If entityNum > MAX_SPELLS Then Exit Sub
soundName = Trim$(Spell(entityNum).Sound)
Abaixo adicione:
- Código:
' titulos
Case SoundEntity.seTitulo
If entityNum > MAX_TITULOS Then Exit Sub
soundName = Trim$(Titulo(entityNum).Som)
modGeneral
Procure por:
- Código:
ChkDir App.Path & "\data files\graphics", "faces"
Abaixo adicione:
- Código:
ChkDir App.Path & "\data files\graphics", "titulos"
Procure por:
- Código:
Call CheckFaces
Abaixo adicione:
- Código:
Call CheckTitulos
Procure por:
- Código:
frmMain.picSpellDesc.Picture = LoadPicture(App.Path & "\data files\graphics\gui\main\description_spell.jpg")
Abaixo adicione:
- Código:
frmMain.picTituloDesc.Picture = LoadPicture(App.Path & "\data files\graphics\gui\main\description_titulo.jpg")
frmMain.picTempTitulo.Picture = LoadPicture(App.Path & "\data files\graphics\gui\main\dragbox.jpg")
frmMain.picTitulos.Picture = LoadPicture(App.Path & "\data files\graphics\gui\main\titulos.jpg")
Procure por:
- Código:
SpellX = 0
SpellY = 0
Abaixo adicione:
- Código:
TituloX = 0
TituloY = 0
Procure por:
- Código:
Unload frmEditor_Spell
Abaixo adicione:
- Código:
Unload frmEditor_Titulo
Procure por:
- Código:
frmMain.picParty.Visible = False
Abaixo adicione:
- Código:
frmMain.picTitulos.Visible = False
Procure por:
- Código:
' blt hotbar
BltHotbar
Abaixo adicione:
- Código:
' blt titulos
BltPlayerTitulos
Procure por:
- Código:
' main - party
With MainButton(6)
.fileName = "party"
.state = 0 ' normal
End With
Abaixo adicione:
- Código:
' main - titulos
With MainButton(7)
.fileName = "titulos"
.state = 0 ' normal
End With
modHandleData
Procure por:
- Código:
HandleDataSub(SPartyVitals) = GetAddress(AddressOf HandlePartyVitals)
Abaixo adicione:
- Código:
HandleDataSub(STituloEditor) = GetAddress(AddressOf HandleTituloEditor)
HandleDataSub(SUpdateTitulo) = GetAddress(AddressOf HandleUpdateTitulo)
HandleDataSub(STitulos) = GetAddress(AddressOf HandleTitulos)
Procure por:
- Código:
Call SetPlayerPK(i, Buffer.ReadLong)
Abaixo adicione:
- Código:
Call SetPlayerTUsando(i, Buffer.ReadLong)
For x = 1 To MAX_PLAYER_TITULOS
Call SetPlayerTitulo(i, x, Buffer.ReadLong)
Next
No final do modulo adicione:
- Código:
Private Sub HandleTituloEditor()
Dim i As Long
' If debug mode, handle error then exit out
If Options.Debug = 1 Then On Error GoTo errorhandler
With frmEditor_Titulo
Editor = EDITOR_TITULO
.lstIndex.Clear
' Add the names
For i = 1 To MAX_TITULOS
.lstIndex.AddItem i & ": " & Trim$(Titulo(i).Nome)
Next
.Show
.lstIndex.ListIndex = 0
TituloEditorInit
End With
' Error handler
Exit Sub
errorhandler:
HandleError "HandleTituloEditor", "modHandleData", Err.Number, Err.Description, Err.Source, Err.HelpContext
Err.Clear
Exit Sub
End Sub
Private Sub HandleUpdateTitulo(ByVal Index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)
Dim n As Long
Dim Buffer As clsBuffer
Dim TituloSize As Long
Dim TituloData() 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()
n = Buffer.ReadLong
' Update the Titulo
TituloSize = LenB(Titulo(n))
ReDim TituloData(TituloSize - 1)
TituloData = Buffer.ReadBytes(TituloSize)
CopyMemory ByVal VarPtr(Titulo(n)), ByVal VarPtr(TituloData(0)), TituloSize
Set Buffer = Nothing
' Error handler
Exit Sub
errorhandler:
HandleError "HandleUpdateTitulo", "modHandleData", Err.Number, Err.Description, Err.Source, Err.HelpContext
Err.Clear
Exit Sub
End Sub
modImput
Procure por:
- Código:
' Editing spell request
Case "/editspell"
If GetPlayerAccess(MyIndex) < ADMIN_DEVELOPER Then GoTo Continue
SendRequestEditSpell
Abaixo adicione:
- Código:
' Editing titulo request
Case "/edittitulo"
If GetPlayerAccess(MyIndex) < ADMIN_DEVELOPER Then GoTo Continue
SendRequestEditTitulo
modTypes
Acima da Type PlayerRec adicione:
- Código:
Private Type PlayerTituloRec
Titulo(1 To MAX_PLAYER_TITULOS) As Long
Usando As Long
End Type
No final da Type PlayerRec, antes do End Type, adicione:
- Código:
' Titulo
Titulo As PlayerTituloRec
Créditos
Ricardo
Ricardo
Última edição por Ricardo em Qua 15 Ago 2012, 18:48, editado 17 vez(es)
Ricardo- Mensagens : 1044
Re: [EO] Titulos 1.2
Muito bom, parabéns pelo tutorial. +1 Merecido
RenanR- Membro Veterano
- Mensagens : 1048
Re: [EO] Titulos 1.2
MuitooooO Rox, e pequeno tbm u___U
+1 De Credito
Cris~- Membro Veterano
- Mensagens : 1574
Re: [EO] Titulos 1.2
Krl Quanta coisa :S , ainda bem que n mexo nisso.. sem nem por onde começar '-'
Henrique2011Banido- Mensagens : 168
Re: [EO] Titulos 1.2
Ótimo trabalho, Ricardo.
Parabéns, +1 crédito. É uma pena eu não utilizar, pois se vejo bem isso daí é pra dx7 ;s
Se fizer uma versão pra dx8, agradeço ^-^"
Parabéns, +1 crédito. É uma pena eu não utilizar, pois se vejo bem isso daí é pra dx7 ;s
Se fizer uma versão pra dx8, agradeço ^-^"
Sαkurαy- Membro Veterano
- Mensagens : 1386
Re: [EO] Titulos 1.2
Bom já que estão criticando reduzi o post. O sistema não foi modificado só foi adicionado novos modulos para reduzir os codigos.
Ricardo- Mensagens : 1044
Re: [EO] Titulos 1.2
Muito bom esse sistema, vou usar com certeza =)
Acciles- Membro Junior
- Mensagens : 64
Re: [EO] Titulos 1.2
Ta dando erro nessa parte:
' set start titulos
For i = 1 To MAX_TITULOS
If Len(Trim$(Titulo(i).Nome)) > 0 Then
If Titulo(i).Tipo = TITULO_TYPE_INICIAL Then
Call SetPlayerTitulo(index, FindOpenTituloSlot(index), i)
End If
End If
Next
e ele da HIGHTLIGHT no For i = 1 To MAX_TITULOS
Ae eu mudei pra n = 1
ae ja da q existe algo com o nome Titulo
~\\~\\~\\~\\~\\~\\~\\~\\~~\~\\~\\~\\~\\~\\~\\~\~\\~\\
EDIT:
Cara eu baxei o sistema implementado e Ripei dele pro meu, ai funcionou direitinho, pelo tuto ta dando errado, só pra avisar!
' set start titulos
For i = 1 To MAX_TITULOS
If Len(Trim$(Titulo(i).Nome)) > 0 Then
If Titulo(i).Tipo = TITULO_TYPE_INICIAL Then
Call SetPlayerTitulo(index, FindOpenTituloSlot(index), i)
End If
End If
Next
e ele da HIGHTLIGHT no For i = 1 To MAX_TITULOS
Ae eu mudei pra n = 1
ae ja da q existe algo com o nome Titulo
~\\~\\~\\~\\~\\~\\~\\~\\~~\~\\~\\~\\~\\~\\~\\~\~\\~\\
EDIT:
Cara eu baxei o sistema implementado e Ripei dele pro meu, ai funcionou direitinho, pelo tuto ta dando errado, só pra avisar!
Última edição por twisterbk em Ter 17 Jul 2012, 12:22, editado 1 vez(es)
twisterbk- Membro
- Mensagens : 173
Re: [EO] Titulos 1.2
Tá dando o seguinte erro.
Edit : Eu baixei a versão já instalada, mas como faço pra colocar o titulo como item ? Já um mas nao achei a opção.
Edit : Eu baixei a versão já instalada, mas como faço pra colocar o titulo como item ? Já um mas nao achei a opção.
Última edição por Acciles em Seg 16 Jul 2012, 20:17, editado 1 vez(es)
Acciles- Membro Junior
- Mensagens : 64
Re: [EO] Titulos 1.2
Acciles acho que voce nao declarou a linha do erro no PlayerRec, no mod globals seila, nao fiz esse sistema aki mais deve ser isso
Eduardo- Membro Veterano
- Mensagens : 1178
Re: [EO] Titulos 1.2
Não existe erro, só existe a preguiça de alguns para não baixar o extra.
Ricardo- Mensagens : 1044
Re: [EO] Titulos 1.2
Serafinguildets escreveu:#fato
Fato? o cara é novo no forum e ja vem com graça '-'
twisterbk- Membro
- Mensagens : 173
Re: [EO] Titulos 1.2
De alguam forma os sinais de mais sairam de alguns códigos no cliente, isso já foi arrumado. Desculpe-me ao transtorno.
Ricardo- Mensagens : 1044
Re: [EO] Titulos 1.2
Log - Versão 1.0 até Versão 1.1
- Removido erro de quando usar ou remover um titulo em branco sobrecarrgar o servidor;
- Animação quando usar e remover os titulos;
- Recompença de vital no titulo;
- Titulo passivo;
- Cor na descrição do nome dos titulos;
Começando
Baixe os novos Extras, que é encontrado nos Anexos, extraia-o e adicione as formulas e modulos no seu jogoServer~Side
modCombat
Troque a Function GetPlayerMaxVital por:
- Código:
Function GetPlayerMaxVital(ByVal index As Long, ByVal Vital As Vitals) As Long
If index > MAX_PLAYERS Then Exit Function
Select Case Vital
Case HP
GetPlayerMaxVital = ((GetPlayerLevel(index) / 2) + (GetPlayerStat(index, Endurance) / 2)) * 15 + 150 + Player(index).AddVital(Vital)
Case MP
GetPlayerMaxVital = ((GetPlayerLevel(index) / 2) + (GetPlayerStat(index, Intelligence) / 2)) * 5 + 25 + Player(index).AddVital(Vital)
End Select
End Function
modDataBase
Na Sub AddChar abaixo de:
- Código:
Dim spritecheck As Boolean
Adicione:
- Código:
Dim y As Long, tituloRec As Long
Procure por:
- Código:
' set start titulos
For n = 1 To MAX_TITULOS
If Len(Trim$(Titulo(n).Nome)) > 0 Then
If Titulo(n).Tipo = TITULO_TYPE_INICIAL Then
Call SetPlayerTitulo(index, FindOpenTituloSlot(index), n)
End If
End If
Next
Mude para:
- Código:
' set start titulos
For n = 1 To MAX_TITULOS
If Len(Trim$(Titulo(n).Nome)) > 0 Then
If Titulo(n).Tipo = TITULO_TYPE_INICIAL Then
Call SetPlayerTitulo(index, FindOpenTituloSlot(index), n)
' Recompenças
TituloRec = GetPlayerTitulo(index, FindTituloSlot(index, n))
If Titulo(TituloRec).Passivo = True Then
For y = 1 To Stats.Stat_Count - 1
Call SetPlayerStat(index, y, GetPlayerStat(index, y) + Titulo(TituloRec).StatRec(y))
Next
For y = 1 To Vitals.Vital_Count - 1
Player(index).AddVital(y) = Player(index).AddVital(y) + Titulo(TituloRec).VitalRec(y)
Next
End If
End If
End If
Next
No final da Type PlayerRec, antes do End Type, adicione:
- Código:
' AddVital
AddVital(1 To Vitals.Vital_Count - 1) As Long
Última edição por Hon em Sex 27 Jul 2012, 07:55, editado 1 vez(es)
Ricardo- Mensagens : 1044
Re: [EO] Titulos 1.2
Oh, nova versão tá de parabéns, muito boa.
Sαkurαy- Membro Veterano
- Mensagens : 1386
Re: [EO] Titulos 1.2
prooblem, estou tentano resolver.. mas nao ta indo '
Server~Side
em ModDatabase :
Client~Side
em FrmMain:
esses sao os erros, alguem resolve ?
Server~Side
em ModDatabase :
- Spoiler:
- ' Recompenças
tituloRec = GetPlayerTitulo(index, FindTituloSlot(index, n))
If Titulo(tituloRec).Passivo = True Then
For y = 1 To Stats.Stat_Count - 1
Call SetPlayerStat(index, y, GetPlayerStat(index, y) Titulo(tituloRec).StatRec(y))
Next
For y = 1 To Vitals.Vital_Count - 1
Player(index).AddVital(y) = Player(index).AddVital(y) Titulo(tituloRec).VitalRec(y)
Next
End If
End If
End If
Next
Client~Side
em FrmMain:
- Spoiler:
- Private Sub picTitulos_MouseDown(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim titulonum As Long
' If debug mode, handle error then exit out
If Options.Debug = 1 Then On Error GoTo errorhandler
titulonum = IsPlayerTitulo(TituloX, TituloY)
If Button = 1 Then ' left click
If titulonum 0 Then
SendTituloComando "Usar", titulonum
DragTitulo = titulonum
Exit Sub
End If
ElseIf Button = 2 Then ' right click
If titulonum 0 Then
SendTituloComando "Remover", titulonum
DragTitulo = 0
Exit Sub
End If
End If
' Error handler
Exit Sub
errorhandler:
HandleError "picTitulos_MouseDown", "frmMain", Err.Number, Err.Description, Err.Source, Err.HelpContext
Err.Clear
Exit Sub
End Sub
Private Sub picTitulos_MouseMove(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim tituloslot As Long
Dim x2 As Long, y2 As Long
' If debug mode, handle error then exit out
If Options.Debug = 1 Then On Error GoTo errorhandler
TituloX = x
TituloY = y
tituloslot = IsPlayerTitulo(x, y)
If DragTitulo > 0 Then
Call BltDraggedTitulo(x picTitulos.Left, y picTitulos.top)
Else
If tituloslot 0 Then
x2 = x picTitulos.Left - picTituloDesc.width - 1
y2 = y picTitulos.top - picTituloDesc.height - 1
UpdateTituloWindow GetPlayerTitulo(MyIndex, tituloslot), x2, y2
LastTituloDesc = GetPlayerTitulo(MyIndex, tituloslot)
Exit Sub
End If
End If
picTituloDesc.Visible = False
LastTituloDesc = 0
' Error handler
Exit Sub
errorhandler:
HandleError "picTitulos_MouseMove", "frmMain", Err.Number, Err.Description, Err.Source, Err.HelpContext
Err.Clear
Exit Sub
End Sub
Private Sub picTitulos_MouseUp(Button As Integer, Shift As Integer, x As Single, y As Single)
Dim i As Long
Dim rec_pos As RECT
' If debug mode, handle error then exit out
If Options.Debug = 1 Then On Error GoTo errorhandler
If DragTitulo > 0 Then
' drag drop
For i = 1 To MAX_PLAYER_TITULOS
With rec_pos
.top = TituloTop ((TituloOffsetY 32) * ((i - 1) \ TituloColumns))
.Bottom = .top PIC_Y
.Left = TituloLeft ((TituloOffsetX 32) * (((i - 1) Mod TituloColumns)))
.Right = .Left PIC_X
End With
If x >= rec_pos.Left And x = rec_pos.top And y 0 Then
For i = 1 To NumFaces 'Check to unload surfaces
If FaceTimer(i) > 0 Then 'Only update surfaces in use
If FaceTimer(i) < Tick Then 'Unload the surface
Call ZeroMemory(ByVal VarPtr(DDSD_Face(i)), LenB(DDSD_Face(i)))
Set DDS_Face(i) = Nothing
FaceTimer(i) = 0
End If
End If
Next
End If
' titulos
If NumTitulos > 0 Then
For i = 1 To NumTitulos ' Check to unload surfaces
If TituloTimer(i) > 0 Then ' Only update surfaces in use
If TituloTimer(i) < Tick Then ' Unload the surface
Call ZeroMemory(ByVal VarPtr(DDSD_Titulo(i)), LenB(DDSD_Titulo(i)))
Set DDS_Titulo(i) = Nothing
TituloTimer(i) = 0
End If
End If
Next
End If
esses sao os erros, alguem resolve ?
ExecutionS- Membro
- Mensagens : 140
Re: [EO] Titulos 1.2
Hm, desculpe o erro, a forumeiros retira alguns sinais tipo o "+" ai fica meio que dificil postar um tutorial assim. É so você procurar s subs que dão o erro e refaze-la.
Ricardo- Mensagens : 1044
Re: [EO] Titulos 1.2
Eu nao sou tao foda assim KK'
Voce poderia me diz onde se encontra esse erro para que eu possa arrumar.
Voce poderia me diz onde se encontra esse erro para que eu possa arrumar.
ExecutionS- Membro
- Mensagens : 140
Página 1 de 2 • 1, 2
Página 1 de 2
Permissões neste sub-fórum
Não podes responder a tópicos
Dom 08 Abr 2018, 18:40 por JorgeZinhoo002
» Ojkjeeeee
Seg 10 Out 2016, 23:19 por Frozen
» Naruto Great Ninja Batle
Dom 09 Out 2016, 14:29 por GuiinhoLP
» Recrutamento de um Designer para jogo de CDZ.
Sex 23 Set 2016, 18:37 por newbie123
» Serviços de suporte maker( Programação , Design , PixelArt ) E Vendas de Jogos
Qui 22 Set 2016, 20:11 por Eduardo
» Serviços de suporte maker( Programação , Design , PixelArt ) E Vendas de Jogos
Qui 22 Set 2016, 20:11 por Eduardo
» Serviços de suporte maker( Programação , Design , PixelArt ) E Vendas de Jogos
Qui 22 Set 2016, 20:09 por Eduardo
» Projeto Dbz
Qua 31 Ago 2016, 23:46 por 157
» Avaliação - Sprites Naruto
Qua 31 Ago 2016, 17:09 por 157
» [Sprites] DBZ (Plix)
Qua 31 Ago 2016, 14:13 por 157
» Super Pack - Bleach V.2
Qua 31 Ago 2016, 13:02 por 157
» [PEDIDO][PROJETO][RECRUTAMENTO] DYNISTYGAMES
Ter 30 Ago 2016, 10:04 por 157
» [PEDIDO][PROJETO][RECRUTAMENTO] DYNISTYGAMES
Ter 30 Ago 2016, 10:03 por 157
» [PEDIDO][PROJETO][RECRUTAMENTO] DYNISTYGAMES
Ter 30 Ago 2016, 10:02 por 157
» [Pedido] Contador de resets na FrmMain
Sáb 13 Ago 2016, 17:45 por killers97
» [Recrutamento]
Qua 10 Ago 2016, 23:09 por Monsters
» Ajuda erro no Cliente e Servidor do EEB 2.6!
Qua 20 Jul 2016, 19:53 por Binholx
» Como criar tilesets para Eclipse Origins 3.0 (POKÉMON)
Qua 29 Jun 2016, 19:46 por Sir Aaron
» Recursos Pokemons
Qua 29 Jun 2016, 19:34 por Sir Aaron
» erro frm flash
Qua 25 maio 2016, 13:51 por vava123
» Pedido - Pack de star wars
Qui 19 maio 2016, 05:06 por edsonpet
» [Ajuda] Sobre como por o servidor on por ip fixo
Ter 17 maio 2016, 16:14 por vava123
» Illusion Dimension - O Misterio do ID: BETA TESTE ONLINE
Sex 06 maio 2016, 20:02 por LksFlorencio
» [NSME] Naruto Shinobi Maker Engine
Qua 23 Mar 2016, 15:11 por luana1457
» Script /base,/casa Igual DBZ Forces
Dom 21 Fev 2016, 07:34 por JorgeZinhoo002
» [Pedido]Colar Tsunade item sprite eclipse origin
Qui 21 Jan 2016, 07:38 por lawllietbr
» [Pedido] Elysium
Sáb 19 Dez 2015, 11:31 por luana1457
» Naruto - Recruta
Ter 15 Dez 2015, 18:40 por Uchiha ~
» [Avaliação] - Kirito from Sword Art Online; Red and Pikachu from Pokemon.
Qua 25 Nov 2015, 13:43 por Thanakii
» [Avaliação] - Kenpachi Zaraki from Bleach; Libra Shiryu From Saint Seiya.
Qua 25 Nov 2015, 12:55 por Thanakii
» Demonstração de Sprites (Á VENDA!)
Qua 25 Nov 2015, 12:40 por Thanakii
» [Sistema de Reset]Para Eclipse .
Ter 24 Nov 2015, 16:51 por VithorUchi
» Cada Guild Nascer em Certo Mapa
Qui 12 Nov 2015, 06:13 por fabiofeijó_HIT
» Dragon Ball z Fusion A Grande Volta
Qui 29 Out 2015, 15:17 por fabiofeijó_HIT
» Ajuda com Ip fixo
Seg 26 Out 2015, 16:07 por GalaxyHells15
» Como Fazer um GUI no Eclipse Origins
Dom 18 Out 2015, 22:10 por Jeanleee
» Shisui Susanoo
Dom 18 Out 2015, 20:23 por Jeanleee
» Fantasy Art Online
Dom 18 Out 2015, 16:41 por daviih123
» Ajuda !!
Seg 05 Out 2015, 12:13 por andersonzika
» como passar o usuário e senha para o MainMenu?
Seg 28 Set 2015, 22:03 por Bëzerk
» Ru time ero 13 Type mismatch
Seg 28 Set 2015, 09:08 por andredarle
» Jarvis 1.3 Download
Qua 23 Set 2015, 18:42 por soares125
» [Avaliação/Disponibilização]Árvore 64x64
Qua 23 Set 2015, 15:15 por Over~
» Mlk's Zikas Signatures
Ter 22 Set 2015, 21:15 por Aikawa Reborn'
» Pedido de Sistemas
Dom 20 Set 2015, 18:05 por cleyton_05
» [AjudaEEB]Gerador de EXP
Qua 16 Set 2015, 14:04 por Over~
» [Avaliar] Base, Humano e Goblin.
Seg 14 Set 2015, 22:51 por .iBlaz3.
» Fabrica do Tio Cronos!
Dom 13 Set 2015, 21:31 por [ADM]Cronos
» [PixelArt] Minion - Meu malvado favorito
Dom 13 Set 2015, 12:51 por [ADM]Cronos
» [Avaliar] Goku Dragon Ball Z
Qua 05 Ago 2015, 21:36 por Setrux