[Ajuda] - sistema de trasnformação por spell 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.

[Ajuda] - sistema de trasnformação por spell

2 participantes

Ir para baixo

[Ajuda] - sistema de trasnformação por spell Empty [Ajuda] - sistema de trasnformação por spell

Mensagem por Felipe Dom Abr 23, 2017 7:22 pm

alguém poderia me ajudar?
fiz o sistema de transformação por spell e funfo direitinho mas quando eu desligo o server com alguém on, se alguém estiver transformado ele salva os status. como posso retirar isso ?
Felipe
Felipe
Novato
Novato

Mensagens : 10
Créditos : 0

Ir para o topo Ir para baixo

[Ajuda] - sistema de trasnformação por spell Empty Re: [Ajuda] - sistema de trasnformação por spell

Mensagem por Profane ~ Dom Abr 23, 2017 9:58 pm

Olá, @Mr.Fenrir meu fofo lobinho.

Lembre-se que se copiou e colou um tutorial inteiro,é sempre bom que quando vier com a duvida usar sua habilidade graciosa de copiar e colar para colar o link aqui para nós <3

Só assim fica mais fácil ajudar. 

O que pode ocorrer é que o desenvolvedor de tal sistema enquanto teve uma linda luz para desenvolver o sistema, desenvolveu sem ter a compreensão certa de como se fazer aquilo. Deu certo, mas deu errado. 

Bem, ainda não vi o sistema, então no aguardo para maiores comentários e para poder tentar ajudar a achar a resolução <3

att

_________________
"Mistress of shattered hopes and forever broken dreams"
Profane ~
Profane ~
Colaborador
Colaborador

Mensagens : 818
Créditos : 130

Ir para o topo Ir para baixo

[Ajuda] - sistema de trasnformação por spell Empty Re: [Ajuda] - sistema de trasnformação por spell

Mensagem por Felipe Dom Abr 23, 2017 10:04 pm


_________________
Facebook: Story of Eterium
[Ajuda] - sistema de trasnformação por spell Yy11
Felipe
Felipe
Novato
Novato

Mensagens : 10
Créditos : 0

Ir para o topo Ir para baixo

[Ajuda] - sistema de trasnformação por spell Empty Re: [Ajuda] - sistema de trasnformação por spell

Mensagem por Profane ~ Dom Abr 23, 2017 10:41 pm

Mr.Fenrir escreveu:esse aqui \/
Transformação por spell

Bem fácil entender o que ocorre.

#Entendendo o Sistema:
O Sistema aplica a adição direta no RawStat (Atributo Cru) isso para não ter muito trabalho de edição, o que é digamos meio errado, mas não vamos por esse ponto. 

A Cada segundo ele verifica se o jogador ainda tem a transformação, caso o tempo tenha acabado ele chama a Sub para Remover o Valor dado no RawStat do Player.

#O que acontece?
Acontece que o jogo salva as contas a cada X segundos, ele acaba salvando o Player 1/2/3.... como tendo o Atributo RawStat Acima do Normal.. no caso RawStat Verdadeiro + Transformação.

Quando você taca o foda-se e fecha o Servidor no X [ Fechar ], ele interrompe todos os Sockets e fim. 

Logo não ocorre a verificação de que ocorre normalmente de segundo a Segundo, que verifica o tempo da transformação do Player, e normalmente retiraria o Valor da Transformação do rawStat, fazendo o player ficar normal.

O Player Ficou salvo como tendo um RawStat + Transformação, e não ouve a Interrupção Natural do sistema que o deixaria com os Stats Normal e Naturais.

#Como resolvo isso minha donzela perfeita?
Ah, infinitas formas amoreco;

A forma mais fácil e bruta seria essa aqui:

No Servidor / ModTypes -> Procure por : "PlayerRec"

Dentro dele, no final, adicione:
Código:
Dim inTrans as Byte            'Se conter valor então o player está transformado
Dim inTransNum as Long          'Armazena o valor da Transformação

Sim, vamos trabalhar com byte ou long, mesmo sendo uma Boolean, Byte e Long são mais estáveis.

Colocando isso ali, vamos procurar por:

Código:
Sub JoinGame(ByVal Index As Long)

Essa Sub recebe os valores do player e faz a load dele, e coloca ele parcialmente em jogo.
É ela que a gente quer, e ela que vamos trabalhar.

Em qualquer lugar dela, que não seja no começo, mas de preferencia do Meio para o Fim,
ou depois disso aqui:
Código:
    ' Send the flag so they know they can start doing stuff
    SendInGame Index

Adicione isso aqui:
Código:
'Verificar se o Player ainda está transformado
If Player(Index).inTrans > 0 then      'Verifica se realmente tem valor de trans
  if Player(Index).inTransNum > 0 then 'Verifica se a Trans é um valor de Spell Real
    'Se chegou aqui é porque ta transformado e temos armazenada qual é a transformacao.
      Call AcabarTrans_InJoinGame(Index)
  end if
