GU

[Resolvido] Colocar vocação no Pet System

Por Guigobrt, 05 de set. de 2018 em Resolvidos

17
3.2k
GuigobrtG
05 de setembro de 2018 às 14:37

E quero por restrição para apenas uma vocação conseguir usar os pets, por exemplo, só o knight pode usar pet no meu servidor, como faço isso?

GengoG
05 de setembro de 2018 às 15:08

Faça uma checagem para verificar se o player é knight.

if isKnight(cid) then
  -- Todo codigo para summonar o pet vai dentro desse if
end

 

GuigobrtG
05 de setembro de 2018 às 15:57

MUITO BOM, DEU CERTINHO, MUITO OBRIGADO.

Agora eu estou tentando por para uma noca vocação ( JOCKER ) usar, só ela, a do Knight foi só um exemplo, só que para essa voc, nao esta dando certo, ja criei a VOC nova, mas noa esta dando, pode me ajdar de novo :?

Aparece esse erro.

erro.png

23 minutos atrás, Guigobrt disse:

Deu certo com a voc Knight.

Agora eu estou tentando por para uma noca vocação ( JOCKER ) usar, só ela, a do Knight foi só um exemplo, só que para essa voc, nao esta dando certo, ja criei a VOC nova, mas noa esta dando, pode me ajdar de novo :?

Aparece esse erro.

erro.png

 

Editado Setembro 5 por Guigobrt

GengoG
05 de setembro de 2018 às 21:16

Esse erro é por causa que você não tem essa função isJocker, você pode fazer assim então:

if getPlayerVocation(cid) == ID_DA_VOCAÇÃO_JOCKER then
  
end

 

GuigobrtG
06 de setembro de 2018 às 09:00

Assim ?

 

function onUse(cid, item, frompos, item2, topos)

local dolls = {
    [9955] = {pet = "pet aniquilador"},
    [2353] = {pet = "pet giant"},
    [6579] = {pet = "pet jurema"},
    [9019] = {pet = "pet gremilie"},
    [2354] = {pet = "pet gladiador"},
}


if getPlayerVocation(cid) == ID_DA_VOCAÇÃO_JOCKER then
  
end
        return doPlayerSendCancel(cid, "Só cavaleiros são dignos de usar os Pets")
    end
    
    local go = dolls[item.itemid]
    local summon = getCreatureSummons(cid)


    if #summon >= 1 then
        for _, pid in ipairs(summon) do
        doRemoveCreature(pid)
        doCreatureSay(cid, "Can go rest ["..go.pet.."]", TALKTYPE_ORANGE_1)
        end
        return true
    end

    doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    doCreatureSay(cid, "Let battle ["..go.pet.."]", TALKTYPE_ORANGE_1)
    return true
end

1 hora atrás, Guigobrt disse:

Ou Assim com o numero da voc ?

 

function onUse(cid, item, frompos, item2, topos)

local dolls = {
    [9955] = {pet = "pet aniquilador"},
    [2353] = {pet = "pet giant"},
    [6579] = {pet = "pet jurema"},
    [9019] = {pet = "pet gremilie"},
    [2354] = {pet = "pet gladiador"},
}


if getPlayerVocation(cid) == 5 then
  
end
        return doPlayerSendCancel(cid, "Só cavaleiros são dignos de usar os Pets")
    end
    
    local go = dolls[item.itemid]
    local summon = getCreatureSummons(cid)


    if #summon >= 1 then
        for _, pid in ipairs(summon) do
        doRemoveCreature(pid)
        doCreatureSay(cid, "Can go rest ["..go.pet.."]", TALKTYPE_ORANGE_1)
        end
        return true
    end

    doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    doCreatureSay(cid, "Let battle ["..go.pet.."]", TALKTYPE_ORANGE_1)
    return true
end

 

GengoG
06 de setembro de 2018 às 11:12
Spoiler
function onUse(cid, item, frompos, item2, topos)

local dolls = {
    [9955] = {pet = "pet aniquilador"},
    [2353] = {pet = "pet giant"},
    [6579] = {pet = "pet jurema"},
    [9019] = {pet = "pet gremilie"},
    [2354] = {pet = "pet gladiador"},
}


	if not getPlayerVocation(cid) == 5 then
        return doPlayerSendCancel(cid, "Só Jockers são dignos de usar os Pets")
    end
    
    local go = dolls[item.itemid]
    local summon = getCreatureSummons(cid)


    if #summon >= 1 then
        for _, pid in ipairs(summon) do
        doRemoveCreature(pid)
        doCreatureSay(cid, "Can go rest ["..go.pet.."]", TALKTYPE_ORANGE_1)
        end
        return true
    end

    doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    doCreatureSay(cid, "Let battle ["..go.pet.."]", TALKTYPE_ORANGE_1)
    return true
end

 

 

Editado Setembro 6 por luis700

GuigobrtG
06 de setembro de 2018 às 11:19

Isso, só Jocker é id 5, só que dai quando ponho 5  ninguem mais usa, nem GOD.

GengoG
06 de setembro de 2018 às 11:28

Substitua o if para esse, assim o God também vai poder usar:

