MMORPG Brasil
Ola, visitante! Agradecemos sua visita, para ter acesso a todo nosso conteúdo recomendamos que faça um cadastro no fórum, com ele você pode participar de tópicos e ter acesso a todas áreas da comunidade!

Participe do fórum, é rápido e fácil

MMORPG Brasil
Ola, visitante! Agradecemos sua visita, para ter acesso a todo nosso conteúdo recomendamos que faça um cadastro no fórum, com ele você pode participar de tópicos e ter acesso a todas áreas da comunidade!
MMORPG Brasil
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Ganhar Item Em Certo Level v1.2

5 participantes

Ir para baixo

Ganhar Item Em Certo Level v1.2 Empty Ganhar Item Em Certo Level v1.2

Mensagem por guifs Sáb 23 Mar 2013, 19:49

Bom pessoal , é o meu primeiro tuto , na
verdade não é um tutorial , e sim uma pequena modificação no sistema de
thales , em q vc pode setar as classes q irão ganhar o item por lv ,
vamos lá.

Requerimento:Vb6.0 e http://www.mmorpgbr.com/t14053-ganhar-item-em-certo-levelvel

quando acabar o tuto só vc editar esse code :
Código:

Public Sub GanharItem(ByVal Index As Long)
If GetPlayerLevel(Index) = 2 Then
If
 GetPlayerClass(Index) = 1 Or 2 Or 3 Then ' obs: as classes que ganharão
 os itens serão 1,2,3 altere para as q vc quiser , e seja feliz :D
Call GiveInvItem(Index, 1, 2) ' obs: o 1 e o numero do item e o 2 e a quantidade de item q vai [url=http://www.aldeiarpgbr.com/t8475-item-por-lv-12#]receber[/url]
Call PlayerMsg(Index, " Você Recebeu o Item ThalesÉLindo ", Blue)
End If
End If
End Sub

Pronto , compile e seja feliz Ganhar Item Em Certo Level v1.2 965439 !
guifs
guifs
Membro Vitalicio
Membro Vitalicio

Mensagens : 561

Ir para o topo Ir para baixo

Ganhar Item Em Certo Level v1.2 Empty Re: Ganhar Item Em Certo Level v1.2

Mensagem por Monotoshi Sáb 23 Mar 2013, 19:56

Código:
Public Sub GanharItem(ByVal Index As Long)
If GetPlayerLevel(Index) = 2 Then
If GetPlayerClass(Index) = 1 Or 2 Or 3 Then ' obs: as classes que ganharão
 os itens serão 1,2,3 altere para as q vc quiser , e seja feliz :D
Call GiveInvItem(Index, 1, 2) ' obs: o 1 e o numero do item e o 2 e a
quantidade de item q vai receber
Call PlayerMsg(Index, " Você Recebeu o Item ... ", BrightRed)
End If
End If
End Sub
Esse seria o codigo correto.

Para Ganhar Outro Tipo de item
Código:
Public Sub GanharItem2(ByVal Index As Long)
If GetPlayerLevel(Index) = 2 Then ' onde esta 2 é o level para receber.
If GetPlayerClass(Index) = 1 Or 2 Or 3 Then ' obs: as classes que ganharão
 os itens serão 1,2,3 altere para as q vc quiser , e seja feliz :D
Call GiveInvItem(Index, 1, 2) ' obs: o 1 e o numero do item e o 2 e a
quantidade de item q vai receber
Call PlayerMsg(Index, " Você Recebeu o Item ... ", BrightRed)
End If
End If
End Sub


Última edição por kauee em Sáb 23 Mar 2013, 20:08, editado 1 vez(es)
avatar
Monotoshi
Membro Vitalicio
Membro Vitalicio

Mensagens : 591

Ir para o topo Ir para baixo

Ganhar Item Em Certo Level v1.2 Empty Re: Ganhar Item Em Certo Level v1.2

Mensagem por guifs Sáb 23 Mar 2013, 20:03

me explica o motivo de usar dua condições em um unico getplayer '-.-

@edit

e para fazr um GanharItem2 é preciso adc tbm um GanharItem2 antes da end sub no CheckPlayerLevelUp
guifs
guifs
Membro Vitalicio
Membro Vitalicio

Mensagens : 561

Ir para o topo Ir para baixo

Ganhar Item Em Certo Level v1.2 Empty Re: Ganhar Item Em Certo Level v1.2

