Ir para conteúdo
  • Cadastre-se

(Resolvido)[Duvida] Adicionando skill automatico


Ir para solução Resolvido por Fir3element,

Posts Recomendados

corrigi os 2 bugs mencionado, basta trocar as funções da lib e o script novamente pelo que está acima.

 

abrçs

EQD4Qy4.gif

Link para o post
Compartilhar em outros sites

@fireelement brother o seu ele nao deu erro, mas quando loga o acc manager ele desloga nao deixa entrar

 

@Samm O Reset volto ao normal. só que ele nao add os skills ainda :/ verifiquei na db e nada tbm

ta osso ó kkkk

 

e se tentarmos uma nova opção ? eu coloco pra quando o char loga ele loga com um item especifico e quando ele clica no item ele é deslogado e faz as paradas todas ? (obs: tem que ter storage né, pq se nao uma pessoa loga 10 char e troca items e pega 1 milhao de reset)

Editado por markmv (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Não precisa fazer outro script isso é só perca de tempo pra quem está te ajudando, tem que encontrar o motivo do erro ...  acabei de descobrir o motivo do erro. É o seguinte o limite das skills são 256 ... logo não iria funcionar nunca colocando 350, o que acontece quando seta 350 na database é que chega no 256 ele começa conta do 0 dnv ai 257 = 1 ... pra que não entendeu 350 - 256 = 94 ... vai ser adicionado 94 na database.

 

lib/functions :

function doPlayerSetMagic(cid, amount)	
	
	local pid = getPlayerGUID(cid)

		db.executeQuery("UPDATE `players` SET `maglevel` = " .. amount .. " WHERE `id` = "..pid)

	return true
end

function doPlayerSetSkill(cid, skill, amount)
	local pid = getPlayerGUID(cid) 

		db.executeQuery("UPDATE `player_skills` SET `value` = ".. amount .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. skill ..";") 
		
	return true 
end

script :

-- SCRIPT COM TODOS OS DIREITOS RESERVADOS A FIREELEMENT TIBIAKING --

function onUse(cid, item, frompos, item2, topos)
    local config = {
        level = 350, -- Level para resetar
        _level = 350, -- Level depois do reset. Se quiser voltar pro level que o player estava antes, usa getPlayerLevel(cid)
        str = 4597, -- Storage
        resets = 20, -- Quantidade de resets adicionado
        guid = getPlayerGUID(cid), -- UID do player
        msg = {
            "Parabens, Voce Ganhou 20 RESETS. Voce sera deslogado por motivo de seguranca.", -- Mensagem recebida ao concluir a quest
            "Desculpe. Nao e possivel." -- Mensagem recebida se o player jรก fez a quest
        },
        voc_sorc_druid = {1, 2, 5, 6},
        voc_pala = {3, 7},
        voc_kina = {4, 8},
    }

    if item.uid == config.str then
        if getPlayerStorageValue(cid, config.str) == -1 then
            doPlayerAddLevel(cid, config.level)
            setResets(cid, config.resets)
            doPlayerSendTextMessage(cid, 22, config.msg[1])
            doSendMagicEffect(frompos, CONST_ME_MAGIC_BLUE)
            setPlayerStorageValue(cid, config.str, 1)
            doTeleportThing(cid,{x= 101, y= 116, z= 7})
            db.executeQuery("UPDATE `players` SET `level` = " .. config._level .. ", `experience` = " .. getExperienceForLevel(config._level) .. " WHERE `id` = " .. config.guid)
            if isInArray(config.voc_sorc_druid, getPlayerVocation(cid)) then
                doPlayerSetMagic(cid, 200)
                doRemoveCreature(cid, true)
            elseif isInArray(config.voc_pala, getPlayerVocation(cid)) then
                doPlayerSetMagic(cid, 30)
                doPlayerSetSkill(cid, SKILL_DISTANCE, 255)
                doRemoveCreature(cid, true)
            elseif isInArray(config.voc_kina, getPlayerVocation(cid)) then
                doPlayerSetMagic(cid, 11)
                doPlayerSetSkill(cid,  SKILL_AXE, 255)  
                doRemoveCreature(cid, true)           
            end
        else
            doPlayerSendTextMessage(cid, 22, config.msg[2])
        end
    end
    return true
end

abrçs

 

Ps : troquei o skill_distance e skill_axe pra 255 já que o limite é 256...

Editado por Summ (veja o histórico de edições)

EQD4Qy4.gif

Link para o post
Compartilhar em outros sites

cara testei denovo, e criando outro char nao foi =s

quando a trocar o scritpt foi uma sugestao pode ser mais facil e causar menas dor de cabeça

Link para o post
Compartilhar em outros sites
  • Solução

@Summ

O limite é apenas no client, mostra 94 mas ataca como 350.

cxbUWAx.png

local firstItems = {
    [0] = {2173, 2525, 3965, 2124, 2457, 2647, 2643},
    [1] = {2173, 2499, 8871, 2507, 2195, 8918, 8922},
    [2] = {2173, 2499, 8871, 2507, 2195, 8918, 8922},
    [3] = {2173, 2499, 8888, 2507, 2195, 8851, 6529, 7366, 2537},
    [4] = {2173, 2499, 8889, 2507, 2195, 2537, 8926}
}

function onLogin(cid)
    if getCreatureName(cid) ~= "Account Manager" then
        if getPlayerStorageValue(cid, 25990) == -1 then
            local guid = getPlayerGUID(cid)
            local function addSkill(skillid, amount)
                db.executeQuery("UPDATE `player_skills` SET `value` = " .. amount .. " WHERE `player_id` = " .. guid .. " and `skillid` = " .. skillid)
            end

            local function addMagLevel(amount)
                db.executeQuery("UPDATE `players` SET `maglevel` = " .. amount .. " WHERE `id` = " .. guid)
            end

            local voc, bag = getPlayerVocation(cid), doPlayerAddItem(cid, 1988, 1)
            for i = 1, table.maxn(firstItems[voc]) do
                doPlayerAddItem(cid, firstItems[voc][i], 1)
            end

            doPlayerAddItem(cid, 2167, 2)
            doAddContainerItem(bag, 2160, 100)
            doAddContainerItem(bag, 2672, 10)
            setPlayerStorageValue(cid, 25990, 1)
            addEvent(function()
                doRemoveCreature(cid, true)
                if isInArray({1, 2, 5, 6}, voc) then
                    addMagLevel(200)
                elseif voc == 3 or voc == 7 then
                    addSkill(4, 350)
                    addMagLevel(30)
                elseif voc == 4 or voc == 8 then
                    addSkill(3, 350)
                    addSkill(5, 350)
                    addMagLevel(11)
                end
            end, 0.0001)
        end
    end
    return true
end
Editado por fireelement (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Graças a Deus fire, você entre os outros que estão nesse tópico são Fodsss hehe, funcionou perfeitamente. obrigado

 

valew 

 

@fireelement

@summ

 

poderia perdir outra coisa ? rsrsrss

Link para o post
Compartilhar em outros sites

Participe da conversa

Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

  • Quem Está Navegando   0 membros estão online

    Nenhum usuário registrado visualizando esta página.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo