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



 
InícioÚltimas imagensProcurarRegistarEntrar
Os que mais criam tópicos
Sonart
[Fix] Não perder items no Trade I_vote_lcap[Fix] Não perder items no Trade I_voting_bar[Fix] Não perder items no Trade I_vote_rcap 
Alenaldo
[Fix] Não perder items no Trade I_vote_lcap[Fix] Não perder items no Trade I_voting_bar[Fix] Não perder items no Trade I_vote_rcap 
Over~
[Fix] Não perder items no Trade I_vote_lcap[Fix] Não perder items no Trade I_voting_bar[Fix] Não perder items no Trade I_vote_rcap 
Warrior
[Fix] Não perder items no Trade I_vote_lcap[Fix] Não perder items no Trade I_voting_bar[Fix] Não perder items no Trade I_vote_rcap 
Caio~
[Fix] Não perder items no Trade I_vote_lcap[Fix] Não perder items no Trade I_voting_bar[Fix] Não perder items no Trade I_vote_rcap 
SSO
[Fix] Não perder items no Trade I_vote_lcap[Fix] Não perder items no Trade I_voting_bar[Fix] Não perder items no Trade I_vote_rcap 
newbie123
[Fix] Não perder items no Trade I_vote_lcap[Fix] Não perder items no Trade I_voting_bar[Fix] Não perder items no Trade I_vote_rcap 
Jim
[Fix] Não perder items no Trade I_vote_lcap[Fix] Não perder items no Trade I_voting_bar[Fix] Não perder items no Trade I_vote_rcap 
Kaue
[Fix] Não perder items no Trade I_vote_lcap[Fix] Não perder items no Trade I_voting_bar[Fix] Não perder items no Trade I_vote_rcap 
yuri godinho
[Fix] Não perder items no Trade I_vote_lcap[Fix] Não perder items no Trade I_voting_bar[Fix] Não perder items no Trade I_vote_rcap 
Entrar
Nome de usuário:
Senha:
Entrar automaticamente: 
:: Esqueci-me da senha

 

 [Fix] Não perder items no Trade

Ir para baixo 
AutorMensagem
Alenaldo
Membro
Membro



Mensagens : 38
Moeda : 104
Pontos : 4
Data de inscrição : 05/01/2013
Idade : 31
Localização : São luis MA

[Fix] Não perder items no Trade Empty
MensagemAssunto: [Fix] Não perder items no Trade   [Fix] Não perder items no Trade Icon_minitimeSeg Jan 14, 2013 8:19 am

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:
Código:
Sub SendDataTo(ByVal index As Long, ByRef Data() As Byte)


2 - Antes dessa linha adicione:
CÓDIGO:
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:
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:
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:
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

Créditos:
Valentine
eu
Ir para o topo Ir para baixo
 
[Fix] Não perder items no Trade
Ir para o topo 
Página 1 de 1
 Tópicos semelhantes
-
» Atualizando Status ao Equipar Items

Permissões neste sub-fórumNão podes responder a tópicos
 :: Desenvolvimento de Jogos :: Engines :: Eclipse Origins :: Tutoriais-
Ir para: