Ir para conteúdo
  • Cadastre-se

(Resolvido)Não consigo adicionar atributos aos itens


Ir para solução Resolvido por ViitinG,

Posts Recomendados

Fala galera, eu aqui novamente precisando de um help (infelizmente, ou felizmente para os que gostam de ajudar aqui no forum, assim como eu :D)...

O problema de agora é o seguinte...

 

Eu editei alguns itens em meu OT, porém, não consigo fazer eles adicionarem os atributos aos players... Ele aparece na mensagem dizendo que tem o atributo, porém, não adiciona na skill informations dos players.

 

Segue os itens no items.xml do ot:

	<item id="8925" article="a" name="solar axe">
		<attribute key="weight" value="11000" />
		<attribute key="defense" value="30" />
		<attribute key="attack" value="55" />
		<attribute key="SkillAxe" value="3" />
		<attribute key="weaponType" value="axe" />
		<attribute key="extradef" value="3" />
		<attribute key="showattributes" value="1" />
	</item>

	<item id="8927" article="a" name="dark trinity mace">
		<attribute key="weight" value="9900" />
		<attribute key="defense" value="30" />
		<attribute key="attack" value="55" />
		<attribute key="weaponType" value="club" />
		<attribute key="SkillClub" value="3" />
		<attribute key="showattributes" value="1" />
		<attribute key="extradef" value="3" />
	</item>

	<item id="8930" article="an" name="emerald sword">
		<attribute key="weight" value="4100" />
		<attribute key="defense" value="30" />
		<attribute key="attack" value="55" />
		<attribute key="weaponType" value="sword" />
		<attribute key="skillSword" value="3" />
		<attribute key="extradef" value="3" />
		<attribute key="showattributes" value="1" />
	</item>

	<item id="7958" article="a" name="jester staff">
		<attribute key="weight" value="725" />
		<attribute key="weaponType" value="club" />
		<attribute key="magiclevelpoints" value="3" />
		<attribute key="weaponType" value="wand" />
		<attribute key="shootType" value="energy" />
		<attribute key="range" value="5" />
		<attribute key="showattributes" value="1" />
	</item>

Em weapons.xml está assim:

	<melee id="8930" level="80" unproperly="1" event="function" value="default"/>
		<vocation name="knight"/>
		<vocation id="8" showInDescription="0"/>
	</melee>

	<melee id="8925" level="80" unproperly="1" event="function" value="default"/>
		<vocation name="knight"/>
		<vocation id="8" showInDescription="0"/>
	</melee>

	<melee id="8927" level="80" unproperly="1" event="function" value="default"/>
		<vocation name="knight"/>
		<vocation id="8" showInDescription="0"/>
	</melee>

	<wand id="7958" range="10" lvl="80" mana="10" enabled="1" exhaustion="0" script="1.lua">
	<vocation id="1"/>
	<vocation id="5"/>
	</wand> 

Como eu vi na Jester Staff, ele puxa o arquivo 1.lua, então, segue o código do arquivo:

local combat = createCombatObject()
setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_HOLYDAMAGE)
setCombatParam(combat, COMBAT_PARAM_EFFECT, 31)
setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 30)
setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1.0, -90, 1.6, -150)
 
function onUseWeapon(cid, var)
	return doCombat(cid, combat, var)
end

Como dito, quando eu dou look nos itens, eles aparecem que tem o atributo, porém, não adiciona ao player, alguém pode me ajudar? eu dou um rep+ legalzinho a quem conseguir ajudar :3

 

Draferia Online:

http://draferia.com.br

draferia-468x60.jpg

Link para o post
Compartilhar em outros sites

Erros na distro?

Scripter: |||||||||| 10%

 

 

Te ajudei?? REP + e ficamos quites...  ;D

 

Atenciosamente,

                   Lucas.

Abraços!

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

Você tem que adicionar o item no movements.xml amigo.

Exemplo :

<movevent type="DeEquip" itemid="8900" slot="shield" event="function" value="onDeEquipItem"/>
<movevent type="Equip" itemid="8900" slot="shield" level="40" event="function" value="onEquipItem">
</movevent

<movevent type="Equip" itemid="8900" slot="shield" level="40" event="function" value="onEquipItem">

ID do item.

Slot onde o item fica no set do player.

Level que precisa para usar o item.

Link para o post
Compartilhar em outros sites

Esquece kkk(obs vc colocou as armas só para as promotions)..

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

Scripter: |||||||||| 10%

 

 

