[Prof~] Spawn de Item direto na Bolsa 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.

[Prof~] Spawn de Item direto na Bolsa

3 participantes

Ir para baixo

[Prof~] Spawn de Item direto na Bolsa Empty [Prof~] Spawn de Item direto na Bolsa

Mensagem por Profane ~ Dom Ago 12, 2018 8:40 pm

Oin turu baum?

Sisteminha simples, pedido pelo @MasterOp

Eu ia passar para ele via Discord, ele então viria postar, mas para ser mais rápido venho postar logo /o/



Qual a Lógica por trás?

Teremos no painel de Admin ou em qualquer outra tela em sí de administração a qual você queira, uma Listagem com os Itens disponiveis, você poderá selecionar o item, setar quantidade e então mandar enviar direto esse item para A SUA bolsa.

Com uma simples modificação poderá enviar isso para quaisquer outros jogadores online.



Ficha Técnina

 Dificuldade: Fácil
 Compatibilidade: Qualquer EO/CS
 Necessário
- Visual Basic 6




Ao Sistema




 Client Side ~


 0.1 - Criando a Área


Crie uma área para que possamos fazer uso das coisas
Em ex:

[Prof~] Spawn de Item direto na Bolsa FHZUMQn


- ComboBox (Name: lstItemSpawn)
- TextBox (Name: txtItemSpawnQuant)

Botões não importa o Nome.

0.2 Botão Reload List

Esse botão eu coloquei já que eu não sei como a SUA engine faz a leitura e abertura da forma de adm, ou se é que tem... Mas de forma geral, com ele ai se torna meio universal a função desejada.

Dê um duplo-click dentro dele e adicione isso aqui:

