Postado Fevereiro 14, 2015 10 anos Isso seria um problema, pois e se tivesse um objeto block (walls por exemplo) atras ou na frente do target?
Postado Fevereiro 14, 2015 10 anos Autor Se tivesse uma wall, aí não teria como. Se baseia nesse script aqui function onCastSpell(cid, var) local jogadorpos = getCreaturePosition(cid) local target = getCreatureTarget(cid) local monsterpos = {x=getThingPosition(getCreatureTarget(cid)).x-0, y=getThingPosition(getCreatureTarget(cid)).y-1, z=getThingPosition(getCreatureTarget(cid)).z} local position = {x=getThingPosition(getCreatureTarget(cid)).x-0, y=getThingPosition(getCreatureTarget(cid)).y-1, z=getThingPosition(getCreatureTarget(cid)).z} if target == isMonster or isCreature then doTeleportThing(cid,monsterpos) doSendMagicEffect(position, 4) else doPlayerSendTextMessage(cid,20,'Voce Precisa Selecionar um Alvo') end end Ele está teleportando na parte de cima /\ do alvo, mas não está rancando nada (não tem formula de dano) e não está empurrando. Eu queria fazer ele empurrar para o lado contrário à direção que meu target está virado. Exemplo: Se meu target está olhando para lá >>> eu empurraria ele para lá <<< (rancando um dano). Seria possivel fazer com que ao empurra-lo para lá por exemplo >>>> eu também viraria para lá? No final da década de 20, quando Eurico Miranda ainda nem era nascido, fomos proibidos de disputar o Estadual por aceitarmos atletas negros e operários. Depois a desculpa era por não termos estádio. E demos a resposta construindo um. Na década de 40, quando Eurico era apenas uma criança, o jornalista mulambo Ary Barroso (na época, o principal jornalista esportivo do Rio) já era proibido de entrar em São Januário por só falar mal do Vasco. No final desta mesma década, quando São Januário seria reformado com verba pública para receber a Copa do Mundo (nada mais lógico, pois em troca iriamos ceder o nosso estádio), a mídia marrom arrotou sua pseudo-ética pública contra nós. E veio o Maracanã, cuja construção todos já conhecem o resultado, para depois ser dado de bandeja pro urubu e pro clube da série C. Em 1950, após a perda da Copa pro Uruguai, quando Eurico Miranda continuava sendo apenas uma criança, o jornalista Armando Nogueira AFIRMOU que o Brasil só perdeu a Copa pois tinha muitos atletas do Vasco, e que estes eram os grandes culpados pelo "Maracanazzo". Segundo ele, os jogadores vascaínos não eram brasileiros: "As equipes entram em campo.. Reconheço, um a um, os jogadores brasileiros: Barbosa; Augusto e Juvenal; Bauer, Danilo e Bigode; Friaça, Zizinho, Ademir, Jair e Chico. Aflora, outra vez em mim, a mágoa clubística. Lanço sobre a equipe um olhar de botafoguense ressentido. Vejo, em campo, apenas quatro autênticos brasileiros: Bauer, do São Paulo, Juvenal, da Portuguesa, Bigode, do Fluminense, e Zizinho, do Flamengo. Os outros sete são vascaínos. Velhos e mortais inimigos da pequena porém brava nação botafoguense… Quer saber de uma coisa? É melhor mesmo que ganhe o Uruguai. Eles são gringos, vão todos embora daqui amanhã. Ninguém vai encarnar em mim. (…)" O Vasco não criou inimigos através das ações de Eurico Miranda. O Vasco criou inimigos quando afrontou a elite da zona sul e se impôs como clube popular. O ranço contra a instituição de origem lusitana, mas alma brasileira, vem desde 1898. Saudações Vascaínas !
Postado Fevereiro 14, 2015 10 anos Tenta assim: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 20) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -6.3, 0, -7.3, 0) local function isWalkable(pos, creature, pz, proj) if(getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0) then return false end if(getTilePzInfo(pos) and not pz) then return false end local n = not proj and 3 or 2 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if(tile.itemid ~= 0 and not isCreature(tile.uid)) then if(hasProperty(tile.uid, n) or hasProperty(tile.uid, 7)) then return false end end end if(getTopCreature(pos).uid ~= 0 and not creature) then return false end return true end local function doSpell(cid, target, var) local pos = getThingPos(target) local config = { [NORTH] = {SOUTH, {x=pos.x, y=pos.y+1, z=pos.z}}, [EAST] = {WEST, {x=pos.x-1, y=pos.y, z=pos.z}}, [SOUTH] = {NORTH, {x=pos.x, y=pos.y-1, z=pos.z}}, [WEST] = {EAST, {x=pos.x+1, y=pos.y, z=pos.z}} } local a, b = config[getCreatureLookDirection(target)], getCreatureLookPosition(target) if(isWalkable(a[2]) and isWalkable(b)) then doTeleportThing(target, b) doTeleportThing(cid, a[2], false) doCreatureSetLookDirection(cid, getCreatureLookDirection(target)) doCombat(cid, combat, var) else doPlayerSendCancel(cid, "Position blocked.") return false end return true end function onCastSpell(cid, var) return doSpell(cid, getCreatureTarget(cid), var) end
Postado Fevereiro 14, 2015 10 anos Autor Tenta assim: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 20) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -6.3, 0, -7.3, 0) local function isWalkable(pos, creature, pz, proj) if(getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0) then return false end if(getTilePzInfo(pos) and not pz) then return false end local n = not proj and 3 or 2 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if(tile.itemid ~= 0 and not isCreature(tile.uid)) then if(hasProperty(tile.uid, n) or hasProperty(tile.uid, 7)) then return false end end end if(getTopCreature(pos).uid ~= 0 and not creature) then return false end return true end local function doSpell(cid, target, var) local pos = getThingPos(target) local config = { [NORTH] = {SOUTH, {x=pos.x, y=pos.y+1, z=pos.z}}, [EAST] = {WEST, {x=pos.x-1, y=pos.y, z=pos.z}}, [SOUTH] = {NORTH, {x=pos.x, y=pos.y-1, z=pos.z}}, [WEST] = {EAST, {x=pos.x+1, y=pos.y, z=pos.z}} } local a, b = config[getCreatureLookDirection(target)], getCreatureLookPosition(target) if(isWalkable(a[2]) and isWalkable(b)) then doTeleportThing(target, b) doTeleportThing(cid, a[2], false) doCreatureSetLookDirection(cid, getCreatureLookDirection(target)) doCombat(cid, combat, var) else doPlayerSendCancel(cid, "Position blocked.") return false end return true end function onCastSpell(cid, var) return doSpell(cid, getCreatureTarget(cid), var) end Funcionou, só tem uma coisa... Ele só empurra 1 sqm, teria como fazer ele empurrar uns 3 sqm não? Outra coisa, teria como colocar cooldown de uns 5 segundos? E teria como mudar a formula da spell para essa aqui: function onGetFormulaValues(cid, level) min = -((level * 2.9 + getPlayerSkillLevel(cid, 0) * 4.5)) max = -((level * 3.0 + getPlayerSkillLevel(cid, 0) * 4.6)) Editado Fevereiro 14, 2015 10 anos por rizen (veja o histórico de edições) No final da década de 20, quando Eurico Miranda ainda nem era nascido, fomos proibidos de disputar o Estadual por aceitarmos atletas negros e operários. Depois a desculpa era por não termos estádio. E demos a resposta construindo um. Na década de 40, quando Eurico era apenas uma criança, o jornalista mulambo Ary Barroso (na época, o principal jornalista esportivo do Rio) já era proibido de entrar em São Januário por só falar mal do Vasco. No final desta mesma década, quando São Januário seria reformado com verba pública para receber a Copa do Mundo (nada mais lógico, pois em troca iriamos ceder o nosso estádio), a mídia marrom arrotou sua pseudo-ética pública contra nós. E veio o Maracanã, cuja construção todos já conhecem o resultado, para depois ser dado de bandeja pro urubu e pro clube da série C. Em 1950, após a perda da Copa pro Uruguai, quando Eurico Miranda continuava sendo apenas uma criança, o jornalista Armando Nogueira AFIRMOU que o Brasil só perdeu a Copa pois tinha muitos atletas do Vasco, e que estes eram os grandes culpados pelo "Maracanazzo". Segundo ele, os jogadores vascaínos não eram brasileiros: "As equipes entram em campo.. Reconheço, um a um, os jogadores brasileiros: Barbosa; Augusto e Juvenal; Bauer, Danilo e Bigode; Friaça, Zizinho, Ademir, Jair e Chico. Aflora, outra vez em mim, a mágoa clubística. Lanço sobre a equipe um olhar de botafoguense ressentido. Vejo, em campo, apenas quatro autênticos brasileiros: Bauer, do São Paulo, Juvenal, da Portuguesa, Bigode, do Fluminense, e Zizinho, do Flamengo. Os outros sete são vascaínos. Velhos e mortais inimigos da pequena porém brava nação botafoguense… Quer saber de uma coisa? É melhor mesmo que ganhe o Uruguai. Eles são gringos, vão todos embora daqui amanhã. Ninguém vai encarnar em mim. (…)" O Vasco não criou inimigos através das ações de Eurico Miranda. O Vasco criou inimigos quando afrontou a elite da zona sul e se impôs como clube popular. O ranço contra a instituição de origem lusitana, mas alma brasileira, vem desde 1898. Saudações Vascaínas !
Postado Fevereiro 14, 2015 10 anos local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, 20) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -6.3, 0, -7.3, 0) local function isWalkable(pos, creature, pz, proj) if(getTileThingByPos({x = pos.x, y = pos.y, z = pos.z, stackpos = 0}).itemid == 0) then return false end if(getTilePzInfo(pos) and not pz) then return false end local n = not proj and 3 or 2 for i = 0, 255 do pos.stackpos = i local tile = getTileThingByPos(pos) if(tile.itemid ~= 0 and not isCreature(tile.uid)) then if(hasProperty(tile.uid, n) or hasProperty(tile.uid, 7)) then return false end end end if(getTopCreature(pos).uid ~= 0 and not creature) then return false end return true end local function doPushCreature(target, times) if(isCreature(target) and times > 0) then local pos = getCreatureLookPosition(target) if(isWalkable(pos)) then doTeleportThing(target, pos) doSendMagicEffect(getThingPos(target), 2) addEvent(doPushCreature, 1, target, times-1) end end end local function doSpell(cid, target, var) local pos = getThingPos(target) local config = { [NORTH] = {SOUTH, {x=pos.x, y=pos.y+1, z=pos.z}}, [EAST] = {WEST, {x=pos.x-1, y=pos.y, z=pos.z}}, [SOUTH] = {NORTH, {x=pos.x, y=pos.y-1, z=pos.z}}, [WEST] = {EAST, {x=pos.x+1, y=pos.y, z=pos.z}} } local a, b = config[getCreatureLookDirection(target)], getCreatureLookPosition(target) if(isWalkable(a[2]) and isWalkable(b)) then doPushCreature(target, 3) -- aqui você configura quantos SQMs ele empurra doTeleportThing(cid, a[2], false) doCreatureSetLookDirection(cid, getCreatureLookDirection(target)) doCombat(cid, combat, var) else doPlayerSendCancel(cid, "Position blocked.") return false end return true end function onCastSpell(cid, var) return doSpell(cid, getCreatureTarget(cid), var) 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.