Postado Março 23, 2018 7 anos OTX Server 3.10 Gostaria de uma ajuda nesse código, pois quero que o char receba X atributos [%] ao equipar um item qualquer [Não pode ser um item especifico, por exemplo: Equipando qualquer Armor ele ganha X de Shielding.] local condition = createConditionObject(CONDITION_ATTRIBUTES) setConditionParam(condition, CONDITION_PARAM_TICKS, -1) setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, 75) function onEquip(cid, item, slot) if getPlayerSlotItem(cid, CONST_SLOT_ARMOR) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Now that you're using this item you'll receive a special bonus...") doAddCondition(cid, condition) return true end end function onDeEquip(cid, item, slot) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You're no longer receiving the special bonus..") doRemoveCondition(cid, CONDITION_ATTRIBUTES) return true end Coloca a Armor, recebe o bonus. Retira a armor, perde o bonus. <movevent event="Equip" slot="armor" script="armor.lua"/> <movevent event="DeEquip" slot="armor" script="armor.lua"/> Infelizmente não acontece nada, e não apresenta erros no console. Desde já agradecido. Editado Março 23, 2018 7 anos por Tenshimaru (veja o histórico de edições)
Postado Março 23, 2018 7 anos Vai ter que determinar os ids para funcionar. Se eles estiverem em ordem, pode usar:(vai funcionar com itens de id 5400 até 5410) <movevent event="Equip" fromid="5400" toid="5410" slot="armor" script="armor.lua"/> Mas se não estiverem na ordem, pode fazer assim:(vai funcionar com os ids que estiverem ali) <movevent event="Equip" itemid="123;321;456" slot="armor" script="armor.lua"/> Ajudei? De nada \o/ Att Rusherzin
Postado Março 23, 2018 7 anos Autor 3 horas atrás, Rusherzin disse: Vai ter que determinar os ids para funcionar. Se eles estiverem em ordem, pode usar:(vai funcionar com itens de id 5400 até 5410) <movevent event="Equip" fromid="5400" toid="5410" slot="armor" script="armor.lua"/> Mas se não estiverem na ordem, pode fazer assim:(vai funcionar com os ids que estiverem ali) <movevent event="Equip" itemid="123;321;456" slot="armor" script="armor.lua"/> Mas não tem como eu fazer sem ter que declarar o item, porque não precisa ser um item específico. Porque eu realmente preciso que seja qualquer item do tipo "ARMOR" por exemplo. Basta colocar e o bonus é concedido. Não existe uma forma de usar esse código aqui para identificar que existe o item de tipo tal equipado, mas sem deixar obrigatório que seja uma ID especifica. if getPlayerSlotItem(cid, CONST_SLOT_ARMOR).itemid ~= 1234 then ... Ex: if getPlayerSlotItem(cid, CONST_SLOT_ARMOR) AMOR QUALQUER EQUIPADO [TRUE]? - SEGUE SCRIPT Ou algo assim, mas que funcione sem ter que especificar o item. [Não precisa ser em movements] local player = Player(cid) local item = player:getSlotItem(CONST_SLOT_ARMOR) function onEquip(cid, item, slot) if item ~= nil then doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Está usando" .. item:getId() "Bonus 50% de Shielding ") doAddCondition(cid, CONDITION_PARAM_SKILL_SHIELDPERCENT, 50) else doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Sem Armadura") end Editado Março 23, 2018 7 anos por Tenshimaru Esclarecimento. (veja o histórico de edições)
Postado Maio 3, 2018 7 anos pelo que entendo você vai ter teclarar o item. você pode fazer uma tabela igual cara falou de tanto a tanto ou faz 1 para cada armor puxando do mesmo script. vc pode add todos os itens que você quer e dentro do script checkar o atributo dele e assim puxar de 1 tabela o que add no player e o que remover tabela = { atribute shield = addshield+5, -- so exempo. escrito.. atributo axe = addaxe+3 } usaria a tag sem o slot e o slot ficaria dentro do script. <movevent event="Equip" itemid="123;321;456" script="Atributos_itens.lua"/> <movevent event="DeEquip" itemid="123;321;456" script="Atributos_itens.lua"/> Meus topicos.[Gesior]Layout pokemon vrs1.0[854]OtServer Digimon Vrs.1.1 Spoiler http://free.timeanddate.com/countdown/i48ub0vi/n213/cf11/cm0/cu4/ct0/cs0/ca0/cr0/ss0/cac009/cpc000/pcf90/tcfff/fs100/szw448/szh189/tatTempo%20Para%20Resetar/tac000/tptDigimon%20World%20Cerberus%20Online/tpc000/matDigimon%20World%20Cerberus%20Online/mac000/mptEstá%20Online%20à/mpc000/iso2014-07-19T00:01:00/bas3/bat8/bac00f/pa3 Meu Servidor Digimon World Cerberus OnlineDigimon World Cerberus Online Agradecer sempre a todos que ajudaram, o server a ficar pronto deis de Sprites que não conheço,scripts, etc....como o jogo esta na internet e para todos usarem vlw a todos bjus...
Postado Maio 3, 2018 7 anos local condition = Condition(CONDITION_ATTRIBUTES) condition:setParameter(CONDITION_PARAM_TICKS, -1) condition:setParameter(CONDITION_PARAM_SKILL_SHIELD, 75) function onEquip(player, item, slot) local item = player:getSlotItem(CONST_SLOT_ARMOR) if item then player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'Now that you\'re using this item you\'ll receive a special bonus...') player:addCondition(condition) return true end end function onDeEquip(player, item, slot) player:sendTextMessage(MESSAGE_EVENT_ADVANCE, 'You\'re no longer receiving the special bonus..') player:removeCondition(CONDITION_ATTRIBUTES) return true end
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.