Código:
Dim i As Long

    '''''''''''''''''
    'Item Spawn List'
    lstItemSpawn.Clear
    lstItemSpawn.AddItem "None " 'Popular Listagem
    For i = 1 To MAX_ITEMS
        lstItemSpawn.AddItem i & ": " & Trim$(Item(i).Name)
    Next

Ao clicar nele, ele limpara a listagem de itens e repopulará ela para você.
Assim você terá a listagem atualizada sempre que clicar nele.

0.3 Botão de Enviar o Comando - Spawn Item

Dê duplo click dentro dele e adicione:

Código:
Dim ItemNum As Long
Dim Amount As Long

    If GetPlayerAccess(MyIndex) >= ACCESS_DEVELOPER Then 'Note que essa parte de Access pode ser diferente na sua engine.
        ItemNum = lstItemSpawn.ListIndex
        If ItemNum <= 0 Or ItemNum > Max_Items Then Exit Sub 'Note que essa parte de MAX_Items constant pode ser diferente na sua engine.
        Amount = Abs(txtAmountSpawn.Text)
       
        Call SendNeedSpawnItem(ItemNum, Amount)
    Else
        Call AddText("Invalid command!", Red)
    End If

0.4 Criando Pacote de Envio de Comando

Vá ao modClientTCP, no final dele adicione:

Código:
Public Sub SendNeedSpawnItem(ByVal ItemNum As Long, ByVal Amount As Long)
Dim Buffer As clsBuffer

    Set Buffer = New clsBuffer
    Buffer.WriteLong CNeedSpawnItem
    Buffer.WriteLong ItemNum
    Buffer.WriteLong Amount
    SendData Buffer.ToArray()
    Set Buffer = Nothing
End Sub

0.5 Adicionando Enumerations do Cliente

Vá ao modEnumerations, procure por:

Código:
    ' Make sure CMSG_COUNT is below everything else
    CMSG_COUNT

Acima dele adicione:

Código:
CNeedSpawnItem

Cliente está pronto, vamos ao Servidor.

Server Side ~

0.6 Adicionando Enumerations do Servidor

Vá ao modEnumerations do Servidor, procure por


Código:
    ' Make sure CMSG_COUNT is below everything else
    CMSG_COUNT

Acima dele adicione:

Código:
CNeedSpawnItem

0.7 Recebendo o Pacote e Creditando ao Player

Dentro do ModHandleData no servidor, no começo dele (em geral) primera sub, procure por:

Código:
Public Sub InitMessages()

dentro dela e antes do End Sub adicione:

Código:
HandleDataSub(CNeedSpawnItem) = GetAddress(AddressOf HandleNeedSpawnItem)

No Final do ModHandleData no servidor , adicione:

Código:

Private Sub HandleNeedSpawnItem(ByVal Index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)
Dim buffer As clsBuffer
Dim itemNum As Long
Dim Amount As Long


    Set buffer = New clsBuffer
    buffer.WriteBytes Data()
    itemNum = buffer.ReadLong
    Amount = buffer.ReadLong
    Set buffer = Nothing
   
    'Prevent out
    If itemNum <= 0 Or itemNum > Max_Items Then Exit Sub 'Note que o Max_Items pode ser diferente na sua Engine.
   
    GiveInvItem Index, itemNum, Amount
    PlayerMsg Index, "Você recebeu do Console: " & Trim$(Item(itemNum).Name) & " x" & Amount & ".", BrightGreen
   
       

End Sub





Pronto, agora o item de Spawn será entregue direto na bolsa do (Index) que é o Usuário Administrador que solicitou o comando.

Com uma pequena edição é possível enviar isso para outros jogadores online, bastando alterar o Index que chegar, ou enviar o nome do usuário em conjunto e usar o FindPlayer(Nome) para conseguir o index desse jogador.

Com mais tempo eu posto add-on's para essa função.

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

[Prof~] Spawn de Item direto na Bolsa Empty Re: [Prof~] Spawn de Item direto na Bolsa

Mensagem por Mizuki Dom Ago 12, 2018 8:54 pm

bom garoto assim que eu gosto +1 credts pra oc

_________________
vem sempre aqui?  I love you
Mizuki
Mizuki
Iniciante
Iniciante

Mensagens : 30
Créditos : 4

Ficha do personagem
Nível: 1
Experiência:
[Prof~] Spawn de Item direto na Bolsa Left_bar_bleue0/0[Prof~] Spawn de Item direto na Bolsa Empty_bar_bleue  (0/0)
Vida:
[Prof~] Spawn de Item direto na Bolsa Left_bar_bleue30/30[Prof~] Spawn de Item direto na Bolsa Empty_bar_bleue  (30/30)

https://www.facebook.com/DBZSayanfury/

Ir para o topo Ir para baixo

[Prof~] Spawn de Item direto na Bolsa Empty Re: [Prof~] Spawn de Item direto na Bolsa

Mensagem por MasterOp Qui Set 27, 2018 5:39 pm

Uma pequena modificação para enviar para qualquer pessoa.
Atenção: Para fazer esta modificação é necessário ter adicionado o sistema acima!


No cliente


Crie uma TextBox com o nome : txtNome




0.1 Botão de Enviar o Comando - Spawn Item

Dê duplo click dentro dele e substitua por esse:




Código:
Dim ItemNum As Long
Dim Amount As Long
Dim nome as string

    If GetPlayerAccess(MyIndex) >= ACCESS_DEVELOPER Then 'Note que essa parte de Access pode ser diferente na sua engine.
        ItemNum = lstItemSpawn.ListIndex
        If ItemNum <= 0 Or ItemNum > Max_Items Then Exit Sub 'Note que essa parte de MAX_Items constant pode ser diferente na sua engine.
        Amount = Abs(txtAmountSpawn.Text)
        nome = Abs(txtNome.Text)
        if nome = vbnullstring then
        call addtext("nome do jogador não pode está em branco!!",red)
        exit sub
        end if
        
        Call SendNeedSpawnItem(ItemNum, Amount, nome)
    Else
        Call AddText("Invalid command!", Red)
    End If


0.2 alterando Pacote de Envio de Comando


substitua toda a sub SendNeedSpawnItem por esse codigo.



Código:
Public Sub SendNeedSpawnItem(ByVal ItemNum As Long, ByVal Amount As Long, byval nome as string)
Dim Buffer As clsBuffer

    Set Buffer = New clsBuffer
    Buffer.WriteLong CNeedSpawnItem
    Buffer.WriteLong ItemNum
    Buffer.WriteLong Amount
    Buffer.Writestring nome

    SendData Buffer.ToArray()
    Set Buffer = Nothing
End Sub


Agora no servidor.


No  ModHandleData no servidor , substitua toda a sub HandleNeedSpawnItem por:



Código:
Private Sub HandleNeedSpawnItem(ByVal Index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)
Dim buffer As clsBuffer
Dim itemNum As Long
Dim Amount As Long
dim nome as string


    Set buffer = New clsBuffer
    buffer.WriteBytes Data()
    itemNum = buffer.ReadLong
    Amount = buffer.ReadLong
    nome = buffer.Readstring
    Set buffer = Nothing
    
    'Prevent out
    If itemNum <= 0 Or itemNum > Max_Items Then Exit Sub 'Note que o Max_Items pode ser diferente na sua Engine.      


'Procurando index do player, se for igual ao nome ele dara a index

    for players =1 to max_players
    if isplaying(players) then
    if nome = getplayername(players) then
    
    GiveInvItem players, itemNum, Amount
    PlayerMsg players, "Você recebeu do Console: " & Trim$(Item(itemNum).Name) & " x" & Amount & ".", BrightGreen
    else
    playermsg index ,"Jogador " & nome & " Não existe ou está offline!!",red
    exit sub
        
    end if
    end if
    next
    End Sub



_________________
Um tiro e 20 mortes.......-Desnecessário
MasterOp
MasterOp
Iniciante
Iniciante

Mensagens : 72
Créditos : 4

Ficha do personagem
Nível: 1
Experiência:
[Prof~] Spawn de Item direto na Bolsa Left_bar_bleue0/50[Prof~] Spawn de Item direto na Bolsa Empty_bar_bleue  (0/50)
Vida:
[Prof~] Spawn de Item direto na Bolsa Left_bar_bleue30/30[Prof~] Spawn de Item direto na Bolsa Empty_bar_bleue  (30/30)

Ir para o topo Ir para baixo

[Prof~] Spawn de Item direto na Bolsa Empty Re: [Prof~] Spawn de Item direto na Bolsa

Mensagem por Mizuki Sex Set 28, 2018 6:04 am

muito bom mais não seria melhor em vez de um txtbox por um combobox puxando o idex de quem esta online isso facilitaria bastante

_________________
vem sempre aqui?  I love you
Mizuki
Mizuki
Iniciante
Iniciante

Mensagens : 30
Créditos : 4

Ficha do personagem
Nível: 1
Experiência:
[Prof~] Spawn de Item direto na Bolsa Left_bar_bleue0/0[Prof~] Spawn de Item direto na Bolsa Empty_bar_bleue  (0/0)
Vida:
[Prof~] Spawn de Item direto na Bolsa Left_bar_bleue30/30[Prof~] Spawn de Item direto na Bolsa Empty_bar_bleue  (30/30)

https://www.facebook.com/DBZSayanfury/

Ir para o topo Ir para baixo

[Prof~] Spawn de Item direto na Bolsa Empty Re: [Prof~] Spawn de Item direto na Bolsa

Mensagem por MasterOp Sex Set 28, 2018 10:18 am

eu acho mais pratico digitar o nome, mas depende do gosto de cada um.

_________________
Um tiro e 20 mortes.......-Desnecessário
MasterOp
MasterOp
Iniciante
Iniciante

Mensagens : 72
Créditos : 4

Ficha do personagem
Nível: 1
Experiência:
[Prof~] Spawn de Item direto na Bolsa Left_bar_bleue0/50[Prof~] Spawn de Item direto na Bolsa Empty_bar_bleue  (0/50)
Vida:
[Prof~] Spawn de Item direto na Bolsa Left_bar_bleue30/30[Prof~] Spawn de Item direto na Bolsa Empty_bar_bleue  (30/30)

Ir para o topo Ir para baixo

[Prof~] Spawn de Item direto na Bolsa Empty Re: [Prof~] Spawn de Item direto na Bolsa

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