Ir para conteúdo
  • Cadastre-se

Bônus nos equipes de acordo com vocação?


Posts Recomendados

Bem, n sei se tem um script assim já feito... se tem, por favor alguém poderia me passar? heheheh

 

No caso é como o titulo ja fala... 

 

Ex:

+5 de MLSE for sorcerer.

+5 de DEFENSESE for knight....

E por ai vai... como seria ao clicar no equipe, o que o player veria? cada coisa, só a q for pra vocação dele? (se aluem conseguir fazer com q ele só veja o bônus pra voc dele, seria ótimo.)

Eu n sei nada sobre script... minha área é map, enfim... Se alguém souber como faz, por favor, me ajudem. biggrin.png

Link para o post
Compartilhar em outros sites

Já tem esta opção nos servidores acima de 8.6 (se não me engano).

 

No próprio items.xml você adiciona estes atributos ao item.

Como por exemplo a Focus Cape, que adiciona ML ao player, vejamos como está declarada.

<item id="8871" article="a" name="focus cape">
        <attribute key="weight" value="2100" />
        <attribute key="armor" value="9" />
        <attribute key="slotType" value="body" />
        <attribute key="magiclevelpoints" value="1" />
    </item>

Ou seja, estará adicionando +1 ponto de Magic Level ao player que a usar.

Abaixo seguem alguns atributos que podem ser utilizados:

<attribute key="absorbPercentPhysical" value="5"/>
<attribute key="absorbPercentEarth" value="5"/>
<attribute key="absorbPercentEnergy" value="5"/>
<attribute key="absorbPercentFire" value="5"/>
<attribute key="absorbPercentPoison" value="5"/>
<attribute key="absorbPercentIce" value="5"/>
<attribute key="magiclevelpoints" value="5"/>
 
<attribute key="skillClub" value="4" />
<attribute key="skillAxe" value="4" />
<attribute key="skillDist" value="3" />
<attribute key="skillShield" value="10" />
<attribute key="skillSword" value="2" />
<attribute key="skillFist" value="5" />

 

Vale lembrar que precisa declarar as ids dos itens em movements.xml com a opção onEquip e DeEquip para que os atributos funcionem perfeitamente.

Como exemplo, usaremos o da Focus Cape mesmo, que é proprietário da ID 8871.

 

<movevent type="Equip" itemid="8871" slot="armor" event="function" value="onEquipItem">
        <vocation id="1"/>
        <vocation id="5" showInDescription="0"/> -- aqui declara quais vocações podem usar o item.
        <vocation id="2"/>
        <vocation id="6" showInDescription="0"/>
    </movevent>
    <movevent type="DeEquip" itemid="8871" slot="armor" event="function" value="onDeEquipItem"/>

 

Espero que tenha entendido, case haja mais dúvidas, não hesite em perguntar.

Boa sorte.

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

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Já tem esta opção nos servidores acima de 8.6 (se não me engano).

 

No próprio items.xml você adiciona estes atributos ao item.

Como por exemplo a Focus Cape, que adiciona ML ao player, vejamos como está declarada.

<item id="8871" article="a" name="focus cape">
        <attribute key="weight" value="2100" />
        <attribute key="armor" value="9" />
        <attribute key="slotType" value="body" />
        <attribute key="magiclevelpoints" value="1" />
    </item>

Ou seja, estará adicionando +1 ponto de Magic Level ao player que a usar.

Abaixo seguem alguns atributos que podem ser utilizados:

<attribute key="absorbPercentPhysical" value="5"/>
<attribute key="absorbPercentEarth" value="5"/>
<attribute key="absorbPercentEnergy" value="5"/>
<attribute key="absorbPercentFire" value="5"/>
<attribute key="absorbPercentPoison" value="5"/>
<attribute key="absorbPercentIce" value="5"/>
<attribute key="magiclevelpoints" value="5"/>
 
<attribute key="skillClub" value="4" />
<attribute key="skillAxe" value="4" />
<attribute key="skillDist" value="3" />
<attribute key="skillShield" value="10" />
<attribute key="skillSword" value="2" />
<attribute key="skillFist" value="5" />

 

