Ir para conteúdo
  • Cadastre-se

Breniinx

Membro
  • Total de itens

    19
  • Registro em

  • Última visita

Posts postados por Breniinx

  1. Boa Noite, como o titulo do post já fala, alguém poderia me explicar como funciona a ID vocation e fromvoc, também gostaria de saber se existe algum problema colocar ambos diferentes, eu tenho um servidor de Dragon ball e existem varias transformação e elas tem ID vocation diferente e se eu deixar ID Vocation e Fromvoc iguais quando o jogador morrer ele não volta para a transformação inicial, o problema de não voltar para a transformação inicial é porque o jogador pode perder o level da transformação atual e mesmo assim manter a transformação, eu poderia usar o Niwdeath porém tive problemas com ele onde o AOL parava de funcionar entre outras coisas e a fromvoc foi a unica forma que eu achei de resolver esse "Problema" ela volta pra transformação inicial mas não tira o outfit estou fazendo esse post pra saber se existe algum problema ao colocar Fromvoc diferente do ID Vocation, exceto esse da outfit e se tem alguma forma de fazer isso corretamente sem ter nenhum problema com outfit e vocation.

    Abaixo tem um pequeno exemplo da vocation Zamasu, com a fromvoc alterada e diferente da ID vocation.


     

    <vocation fromvoc="482" gainsoulticks="15" soulmax="200" attackspeed="1500" manamultiplier="1.1" gainmanaamount="50" gainmanaticks="2" gainhpamount="50" gainhpticks="2" gainmana="60" gainhp="41"  gaincap="15" needpremium="0" description="Zamasu" name="Zamasu" id="482" manager="0" lessloss="50">
    <formula armor="1.0" magDefense="1.0" defense="1.0" magHealingDamage="1.0" magDamage="0.10" wandDamage="1.0" distDamage="1.0" meleeDamage="1.0"/>
    <skill experience="1.0" fishing="1.0" shielding="1.1" distance="1.1" axe="1.1" sword="1.1" club="1.1" fist="1.1"/>
    </vocation>
    
    <vocation fromvoc="482" gainsoulticks="15" soulmax="200" attackspeed="1500" manamultiplier="1.1" gainmanaamount="50" gainmanaticks="2" gainhpamount="50" gainhpticks="2" gainmana="60" gainhp="41"  gaincap="15" needpremium="0" description="Zamasu" name="Zamasu" id="483" manager="0" lessloss="50">
    <formula armor="1.0" magDefense="1.0" defense="1.0" magHealingDamage="1.0" magDamage="0.138" wandDamage="1.0" distDamage="2.0" meleeDamage="1.0"/>
    <skill experience="1.0" fishing="1.0" shielding="1.1" distance="1.1" axe="1.1" sword="1.1" club="1.1" fist="1.1"/>
    </vocation>
    
    <vocation fromvoc="482" gainsoulticks="15" soulmax="200" attackspeed="1500" manamultiplier="1.1" gainmanaamount="50" gainmanaticks="2" gainhpamount="50" gainhpticks="2" gainmana="60" gainhp="41"  gaincap="15" needpremium="0" description="Zamasu" name="Zamasu" id="484" manager="0" lessloss="50">
    <formula armor="1.0" magDefense="1.0" defense="1.0" magHealingDamage="1.0" magDamage="0.207" wandDamage="1.0" distDamage="3.0" meleeDamage="1.0"/>
    <skill experience="1.0" fishing="1.0" shielding="1.1" distance="1.1" axe="1.1" sword="1.1" club="1.1" fist="1.1"/>
    </vocation>
    
    <vocation fromvoc="482" gainsoulticks="15" soulmax="200" attackspeed="1500" manamultiplier="1.1" gainmanaamount="50" gainmanaticks="2" gainhpamount="50" gainhpticks="2" gainmana="60" gainhp="41"  gaincap="15" needpremium="0" description="Zamasu" name="Zamasu" id="485" manager="0" lessloss="50">
    <formula armor="1.0" magDefense="1.0" defense="1.0" magHealingDamage="1.0" magDamage="0.276" wandDamage="1.0" distDamage="4.0" meleeDamage="1.0"/>
    <skill experience="1.0" fishing="1.0" shielding="1.1" distance="1.1" axe="1.1" sword="1.1" club="1.1" fist="1.1"/>
    </vocation>
    
    <vocation fromvoc="482" gainsoulticks="15" soulmax="200" attackspeed="1500" manamultiplier="1.1" gainmanaamount="50" gainmanaticks="2" gainhpamount="50" gainhpticks="2" gainmana="60" gainhp="41"  gaincap="15" needpremium="0" description="Zamasu" name="Zamasu" id="486" manager="0" lessloss="50">
    <formula armor="1.0" magDefense="1.0" defense="1.0" magHealingDamage="1.0" magDamage="0.335" wandDamage="1.0" distDamage="5.0" meleeDamage="1.0"/>
    <skill experience="1.0" fishing="1.0" shielding="1.1" distance="1.1" axe="1.1" sword="1.1" club="1.1" fist="1.1"/>
    </vocation>
  2. Boa noite, estou precisando de ajuda, tenho uma spell de curar o proprio personagem ou todos os membros que estiver em pt, ela é feita para colocar no summon porém ela cura mesmo fora da tela ou em outro planeta do mapa gostaria de saber se alguém poderia alterar e conseguir colocar pra curar apenas quem estiver na range ="8" do summon desde já agradeço a todos que puderem ajudar

     

     

     

    Aqui está o script atual

     

    healmonster.lua

     

    local config = {
    health = 45454,
    mana = 135
    }


    function onCastSpell(cid, var)

    if getCreatureMaster(cid) then
    local master = getCreatureMaster(cid)
    if isInParty(master) then
        local members = getPartyMembers(getPlayerParty(master))
        local health = math.ceil( config.health / #members )
        local mana = math.ceil( config.mana / #members )
        for i = 1, #members do
        doCreatureAddHealth(members[i], health)
        doCreatureAddMana(members[i], mana)
        doSendAnimatedText(getCreaturePosition(members[i]), "+"..health, 18)    
        doSendMagicEffect(getCreaturePosition(members[i]), 5)        
        end
    else
        doCreatureAddHealth(master, config.health)
        doCreatureAddMana(master, config.mana)
        doSendAnimatedText(getCreaturePosition(master), "+"..config.health, 18)        
        doSendMagicEffect(getCreaturePosition(master), 5)    
    end
    end
    return true
    end

     

     

  3. 1 hora atrás, So volto tarde disse:

    tenta ai
     

    
    local lvl = 1
    local stor_time = 68741
    local hours = 24
    local t = {
        {Pos = {{x=906, y=625, z=5},{x=917, y=586, z=7}}}, -- TANK OR DRUNK
        {Pos = {{x=907, y=625, z=5},{x=916, y=587, z=7}}}, -- TANK OR DRUNK
        {Pos = {{x=908, y=624, z=5},{x=915, y=588, z=7}}}, -- TANK OR DRUNK
        {Pos = {{x=908, y=623, z=5},{x=915, y=576, z=7}}}, -- TANK OR DRUNK
        {Pos = {{x=907, y=622, z=5},{x=914, y=575, z=7}}}, -- TANK OR DRUNK
        {Pos = {{x=906, y=622, z=5},{x=913, y=574, z=7}}} -- TANK OR DRUNK
    
    }
    function onUse(cid, item, fromPosition, itemEx, toPosition)
        local check = {}
        for _, k in ipairs(t) do
            local x = getTopCreature(k.Pos[1]).uid
            if x == 0 or not isPlayer(x) or getPlayerLevel(x) < lvl or getPlayerStorageValue(x, stor_time) - os.time() > 0 then
                doPlayerSendCancel(cid, 'Está faltando player, alguém não possui level '..lvl..' , não está transformado no maximo ou você já fez a quest em menos de 24 horas.') return true
                return true
            end
            table.insert(check, x)
        end
        for k, tid in ipairs(check) do
            doSendMagicEffect(getCreaturePosition(tid), CONST_ME_POFF)
            if tid ~= sort then 
                doTeleportThing(tid, t[k].Pos[2])
            end
            doSendMagicEffect(getCreaturePosition(tid), CONST_ME_TELEPORT)
            setPlayerStorageValue(tid, stor_time, os.time()+hours*1440)
        end
        return true
    end

     

    https://prnt.sc/1f1jrl4 deu esse erro na distro

  4. Alguém poderia me ajudar a remover essas checagem de vocation e item?

     

    Qual o motivo deste tópico? 

    Remover checagem de vocation e checagem de item

    Está surgindo algum erro? Se sim coloque-o aqui. 

    Não

    Você tem o código disponível? Se tiver publique-o aqui: 

    local lvl = 1
    local stor_time = 68741
    local hours = 24
    local t = {
        {vocations = {1, 1},Pos = {{x=906, y=625, z=5},{x=917, y=586, z=7}},item= {9020,{x=907, y=623, z=5}}}, -- TANK OR DRUNK
        {vocations = {1, 1},Pos = {{x=907, y=625, z=5},{x=916, y=587, z=7}},item= {9020,{x=907, y=623, z=5}}}, -- TANK OR DRUNK
        {vocations = {1, 1},Pos = {{x=908, y=624, z=5},{x=915, y=588, z=7}},item= {9020,{x=907, y=623, z=5}}}, -- TANK OR DRUNK
        {vocations = {1, 1},Pos = {{x=908, y=623, z=5},{x=915, y=576, z=7}},item= {9020,{x=907, y=623, z=5}}}, -- TANK OR DRUNK
        {vocations = {1, 1},Pos = {{x=907, y=622, z=5},{x=914, y=575, z=7}},item= {9020,{x=907, y=623, z=5}}}, -- TANK OR DRUNK
        {vocations = {1, 1},Pos = {{x=906, y=622, z=5},{x=913, y=574, z=7}},item= {9020,{x=907, y=623, z=5}}} -- TANK OR DRUNK

    }
    function onUse(cid, item, fromPosition, itemEx, toPosition)
        local check = {}
        local items = {}
        for _, k in ipairs(t) do
            local x = getTopCreature(k.Pos[1]).uid
            local v = getTileItemById(k.item[2], k.item[1])
            if x == 0 or not isPlayer(x) or getPlayerLevel(x) < lvl or isInArray(k.vocations, getPlayerVocation(x)) == FALSE or getPlayerStorageValue(x, stor_time) - os.time() > 0 then
                doPlayerSendCancel(cid, 'Está faltando player, alguém não possui level '..lvl..' , não está transformado no maximo ou você já fez a quest em menos de 24 horas.') return true
            elseif v.uid == 0 then
            doPlayerSendCancel(cid, "Todos os itens precisão estar na posição.") return true end
            table.insert(check, x)
            table.insert(items, v)
        end
        for k, tid in ipairs(check) do
            doSendMagicEffect(getCreaturePosition(tid), CONST_ME_POFF)
            if tid ~= sort then 
                doTeleportThing(tid, t[k].Pos[2])
            end
            doSendMagicEffect(getCreaturePosition(tid), CONST_ME_TELEPORT)
            setPlayerStorageValue(tid, stor_time, os.time()+hours*1440)
        end
        for _, remove in ipairs(items) do
            doRemoveItem(remove.uid)
        end
        doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945)
        return true
    end

     

    Você tem alguma imagem que possa auxiliar no problema? Se sim, coloque-a aqui. 

     

  5. 3 horas atrás, Pisces disse:

    Estava com pouco tempo.. Mas estranho não estar funcionando a parte do IP, sendo que é a mesma linha de código que tu enviou anteriormente kkk

     

    O script só vai funcionar se o target for um jogador e que este seja maior ou igual ao level do cid, talvez você matou alguém de level inferior.

    Jogador morto level 550, o killer era 600 e ambos com mesmo ip porque sou eu testando e não teve punição ou não entendi direito?

    gif_morte.gif

    Em 20/01/2021 em 15:39, XGaduX disse:

    @WooX Ver se resolver esse...

    Serei eternamente grato

  6. Em 15/01/2021 em 13:27, Pisces disse:

    As fórmulas são apenas cálculos comuns (adição, subtração, etc..) de acordo como você desejar. Irei pensar em um outro script, de modo que fique mais claro e envio aqui no tópico. ?

    Não pensou em nada sobre o outro script?

  7. 10 horas atrás, Pisces disse:

    As fórmulas são apenas cálculos comuns (adição, subtração, etc..) de acordo como você desejar. Irei pensar em um outro script, de modo que fique mais claro e envio aqui no tópico. ?

    Estarei esperando ansiosamente :)

  8. 7 horas atrás, Pisces disse:

    A quantidade de XP que o jogador irá receber tu consegue definir nas variáveis "exp", "nexp", e "newexp", basta alterar as operações matemáticas que estão sendo feitas dentro delas. Modifiquei pra que o cálculo seja feito em cima do level do jogador inimigo, assim fica algo mais proveitoso e menos "fixo". Testa aí e me fala:

     

      Ocultar conteúdo
    
    
    
    
    function onKill(cid, target)
    local lvlCid = getPlayerLevel(cid)
    local lvlTarget = getPlayerLevel(target)
    
    ------------- Em exp/nexp/newexp são as fórmulas de cálculo para decidir qual será a XP que o jogador irá obter.
    
      local exp = (50 * (lvlTarget) * (lvlTarget) * (lvlTarget) - 130 * (lvlTarget) * (lvlTarget) + 400 * (lvlTarget)) / 5
      local nexp = (50 * (lvlCid) * (lvlCid) * (lvlCid) - 130 * (lvlCid) * (lvlCid) + 400 * (lvlCid)) / 5
      local newexp = (exp - nexp) / 2
      local punishment = 2 -- Valor que será multiplicado pelo resultado de 'newexp'. (Punição por matar player do mesmo IP)
    
      if (isPlayer(target)) and (lvlTarget >= lvlCid)then
        if getPlayerIp(cid) ~= getPlayerIp(target) then
          doPlayerAddExp(cid, newexp)
          doCreatureSay(cid, "You earned " .. newexp .. " points of experience.", TALKTYPE_MONSTER)
        else
          doPlayerAddExperience(cid, -((newexp) * punishment))
          doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"You have been punished for killing a player of the same IP.")
        end
      end
      return true
    end 

     

     

    a parte da punição por matar pelo mesmo ip não está funcionando e não aparece nenhum erro na distro, o resto tá funcionando perfeitamente, eu sei que estou pedindo demais mas não teria como deixar de forma mais clara essa formula de cálculo ? eu sinceramente não entendi nada e sobre a diferença de level deve  está na formula também e como eu não entendi fica difícil fazer alguma modificação eu queria que o jogador que matar o outro for 100 leveis menor ganhar 50% da exp perdida se forem level igual ou 10 nivel de diferença ganhar 100% da exp perdida e se ele for 20 nivel ou mais não ganhar exp nenhuma, se tiver varios player matando 1 jogador a exp seja shareada de forma igual dentro das condiçôes citada.

     

    não precisa ser necessariamente esse script, se você tiver algum outro funcional que consiga fica o mais próximo possivel das condiçôes citada eu ficaria grato eternamente.

     

    eu acho que já estou pedindo demais mas se não for possivel tudo bem, o script tá funcionando perfeitamente tirando a parte do IP

  9. 17 minutos atrás, Pisces disse:

    Não entendi a parte de ganhar em 'porcentagem', o ganho de XP está seguindo as fórmulas 'exp' e 'nexp'. Dá mais detalhes de como quer, e assim que possível eu vejo pra ti.

     

    PS: Acho que ficaria legal se a fórmula fosse calculada em cima do level do player que morreu, e não em cima do lvl de quem matou (como está atualmente), daí colocar um limite de lvl tbm, pra evitar que jogadores iniciantes matem high lvl e abusem do ganho de xp.

    @Pisces Eu gostaria que o jogador que matou o outro player ganhar uma porcentagem da exp perdida do jogador e que essa porcentagem seja configurável e ao matar um player level menor que o dele não ganhar exp

    e se matar o jogador com o mesmo IP perder a experiência que ele ganharia do jogador que ele matou, nem sei se isso é possível nesse script.

    Eu não conseguir deixar explicado isso no post por não entender sobre script estou começando agora e estou aprendendo conforme eu vou pesquisando vou aprendendo

  10. Atualmente este script está dando experiência fixa e eu gostaria que ele estivesse ganhando em porcentagem (configurável) e se ele matar um player 10 leveis(configurável) menor que o dele não ganhar experiência nenhuma

    Se for possível adicionar a perda de experiência ao matar com o mesmo IP em porcentagem e não fixa.

     

      function onKill(cid, target)
    --config----------------------------
    local lvl = getPlayerLevel(cid) --players level
    local nlvl = getPlayerLevel(cid) + 1 -- add 5 levels
    --end-------------------------------
        if isPlayer(target) == TRUE then
            if getPlayerIp(cid) ~= getPlayerIp(target) then
                            local exp = (50 * (lvl) * (lvl) * (lvl) - 130 * (lvl) * (lvl) + 400 * (lvl)) / 5
                            local nexp = (50 * (nlvl) * (nlvl) * (nlvl) - 130 * (nlvl) * (nlvl) + 400 * (nlvl)) / 5
                            local newexp = nexp - exp
                            doPlayerAddExp(cid,newexp)
                            doSendAnimatedText(getPlayerPosition(cid), "Orgasmic~", 198)
                    else
                doPlayerAddExperience(cid, -90000000)
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"You have been punished for killing a player of the same IP.")
            end
            end
        return TRUE
    end 

     

  11. Alguém poderia me ajudar a mudar algumas coisas nesse script?

    gostaria de remover essa quantidade de items deixando apenas 1

    e que eu consiga coloca varios items diferente mas a quantidade precisa ser apenas 1 por exemplo item= {2160,EXEMPLO1,EXEMPLO2,EXEMPLO3{x=906, y=588, z=7}}}

     

     

     

     

     

     

     

     

     

     

    local lvl = 1
    local stor_time = 68767
    local hours = 1
    local pos_die = {x=905, y=571, z=6} 
    local t = {
            {vocations = {1, 1},Pos = {{x=912, y=583, z=7},{x=904, y=573, z=6}},item= {9020,{x=906, y=578, z=7}}}, -- DRUNK
        {vocations = {1, 1},Pos = {{x=910, y=579, z=7},{x=904, y=575, z=6}},item= {9020,{x=906, y=588, z=7}}}, -- PARALYZE
        {vocations = {1, 1},Pos = {{x=902, y=579, z=7},{x=906, y=575, z=6}},item= {9020,{x=907, y=584, z=7}}}, -- BRUISER
        {vocations = {1, 1},Pos = {{x=910, y=587, z=7},{x=906, y=573, z=6}},item= {9020,{x=905, y=584, z=7}}}, -- HEAL
        {vocations = {1, 1},Pos = {{x=900, y=583, z=7},{x=905, y=574, z=6}},item= {9020,{x=905, y=582, z=7}}}, -- ATK
        {vocations = {1, 1},Pos = {{x=902, y=587, z=7},{x=904, y=573, z=6}},item= {9020,{x=907, y=582, z=7}}} -- DISTANCE

    }
    function onUse(cid, item, fromPosition, itemEx, toPosition)
        local check = {}
        local items = {}
        for _, k in ipairs(t) do
            local x = getTopCreature(k.Pos[1]).uid
            local v = getTileItemById(k.item[2], k.item[1])
            if x == 0 or not isPlayer(x) or getPlayerLevel(x) < lvl or isInArray(k.vocations, getPlayerVocation(x)) == FALSE or getPlayerStorageValue(x, stor_time) - os.time() > 0 then
                doPlayerSendCancel(cid, 'Está faltando player, alguém não possui level '..lvl..' ou não está transformado no maximo.') return true
            elseif v.uid == 0 then
            doPlayerSendCancel(cid, "Todos os itens precisa estar na posição.") return true end
            table.insert(check, x)
            table.insert(items, v)
        end
        local sort = check[math.random(1, #check)]
        for k, tid in ipairs(check) do
            doSendMagicEffect(getCreaturePosition(tid), CONST_ME_POFF)
            if tid ~= sort then 
                doTeleportThing(tid, t[k].Pos[2])
                
            else
                doTeleportThing(tid, pos_die)
            end
            doSendMagicEffect(getCreaturePosition(tid), CONST_ME_TELEPORT)
            setPlayerStorageValue(tid, stor_time, os.time()+hours*1)
        end
        for _, remove in ipairs(items) do
            doRemoveItem(remove.uid)
        end
        doTransformItem(item.uid, item.itemid == 1945 and 1946 or 1945)
        return true
    end

  12. 6 minutos atrás, Mask Ghoul disse:

    E em creaturescript/login.lua , verifque achar >>  registerCreatureEvent(cid, "AutoBless") <<

    local config = {
        loginMessage = getConfigValue('loginMessage'),
        useFragHandler = getBooleanFromString(getConfigValue('useFragHandler'))
    }

    function onLogin(cid)
    registerCreatureEvent(cid, "onPrepareDeathinifi")
        local loss = getConfigValue('deathLostPercent')
        if(loss ~= nil) then
            doPlayerSetLossPercent(cid, PLAYERLOSS_EXPERIENCE, loss * 10)
        end
                    local lastLogin, str = getPlayerLastLoginSaved(cid), config.loginMessage
            if(lastLogin > 0) then
                doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, str)
                str = "Your last visit was on " .. os.date("%a %b %d %X %Y", lastLogin) .. "."
            else
                                        setPlayerStorageValue(cid, 30024, 0)
            end


        if(not isPlayerGhost(cid)) then
            doSendMagicEffect(getCreaturePosition(cid), CONST_ME_TELEPORT)
        end

     

    isso é uma parte do login e não tem nenhuma autobless

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo