MMORPG Brasil
Ola, visitante! Agradecemos sua visita, para ter acesso a todo nosso conteúdo recomendamos que faça um cadastro no fórum, com ele você pode participar de tópicos e ter acesso a todas áreas da comunidade!

Participe do fórum, é rápido e fácil

MMORPG Brasil
Ola, visitante! Agradecemos sua visita, para ter acesso a todo nosso conteúdo recomendamos que faça um cadastro no fórum, com ele você pode participar de tópicos e ter acesso a todas áreas da comunidade!
MMORPG Brasil
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Prêmio Recompensa Diária

+2
Mr Julio
afonsobr
6 participantes

Ir para baixo

Prêmio Recompensa Diária Empty Prêmio Recompensa Diária

Mensagem por afonsobr Ter 15 Jan 2013, 20:50

Muitos jogos tem um sistema em que o jogador recebe um prêmio por estar logado todos os dias. Aqui está o sistema para o EO

Client:
No final de PlayerRec, adicione:
Código:
DailyValue As Long

Proure por:
Código:
Function GetPlayerExp(ByVal Index As Long) As Long

E embaixo dessa Função, adicione:
Código:
Sub SetPlayerDailyValue(ByVal Index As Long, ByVal DailyValue As Long)
' If debug mode, handle error then exit out
If Options.Debug = 1 Then On Error GoTo errorhandler
If Index > MAX_PLAYERS Then Exit Sub
Player(Index).DailyValue = DailyValue

' Error handler
Exit Sub
errorhandler:
HandleError "SetPlayerDailyValue", "modDatabase", Err.Number, Err.Description, Err.Source, Err.HelpContext
Err.Clear
Exit Sub
End Sub


Em HandlePlayerData adicione:
Código:
Call SetPlayerDailyValue(i, Buffer.ReadLong)

embaixo de:
Código:
Call SetPlayerPK(i, Buffer.ReadLong)

Salve e compile.

Server:
Clique na aba Control e verifique se há espaço para colocar 4 Labes e um Command Button. Se não tiver espaço, crie uma nova aba (Nas propriedades da SSTab1, procure por "Tabs" e "Tabs per Row" e mude para o valor que você tinha mais um. Exemplo: Estava 4, mude ambos para 5).

Agora adicione 4 Labels e um Command Button, vai ficar assim:
Prêmio Recompensa Diária MsEze

Preste atenção: o "Current Value:" é uma label; "Last Daily Set" é outra label. Ambas são separadas do "0" e do "Unknown", totalizando 4 labels.

Agora nomeie as labels:
0 como lblDailyValue
Unkown como lblLastDate

Dê dois cliques no botão e coloque lá:
Código:
Call SetDailyValues


Procure por Private Sub Form_Load() e coloque:
Código:
Call DailyValues

Agora no final do código do Server coloque:
Código:
Private Function DailyValues()
Dim CurrentDate1 As Date
Dim CurrentDate2 As String
Dim i As String
If Dir(App.Path & "\data\DailyValueDate.txt") <> "" Then
If Dir(App.Path & "\data\DailyValue.txt") <> "" Then
    Open App.Path & "\data\DailyValueDate.txt" For Input As #1
    Input #1, i
    Close #1
    lblLastDate.Caption = i
    Open App.Path & "\data\DailyValue.txt" For Input As #1
    Input #1, i
    Close #1
    lblDailyValue.Caption = i
    CurrentDate1 = DateValue(Now)
    CurrentDate2 = CurrentDate1
    If CurrentDate2 <> lblLastDate.Caption Then
        Call SetDailyValues
    End If
   
End If
Else
Open App.Path & "\data\DailyValueDate.txt" For Output As #1
Print #1, "0"
Close #1
Open App.Path & "\data\DailyValue.txt" For Output As #1
Print #1, "0"
Close #1
Call SetDailyValues
End If
End Function
Private Function SetDailyValues()
Dim CurrentDate1 As Date
Dim CurrentDate2 As String
Dim NewValue As String
Dim i As Long
CurrentDate1 = DateValue(Now)
CurrentDate2 = CurrentDate1
lblLastDate.Caption = CurrentDate2
Open App.Path & "\data\DailyValueDate.txt" For Output As #1
Print #1, lblLastDate.Caption
Close #1
lblDailyValue.Caption = lblDailyValue.Caption + 1
Open App.Path & "\data\DailyValue.txt" For Output As #1
Print #1, lblDailyValue.Caption
Close #1

For i = 1 To MAX_PLAYERS

If Player(i).DailyValue <> frmServer.lblDailyValue.Caption Then
    If FindOpenInvSlot(i, 1) = 0 Then
        PlayerMsg i, "Você pode receber o prêmio diário. Libere o primeiro espaço no inventário.", BrightRed
    End If
    If FindOpenInvSlot(i, 1) <> 0 Then
        GiveInvItem i, 1, 0 ' x, y Mude o 1, que é o X para o ID correspondente ao item, e o 0 que é o y para a quantidade.
        PlayerMsg i, "Você recebeu o seu prêmio diário.", White
        Player(i).DailyValue = frmServer.lblDailyValue.Caption
    End If
End If

Next
End Function
Atenção: O código acima é o configurável! Leia-o.

Procure por:
Código:
Private Sub HandleLogin(ByVal index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)


E após isso:
Código:
' Show the player up on the socket status
Call AddLog(GetPlayerLogin(index) & " has logged in from " & GetPlayerIP(index) & ".", PLAYER_LOG)
Call TextAdd(GetPlayerLogin(index) & " has logged in from " & GetPlayerIP(index) & ".")

