Suporte no desenvolvimento de jogos


    O que tem de errado no meu script?

    liamharter
    liamharter
    Iniciante
    Iniciante

    Mensagens : 65
    Créditos : 3
    Cash : 0

    O que tem de errado no meu script? Empty O que tem de errado no meu script?

    Mensagem por liamharter em Qui Nov 01, 2018 2:40 pm

    Abaixo de Sub ScriptedTile(index, Script) eu coloquei uma case com o seguinte conteúdo

    If GetPlayerInvItemNum(Index, 4) Then
    Call TakeItem(index, 4, 1)
     Call SetPlayerPOINTS(index, GetPlayerPOINTS(index) + 180)      
    Call SendInventoryUpdate(index, Slot)
    End If

    E no final do editor de scripts isso

    Sub TakeItem(index, item, value)
    If value = "all" Then
    Slot = 1
    Do While Slot < 24
    If GetPlayerInvItemNum(index, Slot) = item Then
    Call SetPlayerInvItemNum(index, Slot, 0)
    Call SetPlayerInvItemValue(index, Slot, 0)
    Call SendInventoryUpdate(index, Slot)
    Slot = 24
    End If
    Slot = Slot + 1
    Loop
    Else
    Slot = 1
    Do While Slot < 24
    If GetPlayerInvItemNum(index, Slot) = item Then
    Call SetPlayerInvItemNum(index, Slot, 0)
    Call SetPlayerInvItemValue(index, Slot, GetPlayerInvItemValue(index, Slot) - value)
    Call SendInventoryUpdate(index, Slot)
    Slot = 24
    End If
    Slot = Slot + 1
    Loop
    End If
    End Sub
    MasterOp
    MasterOp
    Iniciante
    Iniciante

    Mensagens : 63
    Créditos : 4
    Cash : 0

    Ficha do personagem
    Nível: 1
    Experiência:
    O que tem de errado no meu script? Left_bar_bleue0/50O que tem de errado no meu script? Empty_bar_bleue  (0/50)
    Vida:
    O que tem de errado no meu script? Left_bar_bleue30/30O que tem de errado no meu script? Empty_bar_bleue  (30/30)

    O que tem de errado no meu script? Empty Re: O que tem de errado no meu script?

    Mensagem por MasterOp em Qui Nov 01, 2018 3:03 pm

    o que você ta querendo fazer?


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

    Mensagens : 30
    Créditos : 7
    Cash : 0

    O que tem de errado no meu script? Empty Re: O que tem de errado no meu script?

    Mensagem por Caronne em Qui Nov 01, 2018 3:04 pm

    Não sei qual engine você está usando, mas há algumas pequenas diferenças.
    De início, o seu código está errado.

    A função GetPlayerInvItemNum tem os parâmetros: Index, Número do Inventário.
    Logo, GetPlayerInvItemNum retorna o número do item que está no "Número do Inventário".

    Se você quer tirar um item do inventário do usuário, antes de mais nada, você precisa saber onde está o item.

    Você deve percorrer todos os slots do inventário para saber onde o item está.


    Código:
    Dim i as Long
    Dim InvSlot as Long

    For i = 1 to MAX_INV
           If GetPlayerInvItemNum(Index, i) = 4 Then
                InvSlot = i
                Exit For
           End If
    Next


    O número do slot onde o item está é guardado na variável InvSlot. Quando InvSlot é igual a zero, é porque o item não foi encontrando no inventário do personagem.

    Agora, você pode remover o item e aplicar as alterações no personagem.


    Código:
    If InvSlot > 0 Then

     Call SetPlayerPOINTS(index, GetPlayerPOINTS(index) + 180)     
     
     If GetPlayerInvItemValue(Index, InvSlot) > 1 Then 
        Call SetPlayerInvItemValue(Index, InvSlot, GetPlayerInvItemValue(Index, InvSlot) - 1)
     Else 
       Call SetPlayerInvItemNum(Index, InvSlot, 0)
       Call SetPlayerInvItemValue(Index, InvSlot, 0)
     End If

     Call SendInventoryUpdate(Index, InvSlot)
    End If

    Remova esse método "TakeItem" pois ele não é necessário.

    Código Inteiro:


    Código:
    Dim i as Long
    Dim InvSlot as Long

    For i = 1 to MAX_INV
           If GetPlayerInvItemNum(Index, i) = 4 Then
                InvSlot = i
                Exit For
           End If
    Next

    If InvSlot > 0 Then

     Call SetPlayerPOINTS(index, GetPlayerPOINTS(index) + 180)     
     
     If GetPlayerInvItemValue(Index, InvSlot) > 1 Then 
        Call SetPlayerInvItemValue(Index, InvSlot, GetPlayerInvItemValue(Index, InvSlot) - 1)
     Else 
       Call SetPlayerInvItemNum(Index, InvSlot, 0)
       Call SetPlayerInvItemValue(Index, InvSlot, 0)
     End If

     Call SendInventoryUpdate(Index, InvSlot)
    End If
    liamharter
    liamharter
    Iniciante
    Iniciante

    Mensagens : 65
    Créditos : 3
    Cash : 0

    O que tem de errado no meu script? Empty Re: O que tem de errado no meu script?

    Mensagem por liamharter em Qui Nov 01, 2018 3:25 pm

    Valeeeu

    Conteúdo patrocinado

    O que tem de errado no meu script? Empty Re: O que tem de errado no meu script?

    Mensagem por Conteúdo patrocinado


      Data/hora atual: Ter Nov 12, 2019 12:55 am