por Kotol Sáb maio 11, 2024 10:16 am
Bom dia amigo!
Pois então, tem que saber a versão da sua engine.
Mas basicamente no servidor (sempre por lá coisas lógicas e sempre pelo cliente coisas gráficas) , você compara a partir do referencial de quem tem o item, no caso: Jogador.
Como tá na sessão de "Eclipse Origins", em uma "E.O 2.0" , o código por exemplo pro ticket carona, ficaria assim:
- Código:
Public Sub ComprarTicketCarona(ByVal Index As Long)
Dim i As Long
i = FindOpenInvSlot(Index, 3)
If i > 0 Then
If HasItem(Index, 2) = 1 Then
Call TakeInvItem(Index, 2, 1)
Call GiveInvItem(Index, 3, GetPlayerInvItemValue(Index, i) + 1)
End If
Else
Call PlayerMsg(Index, "Sua mochila está cheia!", White)
End If
End Sub
O que ele faz?
-
i : Encontra um espaço na mochila vazio para o item de número 3 (ticket carona). Aqui ele vai tentar primeiro ver se seu item é do tipo "Moeda" (ou seja, estacável), se não achar um espaço vazio da mochila ele manda a mensagem que a mochila está cheia e não completa a operação;
- "
HasItem" : aqui ele checa se você tem o item de número 2 (Aureus) , na quantidade 1;
- "
TakeInvItem" : aqui ele pega o item 2 na quantidade 1;
- "
GiveInvItem" : Aqui ele dá o item 3 (Ticket Carona) na quantidade de Tickets carona que tem no espaço que ele achou "+1", ou seja se ele achou um espaço vazio vai ser "0+1 = 1" ou se ele achou um espaço que já tinha uns 10 tickets por exemplo será "10+1 = 11".