[E.O 2.0] - Sistema de Offline Profit (Minutos) - Idle AFK Hitskin_logo Hitskin.com

Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o temaVoltar para a ficha do tema

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

[E.O 2.0] - Sistema de Offline Profit (Minutos) - Idle AFK

Ir para baixo

 [E.O 2.0] - Sistema de Offline Profit (Minutos) - Idle AFK Empty [E.O 2.0] - Sistema de Offline Profit (Minutos) - Idle AFK

Mensagem por Kotol Sáb maio 11, 2024 10:40 am

Pra um jogo AFK Idle, sabemos o tanto que tempo é moeda, seja ele online e principalmente offline.
O sistema basicamente conta os minutos que você fica offline e te dá com precisão.

Parte boa é que é so "Server~Side".

Vamos lá, abra seu "Server.Vbp" e em "ModPlayer" , na "Sub JoinGame" , abaixo de :

Código:
Dim i As Long

Declare:

Código:
Dim q As String
    Dim t As Long, j As Long, Total As Long

Ainda nessa mesma sub, procure por:
Código:
' Send a global message that he/she joined
    If GetPlayerAccess(Index) <= ADMIN_MONITOR Then
        Call GlobalMsg(GetPlayerName(Index) & " has joined " & Options.Game_Name & "!", JoinLeftColor)
    Else
        Call GlobalMsg(GetPlayerName(Index) & " has joined " & Options.Game_Name & "!", White)
    End If

E logo abaixo adicione isto:
Código:
q = Format(Now, "hh:mm:ss")
    t = DateDiff("n", q, Player(Index).LastHourOnline)
    j = DateDiff("n", Player(Index).LastDateOnline, Date)
    Total = j - t
    Call PlayerMsg(Index, "Você ficou offline por " & Total & " minuto(s)", White)


Ainda nesse módulo "ModPlayer", agora procure pela "Sub LeftGame" , e abaixo de:
Código:
' leave party.
        Party_PlayerLeave Index


Adicione isto: 
Código:
'IdleSys
        Player(Index).LastDateOnline = Date
        Player(Index).LastHourOnline = Format(Now, "hh:mm:ss")

Agora, em "ModDatabase" , procure pela "Sub AddChar" , e abaixo disso:
Código:
Player(Index).Vital(Vitals.MP) = GetPlayerMaxVital(Index, Vitals.MP)

Adicione isto:
Código:
'IdleSys
        Player(Index).LastDateOnline = Date
        Player(Index).LastHourOnline = Format(Now, "hh:mm:ss")


Por fim, em "ModTypes", declare um tipo, na Type "Private Type PlayerRec" , logo abaixo antes do primeiro "End Type" , declare o tipo:
Código:
'IdleSys
    LastHourOnline As String * 8
    LastDateOnline As String * 10


OBS IMPORTANTE: Se trata de um sistema que adiciona um valor no jogador e precisa checar, então contas precisarão ser refeitas, ou somente basta ter um editor de contas onde você abre a variável do jogador nova "LastDateOnline" e "LastHourOnline" e você preenche com dados zerados (Data de hoje e minuto de hoje) e pronto, que aí não precisa de deletar contas, porque TODA VEZ que o jogador loga ele checa o tempo que ele saiu com o último dia e minuto que ele estava, gravado na conta.

E pronto! Agora você tem um sistema de IdleProfit no seu jogo, onde você tem a contagem de minutos que o jogador ficou offline!

O que dá pra fazer com isso? 
Bem, dá pra você usar no seu jogo e aí você escolhe se nessa parte: 
Código:
q = Format(Now, "hh:mm:ss")
    t = DateDiff("n", q, Player(Index).LastHourOnline)
    j = DateDiff("n", Player(Index).LastDateOnline, Date)
    Total = j - t
    Call PlayerMsg(Index, "Você ficou offline por " & Total & " minuto(s)", White)

O "Total" , você:

- Dá em exp -> Total x 100 = 100 de xp por minuto offline
- Dá em gold -> Total x 10 = 10 de gold por minuto offline

E seja feliz na sua criação de jogo online!! Avante com os projetos!!  Very Happy
Kotol
Kotol
Moderador Local
Moderador Local

Mensagens : 77
Créditos : 17

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