Te ajudei?? REP + e ficamos quites...  ;D

 

Atenciosamente,

                   Lucas.

Abraços!

Link para o post
Compartilhar em outros sites

seguinte amigo, weapons.xml só serve pra vc editar dano das wands ou fazer scripts pras weapons.. tudo que vc quiser fazer de dar atributo (algo secundário) tem que ser pelo movements.xml pq vai ser ele que vai ativar ou desativar os atributos a mais, tanto ao equipar (Function onEquip) como ao desequipar (Function DeEquip)

Todos os meus trabalhos importantes estão na seção "Sobre mim" no meu perfil; Dá uma passada lá!

"Há três caminhos para o fracasso: não ensinar o que se sabe, não praticar o que se ensina, e não perguntar o que se ignora." - São Beda

I7Pm6ih.png

(obg ao @Beeny por fazer essa linda sign <3)

Link para o post
Compartilhar em outros sites

Galera, consegui aqui, era que faltava o item no movements.xml mesmo...

Já adicionei aqui e está tudo funcional :D

agradeço a todos, dei rep a todos por terem ajudado!

 

Admnistração, se quiserem podem fechar o tópico!

Draferia Online:

http://draferia.com.br

draferia-468x60.jpg

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.

  • Conteúdo Similar

    • Por HSinhori
      Gostaria de pedir uma ajuda pra adicionar um botão no final de cada skill que ao ser clicado chama uma talkaction, um botão tipo esse: 
      Ficaria tipo:
      Magic Level            10  
      Fist Fighting           10  
      e por ai vai....
       
      Alguém saberia me ajudar, esses são os arquivos do otclient
      skills.lua
       
      skill.otui
       
    • Por DdJs
      Quem já me conhece aqui do fórum sabe que minha área não é script ou nada do gênero. Estou fazendo esse post para ajudar um membro, o @KillerWatts, e outros mais, talvez. 
       
      Introdução:
      Wand/rod que dispara vários elementos aleatórios. O uso dos elementos não é configurável como o modal do @tataboy67, lembrando que esse script é velho e foi testado em OTs versões 8.40 até 8.60
       
      Guia: 
      ef - efeito que irá fazer no alvo (além do efeito comum já do elemento).
      sh - shoot type que traçará o "ar" até o alvo.
      dmg - tipo de dano que causará no alvo.
       
      Eu usei a Jester Staff   (ID: 7958). Você pode usar o item que desejar.
       
      Lista de itens para utilizar como rod/wand:
       
       
      Em weapons/scripts crie um arquivo "wandelement.lua":
       
       
      Para TFS 1.x  (créditos e agradecimento ao @FlavioHulk pelo desenvolvimento):
       
      Em weapons.xml adicione a tag:
       
       
      Em items.xml (aqui tanto faz como vai estar, tirando o "range" que é válido, o que vai contar para o resto é o script em weapons):
       
      Funcionamento:

       
    • Por MatteusDeli
      Olá Tibianos do Tibia King. (Vou direto para o script) 
       
      Vamos lá: Vá até a pasta data/npc copie e cole algum arquivo XML renomeie para stoned.xml e substitua por isto: (OBS esse é o NPC 1, vocações Paladin, Druid e Sorcerer)
       
       
      Em Roxo você pode alterar o looktype dele e o nome (Entre aspas). -- Não é obrigatório alterar isso--
       
      Agora volte para a pasta data/npc e copie e cole outro arquivo XML e renomeie para stonedkina.xml e substitua por isto:
       
       
      (--Mesma coisa do anterior --)
      Em Roxo você pode alterar o looktype dele e o nome (Entre aspas). -- Não é obrigatório alterar isso--
       
      ----SCRIPT DO NPC DE PALADIN, SORCERER E DRUID----
       
      Vá na pasta data/npc/scripts copie e cole algum arquivo, renomeie para stoned.lua e cole isso dentro:
       
       
      Em Verde é o ID dos itens que o player vai precisar para ganhar a quantidade de skill.
      Em Azul são os efeitos que vai aparecer embaixo do Player. Se quiser deixe com esses efeitos mesmo :D ---(Os efeitos vão de 1 a 68, caso queira vê-los apenas digite /z 1.. 68 com o GOD)
      Em Laranja é a quantidade de EXP de skill o Player vai ganhar ao entregar o ITEM. (Eu aconselho não colocar numero exorbitante como 9999999, pode acontecer de o script travar pela quantidade de skill adicionada).
      Em Vermelho é a quantidade do ITEM que ele vai precisar ter. (Caso for itens como Armors, Legs, Swords, Axes etc... Deixe 1 se for itens agrupáveis como TALONS, SCARAB COINS etc... Você pode colocar de 1 até 100).
       
      -----SCRIPT DO NPC DE KNIGHT------
       
      Vá na pasta data/npc/scripts copie e cole algum arquivo, renomeie para stonedkina.lua e cole isso dentro:
       
       
      <-> As Configurações são as mesmas <->
       
      Em Verde é o ID dos itens que o player vai precisar para ganhar a quantidade de skill.
      Em Azul é o efeito que vai aparecer embaixo do Player. Se quiser deixe com esses efeitos mesmo :D ---(Os efeitos vão de 1 a 68, caso queira vê-los apenas digite /z 1.. 68 com o GOD)
      Em Laranja é a quantidade de EXP de skill o Player vai ganhar ao entregar o ITEM. (Eu aconselho não colocar numero exorbitante como 9999999, pode acontecer de o script travar pela quantidade de skill adicionada).
      Em Vermelho é a quantidade do ITEM que ele vai precisar ter. (Caso for itens como Armors, Legs, Swords, Axes etc... Deixe 1 se for itens agrupáveis como TALONS, SCARAB COINS etc... Você pode colocar de 1 até 100).
       
      Por fim é só Importar os NPC'S pelo mapa Editor e adicionar! :D
       
      Obrigado e Bom uso do script!!!
       
       
    • Por Original
      Olá,estou precisando urgente de um script de uma wand,
      gostaria de por minha wand pra atacar em music,estilo aqueles sons azuis que saem do piano
      obrigado!
    • Por Kolisium
      Olá pessoal, eu uso o script abaixo do Mock de Upgrade e eu gostaria de saber como faço para que quando eu usasse o item em uma wand ele aumentasse o dano causado pela wand, alguem pode me ajudar?!
      --- Perfect refine system by Mock the bear (MTB). --- Email: [email protected]<script cf-hash='f9e31' type="text/javascript"> /* */</script> -- &a = weapon attack -- &d = weapon defense -- &s = shield defense -- &p = armor defense -- # = nivel do item -- @ = max level local gain = { gainArmor='&p+(1)',loseArmor='&p-(1)', gainShield='&s+#',loseShield='&s-(#+1)', gainAttack='&a+(1*(#))',loseAttack='&a-(1*(#+1))', gainDefense='&d+(1*(#))',loseDefense='&d-(1*(#+1))', chance='(100/math.sqrt((((@/4)+(#*2))/@)*#))', maxlvl = 10, blocked_ids = {8881} } local it = { --[itemid] = [percent] [8306] = 0, -- 0% additional [8305] = 100, -- 50% } if not setItemName then function setItemName(uid,name) return doItemSetAttribute(uid,'name',name) end function setItemArmor(uid,name) return doItemSetAttribute(uid,'armor',name) end function setItemDefense(uid,name) return doItemSetAttribute(uid,'defense',name) end function setItemAttack(uid,name) return doItemSetAttribute(uid,'attack',name) end function getItemAttack(uid) return getItemAttribute(uid,'attack') end function getItemDefense(uid) return getItemAttribute(uid,'defense') end function getItemArmor(uid) if type(uid) == 'number' then return getItemAttribute(uid,'armor') else return getItemInfo(uid.itemid).armor end end end local function isArmor(uid) -- Function by Mock the bear. if (getItemInfo(uid.itemid).armor ~= 0) and (getItemWeaponType(uid.uid) == 0) then return true end return false end local function isWeapon(uid) -- Function by Mock the bear. uid = uid or 0 local f = getItemWeaponType(uid) if f == 1 or f == 2 or f == 3 then return true end return false end local function isShield(uid) -- Function by Mock the bear. uid = uid or 0 if getItemWeaponType(uid) == 4 then return true end return false end local function isBow(uid) -- Function by Mock the bear. uid = uid or 0 if getItemWeaponType(uid) == 5 then return true end return false end local function getWeaponLevel(uid) -- Function by Mock the bear. uid = uid or 0 local name = getItemName(uid.uid) or getItemInfo(uid.itemid).name or '' local lvl = string.match(name,'%s%+(%d+)%s*') return tonumber(lvl) or 0 end local function doTransform(s,i) -- Function by Mock the bear. local c = string.gsub(s,'@',gain.maxlvl) local c = string.gsub(c,'&a',(getItemAttack(i.uid) ~= 0 and getItemAttack(i.uid) or getItemInfo(i.itemid).attack)) local c = string.gsub(c,'&d',(getItemDefense(i.uid) ~= 0 and getItemDefense(i.uid) or getItemInfo(i.itemid).defense)) local c = string.gsub(c,'&s',(getItemDefense(i.uid) ~= 0 and getItemDefense(i.uid) or getItemInfo(i.itemid).defense)) local c = string.gsub(c,'&p',(getItemArmor(i.uid) ~= 0 and getItemArmor(i.uid) or getItemInfo(i.itemid).armor)) local c = string.gsub(c,'#',getWeaponLevel(i)) local q = assert(loadstring('return '..c)) return math.floor(assert(q())) end function onUse(cid, item, fromPosition, itemEx, toPosition) if item.uid == 0 or item.itemid == 0 then return false end toPosition.stackpos = 255 if isInArray(gain.blocked_ids, itemEx.itemid) or (not getItemWeaponType(itemEx.uid) or getItemWeaponType(itemEx.uid) > 5) or (getItemWeaponType(itemEx.uid) == 0 and not isArmor(itemEx)) or itemEx.itemid == 0 or itemEx.type > 1 or isItemStackable(itemEx.uid) then doPlayerSendTextMessage(cid, 24,"You cant refine this item.") return TRUE end if isCreature(itemEx.uid) == TRUE then return FALSE end local level = getWeaponLevel(itemEx) local chance = doTransform(gain.chance,itemEx) if level == gain.maxlvl then doSendMagicEffect(toPosition, 2) return doPlayerSendTextMessage(cid, 24,"Your item is on max level, you can't upgrade it.") end doPlayerSendTextMessage(cid, 24,"Trying refine with "..(chance+it[item.itemid] > 100 and 100 or chance+it[item.itemid]).."% of sucess!") if chance+it[item.itemid] >= math.random(0,100) then local nm = getItemName(itemEx.uid) local slot = nm:match('(%[.+%])') or '' ---If you server use slot system dont change it slot = slot~='' and ' '..slot or slot setItemName(itemEx.uid, getItemNameById(itemEx.itemid)..' +'..(level+1)..slot) addEvent(doPlayerSendTextMessage,500,cid, 24,"Your item has been upgrated to +"..(level+1)..slot..".") doSendMagicEffect(toPosition, 39) if isArmor(itemEx) then local get = doTransform(gain.gainArmor,itemEx) setItemArmor(itemEx.uid,get) elseif isBow(itemEx.uid) then setItemAttack(itemEx.uid, doTransform(gain.gainAttack,itemEx)) elseif isWeapon(itemEx.uid) then setItemAttack(itemEx.uid, doTransform(gain.gainAttack,itemEx)) setItemDefense(itemEx.uid, doTransform(gain.gainDefense,itemEx)) elseif isShield(itemEx.uid) then setItemDefense(itemEx.uid, doTransform(gain.gainShield,itemEx)) end else if level == 0 then addEvent(doPlayerSendTextMessage,500,cid, 24,"No effect.") doSendMagicEffect(toPosition, 2) elseif level > 0 then local nm = getItemName(itemEx.uid) local slot = nm:match('(%[.+%])') or '' ---If you server use slot system dont change it slot = slot~='' and ' '..slot or slot if level == 1 then setItemName(itemEx.uid, getItemNameById(itemEx.itemid)..slot) addEvent(doPlayerSendTextMessage,500,cid, 24,"Your item back to normal.") else setItemName(itemEx.uid, getItemNameById(itemEx.itemid)..' +'..(level-1)..slot) addEvent(doPlayerSendTextMessage,500,cid, 24,"Your item back to +"..(level-1)..slot..".") end if isArmor(itemEx) then setItemArmor(itemEx.uid,doTransform(gain.loseArmor ,itemEx)) elseif isWeapon(itemEx.uid) then setItemAttack(itemEx.uid, doTransform(gain.loseAttack,itemEx)) setItemDefense(itemEx.uid, doTransform(gain.loseDefense,itemEx)) elseif isBow(itemEx.uid) then setItemAttack(itemEx.uid, doTransform(gain.loseAttack,itemEx)) elseif isShield(itemEx.uid) then setItemDefense(itemEx.uid, doTransform(gain.loseShield,itemEx)) end end doSendMagicEffect(toPosition, 3) end doRemoveItem(item.uid,1) return true end
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo