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.

[ALL] Uniformizando a interação do main.txt com o inventario!

Ir para baixo

[ALL] Uniformizando a interação do main.txt com o inventario! Empty [ALL] Uniformizando a interação do main.txt com o inventario!

Mensagem por Karlos Ter 20 Abr 2010, 13:30

Esse script vai ser muito util para todos os fans do eclipse engine e futuramente nossa engine que usaram o eclipse base, pois esse script permite a todos nós termos uma maior acessibilidade ao inventario por meio de scripts facilitando 70% dos trabalhos com scripted Items, esse tutorial foi desenvolvido por GodLord da freemmorpgmaker, e foi traduzido e alterado em algumas partes tanto no sistema quanto no tutorial por mim com alguns acresimos no sistema e modificações no tutorial para melhor compreenção de todos.

Vamos dar inicio ao tutorial!

Baixe o arquivo abaixo!
[ALL] Uniformizando a interação do main.txt com o inventario! Download

Vá na pasta server/scripts e cole o arquivo baixado la dentro em seguida abra o main.txt . Ja no inicio, em baixo das declarações depois de ' Global Variables adicione a seguinte declaração!
Código:
Public Const MAX_INVSLOTS = 24

Agora no final de seu main.txt adcione a seguinte bloco de codigos.

Código:
Function AddPlayerInvItem(Index, Item, Durability)
    For Slot = 1 To MAX_INVSLOTS
        If GetPlayerInvItemNum(Index, Slot) = 0 Then
            Call SetPlayerInvItemNum(Index, Slot, Item)
            Call SetPlayerInvItemValue(Index, Slot, 0)
            Call SetPlayerInvItemDur(Index, Slot, Durability)
            Call SendInventoryUpdate(Index, Slot)
           
            AddPlayerInvItem = True
           
            Exit Function
        End If
    Next
   
    AddPlayerInvItem = False
End Function

Function AddPlayerInvStackableItem(Index, Item, Amount)
    For Slot = 1 To MAX_INVSLOTS
        If GetPlayerInvItemNum(Index, Slot) = Item Then
            Call SetPlayerInvItemNum(Index, Slot, Item)
            Call SetPlayerInvItemValue(Index, Slot, GetPlayerInvItemValue(Index, Slot) + Amount)
            Call SetPlayerInvItemDur(Index, Slot, 0)
            Call SendInventoryUpdate(Index, Slot)
           
            AddPlayerInvStackableItem = True
           
            Exit Function
        End If
    Next
   
    For Slot = 1 To MAX_INVSLOTS
        If GetPlayerInvItemNum(Index, Slot) = 0 Then
            Call SetPlayerInvItemNum(Index, Slot, Item)
            Call SetPlayerInvItemValue(Index, Slot, Amount)
            Call SetPlayerInvItemDur(Index, Slot, 0)
            Call SendInventoryUpdate(Index, Slot)
           
            AddPlayerInvStackableItem = True
           
            Exit Function
        End If
    Next
   
    AddPlayerInvStackableItem = False
End Function


Function CountPlayerInvItem(Index, Item)
    Dim Amount
   
    Amount = 0
   
    For Slot = 1 To MAX_INVSLOTS
        If GetPlayerInvItemNum(Index, Slot) = Item Then
            If GetPlayerInvItemValue(Index, Slot) = 0 Then
                Amount = Amount + 1
            Else
                Amount = Amount + GetPlayerInvItemValue(Index, Slot)
            End If
        End If
    Next
   
    CountPlayerInvItem = Amount
End Function

Sub RemovePlayerInvItem(Index, Item, Amount)
    For Slot = 1 To MAX_INVSLOTS
        If GetPlayerInvItemNum(Index, Slot) = Item Then
            If GetPlayerInvItemValue(Index, Slot) = 0 Then
                Amount = Amount - 1
               
                Call SetPlayerInvItemNum(Index, Slot, 0)
                Call SetPlayerInvItemValue(Index, Slot, 0)
                Call SetPlayerInvItemDur(Index, Slot, 0)
                Call SendInventoryUpdate(Index, Slot)
            ElseIf Amount >= GetPlayerInvItemValue(Index, Slot) Then
                Amount = Amount - GetPlayerInvItemValue(Index, Slot)
               
                Call SetPlayerInvItemNum(Index, Slot, 0)
                Call SetPlayerInvItemValue(Index, Slot, 0)
                Call SetPlayerInvItemDur(Index, Slot, 0)
                Call SendInventoryUpdate(Index, Slot)
            Else
                Call SetPlayerInvItemValue(Index, Slot, GetPlayerInvItemValue(Index, Slot) - Amount)
                Call SendInventoryUpdate(Index, Slot)
            End If
           
            If Amount <= 0 Then
                Exit Sub
            End If
        End If
    Next
End Sub

Function GetPlayerInvSlots(Index)
    Dim Amount
   
    Amount = 0
   
    For Slot = 1 To MAX_INVSLOTS
        If GetPlayerInvItemNum(Index, Slot) = 0 Then
            Amount = Amount + 1
        End If
    Next
   
    GetPlayerInvSlots = Amount
End Function

Sub ClearPlayerInv(Index)
    For Slot = 1 To MAX_INVSLOTS
        Call SetPlayerInvItemNum(Index, Slot, 0)
        Call SetPlayerInvItemValue(Index, Slot, 0)
        Call SetPlayerInvItemDur(Index, Slot, 0)
    Next
   
    Call SendInventory(Index)
End Sub

Somente isso! Agora um pequeno complemento para você não ficar muito perdido:


Código:
Function AddPlayerInvItem(Index, Item, Durability)

Função : AddPlayerInvItem.
Breve: acrescenta um item ao inventário do jogador.
Parâmetros :
Index - O índice do player.
Item - O item para adicionar ao inventário.
Durability - A durabilidade do item.

Código:
Function AddPlayerInvStackableItem(Index, Item, Amount)

Função : AddPlayerInvStackableItem.
Breve : adciona um item acumulado para o jogador.
Parâmetros :
Index - O índice do player.
Item - O item para adicionar ao inventário.
Amount - O valor desse item para adicionar.

Código:
Function CountPlayerInvItem(Index, Item)

Função : CountPlayerInvItem
Breve : conta determinado item do jogador.
Parâmetros :
Index - O índice do player.
Item - O item para contar.

Código:
Sub RemovePlayerInvItem(Index, Item, Amount)

Função : RemovePlayerInvItem.
Breve : remove um item do inventário do jogador.
Parâmetros :
Index - O índice do player.
Item - item a ser removido do inventario.
Amount - O valor desse item para remover.

Código:
Function GetPlayerInvSlots(Index)

Função : GetPlayerInvSlots.
Breve : verifica a quantidade de slots vazios do jogador.
Parâmetros :
Index - O índice do player.

Código:
Sub ClearPlayerInv(Index)

Função : ClearPlayerInv.
Breve : limpa o inventário do jogador.
Parâmetros :
Index - O índice do player.

Somente isso [ALL] Uniformizando a interação do main.txt com o inventario! 535201 espero que saibam que esse é só uma etapa para o próximo sistema que postarei aqui no forum, só quero que saiba quem não tiver esse sistema não poderá ter o proximo pois um precisa do outro [ALL] Uniformizando a interação do main.txt com o inventario! 965439

E como disse antes os creditos vão para o GodLord da mmorpgmaker por ter desenvolvido o script, e uma parte quase insignificante a mim por traduzir e por complementar o script [ALL] Uniformizando a interação do main.txt com o inventario! 535201
Karlos
Karlos
Membro Veterano
Membro Veterano

Mensagens : 2851

http://www.talack.com.br

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