Mensagem por Monotoshi Sáb 23 Mar 2013, 20:09

Achei mais 1 erro no seu codigo,editei e arrumei
avatar
Monotoshi
Membro Vitalicio
Membro Vitalicio

Mensagens : 591

Ir para o topo Ir para baixo

Ganhar Item Em Certo Level v1.2 Empty Re: Ganhar Item Em Certo Level v1.2

Mensagem por guifs Sáb 23 Mar 2013, 20:10

kaue num tem erro nenhum , vc q ta vendo erros onde num tem , testa o sistema primeiro antes de falar q tem erro '-.-
guifs
guifs
Membro Vitalicio
Membro Vitalicio

Mensagens : 561

Ir para o topo Ir para baixo

Ganhar Item Em Certo Level v1.2 Empty Re: Ganhar Item Em Certo Level v1.2

Mensagem por Kazutoo Sáb 23 Mar 2013, 20:33

Ai que os 2 se enganam...
No mesmo código daria para fazer tudo isso ohwait
Kazutoo
Kazutoo
Banido
Banido

Mensagens : 121

Ir para o topo Ir para baixo

Ganhar Item Em Certo Level v1.2 Empty Re: Ganhar Item Em Certo Level v1.2

Mensagem por TheKirin Sáb 23 Mar 2013, 20:36

Muito Bom guifs, +1^^
TheKirin
TheKirin
Membro Vitalicio
Membro Vitalicio

Mensagens : 561

Ir para o topo Ir para baixo

Ganhar Item Em Certo Level v1.2 Empty Re: Ganhar Item Em Certo Level v1.2

Mensagem por lucas100vzs Seg 25 Mar 2013, 19:57

Bem, é realmente um bom código, mas vamos pensar em várias situações...uma delas e a principal seria:

- E se a mochila estiver cheia ??

Claro, que se a mochila estiver cheia dá problema no servidor("Subscript Out Of Range") , então o tutorial está 100% codificado, mas não quer dizer que esteja 100% livre de erros...Sem contar que podemos optimizar...
Mas vamos parar de falar e corrigir o código e optimizá-lo...Simplesmente troque a "SUB" que o Guifs disponibilizou, por esta:

Código:
Public Sub GanharItem(ByVal Index As Long)
Dim n As Long

n = FindOpenInvSlot(Index, 1) ' 1 = Número do Item
 
 
  If GetPlayerLevel(Index) = 2 Then ' Check for Player Level
If n > 0 Then ' Check for inv space
 
Select Case GetPlayerClass(Index)
    Case 0 ' Classe 0
      Call GiveInvItem(Index, 1, 1)
      Call PlayerMsg(Index, " Você Recebeu o Item: " & Trim$(Item(1).Name) & ".", Blue)
     
    Case 1 ' Classe 1
      Call GiveInvItem(Index, 1, 1)
      Call PlayerMsg(Index, " Você Recebeu o Item: " & Trim$(Item(1).Name) & ".", Blue)
     
    Case 2 ' Classe 2
      Call GiveInvItem(Index, 1, 1)
      Call PlayerMsg(Index, " Você Recebeu o Item: " & Trim$(Item(1).Name) & ".", Blue)
     
    Case 3 ' Classe 3
      Call GiveInvItem(Index, 1, 1)
      Call PlayerMsg(Index, " Você Recebeu o Item: " & Trim$(Item(1).Name) & ".", Blue)
     
    Case 4 ' Classe 4
      Call GiveInvItem(Index, 1, 1)
      Call PlayerMsg(Index, " Você Recebeu o Item: " & Trim$(Item(1).Name) & ".", Blue)
     
    Case Else
      Call GiveInvItem(Index, 1, 1)
      Call PlayerMsg(Index, " Você Recebeu o Item: " & Trim$(Item(1).Name) & ".", Blue)
     
    End Select
   
  End If
  Else
  Call SpawnItem(1, 1, GetPlayerMap(Index), GetPlayerX(Index), GetPlayerY(Index))
  Call PlayerMsg(Index, "Mochila Cheia! Item: " & Trim$(Item(1).Name) & " dropado no chão!", Blue)
 
End If

End Sub


E pronto, isto vai checar se você tem espaço na mochila, senão o item será dropado avisando o mesmo que foi dropado....E o código foi melhorado somente pelo caso de eu adicionar "Cases" pra ficar melhor o manuseio dos items que cada classe irá ganhar....e é isto aí, créditos do Guifs !!! Laughing
lucas100vzs
lucas100vzs
Membro Sênior
Membro Sênior

