Sistema de Vila
Ficha :
-Dificuldade : Dificil
-Aprovado : [ON]
-Download : [ON]
CLIENT SIDE :
Procure por :
Abaixo de:
Adicione:
' Com isso, terá uma nova variavel na estrutura do player, onde será as vilas.
No frmMenu, na Private Sub Form_Load(), procure por:
Abaixo adicione:
' Com isso, ao carregar a frmMenu, o valor de vila será 1, isso evitara futuros erros..
no frmMenu, crie:
Uma picture chamada:
E deixe sua propriedade igual a da foto abaixo:
Em seguinda, ainda na picVila, adicione esta imagem de Konoha como sua Picture padrão.
Uma label chamada:
Uma segunda label :
E uma terceira label, chamada:
Ficará mais ou menos assim :
Após feito isso, dê 2 clicks na lblVilaProx, e adicione:
' Isso fará com que, você ao clicar na label, passara de vila, indo de 1 em 1, quando chegar na vila 5, voltará na 1.. Indo sempre pra frente ( avançando )
Na lblVilaAnt, adicione:
' Isso fará com que, você ao clicar na label, voltará de vila, voltando de 1 em 1, quando chegar na vila 1, voltará na 5.. Indo sempre pra trás ( retornando )
Em seguida, na Public Sub SendAddChar, troque ela toda por:
' Isso fará com que, ao criar char, envie a packet para armazenar vila do jogador juntamente com os dados do player, para assim amarzenar no servidor a sua vila.
Em seguida, no final da modGlobals, adicione:
Em seguida, em modGeneral, na Public Sub MenuState, procure por:
Mude para:
' Isso fará com que envie o dado da vila ao você escolher ela no frmMenu
Depois, na modHandleData, procure por
Abaixo adicione:
Caso queira que mostre a vila do jogador em uma LABEL, vá na frmMain, e crie uma label chamada:
E procure na modHandledata, por:
E abaixo adicione:
'Isso fará com que acada valor de vila, tenha um nome, seguindo assim seus respectivos nomes dados no frmMenu.
Pronto, client side completo.. Vamos para o servidor agora.
SERVER SIDE :
Procure a Sub AddChar, e troque ela toda por:
No final do modGlobals, para evitar erros, adicione:
Depois, na modHandleData, procure por:
Abaixo de:
Adicione:
Ainda na mesma sub, procure por:
Abaixo adicione:
Ainda na modHandleData, procure por:
E modifique para:
Depois, no modServerTCP, procure por:
Abaixo adicione:
Depois, em ModTypes, na Private Type PlayerRec, procure por:
Abaixo adicione:
Download Pasta Vilas
Baixe a pasta: Vilas, e adicione na pasta "graphics" do seu Eclipse Origins, e pronto sistema concluído. Delete suas contas antes de testar, e crie uma nova conta.
E para aqueles que quiserem colocar acima da cabeça do jogador, o nome da vila, adicionem isso..
No final do modText, adicione:
Depois procurem por:
Abaixo de Call DrawPlayerName(i) adicionem:
Créditos :
Desconhecido por criar
Ficha :
-Dificuldade : Dificil
-Aprovado : [ON]
-Download : [ON]
CLIENT SIDE :
Procure por :
- Código:
Private Type PlayerRec
Abaixo de:
- Código:
Pk as byte
Adicione:
- Código:
Vila as byte
' Com isso, terá uma nova variavel na estrutura do player, onde será as vilas.
No frmMenu, na Private Sub Form_Load(), procure por:
- Código:
For i = 0 To UBound(tmpArray)
lblNews.Caption = lblNews.Caption & tmpArray(i) & vbNewLine
Next
Abaixo adicione:
- Código:
Vila = 1
' Com isso, ao carregar a frmMenu, o valor de vila será 1, isso evitara futuros erros..
no frmMenu, crie:
Uma picture chamada:
- Código:
Nome: picVila
Caption: Konoha
E deixe sua propriedade igual a da foto abaixo:
Em seguinda, ainda na picVila, adicione esta imagem de Konoha como sua Picture padrão.
Uma label chamada:
- Código:
Nome: lblVilaProx
Caption: >
Uma segunda label :
- Código:
Nome: lblVilaAnt
Caption: <
E uma terceira label, chamada:
- Código:
Nome: lblVila
Caption: Konoha
Ficará mais ou menos assim :
Após feito isso, dê 2 clicks na lblVilaProx, e adicione:
- Código:
If Vila >= 5 Then
Vila = 1
Else
Vila = Vila + 1
End If
picVila.Picture = LoadPicture(App.Path & "\data files\graphics\Vilas" & Vila & ".jpg")
If Vila = 1 Then
lblVila.Caption = "Konohagakure"
ElseIf Vila = 2 Then
lblVila.Caption = "Sunagakure"
ElseIf Vila = 3 Then
lblVila.Caption = "Iwagakure"
ElseIf Vila = 4 Then
lblVila.Caption = "Kirigakure"
ElseIf Vila = 5 Then
lblVila.Caption = "Kumogakure"
End If
' Isso fará com que, você ao clicar na label, passara de vila, indo de 1 em 1, quando chegar na vila 5, voltará na 1.. Indo sempre pra frente ( avançando )
Na lblVilaAnt, adicione:
- Código:
If Vila <= 1 Then
Vila = 5
Else
Vila = Vila - 1
End If
picVila.Picture = LoadPicture(App.Path & "\data files\graphics\Vilas" & Vila & ".jpg")
If Vila = 1 Then
lblVila.Caption = "Konohagakure"
ElseIf Vila = 2 Then
lblVila.Caption = "Sunagakure"
ElseIf Vila = 3 Then
lblVila.Caption = "Iwagakure"
ElseIf Vila = 4 Then
lblVila.Caption = "Kirigakure"
ElseIf Vila = 5 Then
lblVila.Caption = "Kumogakure"
End If
' Isso fará com que, você ao clicar na label, voltará de vila, voltando de 1 em 1, quando chegar na vila 1, voltará na 5.. Indo sempre pra trás ( retornando )
Em seguida, na Public Sub SendAddChar, troque ela toda por:
- Código:
Public Sub SendAddChar(ByVal name As String, ByVal Sex As Long, ByVal ClassNum As Long, ByVal Sprite As Long, ByVal Vila As Byte)
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 CAddChar
buffer.WriteString name
buffer.WriteLong Sex
buffer.WriteLong ClassNum
buffer.WriteLong Sprite
buffer.WriteByte Vila
SendData buffer.ToArray()
Set buffer = Nothing
' Error handler
Exit Sub
errorhandler:
HandleError "SendAddChar", "modClientTCP", Err.Number, Err.Description, Err.Source, Err.HelpContext
Err.Clear
Exit Sub
End Sub
' Isso fará com que, ao criar char, envie a packet para armazenar vila do jogador juntamente com os dados do player, para assim amarzenar no servidor a sua vila.
Em seguida, no final da modGlobals, adicione:
- Código:
Public Vila As Byte
Em seguida, em modGeneral, na Public Sub MenuState, procure por:
- Código:
If frmMenu.optMale.Value Then
Call SendAddChar(frmMenu.txtCName, SEX_MALE, frmMenu.cmbClass.ListIndex + 1, newCharSprite)
Else
Call SendAddChar(frmMenu.txtCName, SEX_FEMALE, frmMenu.cmbClass.ListIndex + 1, newCharSprite)
End If
Mude para:
- Código:
If frmMenu.optMale.Value Then
Call SendAddChar(frmMenu.txtCName, SEX_MALE, frmMenu.cmbClass.ListIndex + 1, newCharSprite, Vila)
Else
Call SendAddChar(frmMenu.txtCName, SEX_FEMALE, frmMenu.cmbClass.ListIndex + 1, newCharSprite, Vila)
End If
' Isso fará com que envie o dado da vila ao você escolher ela no frmMenu
Depois, na modHandleData, procure por
- Código:
Call SetPlayerPK(i, buffer.ReadLong)
Abaixo adicione:
- Código:
Player(i).Vila = buffer.ReadByte
Caso queira que mostre a vila do jogador em uma LABEL, vá na frmMain, e crie uma label chamada:
- Código:
lblVila
E procure na modHandledata, por:
- Código:
For x = 1 To Stats.Stat_Count - 1
frmMain.lblCharStat(x).Caption = GetPlayerStat(MyIndex, x)
Next
E abaixo adicione:
- Código:
Select Case Player(MyIndex).Vila
Case 1
frmMain.lblVila.Caption = "Konohagakure"
Case 2
frmMain.lblVila.Caption = "Sunagakure"
Case 3
frmMain.lblVila.Caption = "Iwagakure"
Case 4
frmMain.lblVila.Caption = "Kirigakure"
Case 5
frmMain.lblVila.Caption = "Kumogakure"
End Select
'Isso fará com que acada valor de vila, tenha um nome, seguindo assim seus respectivos nomes dados no frmMenu.
Pronto, client side completo.. Vamos para o servidor agora.
SERVER SIDE :
Procure a Sub AddChar, e troque ela toda por:
- Código:
Sub AddChar(ByVal index As Long, ByVal Name As String, ByVal Sex As Byte, ByVal ClassNum As Long, ByVal Sprite As Long, ByVal Vila As Byte)
Dim f As Long
Dim n As Long
Dim spritecheck As Boolean
If LenB(Trim$(Player(index).Name)) = 0 Then
spritecheck = False
Player(index).Name = Name
Player(index).Sex = Sex
Player(index).Class = ClassNum
Player(index).Vila = Vila
If Player(index).Sex = SEX_MALE Then
Player(index).Sprite = Class(ClassNum).MaleSprite(Sprite)
Else
Player(index).Sprite = Class(ClassNum).FemaleSprite(Sprite)
End If
Player(index).Level = 1
For n = 1 To Stats.Stat_Count - 1
Player(index).stat(n) = Class(ClassNum).stat(n)
Next n
Player(index).Dir = DIR_DOWN
Player(index).Map = Player(index).Vila
Player(index).x = START_X
Player(index).y = START_Y
Player(index).Dir = DIR_DOWN
Player(index).Vital(Vitals.HP) = GetPlayerMaxVital(index, Vitals.HP)
Player(index).Vital(Vitals.MP) = GetPlayerMaxVital(index, Vitals.MP)
' set starter equipment
If Class(ClassNum).startItemCount > 0 Then
For n = 1 To Class(ClassNum).startItemCount
If Class(ClassNum).StartItem(n) > 0 Then
' item exist?
If Len(Trim$(Item(Class(ClassNum).StartItem(n)).Name)) > 0 Then
Player(index).Inv(n).Num = Class(ClassNum).StartItem(n)
Player(index).Inv(n).Value = Class(ClassNum).StartValue(n)
End If
End If
Next
End If
' 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).StartSpell(n)).Name)) > 0 Then
Player(index).Spell(n) = Class(ClassNum).StartSpell(n)
End If
End If
Next
End If
' Append name to file
f = FreeFile
Open App.path & "\data\accounts\charlist.txt" For Append As #f
Print #f, Name
Close #f
Call SavePlayer(index)
Exit Sub
End If
End Sub
No final do modGlobals, para evitar erros, adicione:
- Código:
Public Vila As Byte
Depois, na modHandleData, procure por:
- Código:
Private Sub HandleAddChar(ByVal index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)
Abaixo de:
- Código:
Dim n as Long
Adicione:
- Código:
Dim Vila As Byte
Ainda na mesma sub, procure por:
- Código:
Sprite = buffer.ReadLong
Abaixo adicione:
- Código:
Vila = buffer.ReadByte
Ainda na modHandleData, procure por:
- Código:
' Everything went ok, add the character
Call AddChar(index, Name, Sex, Class, Sprite)
E modifique para:
- Código:
' Everything went ok, add the character
Call AddChar(index, Name, Sex, Class, Sprite, Vila)
Depois, no modServerTCP, procure por:
- Código:
buffer.WriteLong GetPlayerPK(index)
Abaixo adicione:
- Código:
buffer.WriteByte Player(index).Vila
Depois, em ModTypes, na Private Type PlayerRec, procure por:
- Código:
PK As Byte
Abaixo adicione:
- Código:
Vila as byte
Download Pasta Vilas
Baixe a pasta: Vilas, e adicione na pasta "graphics" do seu Eclipse Origins, e pronto sistema concluído. Delete suas contas antes de testar, e crie uma nova conta.
E para aqueles que quiserem colocar acima da cabeça do jogador, o nome da vila, adicionem isso..
No final do modText, adicione:
- Código:
Public Sub DrawPlayerVila(ByVal Index As Long)
If Player(Index).Vila < 0 Then Exit Sub
Dim VilaX As Long
Dim VilaY As Long
Dim VilaColor As Long
Dim VilaName As String
Select Case Player(Index).Vila
Case 1
VilaName = "Konohagakure"
VilaColor = QBColor(BrightRed)
Case 2 'Suna
VilaName = "Sunagakure"
VilaColor = QBColor(Brown)
Case 3 'Iwa
VilaName = "Iwagakure"
VilaColor = QBColor(Brown)
Case 4 'Kiri
VilaName= "Kirigakure"
VilaColor = QBColor(Cyan)
Case 5 'Kumo
VilaName = "Kumogakure"
VilaColor = QBColor(Cyan)
Case Else
VilaName = vbNullString
End Select
VilaX = ConvertMapX(GetPlayerX(Index) * PIC_X) + Player(Index).XOffset + (PIC_X \ 2) - getWidth(TexthDC, (Trim$(VilaName)))
If GetPlayerSprite(Index) < 1 Or GetPlayerSprite(Index) > NumCharacters Then
VilaY = ConvertMapY(GetPlayerY(Index) * PIC_Y) + Player(Index).YOffset - 18
Else
VilaY = ConvertMapY(GetPlayerY(Index) * PIC_Y) + Player(Index).YOffset - (DDSD_Character(GetPlayerSprite(Index)).lHeight / 4) + 2
End If
Call DrawText(TexthDC, VilaX, VilaY, VilaName, VilaColor)
Depois procurem por:
- Código:
' draw player names
For i = 1 To Player_HighIndex
If IsPlaying(i) And GetPlayerMap(i) = GetPlayerMap(MyIndex) Then
Call DrawPlayerName(i)
Abaixo de Call DrawPlayerName(i) adicionem:
- Código:
DrawPlayerVila i
Créditos :
Desconhecido por criar