Adicione:
Código:
        If Player(index).DailyValue <> frmServer.lblDailyValue.Caption Then
            If FindOpenInvSlot(index, 1) = 0 Then
                PlayerMsg index, "Você pode receber o prêmio diário. Libere o primeiro espaço no inventário.", BrightRed
            End If
            If FindOpenInvSlot(index, 1) <> 0 Then
                GiveInvItem index, 1, 0 ' Mude o 1 para o ID do item a ser ganho.
                PlayerMsg index, "Você recebeu o seu prêmio diário.", White
                Player(index).DailyValue = frmServer.lblDailyValue.Caption
            End If
        End If


Finalizando, para fazer o Daily Value no Server Side, vá em modTypes, em PlayerRec. No final adicione:
Código:
DailyValue As Long

Procure:
Código:
Function GetPlayerAccess(ByVal index As Long) As Long

E logo acima adicione:
Código:
Function GetPlayerDailyValue(ByVal index As Long) As Long
If index > MAX_PLAYERS Then Exit Function
GetPlayerDailyValue = Player(index).DailyValue
End Function

Agora vá em:
Código:
Function PlayerData(ByVal index As Long) As Byte()

Depois do:
Código:
Set Buffer = New clsBuffer

E adicione:
Código:
Buffer.WriteLong GetPlayerDailyValue(index)

E Pronto! Salve e compile.

Créditos: A mim e ao - Matthew -
avatar
afonsobr
Membro Veterano
Membro Veterano

Mensagens : 1196

http://digimongames.forumeiros.com/

Ir para o topo Ir para baixo

Prêmio Recompensa Diária Empty Re: Prêmio Recompensa Diária

Mensagem por Mr Julio Qua 16 Jan 2013, 08:03

mano eu queria saber
uma coisa vc disse''No final de PlayerRec'' mais onde fica a playerRec? e que acabei de baixar o vb 6 entao sei de nada onde eu axo essa PlayerRec??
Mr Julio
Mr Julio
Membro
Membro

Mensagens : 164

Ir para o topo Ir para baixo

Prêmio Recompensa Diária Empty Re: Prêmio Recompensa Diária

Mensagem por maninho21 Qua 16 Jan 2013, 08:07

Abra o client ai do lado tem modules abra o Playerrec.Facil

Cara gostei mt do sistema vou adicionar ao meu jogo com certeza kk
maninho21
maninho21
Membro
Membro

Mensagens : 234

Ir para o topo Ir para baixo

Prêmio Recompensa Diária Empty Re: Prêmio Recompensa Diária

Mensagem por Mr Julio Qua 16 Jan 2013, 08:18

aki no meu nao tem playerrec '-'
Mr Julio
Mr Julio
Membro
Membro

Mensagens : 164

Ir para o topo Ir para baixo

Prêmio Recompensa Diária Empty Re: Prêmio Recompensa Diária

Mensagem por Ahuriäm Qua 16 Jan 2013, 08:33

gostei Idea
1 cred
avatar
Ahuriäm
Membro Sênior
Membro Sênior

Mensagens : 426

Ir para o topo Ir para baixo

Prêmio Recompensa Diária Empty Re: Prêmio Recompensa Diária

Mensagem por Mr Julio Qua 16 Jan 2013, 08:53

EU ACHEI 1 AKI MOD PLAYER VO TENTAR NELE
Mr Julio
Mr Julio
Membro
Membro

Mensagens : 164

Ir para o topo Ir para baixo

Prêmio Recompensa Diária Empty Re: Prêmio Recompensa Diária

Mensagem por maninho21 Qua 16 Jan 2013, 09:22

cara tipo Aperte ctrl + f no modTypes e procura PlayerRec e pronto acho que e isso!
maninho21
maninho21
Membro
Membro

Mensagens : 234

Ir para o topo Ir para baixo

Prêmio Recompensa Diária Empty Re: Prêmio Recompensa Diária

Mensagem por Frozen Qui 17 Jan 2013, 10:59

Legal , até que é bom mais ficaria
muito "Easy" , o jogo (:
+ 1 Crédito .
Frozen
Frozen
Membro Veterano
Membro Veterano

Mensagens : 1339

Ir para o topo Ir para baixo

Prêmio Recompensa Diária Empty Re: Prêmio Recompensa Diária

Mensagem por afonsobr Qui 17 Jan 2013, 18:46

Valeu a todos. É só botar PlayerRec no Control F e selecionar a ultimazinha opção pra procurar em tudo.

E Katekyo, não precisa ser item foda, é só fazer um eventozinho e colocar algum item mais ou menos. Use sua imaginação, o sistema está aí.
avatar
afonsobr
Membro Veterano
Membro Veterano

Mensagens : 1196

http://digimongames.forumeiros.com/

Ir para o topo Ir para baixo

Prêmio Recompensa Diária Empty Re: Prêmio Recompensa Diária

Mensagem por maraquanos-marakgarin Qua 30 Jan 2013, 17:14

e ta bom Very Happy
maraquanos-marakgarin
maraquanos-marakgarin
Novato
Novato

Mensagens : 18

Ir para o topo Ir para baixo

Prêmio Recompensa Diária Empty Re: Prêmio Recompensa Diária

Mensagem por afonsobr Qua 30 Jan 2013, 22:03

@maraquanos-marakgarin
Valeu cara, mas mano, se ta postano um monte com um monte de acc praticamente igual. Qual é? '-'
avatar
afonsobr
Membro Veterano
Membro Veterano

Mensagens : 1196

http://digimongames.forumeiros.com/

Ir para o topo Ir para baixo

Prêmio Recompensa Diária Empty Re: Prêmio Recompensa Diária

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

 
Permissões neste sub-fórum
Não podes responder a tópicos