if not getPlayerVocation(cid) == 5 or getPlayerAccess(cid) ~= 5 then
     return doPlayerSendCancel(cid, "So Jockers são dignos de usar os Pets")
end

 

GuigobrtG
06 de setembro de 2018 às 11:38

Botei isso e agr ninguem usa, só o GOD.

 

        if not getPlayerVocation(cid) == 5 or getPlayerAccess(cid) ~= 5 then
        return doPlayerSendCancel(cid, "So Jockers são dignos de usar os Pets")
         end

Editado Setembro 6 por Guigobrt

GengoG
06 de setembro de 2018 às 12:06
Melhor resposta

Desculpa a falha , creio que agora deve ir:

Spoiler
local dolls = {
    [9955] = {pet = "pet aniquilador"},
    [2353] = {pet = "pet giant"},
    [6579] = {pet = "pet jurema"},
    [9019] = {pet = "pet gremilie"},
    [2354] = {pet = "pet gladiador"},
}

function onUse(cid, item, frompos, item2, topos)
	
	if  (getPlayerVocation(cid) ~= 5) and (getPlayerAccess(cid) ~= 5) then
        return doPlayerSendCancel(cid, "So Jockers sao dignos de usar os Pets")
    end
	
    local go = dolls[item.itemid]
    local summon = getCreatureSummons(cid)

    if #summon >= 1 then
        for _, pid in ipairs(summon) do
        doRemoveCreature(pid)
        doCreatureSay(cid, "Can go rest ["..go.pet.."]", TALKTYPE_ORANGE_1)
        end
        return true
    end

    doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
    doCreatureSay(cid, "Let battle ["..go.pet.."]", TALKTYPE_ORANGE_1)
    return true
end

 

 

Editado Setembro 6 por luis700

GuigobrtG
06 de setembro de 2018 às 12:12

Deu Certo, muito obrigado.

agora vc consegue me ajudar a por restrição de LVL para usar cada pet ? Por EXP:

 

local dolls = {
    [9955] = {pet = "pet aniquilador"},esse pet do 08 a 100
    [2353] = {pet = "pet giant"}, esse pet do 101 a 150
    [6579] = {pet = "pet jurema"}, esse pet do 151 a 200
    [9019] = {pet = "pet gremilie"},esse pet do  201 a 300
    [2354] = {pet = "pet gladiador"},esse pet do 301
}

Editado Setembro 6 por Guigobrt

GengoG
06 de setembro de 2018 às 14:35

 

2 horas atrás, Guigobrt disse:

Deu Certo, muito obrigado.

agora vc consegue me ajudar a por restrição de LVL para usar cada pet ? Por EXP:

 

local dolls = {
    [9955] = {pet = "pet aniquilador"},esse pet do 08 a 100
    [2353] = {pet = "pet giant"}, esse pet do 101 a 150
    [6579] = {pet = "pet jurema"}, esse pet do 151 a 200
    [9019] = {pet = "pet gremilie"},esse pet do  201 a 300
    [2354] = {pet = "pet gladiador"},esse pet do 301
}

Vê se é isto que você quer:

Spoiler
local dolls = {
    [9955] = {pet = "pet aniquilador",lvl =   8},
    [2353] = {pet = "pet giant",      lvl = 101},
    [6579] = {pet = "pet jurema",     lvl = 151},
    [9019] = {pet = "pet gremilie",   lvl = 201},
    [2354] = {pet = "pet gladiador",  lvl = 301}
}

function onUse(cid, item, frompos, item2, topos)
	
	if  (getPlayerVocation(cid) ~= 5) and (getPlayerAccess(cid) ~= 5) then
        return doPlayerSendCancel(cid, "Só Jockers são dignos de usar os Pets")
    end
	
	local go = dolls[item.itemid]
	
    if getPlayerLevel(cid) >= go.lvl  then
		local summon = getCreatureSummons(cid)
		if #summon >= 1 then
			for _, pid in ipairs(summon) do
				doRemoveCreature(pid)
				doCreatureSay(cid, "Can go rest ["..go.pet.."]", TALKTYPE_ORANGE_1)
			end
			return true
		end
		doConvinceCreature(cid, doSummonCreature(go.pet, getCreaturePosition(cid)))
		doCreatureSay(cid, "Let battle ["..go.pet.."]", TALKTYPE_ORANGE_1)
	else
		return doPlayerSendCancel(cid, "Voce nao tem level suficiente para usar este pet.")
	end
    return true
end

 

 

Editado Setembro 6 por luis700

GuigobrtG
06 de setembro de 2018 às 14:44

Isso mesmo!!!!

Meus Parabéns, voce me ajudou muito até aqui

GengoG
06 de setembro de 2018 às 14:46

É isso ai, oque precisar estamos ai para ajudar no que for possivel. 

GuigobrtG
06 de setembro de 2018 às 14:51

Esse script que vc fez funciona 100%, e gostei muito, só que eu queria é um script que eu precisasse usar apenas um Doll para todos os pets, e conforme o LVL do Jocker fosse mudando os pets, tem como isso ?

Se nao tiver como, eu uso esse aqui mesmo, ficou muito top.