Vale lembrar que precisa declarar as ids dos itens em movements.xml com a opção onEquip e DeEquip para que os atributos funcione perfeitamente.

Como exemplo, usaremos o da Focus Cape mesmo, que é proprietário da ID 8871.

<movevent type="Equip" itemid="8871" slot="armor" event="function" value="onEquipItem">
        <vocation id="1"/>
        <vocation id="5" showInDescription="0"/> -- aqui declara quais vocações podem usar o item.
        <vocation id="2"/>
        <vocation id="6" showInDescription="0"/>
    </movevent>
    <movevent type="DeEquip" itemid="8871" slot="armor" event="function" value="onDeEquipItem"/>

Espero que tenha entendido, case haja mais dúvidas, não hesite em perguntar.

Boa sorte.

 

Mas isso não especifica e nem dá atributos de acordo com vocação... né ? 

 

dá pra qualquer um que usar...

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

Link para o post
Compartilhar em outros sites

Sim, pois se configura em movements.xml quais vocações podem utilizar o item (como no exemplo que usei), e automaticamente, o atributo irá para a descrição do item ao dar Look no mesmo.

 

Confirmando: Com esta função você limita os players que quer que use o item e receba os atributos.

 

Abraços.

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

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Sim, pois se configura em movements.xml quais vocações podem utilizar o item (como no exemplo que usei), e automaticamente, o atributo irá para a descrição do item ao dar Look no mesmo.

 

Confirmando: Com esta função você limita os players que quer que use o item e receba os atributos.

 

Abraços.

 

 

Mas ele não quer limitar os players que usam.

 

e sim, dar atributos de acordo com a vocação do usuário.

E por ai vai... como seria ao clicar no equipe, o que o player veria? cada coisa, só a q for pra vocação dele? (se aluem conseguir fazer com q ele só veja o bônus pra voc dele, seria ótimo.)

 

 

Dá pra fazer , mas o do look será complicado.

 

seria ruim se: colocasse na description o que cada vocação ganha  ?

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

Link para o post
Compartilhar em outros sites

Deixe-me ver se entendi.

 

No caso seria um item que todos pudessem usar, só que cada vocação ao usar ganha um atributo diferente.

É isso?

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Deixe-me ver se entendi.

 

No caso seria um item que todos pudessem usar, só que cada vocação ao usar ganha um atributo diferente.

É isso?

Exatamente, 

poderia fazer ? 

estou ocupado...

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

Link para o post
Compartilhar em outros sites

Deixe-me ver se entendi.

 

No caso seria um item que todos pudessem usar, só que cada vocação ao usar ganha um atributo diferente.

É isso?

