[Pedido] Sistema de não dropar certos itens

    Compartilhe

    nescau97
    Novato
    Novato

    Mensagens : 9
    Créditos : 0

    [Pedido] Sistema de não dropar certos itens

    Mensagem por nescau97 em Seg Ago 15, 2016 12:46 pm

    Boa tarde meus caros, alguma alma bondosa rs poderia disponibilizar se possível um sistema no qual certos itens no inventário não seja dropavel...
    Desde já agradeço! Glad

    newbie123
    Semi-Experiente
    Semi-Experiente

    Mensagens : 118
    Créditos : 33

    Re: [Pedido] Sistema de não dropar certos itens

    Mensagem por newbie123 em Seg Ago 15, 2016 4:06 pm

    1- Abra o client.vbp
    2- Procure no ModClientTCP, na sub "senddropitem" por:


    Código:
    If InvNum < 1 Or InvNum > MAX_INV Then Exit Sub
        If PlayerInv(InvNum).num < 1 Or PlayerInv(InvNum).num > MAX_ITEMS Then Exit Sub
        If Item(GetPlayerInvItemNum(MyIndex, InvNum)).Type = ITEM_TYPE_CURRENCY Then
            If Amount < 1 Or Amount > PlayerInv(InvNum).Value Then Exit Sub
        End If


    3- Abaixo coloque:


    Código:
    If PlayerInv(InvNum).num = "" Then Exit Sub


    Tire as aspas e coloque qual item você quer que não seja dropavel... e caso seja mais de um, basta ir colocando "or" exemplo:


    Código:
    If PlayerInv(InvNum).num = 3 or 4 or 5 Then Exit Sub

    Kielleds~
    Moderador Local
    Moderador Local

    Mensagens : 689
    Créditos : 66

    Re: [Pedido] Sistema de não dropar certos itens

    Mensagem por Kielleds~ em Seg Ago 15, 2016 4:10 pm

    newbie123 escreveu:1- Abra o client.vbp
    2- Procure no ModClientTCP, na sub "senddropitem" por:


    Código:
    If InvNum < 1 Or InvNum > MAX_INV Then Exit Sub
        If PlayerInv(InvNum).num < 1 Or PlayerInv(InvNum).num > MAX_ITEMS Then Exit Sub
        If Item(GetPlayerInvItemNum(MyIndex, InvNum)).Type = ITEM_TYPE_CURRENCY Then
            If Amount < 1 Or Amount > PlayerInv(InvNum).Value Then Exit Sub
        End If


    3- Abaixo coloque:


    Código:
    If PlayerInv(InvNum).num = "" Then Exit Sub


    Tire as aspas e coloque qual item você quer que não seja dropavel... e caso seja mais de um, basta ir colocando "or" exemplo:


    Código:
    If PlayerInv(InvNum).num = 3 or 4 or 5 Then Exit Sub
    Vlw man, vou colocar isso n meu game também.


    _________________
    Segue Meu Jogo:

    facebook.com/timefantasyonline

    nescau97
    Novato
    Novato

    Mensagens : 9
    Créditos : 0

    Re: [Pedido] Sistema de não dropar certos itens

    Mensagem por nescau97 em Seg Ago 15, 2016 4:28 pm

    Meu caro, realizei os devidos testes, realmente os itens escolhidos não dropam, porém aparenta está meio bugado pq não consigo dropar nenhum outro item!
    Agradeço a ajuda, fico no aguardo pela resposta.
    Att

    newbie123
    Semi-Experiente
    Semi-Experiente

    Mensagens : 118
    Créditos : 33

    Re: [Pedido] Sistema de não dropar certos itens

    Mensagem por newbie123 em Seg Ago 15, 2016 5:16 pm

    Okay ah, eu não estou entendendo muito bem por que desse "bug", porem caso você coloque apenas um numero o sistema funciona normalmente, fique repetindo esse código, mais tarde quando eu chegar em casa eu vejo como resolver isso. Successful

    PS: Eu não estou em casa, porém utilize invés do "Or" o codigo "AND" e veja se agora funciona.

    Profane ~
    Moderador Local
    Moderador Local

    Mensagens : 366
    Créditos : 66

    Re: [Pedido] Sistema de não dropar certos itens

    Mensagem por Profane ~ em Seg Ago 15, 2016 5:18 pm

    Um tanto não tanto , porém tanto não usual.

    Procure tirar a aplicação de drop de itens em relaçao a enumaração de Slots do Inventory.

    Ligue isso a Categoria de "Type" (Tipo) do item em si; Para que tal tipo não possa ser dropado.

    ou mesmo crie uma variavel adicional no itemRec ex:  "Não Dropavel"; para que este ID de item não possa ser dropado, aplicado comumente em items de Quest para jogos MMO grandes.

    APlicar isso ao Slot do Inventory é não usual.

    Att ><


    _________________

    nescau97
    Novato
    Novato

    Mensagens : 9
    Créditos : 0

    Re: [Pedido] Sistema de não dropar certos itens

    Mensagem por nescau97 em Seg Ago 15, 2016 5:47 pm

    Primeiramente venho agradecer ao Newbie pela intenção em querer ajudar e ao Profane como sempre arrumando um tempinho para auxiliar os iniciantes. Se for viável poderia explicar de uma forma mais detalhada (passo a passo) o sistema da Type para que este id de item não possa ser dropada'?
    Att

    Profane ~
    Moderador Local
    Moderador Local

    Mensagens : 366
    Créditos : 66

    Re: [Pedido] Sistema de não dropar certos itens

    Mensagem por Profane ~ em Seg Ago 15, 2016 8:03 pm

    Bom ~

    Server Side

    Procure por:

    Código:
    Sub HandleMapDropItem(ByVal index As Long, ByRef Data() As Byte, ByVal StartAddr As Long, ByVal ExtraVar As Long)

    Dentro dela, procure por :

    Código:
        ' everything worked out fine
        Call PlayerMapDropItem(index, invNum, Amount)

    Isso é a permissão em si do drop do item, citado, "dropar" ele no mapa. 

    Agora ACIMA disso, coloquemos outra condição antes de chegar esse drop em si.

    Adicione:

    Código:
        If Item(GetPlayerInvItemNum(index, invNum)).Type = ITEM_TYPE_WEAPON Then
            Call PlayerMsg(index, "Não pode dropar este item", Red)
            If Amount < 1 Or Amount > GetPlayerInvItemValue(index, invNum) Then Exit Sub
        End If

    Analise isso aqui : .Type = ITEM_TYPE_WEAPON


    O Type é Weapon, isso fará com que os Itens com ID do tipo WEAPON (arma), não possam ser dropados do Inventory.


    Modificar o ITEM_TYPE_WEAPON, pelo ITEM_TYPE que você deseja.


    Pode verificar mais ITEM_TYPES no ModConstants.


    Att


    _________________

      Data/hora atual: Sex Dez 09, 2016 12:50 am