Mensagens : 396

Ir para o topo Ir para baixo

Ganhar Item Em Certo Level v1.2 Empty Re: Ganhar Item Em Certo Level v1.2

Mensagem por guifs Sáb 30 Mar 2013, 20:14

lucas tem um pequeno erro no seu tuto , hj quando eu ui testar do seu modo , toda vez q upa de lv ganhar o item numero 1 no meu caso a espada iniciante , e ele ñ está fazendo a verificação no inv , ele dps q da o item umas vez , mesmo se tiver livre o invo ele dropa no chão falando q o invi ta cheio , mesmo q ele esteja totalmente livre , por isso eu aconselho a usar na forma original do tuto , e quem tiver com a bag full se fode.

obs: algum fpd mecheu no meu tuto , aki novamente está da forma q postei :

primeiro faça:http://www.aldeiarpgbr.com/t4424-ganhar-item-em-certo-nivel

e dps substitua a public sub ganharitem por essa :
Código:
Public Sub GanharItem(ByVal index As Long)
If GetPlayerLevel(index) = 20 Then
If GetPlayerClass(index) = 1 Or 2 Or 3 Then (troque o 1 2 e 3 por as suas classes desejadas e seja feliz)
Call GiveInvItem(index, 1, 2) ' obs: o 1 e o numero do item e o 2 e a quantidade de item q vai receber
Call PlayerMsg(index, " Você Recebeu o Item ThalesÉLindo ", Blue)
End If
End If
End Sub
guifs
guifs
Membro Vitalicio
Membro Vitalicio

Mensagens : 561

Ir para o topo Ir para baixo

Ganhar Item Em Certo Level v1.2 Empty Re: Ganhar Item Em Certo Level v1.2

Mensagem por lucas100vzs Dom 31 Mar 2013, 21:10


Bem, primeiramente venho pedir desculpas, pois estava com pressa e postei um código sem testar....enfim, não estou com pressa agora...e nem ocupado...

Então, o problema Guifs que quem está com mochila cheia não se "fu.." é você que se "fu..."...porque dá erro no servidor, e não no cliente da pessoa....E é simples, você quer também uma checagem, e o código completo, aí está ele sem erros, e com manuseio mais fácil ainda:

Código:
Public Sub GanharItem(ByVal Index As Long)
Dim ItemNum As Long
Dim ItemVal As Long
Dim Weapon As Long
Dim n As Long

' Declare the value and the ItemNum
ItemNum = 1 ' Item Number
ItemVal = 1 ' Item Value

' Watch out with the limit or sub-limit!
If ItemNum > MAX_ITEMS Or ItemNum < 0 Then Exit Sub
If ItemVal > MAX_LONG Or ItemVal < 0 Then Exit Sub

' Makes more easy, if player has ItemNum exit the code
If HasItem(Index, ItemNum) Then Exit Sub

n = FindOpenInvSlot(Index, ItemNum) ' 1 = Número do Item

 
If n > 0 Then ' Check for inv space
  If GetPlayerLevel(Index) = 2 Then ' Check for Player Level

