Ola galera da Bg-games, vim trazer para vocês este tutorial, como o titulo ja diz, de vip.
Como funciona;O usuário vip, ganhará expêriencia a mais do que o usuário free.
Bom vamos la.
Client~Side
No final da modCientTCP adicione isto:
no modEnumerations
procure por:
Abaixo adicione :
no ModHandledata
Procure por:
abaixo adicione:
no ModText
procure por:
Abaixo do END IF
adicione:
no ModTypes
procure por:
Abaixo adicione
Parte do client Concluida.
Server~side
no server na aba player crie um:
Apos isto coloque dentro do scrlVIP
dentro do command1 adicione o seguinte codigo:
no modenumerations procure por
abaixo adicione:
no modcombat procure por:
acima adicione:
no modhandledata procure por:
abaixo adicione:
no fim do modhandledata adicione:
no modserverTCP procure por:
Abaixo adicione
no Modtype procure por
abaixo adicione:
Pronto. Agora é só compilar e testar.
Obs: Em outros fóruns podem encontrar tutoriais semelhantes, porém este é unico meu.
Obs²: na linha
você pode definir quantas veses a mais o Usuário Vip ganhará do que o free
Exemplo: o mob da 5 de exp , se o valor é 2 na linha acima, para o vip vai dar 10 de exp.
|Obs=qualquer sistema já adicionado na sua engine, pode modificar a pozição, ou até mesmo retirar algumas linhas, use do seu conhecimento para conseguir.|
Última edição por thxfox em Seg 30 Jan 2012 - 9:26, editado 1 vez(es)
Como funciona;O usuário vip, ganhará expêriencia a mais do que o usuário free.
Bom vamos la.
Client~Side
No final da modCientTCP adicione isto:
Código:
Public Sub SendSetVIP(ByVal Name As String, ByVal Access 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 CSetVIP
Buffer.WriteString Name
Buffer.WriteLong Access
SendData Buffer.ToArray()
Set Buffer = Nothing
' Error handler
Exit Sub
errorhandler:
HandleError "SendSetVIP", "modClientTCP", Err.Number, Err.Description, Err.Source, Err.HelpContext
Err.Clear
Exit Sub
End Sub
no modEnumerations
procure por:
Código:
CPartyLeave
Abaixo adicione :
Código:
CSetVIP
no ModHandledata
Procure por:
Código:
Call SetPlayerPK(i, Buffer.ReadLong)
abaixo adicione:
Código:
Player(i).VIP = Buffer.ReadByte
no ModText
procure por:
Código:
Select Case GetPlayerAccess(Index)
Abaixo do END IF
adicione:
Código:
If Player(Index).VIP > 0 Then
color = QBColor(Blue)
end if
no ModTypes
procure por:
Código:
PK As Byte
Abaixo adicione
Código:
VIP as Byte
Parte do client Concluida.
Server~side
no server na aba player crie um:
Código:
HScrollbar Nome = scrlVIP'max value =1 min = 0
CommandButton Nome = Command1
Ambos dentro de um frame
com o nome de de Frame1(e a caption de VIP:0)
Apos isto coloque dentro do scrlVIP
Código:
Frame1.Caption = "VIP:" & scrlVIP.Value'.-.
dentro do command1 adicione o seguinte codigo:
Código:
Dim Name As String
Name = frmServer.lvwInfo.SelectedItem.SubItems(3)
If Not Name = "Not Playing" Then
Player(FindPlayer(Name)).VIP = scrlVIP.Value
If scrlVIP.Value = 0 Then
PlayerMsg FindPlayer(Name), "Você não é mais VIP", BrightRed
Else
PlayerMsg FindPlayer(Name), "Agora você é vip", White
End If
Call SendPlayerData(FindPlayer(Name))
SavePlayer FindPlayer(Name)
End If
no modenumerations procure por
Código:
CPartyLeave
abaixo adicione:
Código:
CSetVip
no modcombat procure por:
Código:
Dim y
For y = 1 To Equipment.Equipment_Count - 1
If GetPlayerEquipment(attacker, y) > 0 Then
If Item(GetPlayerEquipment(attacker, y)).ExpExtra > 0 Then
exp = exp * Item(GetPlayerEquipment(attacker, y)).ExpExtra
End If
End If
acima adicione:
Código:
If Player(attacker).VIP = 1 And Not frmServer.txtVIP1.Text = 0 Then
exp = exp * 2'o 2 é o valor que o player vai ganhar vezes a mais se quiser mais autere este valor
end if
no modhandledata procure por:
Código:
HandleDataSub(CPartyLeave) = GetAddress(AddressOf HandlePartyLeave)
abaixo adicione:
Código:
HandleDataSub(CSetVip) = GetAddress(AddressOf HandleSetVIP)
no fim do modhandledata adicione:
Código:
Sub HandleSetVIP(ByVal index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)
Dim n As Long
Dim i As Long
Dim Buffer As clsBuffer
Set Buffer = New clsBuffer
Buffer.WriteBytes Data()
' Prevent hacking
If GetPlayerAccess(index) < ADMIN_CREATOR Then
Exit Sub
End If
' The index
n = FindPlayer(Buffer.ReadString) 'Parse(1))
' The access
i = Buffer.ReadLong 'CLng(Parse(2))
Set Buffer = Nothing
If i > 3 Then Exit Sub
Player(n).VIP = i
SendPlayerData n
SavePlayer n
If i > 0 Then
PlayerMsg n, "Agora você é VIPl " & i, White
Else
PlayerMsg n, "Você não é mais VIP", BrightRed
End If
End Sub
no modserverTCP procure por:
Código:
Buffer.WriteLong GetPlayerPK(index)
Abaixo adicione
Código:
Buffer.WriteByte Player(index).VIP
no Modtype procure por
Código:
Pk as byte
abaixo adicione:
Código:
VIP as byte
Pronto. Agora é só compilar e testar.
Obs: Em outros fóruns podem encontrar tutoriais semelhantes, porém este é unico meu.
Obs²: na linha
Código:
exp = exp * 2'o 2 é o valor que o player vai ganhar vezes a mais se quiser mais autere este valor
você pode definir quantas veses a mais o Usuário Vip ganhará do que o free
Exemplo: o mob da 5 de exp , se o valor é 2 na linha acima, para o vip vai dar 10 de exp.
|Obs=qualquer sistema já adicionado na sua engine, pode modificar a pozição, ou até mesmo retirar algumas linhas, use do seu conhecimento para conseguir.|
Creditos:
Bg Games
ThxFox
Bg Games
ThxFox
Última edição por thxfox em Seg 30 Jan 2012 - 9:26, editado 1 vez(es)