Sim Adriano...

                              _
                          .-'` `}
                  _./)   /       }
                .'o   \ |       }
                '.___.'`.\    {`
                /`\_/  , `.    }                                      ME DA UMA NOZ!
                \=' .-'   _`\  {
                 `'`;/      `,  }
                    _\   @   ;  }
                   /__`;-...'--'

Cluck!

Link para o post
Compartilhar em outros sites

Sim Adriano...

Lá vem o intrometido, não vê que respondi  ?

 

faz o script aí pro cara, que to ocupado...

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

Link para o post
Compartilhar em outros sites

Lá vem o intrometido, não vê que respondi  ?

 

faz o script aí pro cara, que to ocupado...

Deixa de implicar com os outros, se eu respondi é por que eu não vi ¬¬'

                              _
                          .-'` `}
                  _./)   /       }
                .'o   \ |       }
                '.___.'`.\    {`
                /`\_/  , `.    }                                      ME DA UMA NOZ!
                \=' .-'   _`\  {
                 `'`;/      `,  }
                    _\   @   ;  }
                   /__`;-...'--'

Cluck!

Link para o post
Compartilhar em outros sites

Deixa de implicar com os outros, se eu respondi é por que eu não vi ¬¬'

 

 S2 , 

 

 

mas sério, faz o script aí ...

Se quiser sua dúvida tirada, mande PM com os links, e não com a dúvida (outros podem ter a mesma dúvida, e o fórum serve para ser usado).

 

Tópicos:


 

yNlhRVC.png

 

55px-Judo_yellow_belt.svg.png

Link para o post
Compartilhar em outros sites

Vou tentar fazer de uma forma interessante aqui, breve edito.

 

#EDIT:

Bom, não ficou da forma que esperava e não deu pra testar porque meu pc está um muquifo hoje.

Mas aguardo testar e dizer como foi.

 

Então, registre o item com a função onEquip e DeEquip em movements.xml e o script será o abaixo:

 

local mage = {1, 2, 5, 6}
local paladins = {3, 7}
local knights = {4, 8}
local addml = 2 -- quantidade de ML à adicionar aos mages
local addskill = 2 -- quantidade de skill adicionar aos guerreiros (pally e knights)

function onEquip(cid, item, slot)
    if isInArray(mages, getPlayerVocation(cid)) then
        doPlayerAddMagLevel(cid, addml)
    elseif isInArray(knights, getPlayerVocation(cid)) then
        for b = 1, 4 do
        doPlayerAddSkill(cid, b, addskill)
        end
    elseif isInArray(paladins, getPlayerVocation(cid)) then
        doPlayerAddSkill(cid, 5, addskill)
    end
return true
end

function onDeEquip(cid, item, slot)
    if isInArray(mages, getPlayerVocation(cid)) then
        doPlayerAddMagLevel(cid, - addml)
    elseif isInArray(knights, getPlayerVocation(cid)) then
        for b = 1, 4 do
        doPlayerAddSkill(cid, b, - addskill)
        end
    elseif isInArray(paladins, getPlayerVocation(cid)) then
        doPlayerAddSkill(cid, 5, - addskill)
    end
return true
end

 

#EDIT²:

Cara, agora que realmente consegui entender, mas me diz, os atributos seriam ao usar o item né?

Mas gostaria de adicionar para que se der look no item mostrar quantos de atributos serão adicionados, mas mostrar apenas para a vocação que der o LOOK, seria isso mesmo?

 

Boa sorte.

Poste o resultado.

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

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Sim... poderia, mas se n der, não tem problema... Como eu faço pra colocar?

 

<!-- Golden Helmet -->
<movevent type="OnEquip" itemid="2343" slot="head" event="script" value="golden helmet.lua"/>
<movevent type="DeEquip" itemid="2343" slot="head" event="function" value="onDeEquipItem"/>
 
assim?
Editado por Gibion (veja o histórico de edições)
Link para o post
Compartilhar em outros sites

Assim:

<movevent type="OnEquip" itemid="2343" slot="head" event="script" value="golden_helmet.lua"/>
<movevent type="DeEquip" itemid="2343" slot="head" event="script" value="golden_helmet.lua"/>

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Este é o próprio script que te mandei?

Não alterou nada?

 

#TOPIC

Estou quase terminando o sistema de LOOK.

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Na verdade encontrei o erro, tente usar este:

 

local mages = {1, 2, 5, 6}
local paladins = {3, 7}
local knights = {4, 8}
local addml = 2 -- quantidade de ML à adicionar aos mages
local addskill = 2 -- quantidade de skill adicionar aos guerreiros (pally e knights)

function onEquip(cid, item, slot)
    if isInArray(mages, getPlayerVocation(cid)) then
        doPlayerAddMagLevel(cid, addml)
    elseif isInArray(knights, getPlayerVocation(cid)) then
        for b = 1, 4 do
        doPlayerAddSkill(cid, b, addskill)
        end
    elseif isInArray(paladins, getPlayerVocation(cid)) then
        doPlayerAddSkill(cid, 5, addskill)
    end
return true
end

function onDeEquip(cid, item, slot)
    if isInArray(mages, getPlayerVocation(cid)) then
        doPlayerAddMagLevel(cid, - addml)
    elseif isInArray(knights, getPlayerVocation(cid)) then
        for b = 1, 4 do
        doPlayerAddSkill(cid, b, - addskill)
        end
    elseif isInArray(paladins, getPlayerVocation(cid)) then
        doPlayerAddSkill(cid, 5, - addskill)
    end
return true
end

 

O do look ficou assim:

Registre em CreatureScripts.xml esta tag:

<event type="look" name="ItemsDescription" event="script" value="items_descr.lua"/>

 

Registre também em login.lua a tag abaixo junto com as do gênero:

registerCreatureEvent(cid, "ItemsDescription")

 

Este é o arquivo items_descr.lua na pasta Scripts (Creaturescripts).

local mages = {1, 2, 5, 6}
local paladins = {3, 7}
local knights = {4, 8}
local items = {
[2456] = {2, 5}, -- [ItemID] = {ml, skills}
[2457] = {3, 6} -- ItemID
}

function onLook(cid, thing, pos, dist)
local voc = getPlayerVocation(cid)
local check = items[thing.itemid]

    if isPlayer(thing) then
    return true
    end
    
    if check then
        if isInArray(mages, voc) then
            local string = 'Increase + '..check[1]..' magic level.'
            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string)
        elseif isInArray(knights, voc) then
            local string = 'Increase + '..check[2]..' skills for a knight.'
            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string)
        elseif isInArray(paladins, voc) then
            local string = 'Increase + '..check[2]..' skills for a paladins.'
            doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, string)
        end
    end
