26-05-2008, 02:25 PM
hello I did for my game!
decided post to help you!
starting!
servidor and client
in modtypes :
before the "end type" of type "classrec" add:
open the first project of the server look for:
replace the entire sub for:
look for:
replace the entire sub for:
look for:
that a little and see:
before breaking up the parameters add:
then after you see above:
add:
look for:
replace it all by:
look for:
replace it all by:
!!Client !!
look for:
replace the entire package by:
look for:
replace the entire package by:
open frmnewchar
create
Picturebox (2)
Picture 1 - properties
Appearance = 0
name = Picture1
H = 32
W = 32
create within the picture1!
Picture 2 - properties
Appearance = 0
name = Picture2
autoredraw = true
autosize = true
top = 0
Left = 0
Picture = sprites.bmp
create a label:
name = Label14
Caption = 1
create a button:
name = any name
in the event click of the button add:
in frmnewchar find:
add before the "end sub"
look:
replace the entire case by:
look for:
replace the entire sub for:
Final
!!!!!!
Now in class.ini:
ADD:
delete:
DDDDD
DDDD
thanks,
bugs,
tips,
Here!
No More,
Mustorze.
decided post to help you!
starting!
servidor and client
in modtypes :
before the "end type" of type "classrec" add:
Code:
sprite1 As Integer
Sprite2 As Integer
Sprite3 As Integer
open the first project of the server look for:
Code:
Sub AddChar
replace the entire sub for:
Code:
Sub AddChar(ByVal Index As Long, ByVal Name As String, ByVal Sex As Byte, ByVal ClassNum As Byte, ByVal CharNum As Long, ByVal Sprite As Byte)
Dim f As Long
If Trim$(Player(Index).Char(CharNum).Name) = vbNullString Then
Player(Index).CharNum = CharNum
Player(Index).Char(CharNum).Name = Name
Player(Index).Char(CharNum).Sex = Sex
Player(Index).Char(CharNum).Class = ClassNum
If Player(Index).Char(CharNum).Sex = SEX_MALE Then
Player(Index).Char(CharNum).Sprite = Sprite
Else
Player(Index).Char(CharNum).Sprite = Sprite
End If
Player(Index).Char(CharNum).Level = 1
Player(Index).Char(CharNum).STR = Class(ClassNum).STR
Player(Index).Char(CharNum).DEF = Class(ClassNum).DEF
Player(Index).Char(CharNum).SPEED = Class(ClassNum).SPEED
Player(Index).Char(CharNum).MAGI = Class(ClassNum).MAGI
Player(Index).Char(CharNum).Map = START_MAP
Player(Index).Char(CharNum).x = START_X
Player(Index).Char(CharNum).y = START_Y
Player(Index).Char(CharNum).HP = GetPlayerMaxHP(Index)
Player(Index).Char(CharNum).MP = GetPlayerMaxMP(Index)
Player(Index).Char(CharNum).SP = GetPlayerMaxSP(Index)
' Append name to file
f = FreeFile
Open App.Path & "\accounts\charlist.txt" For Append As #f
Print #f, Name
Close #f
Call SavePlayer(Index)
Exit Sub
End If
End Sub
look for:
Code:
Sub LoadClasses()
replace the entire sub for:
Code:
Sub LoadClasses()
Dim FileName As String
Dim i As Long
Call CheckClasses
FileName = App.Path & "\data\classes.ini"
Max_Classes = Val(GetVar(FileName, "INIT", "MaxClasses"))
ReDim Class(0 To Max_Classes) As ClassRec
Call ClearClasses
For i = 0 To Max_Classes
Class(i).Name = GetVar(FileName, "CLASS" & i, "Name")
Class(i).sprite1 = GetVar(FileName, "CLASS" & i, "Sprite1")
Class(i).STR = Val(GetVar(FileName, "CLASS" & i, "STR"))
Class(i).DEF = Val(GetVar(FileName, "CLASS" & i, "DEF"))
Class(i).SPEED = Val(GetVar(FileName, "CLASS" & i, "SPEED"))
Class(i).MAGI = Val(GetVar(FileName, "CLASS" & i, "MAGI"))
Class(i).MAGI = Val(GetVar(FileName, "CLASS" & i, "MAGI"))
Class(i).Sprite2 = GetVar(FileName, "CLASS" & i, "Sprite2")
Class(i).Sprite3 = GetVar(FileName, "CLASS" & i, "Sprite3")
DoEvents
Next i
End Sub
look for:
Code:
' :: Add character packet ::
that a little and see:
Code:
Call AddChar(Index, Name, Sex, Class,
before breaking up the parameters add:
Code:
, Sprite
then after you see above:
Code:
CharNum = Val(Parse(4))
add:
Code:
Sprite = Val(Parse(5))
look for:
Code:
Sub SendNewCharClasses
replace it all by:
Code:
Sub SendNewCharClasses(ByVal Index As Long)
Dim Packet As String
Dim i As Long
Packet = "NEWCHARCLASSES" & SEP_CHAR & Max_Classes & SEP_CHAR
For i = 0 To Max_Classes
Packet = Packet & GetClassName(i) & SEP_CHAR & GetClassMaxHP(i) & SEP_CHAR & GetClassMaxMP(i) & SEP_CHAR & GetClassMaxSP(i) & SEP_CHAR & Class(i).STR & SEP_CHAR & Class(i).DEF & SEP_CHAR & Class(i).SPEED & SEP_CHAR & Class(i).MAGI & SEP_CHAR & Class(i).sprite1 & SEP_CHAR & Class(i).Sprite2 & SEP_CHAR & Class(i).Sprite3 & SEP_CHAR
Next i
Packet = Packet & END_CHAR
Call SendDataTo(Index, Packet)
End Sub
look for:
Code:
Sub SendClasses(ByVal Index As Long)
replace it all by:
Code:
Sub SendClasses(ByVal Index As Long)
Dim Packet As String
Dim i As Long
Packet = "CLASSESDATA" & SEP_CHAR & Max_Classes & SEP_CHAR
For i = 0 To Max_Classes
Packet = Packet & GetClassName(i) & SEP_CHAR & GetClassMaxHP(i) & SEP_CHAR & GetClassMaxMP(i) & SEP_CHAR & GetClassMaxSP(i) & SEP_CHAR & Class(i).STR & SEP_CHAR & Class(i).DEF & SEP_CHAR & Class(i).SPEED & SEP_CHAR & Class(i).MAGI & SEP_CHAR & Class(i).sprite1 & SEP_CHAR & Class(i).Sprite2 & SEP_CHAR & Class(i).Sprite3 & SEP_CHAR
Next i
Packet = Packet & END_CHAR
Call SendDataTo(Index, Packet)
End Sub
!!Client !!
look for:
Code:
' :: Classes data packet ::
replace the entire package by:
Code:
' :::::::::::::::::::::::::
' :: Classes data packet ::
' :::::::::::::::::::::::::
If LCase$(Parse(0)) = "classesdata" Then
n = 1
' Max classes
Max_Classes = Val(Parse(n))
ReDim Class(0 To Max_Classes) As ClassRec
n = n + 1
For i = 0 To Max_Classes
Class(i).Name = Parse(n)
Class(i).HP = Val(Parse(n + 1))
Class(i).MP = Val(Parse(n + 2))
Class(i).SP = Val(Parse(n + 3))
Class(i).STR = Val(Parse(n + 4))
Class(i).DEF = Val(Parse(n + 5))
Class(i).SPEED = Val(Parse(n + 6))
Class(i).MAGI = Val(Parse(n + 7))
Class(i).sprite1 = Val(Parse(n + 8))
Class(i).Sprite2 = Val(Parse(n + 9))
Class(i).Sprite3 = Val(Parse(n + 10))
n = n + 11
Next i
Exit Sub
End If
look for:
Code:
' :: New character classes data packet ::
replace the entire package by:
Code:
' :::::::::::::::::::::::::::::::::::::::
' :: New character classes data packet ::
' :::::::::::::::::::::::::::::::::::::::
If LCase$(Parse(0)) = "newcharclasses" Then
n = 1
' Max classes
Max_Classes = Val(Parse(n))
ReDim Class(0 To Max_Classes) As ClassRec
n = n + 1
For i = 0 To Max_Classes
Class(i).Name = Parse(n)
Class(i).HP = Val(Parse(n + 1))
Class(i).MP = Val(Parse(n + 2))
Class(i).SP = Val(Parse(n + 3))
Class(i).STR = Val(Parse(n + 4))
Class(i).DEF = Val(Parse(n + 5))
Class(i).SPEED = Val(Parse(n + 6))
Class(i).MAGI = Val(Parse(n + 7))
Class(i).sprite1 = Val(Parse(n + 8))
Class(i).Sprite2 = Val(Parse(n + 9))
Class(i).Sprite3 = Val(Parse(n + 10))
n = n + 11
Next i
' Used for if the player is creating a new character
frmNewChar.Visible = True
frmSendGetData.Visible = False
frmNewChar.cmbClass.Clear
For i = 0 To Max_Classes
frmNewChar.cmbClass.AddItem Trim$(Class(i).Name)
Next i
frmNewChar.cmbClass.ListIndex = 0
frmNewChar.lblHP.Caption = STR(Class(0).HP)
frmNewChar.lblMP.Caption = STR(Class(0).MP)
frmNewChar.lblSP.Caption = STR(Class(0).SP)
frmNewChar.lblSTR.Caption = STR(Class(0).STR)
frmNewChar.lblDEF.Caption = STR(Class(0).DEF)
frmNewChar.lblSPEED.Caption = STR(Class(0).SPEED)
frmNewChar.lblMAGI.Caption = STR(Class(0).MAGI)
Exit Sub
End If
open frmnewchar
create
Picturebox (2)
Picture 1 - properties
Appearance = 0
name = Picture1
H = 32
W = 32
create within the picture1!
Picture 2 - properties
Appearance = 0
name = Picture2
autoredraw = true
autosize = true
top = 0
Left = 0
Picture = sprites.bmp
create a label:
name = Label14
Caption = 1
create a button:
name = any name
in the event click of the button add:
Code:
If Label14.Caption = "1" Then
Picture2.top = Int(Class(cmbClass.ListIndex).sprite1) * -480
Label14.Caption = "2"
Exit Sub
End If
If Label14.Caption = "2" Then
Picture2.top = Int(Class(cmbClass.ListIndex).Sprite2) * -480
Label14.Caption = "3"
Exit Sub
End If
If Label14.Caption = "3" Then
Picture2.top = Int(Class(cmbClass.ListIndex).Sprite3) * -480
Label14.Caption = "1"
Exit Sub
End If
in frmnewchar find:
Code:
cmbClass_click
add before the "end sub"
Code:
Picture2.top = Int(Class(cmbClass.ListIndex).sprite1) * -480
look:
Code:
Case MENU_STATE_ADDCHAR
replace the entire case by:
Code:
Case MENU_STATE_ADDCHAR
Dim spritea As Integer
frmNewChar.Visible = False
If ConnectToServer = True Then
Call SetStatus("Conectado, Mandando Adição De Char...")
If frmNewChar.Label14.Caption = 1 Then
spritea = Class(frmNewChar.cmbClass.ListIndex).Sprite3
End If
If frmNewChar.Label14.Caption = 2 Then
spritea = Class(frmNewChar.cmbClass.ListIndex).sprite1
End If
If frmNewChar.Label14.Caption = 3 Then
spritea = Class(frmNewChar.cmbClass.ListIndex).Sprite2
End If
If frmNewChar.optMale.Value = True Then
Call SendAddChar(frmNewChar.txtName, 0, frmNewChar.cmbClass.ListIndex, frmChars.lstChars.ListIndex + 1, spritea)
Else
Call SendAddChar(frmNewChar.txtName, 1, frmNewChar.cmbClass.ListIndex, frmChars.lstChars.ListIndex + 1, spritea)
End If
End If
look for:
Code:
Sub SendAddChar
replace the entire sub for:
Code:
Sub SendAddChar(ByVal Name As String, ByVal Sex As Long, ByVal ClassNum As Long, ByVal Slot As Long, ByVal Sprite As Integer)
Dim Packet As String
Packet = "addchar" & SEP_CHAR & Trim$(Name) & SEP_CHAR & Sex & SEP_CHAR & ClassNum & SEP_CHAR & Slot & SEP_CHAR & Sprite & SEP_CHAR & END_CHAR
Call SendData(Packet)
End Sub
Final

Now in class.ini:
ADD:
Code:
Sprite1= 7 'numero da sprite
Sprite2= 6 'numero da sprite
Sprite3= 8 'numero da sprite
delete:
Code:
Sprite= 6 ' seu numero


thanks,
bugs,
tips,
Here!
No More,
Mustorze.