Ir para conteúdo
Banner com Efeitos

Featured Replies

Postado

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

I7Pm6ih.png

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

  • Respostas 17
  • Visualizações 928
  • Created
  • Última resposta

Top Posters In This Topic

Postado
  • 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
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

I7Pm6ih.png

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

Postado
  • 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
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

I7Pm6ih.png

(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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.7k

Informação Importante

Confirmação de Termo