

OriGM
Cavaleiro-
Total de itens
199 -
Registro em
-
Última visita
Tudo que OriGM postou
-
E so baixar e extrair na pasta modules do seu otc. http://www.mediafire.com/download/0ohf2ho118wj6cw/game_healthinfo.rar Depois vai ne creaturescripts/login.lua e adicione depois de onLogin coloque o seguinte codigo: doPlayerSendCancel(cid, "SelectVoc/"..getPlayerVocationName(cid)) Você deve adicionar os icones de todas as suas vocações eles devem ser no formato png e devem ter 40x40 de dimensão. Coloque na pasta voc. Não entendi direito, aonde vou bota o número da vocação e a imagem ? tipo cada vocação ia ter uma imagem diferent, como eu poderia fazer isso ? eu tentei com getvocation, só q opcode nao responde de jeito nenhum kkk me ajuda ai ? Simplesmente coloque dentro da pasta voc,a imagem no tamanho que ele disse,com o nome da vocação em minusculo. So isso,o script ja ta pronto pra reconhecer cada vocação e aparecer no cliente,nao precisa mexer em nada...
-
Então ProfissãoPK sobre o efeito,eu sempre usei o efeito 10,e não era de teleport antes Oo E sim uso como false no target,voce mudou algo neste script acima? ---EDIT--- Consegui pra jogar no chão,trocando o getCreaturePosition por getThingPosition,mas mesmo assim,se clico no monstro,ele vai no monstro,se eu jogo no chao vai normalmente no chão mesmo. ---EDIT--- Vo sai com a minha mulher agora,dai pode postar ae quando der,e eu vejo depois se deu certo. xP Abração e valeus!
-
ok Applezin,agradeço de qualquer forma.
- 14 respostas
-
- change corpse vocation
- otserv
- (e 2 mais)
-
Applezin demais! Tem como colocar pelas sources tambem,se por exemplo o player morrer e tiver X storage ,dropa X corpo? Digo dentro de cada vocation ai no script seu. Por exemplo: Sorcerer com storage 10001 cai o corpo x. Sorcerer com storage 10002 cai o corpo y. Sorcerer com storage 10003 cai o corpo z. Tem como? Pois eu queria que dropasse cada corpo quando o player tivesse tal storage.
- 14 respostas
-
- change corpse vocation
- otserv
- (e 2 mais)
-
spell area exhaustion [Encerrado] Ajuda Spell de Area
tópico respondeu ao wesleybeek de OriGM em Tópicos Sem Resposta
Cara até onde sei o exaustion serve para todas as magias. So que o amigo falou ai em cima está errado o exaustion a cada 1000 = 1 segundo. Pra deixar em area sua spell modifique o need target,apague ou coloque =0,e exaustion coloque os 10 segundos no caso 10000. exhaustion="1000" needtarget="1" -
eu axo que ta um pouco errado. pq se voce for no spells.xml vai notar que as runas usam allowfaruse="1" e elas possui uma distancia infinita! des de que o player esteja em sua visao. entao o certo seria tentar <action itemid="xxxx" script="pistol.lua" allowfaruse="1" range="6"/> Mais da mesma forma, ja criamos o script. eu vo pra escola agora, qnd chegar eu coloco pra errar o tiro! e o tp la, e o if not isCreature(cid) pra quem ta confuso e quer ajudar! Exatamente! Markindoot o allowfaruse é só pra dizer se pode usar de longe ou não ou seja 0= nao ,e 1=sim. Não é range,e mesmo fazendo conforme o ProfissaoPk disse,nao funciona colocando o range no actions.xml ,como ja disse o script está funcionando ,só quero que erre o alvo agora. Fico aguardando ProfissaoPk e agradeço novamente.
-
Na verdade acho que o que ele quer,é reduzir o tamanho do script.
-
Exatamente,desculpa nao responder ontem de madrugada,é que começou a chover e cair uns raios cabulosos,ai pra não queimar o PC desliguei correndo rsrs. Mas é isso mesmo,gostaria que nao jogasse o tiro diretamente no alvo pois se nao fica muito facil,gostaria que o tiro fosse no tile onde clicar.
-
Caramba mals o erro,tava falando que nao tinha munição porque nao tinha trocado o ID para minha munição... Porém o script nao ta pegando,ele nao seta a distancia,ou seja ataco no final da tela mesmo estando 3 de distance lá. Vou testar todos os scripts do post de novo,com o ID da munição correta,se funcionar algum ou nao ,edito aqui pra avisar. ---EDIT--- Do Keilost,nao setou a distancia,eu posso atacar em qualquer distance,esse ultimo do ProfissãoPK deu certo,porém está saindo um efeito de bola azul,tipo de teleport no monstro quando morre. E tambem gostaria de saber aonde alterar no script pra eu poder atacar no chão,digo,invez de jogar o tiro no monstro,jogar no chao. Sei que é nesssa partes aqui,mas mudo pra oque?
-
ProfissaoPK ainda dá o mesmo erro:
-
Keilost,nada continua na mesma. =/ Puts que tenso.
-
Keilost: continua dando a mesma coisa,fala que nao te munição ao clicar no monstro. =/
-
Keilost: continua dando a mesma coisa,fala que nao te munição ao clicar no monstro. =/ ProfissãoPK deu erro ao clicar no monstro,lembrando que estou usando script com Use With:
-
Keilost: Não dá erro,mas simplesmente fala que nao tem munição,mesmo tendo.
-
Deu erro Keilost, e do profissãoPK nem deu certo,nem ataca.
-
Olá galera. Peguei este codigo na Fabrica de Scripts que fechou,e gostaria que ao usar a pistola como Use With,tivesse uma range configuravel. Por exemplo: só usar no maximo 3 sqm do player. Abaixo o script: Se alguem puder ajudar,fico agradecido.
-
Valeuuuu VodKart!!!! Te dava REP se soubesse como dá HAUhauHA,SE BEM que voce nem precisa Oo Mas valeu mesmo! Abração.
-
Olá galera. Queria saber se a função isDruid,isSorcerer etc etc são funções na source ou se por exemplo eu excluir estas vocações e criar novas tipo: No lugar de Druid ,criasse o Fulano. No lugar de Sorcerer ,criasse o Sicrano. etc Eu teria que usar a função isDruid ainda pois ele pega pelo ID? ou daria para usar normalmente isFulano? Se for pelas sources,alguém sabe onde posso alterar nas sources para adicionar novas vocações? Fico agradecido! Dou até REP+ se soubesse como faz isso rsrs,se alguem souber esta duvida ae minha,e quiser REP+ só avisa tambem como que dá a REP que eu dou.
-
dúvida [Encerrado] Ajuda é sobre quest ;ss
tópico respondeu ao Claudio14 de OriGM em Tópicos Sem Resposta
Coloque o mesmo valor de uniqueID nos baús,se for por Storage,coloque o mesmo valor de Storage nos báus,simples assim. -
Agradeço,porém já havia visto este topico e só ensina mesmo a instalar o opcodes,já instalei. O que eu estou querendo é que alguem me explique quais são os códigos que preciso fazer para que enviem informação um ao outro. Na verdade é que sou totalmente leigo,e como não quero enxer o saco toda hora que precisar de algum script,estou tentando aprender a mexer,sempre dei um jeito pra tudo,mas sempre também eu tive que ter referencias pra entender como funciona. Simplificando: Se alguem puder colocar um script qualquer do tipo,equipar um item em jogo,e ativar uma função no OTClient,ficaria muito agradecido.
-
Olá galera. Bom gostaria que o pessoal me explicasse como faço para mandar um sinal do Servidor para OTClient e vice versa. Por exemplo: Equipo um item,este item faz eu executar uma função no OTClient,se eu desequipar a função acaba. Quem puder me ajudar,ficaria muito agradecido.
-
creatureevent Anti-Monster Kill Monster
tópico respondeu ao Snowsz de OriGM em Globalevents e Spells
Snowsz beleza? Então cara estava de precisando algo como esse seu sistema,ve se dá pra me entender e ve se voce consegue fazer esse sistema pra mim. É o seguinte considere as vocações 1 ,2 e 3 um grupo(chamarei de grupo 1) e as vocações 4,5 e 6 outro grupo(chamarei de grupo 2). O Sistema basicamente funcionaria da seguinte forma. O grupo 1,pode atacar monstros Hostis,Selvagens e Players em geral,tanto do grupo 1 como grupo 2. O grupo 2,pode atacar apenas os monstros Hostis,e Players do grupo 1,e não pode atacar monstros Selvagens e Players do mesmo grupo. É possivel fazer um sistema dessa maneira? Tem como voce fazer pra mim? -
Alguem pode me ajudar? http://www.xtibia.com/forum/topic/222351-drop-dos-monstros-cair-no-chao/
- 80 respostas
-
- maquina de scripter
- resolvido
- (e 3 mais)
-
Caotic tentei usar a spellbar por voc do pessoal aqui do XTibia,mas nenhuma funcionou corretamente,a spellbar aparece,mas todas as skills,no script usam o getVocation que usam o ID de cada vocação,como meu OT 8.6 nao tem o comando nao funciona,nem com opcodes instalados,vi que no seu script que voce fez pro DarkHeel das imagens das vocaçoes,voce usou o comando getPlayerVocationName e funcionou pra mim,ou seja eu tenho esse codigo nas sources,tem como usar este mesmo comando para identificar cada vocação para que as spells abra referente a cada vocação? Se tiver tem como fazer a spellbar pra mim? Ou modificar só o script que ja tenho para que utilize esse comando? Tentei modificar mas parece que nao adianta substituir só o comando getVocation pelo getPlayerVocationName porque como ja disse,o 1° usa as IDs e o 2° os nomes,então precisa alterar isso no script e nao faço a minima ideia de como fazer. local spelllist = { ['Death Strike'] = {id = 87, words = 'exori mort', exhaustion = 2000, premium = true, type = 'Instant', icon = 'deathstrike', mana = 20, level = 16, soul = 0, group = {[1] = 2000}, vocations = {1, 5}}, ['Flame Strike'] = {id = 89, words = 'exori flam', exhaustion = 2000, premium = true, type = 'Instant', icon = 'flamestrike', mana = 20, level = 14, soul = 0, group = {[1] = 2000}, vocations = {1, 2, 5, 6}}, ['Strong Flame Strike'] = {id = 150, words = 'exori gran flam', exhaustion = 8000, premium = true, type = 'Instant', icon = 'strongflamestrike', mana = 60, level = 70, soul = 0, group = {[1] = 2000, [4] = 8000}, vocations = {1, 5}}, } local VOCID = 1 local spells = {} local lado = 'vertical' local sbw -- window widget local sbb -- button ./\ widget local spellBarWindow -- UIWindow local exhsaustionTotal = 1100 local hideLevel = false -- os que nao tem level, vai mostrar? true = nao, false = sim function init() sbb = modules.client_topmenu.addRightGameToggleButton('sbb', 'Spell Bar' , 'SpellBar.png', toggle) sbb:setWidth(16) sbw = g_ui.displayUI('SpellBar') sbw:move(10,50) g_mouse.bindPress(sbw, function() createMenu() end, MouseRightButton) sbw:hide() connect(g_game, 'onTalk', mensagemEnviada) connect(g_game, { onGameEnd = function() sbw:hide() sbb:setOn(false) end }) connect(LocalPlayer, { onLevelChange = onLevelChange }) connect(g_game, 'onTextMessage', getVocation) for inst,values in pairs(spelllist) do if values.type == 'Instant' then -- depois vou fazer mais tipos.. if g_game.getProtocolVersion() >= 950 then -- Vocation is only send in newer clients if table.find(values.vocations, g_game.getLocalPlayer():getVocation()) then local inside = {instantName = inst, words = values.words, lvl = values.level, mana = values.mana, prem = values.premium, groups = values.group,icon = values.icon, vocations = values.vocations,exhaustion = values.exhaustion} table.insert(spells,inside) end else local inside = {instantName = inst, words = values.words, lvl = values.level, mana = values.mana, prem = values.premium, groups = values.group,icon = values.icon, vocations = values.vocations,exhaustion = values.exhaustion} table.insert(spells,inside) end end end table.sort(spells, function(a, b) return (a.lvl < b.lvl) end) end function onLevelChange(localPlayer, value, percent) getSpells(spells) end function mensagemEnviada(name, level, mode, text, channelId, pos) if not g_game.isOnline() then return end if g_game.getLocalPlayer():getName() ~= name then return end for i = 1,#spells do if spells[i].words:lower() == text:lower() then startDownDelay(i) break end end end function terminate() sbw:destroy() sbb:destroy() disconnect(g_game, { onGameEnd = function() sbw:hide() sbb:setOn(false) end }) disconnect(g_game, 'onTalk', mensagemEnviada) disconnect(LocalPlayer, { onLevelChange = onLevelChange }) disconnect(g_game, 'onTextMessage', getVocation) end function getVocation(mode, text) local t = string.explode(text, " ") if not g_game.isOnline() then return end if mode == MessageModes.Failure then if text:find("#getVoc#") then if tonumber(t[2]) == VOCID then sbb:setOn(true) sbb:show() sbw:show() getSpells(spells) level = g_game.getLocalPlayer():getLevel() else sbb:setOn(false) sbb:hide() sbw:hide() end end end end function toggle() if sbb:isOn() then sbw:hide() sbb:setOn(false) else sbw:show() getSpells(spells) sbb:setOn(true) level = g_game.getLocalPlayer():getLevel() end end function createMenu() local menu = g_ui.createWidget('PopupMenu') if lado == 'horizontal' then menu:addOption('Set Vertical', function() lado = 'vertical' getSpells(spells) end) else menu:addOption('Set Horizontal',function() lado = 'horizontal' getSpells(spells) end) end if hideLevel == false then menu:addOption('No Level Hide',function() hideLevel = true getSpells(spells) end) else menu:addOption('No Level Show',function() hideLevel = false getSpells(spells) end) end menu:display() end function destruirSpells() for i = 1,100 do if sbw:recursiveGetChildById('spell'..i) == nil then break end sbw:recursiveGetChildById('spell'..i):destroy() sbw:recursiveGetChildById('progress'..i):destroy() end end function getSpells(tabela) destruirSpells() spellBarWindow = sbw:recursiveGetChildById('mainWindow') local player = g_game.getLocalPlayer() local valor = #tabela local width = 38 local height = 38 if not player then return end for i = 1,#tabela do if (tabela[i].lvl > player:getLevel()) and hideLevel == true then valor = i - 1 break end if i == #tabela then valor = i end icon = g_ui.createWidget('SpellButton',spellBarWindow) progress = g_ui.createWidget('SpellProgressSpell',spellBarWindow) --icon: icon:setId('spell'..i) local spicon = Spells.getClientId(tabela[i].instantName) icon:setImageSource('/images/game/spells/defaultspells') icon:setImageClip((((spicon -1)%12)*32) .. ' ' .. ((math.ceil(spicon/12)-1)*32) .. ' 32 32') icon:setVisible(true) icon.words = tabela[i].words icon.instantName = tabela[i].instantName icon.lvl = tabela[i].lvl icon.mana = tabela[i].mana icon.exhaustion = tabela[i].exhaustion icon.exhaustionNeeded = 0 icon:setTooltip(tabela[i].words) if lado == 'horizontal' then icon:setMarginTop(3) height = 38 width = (i) * 32 + 2*(i) icon:setMarginLeft((i) * 32 + 2*(i) - 32) else icon:setMarginLeft(3) icon:setMarginTop((i) * 32 + 2*(i) - 32) width = 38 height = (i) * 32 + 2*(i) end --progress: progress:setId('progress'..i) progress:setVisible(true) progress:setPercent(100) progress:setMarginLeft(icon:getMarginLeft()) progress:setMarginTop(icon:getMarginTop()) if player:getLevel() < icon.lvl then progress:setText('L'..icon.lvl) progress:setColor('red') progress:setPercent(0) end if progress:getPercent() == 100 then progress:setText('OK') elseif icon.lvl < player:getLevel() then progress:setText(progress:getPercent()) end progress:setPhantom(true) icon.onClick = function() useSpell(i) end end sbw:setHeight(height) sbw:setWidth(width) spellBarWindow:setSize(sbw:getSize()) end function useSpell(i) local spell = sbw:recursiveGetChildById('spell'..i) if not spell then return end local progress = sbw:recursiveGetChildById('progress'..i) local player = g_game.getLocalPlayer() if not player then return end if progress:getPercent() < 100 then return modules.game_textmessage.displayFailureMessage('Wait your delay!') end g_game.talk(spell.words) end function startDownDelay(i) -- aqui vai ficar on onTalk, pra descer só realmente quando a spell sair local spell = sbw:recursiveGetChildById('spell'..i) if not spell then return end local progress = sbw:recursiveGetChildById('progress'..i) progress:setPercent(0) progress:setText('0%') progress:setColor('red') spell.exhaustionNeeded = 0 scheduleEvent(function() spellTimeleft(i) end,100) end function spellTimeleft(i) local spell = sbw:recursiveGetChildById('spell'..i) if not spell then return end local progress = sbw:recursiveGetChildById('progress'..i) spell.exhaustionNeeded = spell.exhaustionNeeded + 100 if spell.exhaustionNeeded < spell.exhaustion then progress:setPercent(math.ceil(((spell.exhaustionNeeded) * 100)/spell.exhaustion)) progress:setText(progress:getPercent()) progress:setColor('red') else progress:setPercent(100) progress:setText('OK') progress:setColor('green') spell.exhaustionNeeded = 0 return true end scheduleEvent(function() spellTimeleft(i) end,100) end
-
[Show Off] Barra Skill - baseada na pxg
tópico respondeu ao Noninhouh de OriGM em Exposições (Show Off)
Caraca demais Noninho,parabéns mesmo. E eu tentando adicionar uma barra que indica a fome do player no Client,não consigo nem pensar em como fazer isso,tem alguma luz?
-
Quem Está Navegando 0 membros estão online
- Nenhum usuário registrado visualizando esta página.