-
Total de itens
81 -
Registro em
-
Última visita
Tudo que Dokmos postou
-
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!
-
Obrigado, O Snake Game ficou bem legal inGame, jogadores em vez de caçar ficaram apostando um contra o outro
-
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
-
Obrigado Nostradamus Na verdade sempre tive esta dúvida de colocar ou não o local, valeu!
-
@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!!!
-
Sim, ele funciona 1 vez, após instalado no solo ele não retorna mais para o jogador.
-
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!
-
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//
-
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:
-
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:
-
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
-
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
-
script Dinastias - Getposfromarea By Dokmos
tópico respondeu ao Dokmos de Dokmos em Mods, funções e outros
@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. -
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
-
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!
-
Obrigado, esse sistema é bem útil para jogadores que gostam de upar em caves que tem Pk's level alto. :lol:
-
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:
-
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
-
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:
-
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
-
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
-
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
-
@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
-
@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...
-
@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.