Isto é uma pré-visualização de um tema em Hitskin.com
Instalar o tema • Voltar para a ficha do tema
O que tem de errado no meu script?
3 participantes
Página 1 de 1
O que tem de errado no meu script?
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
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
liamharter- Iniciante
- Mensagens : 67
Créditos : 3
Re: O que tem de errado no meu script?
o que você ta querendo fazer?
_________________
MasterOp- Iniciante
- Mensagens : 72
Créditos : 4
Ficha do personagem
Nível: 1
Experiência:
(0/50)
Vida:
(30/30)
Re: O que tem de errado no meu script?
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á.
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.
Remova esse método "TakeItem" pois ele não é necessário.
Código Inteiro:
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
Caronne- Iniciante
- Mensagens : 30
Créditos : 7
Tópicos semelhantes
» Nome esta errado ?
» V.E tem algo errado aqui?
» [Pedido] Visual Equip no lugar errado
» [Pedido script]Script velocidade de ataque baseado na agilidade
» [Script] Ocultando Menu,Hud,Hotkeys, Chat [Script]
» V.E tem algo errado aqui?
» [Pedido] Visual Equip no lugar errado
» [Pedido script]Script velocidade de ataque baseado na agilidade
» [Script] Ocultando Menu,Hud,Hotkeys, Chat [Script]
Página 1 de 1
Permissões neste sub-fórum
Não podes responder a tópicos