end if

Em seu ModPlayer, no final dele, cole essa sub que está abaixo.
Código:
Public Sub AcabarTrans_inJoinGame(ByVal index As Long)
Dim TransNum as Long
   If index < 1 Or index > MAX_PLAYERS Then Exit Sub
   
   'Já verificamos mas vamos verificar novamente porque somos assim, blindão pra não deixar nada quebrar o joguinho <3
   If Player(Index).inTrans > 0 then      'Verifica se realmente tem valor de trans
      if Player(Index).inTransNum > 0 then 'Verifica se a Trans é um valor de Spell Real
         
         TransNum = Player(index).inTransNum   'facilitando e ocupando menos espaço
   
         Call SetPlayerStat(index, Stats.Strength, GetPlayerRawStat(index, Stats.Strength) - Spell(TransNum).Força)
         Call SetPlayerStat(index, Stats.Endurance, GetPlayerRawStat(index, Stats.Endurance) - Spell(TransNum).Defesa)
         Call SetPlayerStat(index, Stats.Agility, GetPlayerRawStat(index, Stats.Agility) - Spell(TransNum).Agilidade)
         Call SetPlayerStat(index, Stats.Willpower, GetPlayerRawStat(index, Stats.Willpower) - Spell(TransNum).Willpower)
         Call SetPlayerStat(index, Stats.Intelligence, GetPlayerRawStat(index, Stats.Intelligence) - Spell(TransNum).Inteligencia)
         SendAnimation GetPlayerMap(index), Spell(index).Anima, 0, 0, TARGET_TYPE_PLAYER, index
         Call PlayerMsg(index, "Ao voltar a este mundo, você sente que seu poder retorna ao normal...", DarkGrey)
         TempPlayer(index).Trans = 0
         Player(Index).IntransNum = 0       'Limpa os valores
         Player(Index).Intrans = 0      
         SendPlayerData index
         SavePlayer index
         SendStats index
      End if
   End if
   
   
End Sub

Agora, vamos ao seu Sub CastSpell, nele você deve ter adicionado os valores da transformação; Na sub CastSpell procure por : 
Código:
'Transformaçao
      With Spell(SpellNum)
        If .Type = SPELL_TYPE_TRANS Then
            Call SetPlayerSprite(index, Spell(index).Trans)

Isso ai, nessa área onde criou isso ai ;c você abaixo dessa call adicione:

Código:

'Modificação de Proteção
Player(Index).Intrans = 1   'torna real a transformação para proteção ao logar
Player(Index).IntransNum = SpellNum  'armazena qual foi a transformação que gerou atributos

Dessa forma tem defesa agora.

# O que foi feito? 
O Sistema estava criado com o intuito de você sempre fechar o servidor depois que todos os players possíveis estiverem deslogados e que não ocorra nenhuma falha possivel que faça o servidor cair, ou você fechar.

Isso é devido a ingenuidade do criador. 
Você sem um conversor de contas terá de apagar todas as contas para que essa modificação funcione perfeitamente, isso levando em consideração que suas contas sejam salvas de da forma de Compress File, onde fica .dat ou .bin o arquivo, vulgo Lowload

Eu notei uma falha maior no sistema ;c em 1 regiãozinha, apenas de ler ele, mas se você diz que ele funciona e transforma perfeito, verifica se quando o tempo da transformação acabar, ele retira os Stats com Perfeição, na minha leitura de run mental, eu diria que não ;c

A Minha Deusa, linda, benevolente e perfeita, funcionou sim, retira os stats com perfeição. Certo agora faça o teste criando uma Spell lá pelo ID 30 ~ 40 ~, ou qualque rnumero que não seja os primeiros. 

Ai você ve se vai funcionar ou não, qualquer coisa me informe. Que analisamos < 3

Bjus de Luz Escura.

Com amor, sua mais linda fadinha.

_________________
"Mistress of shattered hopes and forever broken dreams"
Profane ~
Profane ~
Colaborador
Colaborador

Mensagens : 818
Créditos : 130

Ir para o topo Ir para baixo

[Ajuda] - sistema de trasnformação por spell Empty Re: [Ajuda] - sistema de trasnformação por spell

Mensagem por Felipe Seg Abr 24, 2017 12:00 am

vlw cara. só faltava isso para eu terminar o sistema. os outros bugs eu consegui arrumar tudinho.

_________________
Facebook: Story of Eterium
[Ajuda] - sistema de trasnformação por spell Yy11
Felipe
Felipe
Novato
Novato

Mensagens : 10
Créditos : 0

Ir para o topo Ir para baixo

[Ajuda] - sistema de trasnformação por spell Empty Re: [Ajuda] - sistema de trasnformação por spell

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