| Mirage Source http://miragesource.net/forums/ |
|
| Select Sprite On Newchar "Configure In Class.ini"! http://miragesource.net/forums/viewtopic.php?f=210&t=3768 |
Page 1 of 1 |
| Author: | mustorze [ Mon May 26, 2008 2:25 pm ] |
| Post subject: | Select Sprite On Newchar "Configure In Class.ini"! |
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: 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. |
|
| Author: | Stomach Pulser [ Mon May 26, 2008 2:35 pm ] |
| Post subject: | Re: Select Sprite On Newchar "Configure In Class.ini"! |
Tip: Dont name things generic names such as 'Picture1', the typical is to use a three letter abbreviation of the control and then a name so that you know what it is. Ex: picSprite <-picture for Sprite(s) cmdOK <- Command button for OK to something. |
|
| Author: | mustorze [ Mon May 26, 2008 2:43 pm ] |
| Post subject: | Re: Select Sprite On Newchar "Configure In Class.ini"! |
ok, next tutorial already do with that. place the code was very good |
|
| Page 1 of 1 | All times are UTC |
| Powered by phpBB® Forum Software © phpBB Group https://www.phpbb.com/ |
|