BGames
Olá visitante! Seja bem vindo á BGames!

Para ter total acesso ao nosso fórum é preciso que você se registre.

Registre-se Aqui!


PARA VER LINKS E IMAGENS É PRECISO SE REGISTRAR!


BGames
Olá visitante! Seja bem vindo á BGames!

Para ter total acesso ao nosso fórum é preciso que você se registre.

Registre-se Aqui!


PARA VER LINKS E IMAGENS É PRECISO SE REGISTRAR!

BGames
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

BGamesEntrar

Fórum de Desenvolvimento de Jogos e Programação


descriptionSistema de Vip EmptySistema de Vip

more_horiz
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:

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
Sistema de Vip 1693994873


Última edição por thxfox em Seg 30 Jan 2012 - 9:26, editado 1 vez(es)

descriptionSistema de Vip EmptyRe: Sistema de Vip

more_horiz
Mto Bom ! , :D

descriptionSistema de Vip EmptyRe: Sistema de Vip

more_horiz
Como adciona o V.I.P no personagem ?

descriptionSistema de Vip EmptyRe: Sistema de Vip

more_horiz
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'.-.



Quando você alterar o ScrlVip para 1 selecionando o nome do personagem, e dando "Ok" ativará o vip, e para tirar, coloca o valor 0. e de ok.

descriptionSistema de Vip EmptyRe: Sistema de Vip

more_horiz
privacy_tip Permissões neste sub-fórum
Não podes responder a tópicos
power_settings_newInicie sessão para responder