Postado Maio 11, 2017 8 anos pro primeiro, troca seu script por esse aqui: Spoiler local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TARGETCASTERORTOPMOST, true) setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, 1) setCombatParam(combat, COMBAT_PARAM_BLOCKSHIELD, 1) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_STUN) setCombatFormula(combat, COMBAT_FORMULA_SKILL, 0, 0, 1.0, 0) local exhausted = createConditionObject(CONDITION_EXHAUST) setConditionParam(exhausted, CONDITION_PARAM_TICKS,6000) function onCastSpell(cid, var) local storage = 302020 if getPlayerStorageValue(cid, storage) < 1 then doPlayerSendCancel(cid, "Desculpe, Você tem que Fazer a [The Destyne Quest] para usar está magia.") return false end local target = variantToNumber(var) doTargetCombatCondition(cid, target, exhausted, CONST_ME_MAGIC_RED) doCreatureSetNoMove(target, true) addEvent(doCreatureSetNoMove, 6000, target, false) return doCombat(cid, combat, var) end a condition só pode ser criada fora do function onCastSpell, na hora de aplicar ela dava erro. Também modifiquei a função doTargetCombatCondition pra adicionar o exhausted corretamente no target. No segundo você tá tentando checar o nome de um monstro que morreu, troca onKill pra onPrepareDeath tanto no callback quanto no xml de creaturescripts que deve resolver. Pro terceiro: Spoiler function onUse(cid, item, frompos, item2, topos) -- Item ID and Uniqueid -- switchUniqueID = 1913 switchID = 1945 switch2ID = 1946 axeID = 7434 bowID = 8855 rodID = 8910 wandID = 8922 -- Level to do the quest -- questlevel = 30 piece1pos = {x=33225, y=31681, z=13, stackpos=1} -- Where the first piece will be placed getpiece1 = getThingfromPos(piece1pos) piece2pos = {x=33224, y=31681, z=13, stackpos=1} -- Where the second piece will be placed getpiece2 = getThingfromPos(piece2pos) piece3pos = {x=33223, y=31681, z=13, stackpos=1} -- Where the third piece will be placed getpiece3 = getThingfromPos(piece3pos) piece4pos = {x=33222, y=31681, z=13, stackpos=1} -- Where the fourth piece will be placed getpiece4 = getThingfromPos(piece4pos) player1pos = {x=33225, y=31682, z=13, stackpos=253} -- Where player1 will stand before pressing lever player1 = getThingfromPos(player1pos) player2pos = {x=33224, y=31682, z=13, stackpos=253} -- Where player2 will stand before pressing lever player2 = getThingfromPos(player2pos) player3pos = {x=33223, y=31682, z=13, stackpos=253} -- Where player3 will stand before pressing lever player3 = getThingfromPos(player3pos) player4pos = {x=33222, y=31682, z=13, stackpos=253} -- Where player4 will stand before pressing lever player4 = getThingfromPos(player4pos) if not((player1.uid and player1.uid > 0) and (player2.uid and player2.uid > 0) and (player3.uid and player3.uid > 0) and (player4.uid and player4.uid > 0)) return doPlayerSendCancel(cid,"Desculpe, você precisa de no mínimo 4 pessoas para fazer essa quest.") end knightvoc = getPlayerVocation(player1.uid) -- The vocation of player1 paladinvoc = getPlayerVocation(player2.uid) -- The vocation of player2 druidvoc = getPlayerVocation(player3.uid) -- The vocation of player3 sorcerervoc = getPlayerVocation(player4.uid) -- The vocation of player4 nplayer1pos = {x=33239, y=31682, z=13} -- The new position of player1 nplayer2pos = {x=33238, y=31682, z=13} -- The new position of player2 nplayer3pos = {x=33237, y=31682, z=13} -- The new position of player3 nplayer4pos = {x=33236, y=31682, z=13} -- The new position of player4 player1level = getPlayerLevel(player1.uid) -- Checking the level of player1 player2level = getPlayerLevel(player2.uid) -- Checking the level of player2 player3level = getPlayerLevel(player3.uid) -- Checking the level of player3 player4level = getPlayerLevel(player4.uid) -- Checking the level of player4 -- Check if all players has the correct vocation if knightvoc == 4 or knightvoc == 8 or knightvoc == 12 and paladinvoc == 3 or paladinvoc == 7 or paladinvoc == 11 and druidvoc == 2 or druidvoc == 6 or druidvoc == 10 and sorcerervoc == 1 or sorcerervoc == 5 or sorcerervoc == 9 then -- Check if all players are standing on the correct positions if player1.itemid > 0 and player2.itemid > 0 and player3.itemid > 0 and player4.itemid > 0 then if player1level >= questlevel and player2level >= questlevel and player3level >= questlevel and player4level >= questlevel then if item.uid == switchUniqueID and item.itemid == switchID and getpiece1.itemid == axeID and getpiece2.itemid == bowID and getpiece3.itemid == rodID and getpiece4.itemid == wandID then doSendMagicEffect(player1pos,2) doTeleportThing(player1.uid,nplayer1pos) doSendMagicEffect(nplayer1pos,10) doRemoveItem(getpiece1.uid,1) doSendMagicEffect(player2pos,2) doTeleportThing(player2.uid,nplayer2pos) doSendMagicEffect(nplayer2pos,10) doRemoveItem(getpiece2.uid,1) doSendMagicEffect(player3pos,2) doTeleportThing(player3.uid,nplayer3pos) doSendMagicEffect(nplayer3pos,10) doRemoveItem(getpiece3.uid,1) doSendMagicEffect(player4pos,2) doTeleportThing(player4.uid,nplayer4pos) doSendMagicEffect(nplayer4pos,10) doRemoveItem(getpiece4.uid,1) doTransformItem(item.uid,item.itemid+1) elseif item.uid == switchUniqueID and item.itemid == switch2ID then doTransformItem(item.uid,item.itemid-1) else doPlayerSendCancel(cid,"Desculpe, você precisa colocar os itens corretos nos locais corretos.") end else return 0 end else doPlayerSendCancel(cid,"Desculpe, todos os jogadores na sua equipe devem ser de nível " .. questlevel .. ".") end else doPlayerSendCancel(cid,"Desculpe, todos os 4 jogadores devem estar nas posições de corretas.") end return 1 end adicionei uma checagem: if not((player1.uid and player1.uid > 0) and (player2.uid and player2.uid > 0) and (player3.uid and player3.uid > 0) and (player4.uid and player4.uid > 0)) return doPlayerSendCancel(cid,"Desculpe, você precisa de no mínimo 4 pessoas para fazer essa quest.") end se não tiver os 4 players, retorna que não tem 4 players.. o erro tava sendo causado pq vc tentava pegar informações como vocação e level de players que não existiam. 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 (obg ao @Beeny por fazer essa linda sign <3)
Postado Maio 16, 2017 8 anos Autor xWhiteWolf Obrigado por ajudar. o 1º script exori stun funcionou certinho. já o segundo problema não foi solucionado. você disse troca onKill pra onPrepareDeath tanto no callback quanto no xml de creaturescripts que deve resolver. mais no script que postei ali não encontrei isso de onkill e no creaturescripts .xml jã estava preparedeath, poderia explicar melhor esse. Já no 3º problema aparece esse erro no TFS [19:48:33.154] > Loading actions... [Error - LuaInterface::loadFile] data/action s/scripts/quests/superanih.lua:38: 'then' expected near 'return' [19:48:33.155] [Error - Event::checkScript] Cannot load script (data/actions/scr ipts/quests/superanih.lua) [19:48:33.156] data/actions/scripts/quests/superanih.lua:38: 'then' expected nea r 'return' [19:48:51.214] done.
Postado Maio 17, 2017 8 anos 1 hour ago, brufds said: xWhiteWolf Obrigado por ajudar. o 1º script exori stun funcionou certinho. já o segundo problema não foi solucionado. você disse troca onKill pra onPrepareDeath tanto no callback quanto no xml de creaturescripts que deve resolver. mais no script que postei ali não encontrei isso de onkill e no creaturescripts .xml jã estava preparedeath, poderia explicar melhor esse. Já no 3º problema aparece esse erro no TFS Hide contents [19:48:33.154] > Loading actions... [Error - LuaInterface::loadFile] data/action s/scripts/quests/superanih.lua:38: 'then' expected near 'return' [19:48:33.155] [Error - Event::checkScript] Cannot load script (data/actions/scr ipts/quests/superanih.lua) [19:48:33.156] data/actions/scripts/quests/superanih.lua:38: 'then' expected nea r 'return' [19:48:51.214] done. pro terceiro, faltou um then no final da primeira linha if not((player1.uid and player1.uid > 0) and (player2.uid and player2.uid > 0) and (player3.uid and player3.uid > 0) and (player4.uid and player4.uid > 0)) then pro segundo: se esta preparedeath no xml o callback deveria ser onPrepareDeath e não onKill na função. 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 (obg ao @Beeny por fazer essa linda sign <3)
Postado Maio 17, 2017 8 anos Autor Vc é foda Esse resolveu. if not((player1.uid and player1.uid > 0) and (player2.uid and player2.uid > 0) and (player3.uid and player3.uid > 0) and (player4.uid and player4.uid > 0)) then mais o 2º não pois estou usando apenas o script que postei esse aqui, e não tem onKill nele e nem em nenhum outro que faca parte dele, no Login.lua tem uma tag mais também esta onPrepareDeath. Ja não sei mais o que fazer. kkkkkkkk function onPrepareDeath(cid, lastHitKiller, mostDamageKiller) local area = 18 ------- A area que o efeito vai alcançar---- local effect = 23 --- Id do efeito de área para deixar mais bonito escolha um vibrante e colorido-------- local creature = "werewoolf" -- Monstro que revive --- function doSendDistanceEffectAround(cid, position, AreaNumber, type) local numberInArea = tonumber(AreaNumber) local distance0 = {x=position.x, y=position.y-numberInArea, z=position.z} local distance1 = {x=position.x+numberInArea, y=position.y, z=position.z} local distance2 = {x=position.x, y=position.y+numberInArea, z=position.z} local distance3 = {x=position.x-numberInArea, y=position.y, z=position.z} return doSendDistanceShoot(position, distance0, type) and doSendDistanceShoot(position, distance1, type) and doSendDistanceShoot(position, distance2, type) and doSendDistanceShoot(position, distance3, type) end doSendDistanceEffectAround(cid, getCreaturePosition(cid), area, effect) doConvinceCreature(getCreatureMaster(cid), doCreateMonster(creature, getCreaturePosition(cid))) return doRemoveCreature(cid) end <event type="preparedeath" name= "revive" event="script" value="monsterevive.lua"/> tipo explicando novamente como funciona esse script. a 3ª vocação do meu server Force Archer tem uma spell que se chama. Utevo Rex, que quando usada sumona um monster chamado Teen Wolf, quando alguém matar Teen Wolf uma nova criatura renasce Werewoolf sobre meu comando da mesma forma que a que morreu. o erro que ta dando é quando o teen wolf morre e Werewoolf nasce.
Postado Maio 17, 2017 8 anos 6 hours ago, brufds said: Vc é foda Esse resolveu. if not((player1.uid and player1.uid > 0) and (player2.uid and player2.uid > 0) and (player3.uid and player3.uid > 0) and (player4.uid and player4.uid > 0)) then mais o 2º não pois estou usando apenas o script que postei esse aqui, e não tem onKill nele e nem em nenhum outro que faca parte dele, no Login.lua tem uma tag mais também esta onPrepareDeath. Ja não sei mais o que fazer. kkkkkkkk Hide contents function onPrepareDeath(cid, lastHitKiller, mostDamageKiller) local area = 18 ------- A area que o efeito vai alcançar---- local effect = 23 --- Id do efeito de área para deixar mais bonito escolha um vibrante e colorido-------- local creature = "werewoolf" -- Monstro que revive --- function doSendDistanceEffectAround(cid, position, AreaNumber, type) local numberInArea = tonumber(AreaNumber) local distance0 = {x=position.x, y=position.y-numberInArea, z=position.z} local distance1 = {x=position.x+numberInArea, y=position.y, z=position.z} local distance2 = {x=position.x, y=position.y+numberInArea, z=position.z} local distance3 = {x=position.x-numberInArea, y=position.y, z=position.z} return doSendDistanceShoot(position, distance0, type) and doSendDistanceShoot(position, distance1, type) and doSendDistanceShoot(position, distance2, type) and doSendDistanceShoot(position, distance3, type) end doSendDistanceEffectAround(cid, getCreaturePosition(cid), area, effect) doConvinceCreature(getCreatureMaster(cid), doCreateMonster(creature, getCreaturePosition(cid))) return doRemoveCreature(cid) end <event type="preparedeath" name= "revive" event="script" value="monsterevive.lua"/> tipo explicando novamente como funciona esse script. a 3ª vocação do meu server Force Archer tem uma spell que se chama. Utevo Rex, que quando usada sumona um monster chamado Teen Wolf, quando alguém matar Teen Wolf uma nova criatura renasce Werewoolf sobre meu comando da mesma forma que a que morreu. o erro que ta dando é quando o teen wolf morre e Werewoolf nasce. http://prntscr.com/f8t2xx no erro que você postou o problema é no onKill, não no script do preparedeath. 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 (obg ao @Beeny por fazer essa linda sign <3)
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.