Ir para conteúdo

Dokmos

Campones
  • Total de itens

    81
  • Registro em

  • Última visita

Tudo que Dokmos postou

  1. Essa iniciativa que faltava no Xtibia, pois o Xtibia é um portal de conteúdo e de bastante peso, porém não tinha um suporte de incentivo aos seus usuários. Parabéns Equipe Xtibia!
  2. Obrigado, O Snake Game ficou bem legal inGame, jogadores em vez de caçar ficaram apostando um contra o outro
  3. Vídeo do Snake Game que desenvolvi, lembrando que a idéia original foi do Eventide, eu apenas peguei e idéia e montei o script. Como vocês podem ver a snake se movimenta de acordo com a direção que o jogador está olhando, quanto maior o nível maior e mais rápida ela fica. Este é uma snake de uma vocação d'água, por isso o efeito azul e a snake azul, assim pode ser configurável para outros efeitos. Espero que gostem, mais informações... Comunidade www.orkut.com.br/Main#Community.aspx?cmm=63982377 Website Em breve Patrocínio www.excweb.com.br :positive: Atenciosamente, Dokmos
  4. Obrigado Nostradamus Na verdade sempre tive esta dúvida de colocar ou não o local, valeu!
  5. @atencao Vamos lançar o servidor em 2009, mais informações em nossa comunidade. @Zafor Todas magias que levantam pedras ou criam itens, são itens que depois desaparecem. Obrigado pelo apoio e aprovação, em breve atualizo o vídeo com as novas magias!!!
  6. Sim, ele funciona 1 vez, após instalado no solo ele não retorna mais para o jogador.
  7. Parabéns pelo script Shynzo! Estive olhando poderia melhorá-lo assim: ------------Script BY --------------- --------------- Shynzo --------------- ---- favor nao remover os créditos ------- function onStepIn(cid, item, pos) local ID = {4014,4015,4016,4017,4018,4019} local CITY = {1,4,6,3,5,2} if isPlayer(cid) == TRUE then if isInArray(ID,item.actionid) == TRUE then for I = 1, 6 do if ID[I] == item.actionid then break end end doPlayerSendTextMessage(cid,22,"You is the newest resident of City 0"..CITY[I]..".") doPlayerSetTown(cid,CITY[I]) end end end Não testei e talvez tenha algum bug, mas bem legal seu script!
  8. A action é simples, o jogador instala o sensor no solo e este tem um certo tempo de duração, qualquer criatura que passar no local que o sensor está instalado enviará automaticamente uma menssagem de alerta para o jogador que instalou o sensor e se essa criatura for um jogador, após alguns segundos ele recebe um alerta que sua posição foi localizada por um sensor instalado. Tópico do Script - Liberado o//
  9. Obrigado Eventide, Gostaria de ver seu script e sobre o tamanho do meu script, eu o fiz antes de ler aqueles tutoriais de tabelas e vetores, aliás seu tutorial de maths ficou muito bom! :positive:
  10. Obrigado h3online, Espero estar sempre contribuindo com o que tenho aprendido para aqueles que estão inciando nos scripts, pois sei como é difícil no começo e que acima de tudo é preciso ter vontade de crescer e superar-se! :smile_positivo:
  11. Action Sensor System by Dokmos ----------------------------------------------- Aqui está o script que desenvolvi liberado do Dinastias, espero que gostem e divirtam-se! ----------------------------------------------- Características A action é simples, o jogador instala o sensor no solo e este tem um certo tempo de duração, qualquer criatura que passar no local que o sensor está instalado enviará automaticamente uma menssagem de alerta para o jogador que instalou o sensor e se essa criatura for um jogador, após alguns segundos ele recebe um alerta que sua posição foi localizada por um sensor instalado. ----------------------------------------------- Instalação Salve essa função como data\actions\scripts\sensor.lua ------------------ Sensor System by Dokmos ------------------ local ACTIONID_EMPTY = 5000 -- Actionid livre para utilização. local STORAGE_EMPTY = 5000 -- Storage para o jogador livre para utilização. local PLANTING_DELAY = 5 -- Tempo de duração para instalar o sensor no solo em segundos. local SENSOR_DELAY_MINUTES = 5 -- Minutos de duração do sensor. local SENSOR_DELAY_SECONDS = 0 -- Segundos de duração do sensor (Lembre-se Minutos:Segundos). local function doSendAlert(cid,creature) if isCreature(creature) == TRUE then if isPlayer(creature) == TRUE then doPlayerSendTextMessage(creature,20,"You was localized by "..getPlayerName(cid)..".") end doSendMagicEffect(getThingPos(creature),13) if getPlayerStorageValue(cid,STORAGE_EMPTY) == 2 then setPlayerStorageValue(cid,STORAGE_EMPTY,1) end end end local function doVerifySensor(cid,pos) if isPlayer(cid) == TRUE then creature = getThingfromPos(pos) if isPlayer(creature.uid) == TRUE and getPlayerStorageValue(cid,STORAGE_EMPTY) == 1 then setPlayerStorageValue(cid,STORAGE_EMPTY,2) doPlayerSendTextMessage(cid,20,"Sensor has localized "..getPlayerName(creature.uid).." a "..getPlayerVocationName(creature.uid).." Level "..getPlayerLevel(creature.uid)..".") addEvent(doSendAlert,2000,cid,creature.uid) elseif isCreature(creature.uid) == TRUE and getPlayerStorageValue(cid,STORAGE_EMPTY) == 1 then setPlayerStorageValue(cid,STORAGE_EMPTY,2) doPlayerSendTextMessage(cid,20,"Sensor has localized a "..getCreatureName(creature.uid)..".") addEvent(doSendAlert,2000,cid,creature.uid) end if getTileThingByPos({x=pos.x,y=pos.y,z=pos.z,stackpos=0}).actionid == ACTIONID_EMPTY then addEvent(doVerifySensor,100,cid,pos) end end end local function doSendDuration(cid,pos,minutes,seconds) if isPlayer(cid) == TRUE then if seconds > 0 then if minutes < 10 and seconds < 10 then doPlayerSendTextMessage(cid,25,"Duration of Sensor: 0"..minutes..":0"..seconds.." minutes.") elseif minutes < 10 then doPlayerSendTextMessage(cid,25,"Duration of Sensor: 0"..minutes..":"..seconds.." minutes.") else doPlayerSendTextMessage(cid,25,"Duration of Sensor: "..minutes..":"..seconds.." minutes.") end seconds = (seconds-1) addEvent(doSendDuration,1000,cid,pos,minutes,seconds) else if minutes > 0 then doPlayerSendTextMessage(cid,25,"Duration of Sensor: "..minutes..":0"..seconds.." minutes.") minutes = (minutes-1) seconds = 59 addEvent(doSendDuration,1000,cid,pos,minutes,seconds) else doPlayerSendTextMessage(cid,25,"Duration of sensor has finished.") doSendMagicEffect(pos,4) doSetItemActionId(getThingfromPos({x=pos.x,y=pos.y,z=pos.z,stackpos=0}).uid,100) setPlayerStorageValue(cid,STORAGE_EMPTY,0) end end else doSetItemActionId(getThingfromPos({x=pos.x,y=pos.y,z=pos.z,stackpos=0}).uid,100) end end local function doAddSensor(cid,time,tilepos) if time > 0 then doPlayerSendTextMessage(cid,24,"Planting sensor in "..time.." seconds.") time = (time-1) addEvent(doAddSensor,1000,cid,time) else pos = getThingPos(cid) doPlayerSendTextMessage(cid,24,"Sensor was successful planted.") doSendMagicEffect(pos,3) doPlayerSetNoMove(cid,0) doSendDuration(cid,pos,SENSOR_DELAY_MINUTES,SENSOR_DELAY_SECONDS) addEvent(doVerifySensor,3000,cid,pos) end end function onUse(cid, item, fromPosition, itemEx, toPosition) local pos = getThingPos(cid) if getTileThingByPos({x=pos.x,y=pos.y,z=pos.z,stackpos=0}).actionid <= 100 and getPlayerStorageValue(cid,STORAGE_EMPTY) < 1 then doSetItemActionId(getThingfromPos({x=pos.x,y=pos.y,z=pos.z,stackpos=0}).uid,ACTIONID_EMPTY) setPlayerStorageValue(cid,STORAGE_EMPTY,1) addEvent(doAddSensor,0,cid,PLANTING_DELAY,tilepos) doPlayerRemoveItem(cid,5809,1) doPlayerSetNoMove(cid,1) return TRUE else return FALSE end end Agora, adicione este código em data\actions\actions.xml <action itemid="5809" script="other/sensor.lua"/> ----------------------------------------------- Funcionamento Você pode editar o script com as configurações que você desejar, eu coloquei as principais no começo do script, caso você não tenha certeza deixe o padrão como está. Qualquer erro ou bug no script poste aqui para eu dar uma verificada, lembrando que a configuração em seu OT fica nas mãos de vocês. Para utilizar o sensor basta você dar um use no item 5809 (soul orb) e aproveitar!!! :positive: Atenciosamente, Dokmos
  12. Function doPushCreature(uid, direction[, distance[, speed]]) by Dokmos ----------------------------------------------- Características Função atualizada 30/01! A fórmula foi optimizada com um sistema menor, mais simples e avançado! Bom, esse é um script que modifiquei com funções loop e tabelas, além de alguns sistemas adicionais. A função basicamente empurra uma determinada criatura para uma direção, caso essa direção não possa ser ocupada (paredes, criaturas, buracos) ela empurra para a direção mais próxima que está desocupada, ou então não empurra. Por exemplo, vamos empurrar um rato para o norte, se a posição ao norte estiver livre o rato vai para o norte, caso não esteja verifica-se aleatoriamente se a posição nordeste ou noroeste está livre, e se também não estiver verifica-se novamente aleatoriamente se o leste ou oeste do rato está livre, se neste último caso também não for possível ele não empurra o rato. A finalidade disto é deixar a função mais dinâmica e real, além do sistema adicional de empurrar mais de 1 sqm e com o tempo desejado. ----------------------------------------------- Instalação Adicione essa função dentro do data\global.lua, você também pode colocá-la em outros libs, mas o global.lua já servirá para todas funções como spells, talkactions, actions, etc. Obs: Alguas versões de OT o global.lua está no data\lib\constant.lua function doPushCreature(uid, direction, distance, speed) -- Desenvolvido por Dokmos 30/01/2009 -- Apoio Dinastias local pos = getThingPos(uid) local PARAM = {{1}, {500}} local DIRECTION = { {{0,0},{6,7},{1,3}}, {{1,1},{5,7},{0,2}}, {{2,2},{4,5},{1,3}}, {{3,3},{4,6},{0,2}}, {{4,4},{2,3}}, {{5,5}, {1,2}}, {{6,6},{0,1}}, {{7,7},{0,3}} } table.insert(PARAM[1], distance) table.insert(PARAM[2], speed) for dvar = 1, #DIRECTION[direction+1] do rand = math.random(2) d = DIRECTION[direction+1][dvar][rand] dir = {x = (math.fmod(d,2)*(-(d-2))+math.floor(d/4)*math.fmod(d,2)*d-math.floor(d/4)), y = (((d-1)*(d-1-(d-1)*math.abs(d-2))*(1-math.floor(d/4)))-(math.floor(d/4)*(math.floor(d/6)*2-1)))} newtile = {x = (pos.x+dir.x), y = (pos.y+dir.y), z = pos.z} if (getTileThingByPos(newtile).uid ~= 0) and (hasProperty(getTileThingByPos(newtile).uid,3) == FALSE) and (queryTileAddThing(uid,newtile) == 1) then break end rand = (math.fmod(rand,2)+1) d = DIRECTION[direction+1][dvar][rand] dir = {x = (math.fmod(d,2)*(-(d-2))+math.floor(d/4)*math.fmod(d,2)*d-math.floor(d/4)), y = (((d-1)*(d-1-(d-1)*math.abs(d-2))*(1-math.floor(d/4)))-(math.floor(d/4)*(math.floor(d/6)*2-1)))} newtile = {x = (pos.x+dir.x), y = (pos.y+dir.y), z = pos.z} if (getTileThingByPos(newtile).uid ~= 0) and (hasProperty(getTileThingByPos(newtile).uid,3) == FALSE) and (queryTileAddThing(uid,newtile) == 1) then break end if (dvar == #DIRECTION[direction+1]) then newtile = pos end end doTeleportThing(uid, newtile, TRUE) if (PARAM[1][#PARAM[1]] > 1) then addEvent(doPushCreature, PARAM[2][#PARAM[2]], uid, direction, (distance-1), speed) end end ----------------------------------------------- Funcionamento Quando utilizar fica a seu critério, vou mostrar um exemplo básico de empurrar alguma criatura no target. function onSay(cid, words, param) local creature = getCreatureTarget(cid) local pos = getThingPos(cid) if isCreature(creature) == TRUE then doSendDistanceShoot(pos,getThingPos(creature),38) doSendMagicEffect(getThingPos(creature),3) doPushCreature(creature,getPlayerLookDir(cid)) else doPlayerSendCancel(cid,"Você precisa selecionar o alvo.") end return TRUE end Este exemplo acima de uma talkaction verifica se existe alguma criatura no target e caso tenha, empurra a criatura para a direção que o jogador está olhando. Agora, vou mostrar um exemplo de uma spell modificada que utiliza o sistema de getPosfromArea, caso você não o tenha instalado em seu ot, veja neste tópico Function getPosfromArea by Dokmos Após ambos instalados vamos ao script de exemplo: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1.4, 0, -1.9, 0) local arr = { {1, 1, 1}, {1, 1, 1}, {1, 1, 1}, {0, 1, 0}, {0, 3, 0} } local area = createCombatArea(arr) setCombatArea(combat, area) function onCastSpell(cid, var) pos = getPosfromArea(cid,arr) n = 0 while n < #pos do n = n+1 thing = {x=pos[n].x,y=pos[n].y,z=pos[n].z,stackpos=253} if isCreature(getThingfromPos(thing).uid) == TRUE then doPushCreature(getThingfromPos(thing).uid,getPlayerLookDir(cid)) end end return doCombat(cid, combat, var) end A spell acima é o energy wave modificado, agora além de causar danos ela também empurra, fiz ela só para mostrar um exemplo a vocês de como configurar seus scripts de spells que utilizam área, caso seu script já tenha a criatura é só colocá-lo no doPushCreature e divirta-se! Obs: Lembrando que o sistema de empurrar a criatura mais de 1 sqm e com tempo definido é opcional, caso você não coloque a distância nem o tempo, não tem problema, ele será definido como padrão 1 sqm. Espero que consigam aproveitar a função em seus scripts, qualquer bug ou erro postem aqui para eu dar uma verificada, e a configuração em seus scripts fica por conta de vocês. :positive: Atenciosamente, Dokmos
  13. @Tibiaa4e Obrigado pelo apoio. @Noobinhu Sim, ela retorna uma tabela com todas as posição da área e também o sistema de redirecionar a área.
  14. Function getPosfromArea(cid,area) by Dokmos ----------------------------------------------- Bom, não trabalho com scripts há bastante tempo, portanto não venho aqui colocar o melhor script com menos linhas e mais simples, mas estou colocando o script que desenvolvi com experiência e vontade de crescer, portanto peço desculpas se o script poderia ser menor ou melhor, comecei a mexer a trabalhar com tabelas e loops ontem lendo os tutoriais, portanto esse é o meu primeiro script com tabelas e funções loop. ----------------------------------------------- Características Agora vou falar sobre esse script, basicamente a função pega determinada área e retorna com uma tabela das posições, algo bastante útil para muitos scripters principalmente para criação de spells. Além disso coloquei um sistema semelhante a função dos OT's em spells que o jogador coloca a área e se ele ativar a condição needdirection a área muda de acordo com a direção que ele está olhando. ----------------------------------------------- Instalação Adicione essa função dentro do data\global.lua, você também pode colocá-la em outros libs, mas o global.lua já servirá para todas funções como spells, talkactions, actions, etc. Obs: Alguas versões de OT o global.lua está no data\lib\constant.lua ------------------ Function getPosfromArea(cid,area) by Dokmos ------------------function getPosfromArea(cid,area)icenter = math.floor(table.getn(area)/2)+1jcenter = math.floor(table.getn(area[1])/2)+1center = area[icenter]ivar = table.getn(area)jvar = table.getn(area[1])i = table.getn(area)^2j = table.getn(area[1])^2if center[jcenter] == 3 thenif getPlayerLookDir(cid) == 0 thensignal = {-1,1,1,2}elseif getPlayerLookDir(cid) == 1 thensignal = {1,-1,2,1}elseif getPlayerLookDir(cid) == 2 thensignal = {1,-1,1,2}elsesignal = {-1,1,2,1}endelsesignal = {-1,1,1,2}endPOSITIONS = {}P = 0repeatpvar = {0,0}I = area[ivar]J = I[jvar]i = i-1j = j-1if J == 1 thenif jvar < jcenter thenpvar[signal[3]] = signal[1]*math.abs((jcenter-jvar))elseif jvar > jcenter thenpvar[signal[3]] = signal[2]*math.abs((jcenter-jvar))endif ivar < icenter thenpvar[signal[4]] = signal[1]*math.abs((icenter-ivar))elseif ivar > icenter thenpvar[signal[4]] = signal[2]*math.abs((icenter-ivar))endendif jvar > 1 thenjvar = (jvar-1)elseif ivar > 1 thenjvar = table.getn(area[1])ivar = (ivar-1)endlocal pos = getThingPos(cid)local areapos = {x=pos.x+(pvar[1]),y=pos.y+(pvar[2]),z=pos.z}if pos.x ~= areapos.x or pos.y ~= areapos.y thenP = P+1POSITIONS[P] = areaposenduntil i <= 0 and j <= 0return POSITIONSend ----------------------------------------------- Funcionamento Você pode utilizá-la de diversas formas, uma delas é criando um loop para executar uma função em todas posições, ou não caso você não deseje utilizar todas posições da área. Para ativar o sistema de direcionamento de área basta você colocar o número 3 no centro da área, por exemplo: Neste exemplo o 3 é o centro da área, onde fica a posição do jogador e deste modo o sistema de redirecionamento de área está ativado. local area = {{0, 1, 1, 1, 0},{0, 0, 1, 0, 0},{0, 0, 3, 0, 0},{0, 0, 0, 0, 0},{0, 0, 0, 0, 0},} Já agora o sistema de redirecionamente de área está desativado, ou seja, não importa a direção que o jogador estiver olhando a área sempre será a mesma. local area = {{0, 1, 1, 1, 0},{0, 0, 1, 0, 0},{0, 0, 2, 0, 0},{0, 0, 0, 0, 0},{0, 0, 0, 0, 0},} Agora vou mostrar um exemplo para utilizar a função principal. function onSay(cid, words, param)local area = {{0, 1, 1, 1, 0},{0, 0, 1, 0, 0},{0, 0, 3, 0, 0},{0, 0, 0, 0, 0},{0, 0, 0, 0, 0},}pos = getPosfromArea(cid,area)n = 0while n < #pos don = n+1doSendMagicEffect(pos[n],10)endreturn TRUEend Este é exemplo de uma talkaction, o pos é a tabela com as posições da área e este é um loop para enviar o efeito em todas posições, você pode substituir o doSendMagicEffect por outras funções, lembrando sempre dos parametros mostrados como exemplo. Se quiser testar salve este código em data/talkactions/scripts/exemplo.lua, depois coloque este outro código em data/talkactions/talkactions.xml <talkaction words="!exemplo" script="exemplo.lua"/> Agora, vou mostrar um exemplo de uma spell modificada que utiliza o sistema de empurrar criaturas doPushCreature, caso você não o tenha instalado em seu ot, veja neste tópico Function doPushCreature by Dokmos Após ambos instalados vamos ao script de exemplo: local combat = createCombatObject()setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE)setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA)setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY)setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1.4, 0, -1.9, 0)local arr = {{1, 1, 1},{1, 1, 1},{1, 1, 1},{0, 1, 0},{0, 3, 0},{0, 0, 0},{0, 0, 0},{0, 0, 0},{0, 0, 0},}local area = createCombatArea(arr)setCombatArea(combat, area)function onCastSpell(cid, var)pos = getPosfromArea(cid,arr)n = 0while n < #pos don = n+1thing = {x=pos[n].x,y=pos[n].y,z=pos[n].z,stackpos=253}if isCreature(getThingfromPos(thing).uid) == TRUE thendoPushCreature(getThingfromPos(thing).uid,getPlayerLookDir(cid))endendreturn doCombat(cid, combat, var)end A spell acima é o energy wave modificado, agora além de causar danos ela também empurra, fiz ela só para mostrar um exemplo a vocês de como configurar e utilizar de diversas maneiras em seus scripts que utilizam área. Obs: Lembrando que a posição do jogador deve sempre ficar ficar no meio da área, caso não esteja haverá erro em seu script. Por exemplo: Área Errada local arr = { {1, 1, 1}, {1, 1, 1}, {1, 1, 1}, {0, 1, 0}, {0, 3, 0}, } Área Correta local arr = { {1, 1, 1}, {1, 1, 1}, {1, 1, 1}, {0, 1, 0}, {0, 3, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, {0, 0, 0}, } Qualquer erro ou bug no script coloque aqui para eu dar uma verificada, mas a configuração dele no script fica nas mãos de vocês. Atenciosamente, Dokmos
  15. Bom, o sensor é implantado no chão e tem uma certa duração (neste caso 5 minutos) após implantado o jogador recebe a duração do sensor com menssagem, quando alguma criatura passa em cima de onde o sensor foi colocado envia uma mensagem para o jogador que implantou o sensor avisando o nome da criatura que foi localizada naquela posição, caso seja algum jogador que passe em cima de onde o sensor está envia uma menssagem para o jogador que implantou com o nome do jogador e seu level, e após alguns segundos envia uma menssagem para o jogador que passou em cima que a posição dele foi localizada por outro jogador, desse modo ele não sabe onde está o sensor apenas que outro jogador implantou naquele lugar. Por exemplo um jogador level 12 está upando em uma cave e nesta cave tem vários pk's, ele implanta o sensor em um local e vai upar, se algum pk level alto passar por aquele lugar vai enviar a menssagem para o jogador de level 12 e este saberá que este jogador está próximo!
  16. Obrigado, esse sistema é bem útil para jogadores que gostam de upar em caves que tem Pk's level alto. :lol:
  17. Vídeo do Sistema de Sensor do Dinastias! Apoio Excweb Espero que gostem, mais informações... Comunidade www.orkut.com.br/Main#Community.aspx?cmm=63982377 Website Em breve Patrocínio www.excweb.com.br Atenciosamente, Dokmos :smile_positivo:
  18. Dokmos

    Dinastias

    Dinastias A Sagrada Linhagem de Guerreiros Há muitos anos um confronto lendário foi travado durante a era medieval, uma guerra que marcou o fim dos grandes Impérios e o início das grandes Dinastias. As nações de todo o mundo entraram em um grande conflito em busca do poder e ascensão de seus reinos, milhares de guerreiros foram dizimados e tiveram seu sangue perdido em meio a ambição de seus imperadores, mas houveram quatro nobres guerreiros conhecidos como os Cavaleiros Sagrados que lutaram por sua honra e restauração de sua nação. Anos de guerra se passaram, seu fim pareceu estar cada vez mais distante e a esperança de um dia haver paz novamente entre as nações foi se perdendo junto com as vidas de guerreiros que lutaram enquanto ainda podiam desembanhar sua espada e honrar seu nome. Porém o medo da morte e as ameaças constantes não assombraram os Cavaleiros Sagrados que lutaram incansávelmente, muitos acreditavam ser estes lendários cavaleiros que detinham de misteriosas habilidades, por este motivo foram os guerreiros mais destemidos e poderosos da história. Ao fim da guerra o mundo estava totalmente destruído, centenas de famílias reais e descendentes dos grandes imperadores tiveram suas vidas perdidas na guerra, assim os grandes Impérios tiveram seu fim para entrar na história. Esse foi o marco do início da era das Dinastias, os Cavaleiros Sagrados deixaram sua linhagem real e com eles as quatro grandes Dinastias que governaram o mundo durante século: Dinastia Darc - Alexander Darc São guerreiros dispostos a lutar até o último instante por sua honra, unificando seu corpo à sua espada em uma única arma de combate. Sua liderança e determinação são as virtudes de um verdadeiro nobre, a força que corre em seu sangue é vista em seus poderosos e precisos ataques, estando sempre prontos para combates corpo a corpo. Desenvolveram as habilidades de seu grande herói e antepassado Alexander Darc sobre o fogo e sua manifestação. Dinastia LaHire - Ferdinand LaHire São guerreiros extremamente fortes e poderosos, seus ataques são eficazes e diretos, utilizam armas pesadas como clavas, martelos e bastões. Estes incríveis guerreiros apesar de fracos em defesa possuem uma inigualável força e poder destrutivo, causando grandes danos em tudo à sua volta. Desenvolveram as inabaláveis habilidades sobre a terra de seu grande guerreiro e antepassado Ferdinand LaHire. Dinastia Alencon - Arthur de Alencon São guerreiros bastante ágeis e fortes em combates corpo a corpo, atacam com grandes e poderosas lanças, machados e alabardas. Possuem uma defesa impenetrável, causando seus grandes danos em contra-ataques, por esse motivo são guerreiros que utilizam mais a inteligência do que a própria força. Desenvolveram as habilidades sobre a água e seus estados físicos de Arthur de Alencon, seu antepassado e o mais sábio de todos os líderes. Dinastia Metz - Jean de Metz São guerreiros que combatem a longa distância com lanças, flechas e dardos. Estes guerreiros são bastante rápidos e precisos, sua destreza e inteliência são o que define a vitória em combate, apesar de serem fracos em defesa e combate corpo a corpo são capazes de criar estratégias de combate que podem mudar o rumo de uma batalha. Desenvolveram incríveis habilidades de seu antepassado e nobre cavaleiro Jean de Metz sobre o ar e os meios que o envolve. Esta é a história do Dinastias, não é um história grande nem pequena, apenas envolvente para não entediar os jogadores por ter que ler um livro para saber da história do servidor. Espero que gostem, aceito sugestões e críticas construtivas, obrigado! Mais informações Comunidade no Orkut Vídeo Antigo do Sistema de Magias Vídeo Antigo do Sistema de Sons Patrocinador Excweb Atenciosamente, Dokmos
  19. Vídeo do Sistema de Magias Exclusivo do Age of Titans! Apoio Excweb Espero que gostem, mais informações... Comunidade www.orkut.com.br/Main#Community.aspx?cmm=63982377 Website Em breve Patrocínio www.excweb.com.br Obs: Lembrando que nosso projeto foi modificado para Dinastias, aperfeiçoamos nosso sistema de magias e em breve coloco um vídeo atualizado. Atenciosamente, Dokmos :smile_positivo:
  20. Parabéns para Equipe Xtibia, Muito bom o trabalho que o Xtibia tem realizado e que assim que esse portal cresça junto com os grandes servidores que um dia foram apenas um projeto, realmente uma ótima iniciativa. Atenciosamente, Dokmos
  21. Sistema Atualizado com doPushCreatureArea, coloquei uma spell de exemplo, acredito que agora vocês entenderão, aqueles que tem um conhecimento maior com scripts podem usar só a doPushCreature ;D Atenciosamente, Dokmos
  22. Bom, eu atualizei o script e coloquei em uma função mais simples para usar... Agora estou bastante ocupado com o Avatar Project, então em breve postarei o novo sistema e mostrarei como colocar em spells, peço desculpas pela falta de tempo... Atenciosamente, Dokmos
  23. @OneDay Criei uma spell de exemplo para lhe mostrar em áreas... local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_POFF) local function event1(parameters) if isCreature(getThingfromPos(hitpos1).uid) == 1 then doPushCreature(parameters.cid, getThingfromPos(hitpos1).uid, 0, -1, 1, 500) elseif isCreature(getThingfromPos(hitpos2).uid) == 1 then doPushCreature(parameters.cid, getThingfromPos(hitpos2).uid, 0, -1, 1, 500) elseif isCreature(getThingfromPos(hitpos3).uid) == 1 then doPushCreature(parameters.cid, getThingfromPos(hitpos3).uid, 0, -1, 1, 500) end end local arr = { {0, 0, 0, 0, 0, 0, 0, 2, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, {0, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0, 0, 0}, } local area = createCombatArea(arr) setCombatArea(combat, area) function onCastSpell(cid, var) local pos = getPlayerPosition(cid) local parameters = { cid = cid, var = positionToVariant(getPlayerPosition(cid)) } hitpos1 = {x=pos.x, y=(pos.y-1), z=pos.z, stackpos=253} hitpos2 = {x=pos.x, y=(pos.y-2), z=pos.z, stackpos=253} hitpos3 = {x=pos.x, y=(pos.y-3), z=pos.z, stackpos=253} addEvent(event1, 0, parameters) return doCombat(cid, combat, var) end @danilowarlord Obrigado
  24. @OneDay Tem sim, vou dar um exemplo de direção aleatória... function onSay(cid, words, param) local target = getCreatureTarget(cid) local direction = math.random(0,3) if isCreature(target) == TRUE then doPushCreature(cid,target,direction) else doPlayerSendCancel(cid, "You can only use it on creatures.") end end E para utilizar em áreas, é só você pegar a área e localizar o oponente com getThingfromPos e colocar no lugar do target...
  25. @felipe666525 Obrigado Felipe, essa função até parece ser simples, mas é de grande utilidade...
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...