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

Você não está conectado. Conecte-se ou registre-se

Ver o tópico anterior Ver o tópico seguinte Ir para baixo  Mensagem [Página 1 de 1]

Warrior

Warrior
Ajudante
Ajudante
A capacidade de itens do inventário é de 35 itens, do trade também, mas vamos supor que você tem 32 itens no inventário e está em uma troca, se um jogador lhe oferece 4 itens ou mais na troca e você aceitar, o item que não cabe no inventário será perdido.

Abra o Servidor

1 - No modServerTCP, procure por:
Código:
Sub SendDataTo(ByVal index As Long, ByRef Data() As Byte)

2 - Antes dessa linha adicione:
Código:
Function IsInventoryFull(ByVal tradeTarget As Long, ByVal index As Long) As Boolean
Dim InvEmpty As Long, TradeFull As Long, i As Long

    For i = 1 To MAX_INV
        If GetPlayerInvItemNum(tradeTarget, i) > 0 And GetPlayerInvItemNum(tradeTarget, i) <= MAX_ITEMS Then
            InvEmpty = InvEmpty + 1
        End If
    Next
       
    For i = 1 To MAX_INV
        If TempPlayer(index).TradeOffer(i).Num > 0 And TempPlayer(index).TradeOffer(i).Num <= MAX_ITEMS Then
            TradeFull = TradeFull + 1
        End If
    Next
       
    If TradeFull > (MAX_INV - InvEmpty) Then
        IsInventoryFull = True
        Exit Function
    End If
   
    IsInventoryFull = False

End Function

3 - No modHandleData, procure por:
Código:
Sub HandleAcceptTrade(ByVal index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)

4 - Embaixo de:
Código:
' if not both of them accept, then exit
        If Not TempPlayer(tradeTarget).AcceptTrade Then
            SendTradeStatus index, 2
            SendTradeStatus tradeTarget, 1
            Exit Sub
        End If

5 - Adicione:
Código:
' if not have space in inventory of tradetarget
        If IsInventoryFull(tradeTarget, index) Then
            TempPlayer(index).InTrade = 0
            TempPlayer(tradeTarget).InTrade = 0
            TempPlayer(index).AcceptTrade = False
            TempPlayer(tradeTarget).AcceptTrade = False
            PlayerMsg tradeTarget, "Você não tem espaço suficiente no inventário.", BrightRed
            PlayerMsg index, GetPlayerName(tradeTarget) & " não tem espaço suficiente no inventário.", BrightRed
            SendCloseTrade index
            SendCloseTrade tradeTarget
            Exit Sub
        End If
       
        ' if not have space in inventory of index
        If IsInventoryFull(index, tradeTarget) Then
            TempPlayer(index).InTrade = 0
            TempPlayer(tradeTarget).InTrade = 0
            TempPlayer(index).AcceptTrade = False
            TempPlayer(tradeTarget).AcceptTrade = False
            PlayerMsg index, "Você não tem espaço suficiente no inventário.", BrightRed
            PlayerMsg tradeTarget, GetPlayerName(index) & " não tem espaço suficiente no inventário.", BrightRed
            SendCloseTrade index
            SendCloseTrade tradeTarget
            Exit Sub
        End If

Creditos:
Valentine por criar
Warrior_Maker por mostrar para vocês

Zeref

Zeref
Membro Honorário II
Membro Honorário II
cara eu daria +1 se o script existisse .-.

Warrior

Warrior
Ajudante
Ajudante
Como assim?

Zeref

Zeref
Membro Honorário II
Membro Honorário II
O script não existe nos scripts de NP,nÃo tem nenhum script com esse nome .-.

Warrior

Warrior
Ajudante
Ajudante
Esse script e para eclipse origins rsrs você se enganou feio kkk

BrunoFox

BrunoFox
Administrador
Administrador
Zeref a área é eclipse origins, aqui usam códigos diferentes velho kkk'

https://templorpgmakerbr.forumeiros.com

Zeref

Zeref
Membro Honorário II
Membro Honorário II
Aff que troll '-' tava perto da área de RM kkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkkk

Warrior

Warrior
Ajudante
Ajudante
e agora to com -1 Affz.

Espero comentários!

BrunoFox

BrunoFox
Administrador
Administrador
Reputação "-" não ranca mais REP, eu tirei isso, só seu post ke fica marcado no canto em vermelho.

https://templorpgmakerbr.forumeiros.com

Conteúdo patrocinado


Ver o tópico anterior Ver o tópico seguinte Ir para o topo  Mensagem [Página 1 de 1]

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