Postado Julho 13, 2016 8 anos Olá pessoal do Tk, implantei um sistema de recarga no item 2352 (Crystal Arrow), e para tanto quando a magia é efetuda, ao invés de remover a o item 2352, a magia vai removendo a as cargas, só que no script, exitem duas condições para que a magia seja realizada, se o player estiver com algumas dessas Arrows abaixo, a magia acontece. Quote local arrows = {7368, 2544, 2544, 2545, 7364, 6529, 2547, 7366, 7363, 2543} -- arrows que podem ser utilizadas Caso contrário, se o player tiver uma C. arrow com cargas, a magia tbm deve acontecer, no entanto vejo que não consegui fazer que funcione com as duas condições, quando executo a magia o script só verifica se o player está com a c. arrow com cargas, caso ele esteje com umas das arrows citadas acima o magia da erro e não faz nada. Segue a função. Ressalto que não sou scripter, só intendo um pouco de lógica. Spoiler function onCastSpell(cid, var) local Crystal = 2352 local arrows = {7368, 2544, 2544, 2545, 7364, 6529, 2547, 7366, 7363, 2543} -- arrows que podem ser utilizadas local ammo = isInArray(arrows, getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid) and getPlayerSlotItem(cid, CONST_SLOT_AMMO) or isInArray(arrows, getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid) and getPlayerSlotItem(cid, CONST_SLOT_LEFT) or isInArray(arrows, getPlayerSlotItem(cid, CONST_SLOT_RIGHT).itemid) and getPlayerSlotItem(cid, CONST_SLOT_RIGHT) or nil if getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid == 2352 and getItemAttribute(getPlayerWeapon(cid).uid, "ChargesCrystal") >= 1 then doItemSetAttribute(getPlayerWeapon(cid).uid, "ChargesCrystal", (getItemAttribute(getPlayerWeapon(cid).uid, "ChargesCrystal") - 1)) doItemSetAttribute(getPlayerWeapon(cid).uid, "name", "" ..getItemNameById(Crystal).." ["..getItemAttribute(getPlayerWeapon(cid).uid, "ChargesCrystal").." Charges]") local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3, combat4 = combat4, combat5 = combat5 } addEvent(onCastSpell1, 100, parameters) addEvent(onCastSpell2, 400, parameters) addEvent(onCastSpell3, 800, parameters) addEvent(onCastSpell4, 1200, parameters) addEvent(onCastSpell5, 1600, parameters) addEvent(onCastSpell5, 2900, parameters) return TRUE elseif ammo and doRemoveItem(ammo.uid, 3) then local parameters2 = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3, combat4 = combat4, combat5 = combat5 } addEvent(onCastSpell1, 100, parameters2) addEvent(onCastSpell2, 400, parameters2) addEvent(onCastSpell3, 800, parameters2) addEvent(onCastSpell4, 1200, parameters2) addEvent(onCastSpell5, 1600, parameters2) addEvent(onCastSpell5, 2900, parameters2) return TRUE else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa no minimo de 3 munições. Ou uma Crystal Arrou com cargas.") return FALSE end end Dê uma ajudinha aew... up Editado Julho 14, 2016 8 anos por Rogerio Js (veja o histórico de edições)
Postado Julho 14, 2016 8 anos 11 horas atrás, Rogerio Js disse: Olá pessoal do Tk, implantei um sistema de recarga no item 2352 (Crystal Arrow), e para tanto quando a magia é efetuda, ao invés de remover a o item 2352, a magia vai removendo a as cargas, só que no script, exitem duas condições para que a magia seja realizada, se o player estiver com algumas dessas Arrows abaixo, a magia acontece. Caso contrário, se o player tiver uma C. arrow com cargas, a magia tbm deve acontecer, no entanto vejo que não consegui fazer que funcione com as duas condições, quando executo a magia o script só verifica se o player está com a c. arrow com cargas, caso ele esteje com umas das arrows citadas acima o magia da erro e não faz nada. Segue a função. Ressalto que não sou scripter, só intendo um pouco de lógica. Ocultar conteúdo function onCastSpell(cid, var) local Crystal = 2352 local arrows = {7368, 2544, 2544, 2545, 7364, 6529, 2547, 7366, 7363, 2543} -- arrows que podem ser utilizadas local ammo = isInArray(arrows, getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid) and getPlayerSlotItem(cid, CONST_SLOT_AMMO) or isInArray(arrows, getPlayerSlotItem(cid, CONST_SLOT_LEFT).itemid) and getPlayerSlotItem(cid, CONST_SLOT_LEFT) or isInArray(arrows, getPlayerSlotItem(cid, CONST_SLOT_RIGHT).itemid) and getPlayerSlotItem(cid, CONST_SLOT_RIGHT) or nil if getPlayerSlotItem(cid, CONST_SLOT_AMMO).itemid == 2352 and getItemAttribute(getPlayerWeapon(cid).uid, "ChargesCrystal") >= 1 then doItemSetAttribute(getPlayerWeapon(cid).uid, "ChargesCrystal", (getItemAttribute(getPlayerWeapon(cid).uid, "ChargesCrystal") - 1)) doItemSetAttribute(getPlayerWeapon(cid).uid, "name", "" ..getItemNameById(Crystal).." ["..getItemAttribute(getPlayerWeapon(cid).uid, "ChargesCrystal").." Charges]") local parameters = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3, combat4 = combat4, combat5 = combat5 } addEvent(onCastSpell1, 100, parameters) addEvent(onCastSpell2, 400, parameters) addEvent(onCastSpell3, 800, parameters) addEvent(onCastSpell4, 1200, parameters) addEvent(onCastSpell5, 1600, parameters) addEvent(onCastSpell5, 2900, parameters) return TRUE elseif ammo and doRemoveItem(ammo.uid, 3) then local parameters2 = { cid = cid, var = var, combat1 = combat1, combat2 = combat2, combat3 = combat3, combat4 = combat4, combat5 = combat5 } addEvent(onCastSpell1, 100, parameters2) addEvent(onCastSpell2, 400, parameters2) addEvent(onCastSpell3, 800, parameters2) addEvent(onCastSpell4, 1200, parameters2) addEvent(onCastSpell5, 1600, parameters2) addEvent(onCastSpell5, 2900, parameters2) return TRUE else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você precisa no minimo de 3 munições. Ou uma Crystal Arrou com cargas.") return FALSE end end Dê uma ajudinha aew... Da algum erro no executável?
Postado Julho 14, 2016 8 anos Autor https://drive.google.com/file/d/0B29CISXg0j5TQ0twWEVqUzV2V0U/view?ts=57877aca&pref=2&pli=1 Editado Julho 14, 2016 8 anos por Rogerio Js (veja o histórico de edições)
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.