Select Case GetPlayerClass(Index)
    Case 0 ' Classe 0
      Call GiveInvItem(Index, ItemNum, ItemVal)
      Call PlayerMsg(Index, " Você Recebeu o Item: " & Trim$(Item(ItemNum).Name) & ".", Blue)
     
    Case 1 ' Classe 1
      Call GiveInvItem(Index, ItemNum, ItemVal)
      Call PlayerMsg(Index, " Você Recebeu o Item: " & Trim$(Item(ItemNum).Name) & ".", Blue)
     
    Case 2 ' Classe 2
      Call GiveInvItem(Index, ItemNum, ItemVal)
      Call PlayerMsg(Index, " Você Recebeu o Item: " & Trim$(Item(ItemNum).Name) & ".", Blue)
     
    Case 3 ' Classe 3
      Call GiveInvItem(Index, ItemNum, ItemVal)
      Call PlayerMsg(Index, " Você Recebeu o Item: " & Trim$(Item(ItemNum).Name) & ".", Blue)
     
    Case 4 ' Classe 4
      Call GiveInvItem(Index, ItemNum, ItemVal)
      Call PlayerMsg(Index, " Você Recebeu o Item: " & Trim$(Item(ItemNum).Name) & ".", Blue)
     
    Case Else
      Call GiveInvItem(Index, ItemNum, ItemVal)
      Call PlayerMsg(Index, " Você Recebeu o Item: " & Trim$(Item(ItemNum).Name) & ".", Blue)
     
    End Select
   
  End If
 
  Else
 
  Select Case GetPlayerClass(Index)
    Case 0 ' Classe 0
      Call SpawnItem(ItemNum, ItemVal, GetPlayerMap(Index), GetPlayerX(Index), GetPlayerY(Index))
      Call PlayerMsg(Index, "Mochila Cheia! Item: " & Trim$(Item(ItemNum).Name) & " dropado no chão!", Blue)
     
    Case 1 ' Classe 1
      Call SpawnItem(ItemNum, ItemVal, GetPlayerMap(Index), GetPlayerX(Index), GetPlayerY(Index))
      Call PlayerMsg(Index, "Mochila Cheia! Item: " & Trim$(Item(ItemNum).Name) & " dropado no chão!", Blue)
     
    Case 2 ' Classe 2
      Call SpawnItem(ItemNum, ItemVal, GetPlayerMap(Index), GetPlayerX(Index), GetPlayerY(Index))
      Call PlayerMsg(Index, "Mochila Cheia! Item: " & Trim$(Item(ItemNum).Name) & " dropado no chão!", Blue)
     
    Case 3 ' Classe 3
      Call SpawnItem(ItemNum, ItemVal, GetPlayerMap(Index), GetPlayerX(Index), GetPlayerY(Index))
      Call PlayerMsg(Index, "Mochila Cheia! Item: " & Trim$(Item(ItemNum).Name) & " dropado no chão!", Blue)
     
    Case 4 ' Classe 4
      Call SpawnItem(ItemNum, ItemVal, GetPlayerMap(Index), GetPlayerX(Index), GetPlayerY(Index))
      Call PlayerMsg(Index, "Mochila Cheia! Item: " & Trim$(Item(ItemNum).Name) & " dropado no chão!", Blue)
     
    Case Else
      Call SpawnItem(ItemNum, ItemVal, GetPlayerMap(Index), GetPlayerX(Index), GetPlayerY(Index))
      Call PlayerMsg(Index, "Mochila Cheia! Item: " & Trim$(Item(ItemNum).Name) & " dropado no chão!", Blue)
     
    End Select
 
End If

End Sub

Lembrando que:

-Ele dropa o item no chão, caso esteja com a mochila cheia.
-Ele checa se o player tem o item, se tiver, ele não dá e nem dropa, ele sai do código.
OBS: para retirar esta função apenas retire este código:
Código:
' Makes more easy, if player has ItemNum exit the code
If HasItem(Index, ItemNum) Then Exit Sub

-Agora você não precisa ficar colocando o "1" e "2" para número do item e quantidade em toda a linha....basta colocar o código, e configurar esta parte:
Código:
' Declare the value and the ItemNum
ItemNum = 1 ' Item Number/Número do item
ItemVal = 1 ' Item Value/Valor(quantidade) do item

E para aqueles que não tem este código na parte do servidor, no fim do "ModConstants" adicione:

Código:
' values
Public Const MAX_BYTE As Byte = 255
Public Const MAX_INTEGER As Integer = 32767
Public Const MAX_LONG As Long = 2147483647

E pronto....algum erro? Laughing
lucas100vzs
lucas100vzs
Membro Sênior
Membro Sênior

Mensagens : 396

Ir para o topo Ir para baixo

Ganhar Item Em Certo Level v1.2 Empty Re: Ganhar Item Em Certo Level v1.2

Mensagem por guifs Dom 31 Mar 2013, 21:13

bom vou testar aki lucas , mais 1 so por ter falado isso , pelo ou menos agora eu ahco q sei fazer uma checagem de tal coisa e.e , mt obg +1
guifs
guifs
Membro Vitalicio
Membro Vitalicio

Mensagens : 561

Ir para o topo Ir para baixo

Ganhar Item Em Certo Level v1.2 Empty Re: Ganhar Item Em Certo Level v1.2

Mensagem por Conteúdo patrocinado


Conteúdo patrocinado


Ir para o topo Ir para baixo

Ir para o topo

- Tópicos semelhantes

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