return true
end

 

Boa sorte.

Gosta do meu trabalho?

Curta e siga a página do meu projeto de 2016 e 2017 (Lab Z Games) que trará vários servidores OTServs.

 

Atenciosamente,
Adriano Swatt'

 

Para ver meus tutoriais acesse meu perfil.

 

cbCyOSZ.png

Link para o post
Compartilhar em outros sites

Deu mais ou menos, ele add 6 de ml quando coloca o equipe, mas n tira o ml quando retiro o equipe... kkkkkk

E ficou dando erro, dai coloquei:

		<!-- Elfic Helmet -->
		<movevent type="Equip" itemid="2490" slot="head" event="script" value="elfichelmet.lua"/>
		<movevent type="DeEquip" itemid="2490" slot="head" event="script" value="elfichelmet.lua"/>

Tirei o "on" de "equip" ai pegou...

 

Modifiquie o script, dai ele muda 3 de ml (sendo q coloquei para mudar 1) e não sai quando retiro o equipe...

function onEquip(cid, item, slot)
		if getPlayerVocation(cid) == 1 then
			doPlayerAddMagLevel(cid, 1)
		elseif getPlayerVocation(cid) == 2 then
			doPlayerAddMagLevel(cid, 1)
		elseif getPlayerVocation(cid) == 3 then
			doPlayerAddSkill(cid, 5, 1)
		elseif getPlayerVocation(cid) == 4 then
			doPlayerAddSkill(cid, 1, 1)
		elseif getPlayerVocation(cid) == 5 then
			doPlayerAddMagLevel(cid, 1)
		elseif getPlayerVocation(cid) == 6 then
			doPlayerAddMagLevel(cid, 1)
		elseif getPlayerVocation(cid) == 7 then
			doPlayerAddSkill(cid, 5, 1)
		elseif getPlayerVocation(cid) == 8 then
			doPlayerAddSkill(cid, 1, 1)
		end
	return TRUE
end
function onDeEquip(cid, item, slot)
		if getPlayerVocation(cid) == 1 then
			doPlayerAddMagLevel(cid, -1)
		elseif getPlayerVocation(cid) == 2 then
			doPlayerAddMagLevel(cid, -1)
		elseif getPlayerVocation(cid) == 3 then
			doPlayerAddSkill(cid, 5, -1)
		elseif getPlayerVocation(cid) == 4 then
			doPlayerAddSkill(cid, 1, -1)
		elseif getPlayerVocation(cid) == 5 then
			doPlayerAddMagLevel(cid, -1)
		elseif getPlayerVocation(cid) == 6 then
			doPlayerAddMagLevel(cid, -1)
		elseif getPlayerVocation(cid) == 7 then
			doPlayerAddSkill(cid, 5, -1)
		elseif getPlayerVocation(cid) == 8 then
			doPlayerAddSkill(cid, 1, -1)
		end
	return TRUE
end
Editado por Gibion (veja o histórico de edições)
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