Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 07/27/17 em todas áreas

  1. Tungs

    SOURCE 2.6 DXP e PDA

    Olá Membros do Xtibia. eu Kevick, estava visualizando alguns conteúdos do fórum e percebi que estava bastante parado. Muito de vocês que são ot-admins usam uma base bem famosa que seria a DarkXPoke (dxp). como todos já sabem nosso querido membro @KyoGron disponibilizou uma source adaptada para essa base mas não continuou resolvendo os problemas que foram encontrados. Resolvi continuar com a ideia dele e resolvi pequenas coisas na source como o StepDuration do creature.cpp que estava bugando o andar do player impossibilitando ter uma jogabilidade fluida mas em fim vamos parar de enrolação e vamos para o download! PS: quais quer "Sistemas" que necessitarem ser colocado na source comente que eu atualizarei. DOWNLOAD V2.5: DOWNLOAD V2.6: LOG DE ATUALIZAÇÃO: UTILITÁRIOS: SCAN: VIRUSTOTAL NÃO SE ESQUEÇA DE DEIXAR UM REP+ NO POST.
    3 pontos
  2. Crypter

    [SPELL] Sistema Jinchuuriki

    Sistema Jinchuuriki De Servidores de Naruto. Selar um dos monstros e ser seu jinchuuriki , usando a magia só quando o Monstro estiver com 20% ou menos de vida. A Magia tem a range de 1 sqm, ou seja, você tem que usar a magia colado no monstro e Apenas um jogador conseguira selar o Monstro e ser seu jinchuuriki. Após selar um dos monstros você será o jinchuuriki dela por 10 dias, caso selar um outro Monstro você perdera a anterior e ficara com a nova e o tempo será renovado! Em data/spells/script crie um arquivo chamado Jinchuuriki.lua local storagecool = 89758local storagemob = 89759local tempo = 10 * 24 * 60 * 60 -- 10 diaslocal mobs = { ["kurama"] = 1, ["hachibi"] = 2, ["demon"] = 3, -- sempre letra minuscula e o numero q ele representa}function onCastSpell(cid, var) local target = variantToNumber(var) if target and isMonster(target) then if getCreatureHealth(target) <= math.floor(0.2 * getCreatureMaxHealth(target)) then if getCreatureName(target) and mobs[getCreatureName(target):lower()] then doPlayerSetStorageValue(cid, storagecool, os.time() + tempo) doPlayerSetStorageValue(cid, storagemob, mobs[getCreatureName(target):lower()]) doSendMagicEffect(getPlayerPosition(cid), 13) -- efeito no player doSendMagicEffect(getPlayerPosition(target), 13) -- efeito no monstro doRemoveCreature(target) doPlayerSendCancel(cid, "Você selou a criatura!") else doPlayerSendCancel(cid, "Essa criatura nao pode ser selada.") end else doPlayerSendCancel(cid, "O monstro precisa ter menos de 20% de vida para ser selado.") end else doPlayerSendCancel(cid, "Spell somente pode ser usada em monstros.") endreturn trueend Em spells.xml <instant name="Selar Bijuu" words="Selar Bijuu" lvl="200" mana="20000" prem="1" range="1" needtarget="1" blockwalls="1" exhaustion="1000" needlearn="0" event="script" value="Jinchuuriki.lua"> <vocation id="1-10"/> </instant> Vantagens de ser um Jinchuuriki: Buff Especial que voce domina ela. data/spells/ Hachibi.lua local tempo = 60 -- tempo em segundoslocal effect = {134} -- effect no playerlocal exausted = 1 -- em minutoslocal points = 60 -- quantos ira aumentar os skillslocal outfit = {lookType = 350}-- outfit que ira darlocal combat = createCombatObject()setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)local condition = createConditionObject(CONDITION_ATTRIBUTES)setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000)setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, points)setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, points)setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, points)setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, points)setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, points)setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, points)setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, points)setCombatCondition(combat, condition)local condition = createConditionObject(CONDITION_OUTFIT)setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000)addOutfitCondition(condition, outfit)setCombatCondition(combat, condition)function Magica(cid) if isCreature(cid) then for i=1, #effect do local position = {x=getCreaturePosition(cid).x, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z} doSendMagicEffect(position, effect) end endendfunction onCastSpell(cid, var) if getPlayerStorageValue(cid, 91546) ~= 2 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Voce nao eh um jinchuriki da Hachibi!") return false elseif getPlayerStorageValue(cid, 17456)-os.time() > 1 then local seetime = getPlayerStorageValue(cid, 17456)-os.time() local minutes, seconds = math.floor(seetime/60), math.floor(seetime%60) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Aguarde "..minutes.." minuto(s) e "..seconds.." segundo(s) para usar novamente!") return false end setPlayerStorageValue(cid, 17456, exausted*60+os.time()) doCombat(cid, combat, var) local tempo2 = 0 while (tempo2 <= (tempo*1000)) do addEvent(Magica, tempo2, cid) tempo2 = tempo2 + 300 end return trueend
    1 ponto
  3. Poccnn

    Nova livraria lua para xml

    Fala XTibianos! Vim disponibilizar e ensinar como usar a livraria xml em lua, desenvolvida por mim. Ela foi desenvolvida para substituir a livraria padrão disponibilizada por lua para trabalhar com dados xml. Essa livraria não requer a dll-xml necessária para a livraria padrão lua. Aqui tem o tutorial criado por mim para demonstrar as funções e suas implementações da livraria luaxml. Tutorial lua lib xml padrão Vamos lá. Primeiro, a livraria: Vou ensinar como usar ela. Vou usar como exemplo uma parte do arquivo vocations.xml: Primeiro, carregar o arquivo. Ele vai retornar um objeto para ser usado pelos metametodos ou uma string para outros fins como "print". Buscar a tag desejada. Ele vai retornar uma tabela contendo todos os parametros que foram lidos no arquivo. O primeiro argumento da função, é o nome da tag requerida. exemplo: <tagNome ....>, tagNome seria o primeiro argumento da função. O segundo elemento é usado para diferenciar um bloco de outro como no caso do arquivo vocations que contem varias vocations, mas apenas uma é a requerida. O terceiro elemento é o que diferencia um bloco de outro similar. seguindo o exemplo do arquivo vocations, existe varias vocações, mas apenas uma delas tem o id de numero 2. Imprime o que foi lido no arquivo. a saida seria essa, nesse caso. Mas, ela tambem é uma tabela, por isso, voce pode pegar os elementos dentro dela dessa forma. As tags existentes dentro do bloco "vocation", tambem é uma tabela com indice numerico; portanto é valido pegar os dados dela dessa forma. Cada tag que exista dentro do bloco, vem como uma tabela com indicie numerico. Criando objetos para xml: O argumento inserido , seria o nome do bloco. Ex -> <novo> </novo> Adiciona tag's dentro do corpo do bloco. Pode ser adicionado quantas tags quiser. Cria uma tagbloco ou bloco dentro do bloco principal. Ex -> <tagBloco inserido="primer" ordem="2" face="not"> </tagBloco> Essa função retorna um objeto para ser usado pelos metametodos ou uma string para outros fins como "print". Dessa forma que foi declarada sem uma tabela contendo os parametros da tag, ela é criada como um bloco. Ex -> <newBloco> </newBloco> Adiciona tag's ao corpo do novo bloco/tagbloco criado pela função append. E por fim, salva os dados em um arquivo. Nessa função, existe o argumento unico que é o destino do arquivo e seu nome, que nesse caso foi ocultado. Esse é os dados dentro do arquivo gerador pelo script. Devido as novas atualizações feitas a lib, agora podeis usar caracteres especial de busca e inserção de maiores informações para busca. Vou usar como exemplo essa parte do arquivo items.xml e movements.xml para explicar essas mudanças. items movements Na versão anterior da lib ela não poderia buscar informações no arquivo items.xml devido a um erro na ora de selecionar o bloco buscado. O problema residia em que: ao encontrar uma tag ela busca o seu fechamento, sendo que, no exemplo da parte do arquivo items que postei acima, ela pegava todo esse bloco, dessa forma anulando o verdadeiro id buscado. Isso foi resolvido. agora ela filtra o bloco encontrado antes de fazer a analise de que seja o dado requisitado. Outro problema era quando se desejava buscar uma informação mais precisa, como no caso do arquivo movements.xml que existe duas tags com os mesmo ids equip e deequip; se eu colocasse o id de qualquer item ele me retornaria a primeira sentença encontrada que na maioria das vezes não era a que eu queria. isso também foi corrigido; agora podeis usar mais informações para melhorar a precisão da busca. Veja esse exemplo: Obs. Os codigos estão codificados em utf8, converta para ansi antes de usa-los. É isso ae pessoal, espero que gostem; qualquer erro ou sugestão serão bem vindas. obrigado.
    1 ponto
  4. Nogard

    PokémonChangeSlots

    Uma forma distinta de troca/Visualização dos status do seu Pokémon. Eu utilizei os próprios slots do Tibia, isso anula 100% da lag que ocorre nas barras de troca de Pokémon existentes em alguns servidores. No painel existem 6 espaços, onde você poderá colocar a Pokéball e usa-la em qualquer um deles, sem a necessidade de arrastar da bolsa. Então, seria útil pra você como jogador? Ou é algo desnecessário e você prefere do modo habitual? Espero opiniões, thanks. v2:
    1 ponto
  5. Eae galera do XT firmeza na pobreza? Hoje vim aqui trazer um TUTO de como liberar as portas do seu modem e por seu servidor online com internet compartilhada. Como sempre aparece um individo querendo saber, e cansei de ficar mandando a mesma resposta decidi ofizializar rsrs 1º Mudando a porta do apache para 8090: 2º Liberando as portas no Modem, e também do Firewall do Windows: 3º Como executar o apache e o mysql com o Skype aberto: Se seu modem tiver suporte para jogos, e você seguiu os passos certinho irá funcionar sem erro. NÃO ESTÁ FUNCIONANDO? ╔═════════════════════════✖●4º Verificando a conexão do apache e do mysql●✖════════════════════════════╗ Bom vá no seu firewall do windows e verifique se a conexão do seu apache e mysql estão permitidas. Se estiver vermelho como a imagem a seguir: Basta clicar duas vez ou clicar com o botão direito e ir em propriedades e mudar a ação para "Permitir a conexão". Se estiver desabilitado, habilite. Deixe todos verdinho. Ou você também pode desativar o firewall do windows (não recomendado). Pronto seu modem,computador estará pronto para ter um servidor de TIBIA online xD É isso ai galera, espero que eu tenha te ajudado xD ╚═════════════════════════ҳ̸Ҳ̸ҳஜ۩۞۩ஜҳ̸Ҳ̸ҳ════════════════════════════╝
    1 ponto
  6. local tempo = 60local effect = {430} local points = 30local combat = createCombatObject()setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, 0)local condition = createConditionObject(CONDITION_ATTRIBUTES)setConditionParam(condition, CONDITION_PARAM_TICKS, tempo*1000)setConditionParam(condition, CONDITION_PARAM_STAT_MAGICLEVEL, points)setConditionParam(condition, CONDITION_PARAM_SKILL_FIST, points)setConditionParam(condition, CONDITION_PARAM_SKILL_SWORD, points)setConditionParam(condition, CONDITION_PARAM_SKILL_AXE, points)setConditionParam(condition, CONDITION_PARAM_SKILL_CLUB, points)setConditionParam(condition, CONDITION_PARAM_SKILL_DISTANCE, points)setConditionParam(condition, CONDITION_PARAM_SKILL_SHIELD, points)setConditionParam(condition, CONDITION_PARAM_BUFF, TRUE)setCombatCondition(combat, condition) local function Magica(tempo2,tempo3,cid)if isCreature(cid) thenfor i=1, #effect dolocal position = {x=getCreaturePosition(cid).x+1, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z}doSendMagicEffect(position, effect)endendend function onCastSpell(cid, var)if exhaustion.check(cid, 102053) == FALSE thendoCombat(cid, combat, var)tempo2 = 0while (tempo2 ~= (tempo*1000)) doaddEvent(Magica, tempo2, tempo2, tempo*1000, cid)tempo2 = tempo2 + 300endlocal position = {x=getCreaturePosition(cid).x, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z}exhaustion.set(cid, 102053, tempo)doCreatureSay(cid, "Susano!", TALKTYPE_MONSTER)doSendMagicEffect(position, 430)elsedoPlayerSendCancel(cid, "Sorry, you are transformed.")endend Linha alterada: local position = {x=getCreaturePosition(cid).x+1, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z} Adicionei X+1 fazendo que o efeito saisse 1 sqm q frente > X = <> Y = /\ \/ Z = Andar
    1 ponto
  7. LekoDS

    SOURCE 2.6 DXP e PDA

    Quando usamos a source do DXP em um projeto no PokemonBR, fizemos algumas correções na mesma tentando deixar jogável. Foi feito varias adaptações para tentar deixar o servidor melhor, porem desistimos por ser muita gambiarra tanto na source como os arquivos do servidor. Vou dar umas dicas do que atualizamos para melhorar a situação da source, porem não corrigimos tudo por completo (desistência de uso do DXP). - Sistema de um Pokémon do NPC atacar o jogador. - Unique item. - Chat bugados para flags (fala de tutor tutor), ao entrar no jogo não abre o Channel (Trade, Help, Game Chat ...). - Silence/muted não funciona. Bem que me lembre estes são os bugs que havia no servidor mesmo ..
    1 ponto
  8. so altera aq: local position = {x=getCreaturePosition(cid).x, y=getCreaturePosition(cid).y, z=getCreaturePosition(cid).z} nos getCreaturePosition.
    1 ponto
  9. tem source sim ! e os bugs estão corrigidos nos comentarios. www.xtibia.com/forum/topic/240645-base-bolz-25-com-source/
    1 ponto
  10. Nogard

    Client Próprio [8.54 - 10.XX]

    Sim, mas a quantia de caracteres deve ser exata. Você pode usar o Insert pra preencher os espaços restantes com valor nulo.
    1 ponto
  11. Nogard

    [AJUDA] Removendo Version Client

    Repare no que você pediu e no bloco que coloquei: g_app.getName(), Rev, Built on. São as mesmas 3 linhas de lá. clientVersionLabel:setText(g_app.getName() .. ' ' .. g_app.getVersion() .. '\n' .. 'Rev ' .. g_app.getBuildRevision() .. ' ('.. g_app.getBuildCommit() .. ')\n' .. 'Built on ' .. g_app.getBuildDate()) Pra retirar bastaria apagar essa linha: addEvent(function() g_effects.fadeIn(clientVersionLabel, 1500) end)
    1 ponto
  12. Poccnn

    Funções úteis

    Hail Xtibianos. Trago a vós uma serie de funções que eu uso no meu servidor e que pode ser úteis ao seu. Lembrando que algumas funções podem fazer uso de uma livraria xml criado por mim e posta nesse tópico. Essa função tem por objetivo criar uma data formatada (00:00:00) de um intervalo de tempo. function intervalClockFormat(ini,fim) --[[( Marcryzius )]]--local ini,fim = tonumber(ini),tonumber(fim)if not(ini or fim)then return "error",print('function intervalClock erro: type de variaveis invalidas') endlocal tienpo = fim-ini-- existe o parametro de dia, mas não está sendo retornado (usado).local day,hour,minu,seco = tienpo/60/60/23%30,math.floor(tienpo/60/60%23), math.floor(tienpo/60%60),math.floor(tienpo%60) return (hour < 10 and "0"..hour or hour)..":"..(minu < 10 and "0"..minu or minu)..":"..(seco < 10 and "0"..seco or seco)endEx: print(intervalClockFormat(os.time(),os.time()+98)) >> 00:01:38print(intervalClockFormat(os.time(),os.time()+6598)) >> 01:49:58 Essas funções tem por objetivo salvar as informações de uma determinada quest e saber se o player tem essa quest salva em seu histórico. function saveQuestsInfor(uid,name,cid,other) --[[( Marcryzius )]]----[[ uid = Item.uid usado no bau(entre outros) para receber o item da Quest name = nome do item dado ao player ou nome da quest cid = identificacao do player other = informacoes adicionais para serem salvas junto a quest]]--if not(db.executeQuery("SELECT * FROM `server_quests`;"))then -- caso a table não exista, será criada db.executeQuery("CREATE TABLE `server_quests` (`uid` INTEGER, `name` VARCHAR(255), `name_player` VARCHAR(255), `pos` VARCHAR(255), `other` TEXT);")end-- caso o parametro uid seja numero, se pega a posição do item ou, caso não, se pega a posição do player.local other,pos2 = other or '',''local pos = type(uid) == 'number' and getThingPos(uid) or getCreaturePosition(cid) pos2 = 'x='..pos.x..', y='..pos.y..', z='..pos.z -- verifica se tudo está correto. if not(type(name) == 'string') or not(tonumber(cid))then return false, print('Funcao requer parametros: name,cid') end -- salva as informações na database. db.executeQuery("INSERT INTO `server_quests` (`uid`, `name`, `name_player`,`pos`,`other`) VALUES ("..(uid or tonumber(pos.x..''..pos.y..''..pos.z))..",'"..name.."', '"..getCreatureName(cid).."','"..pos2.."','"..other.."');") return trueendfunction getSaveQuestsInfor(uid,cid) --[[( Marcryzius )]]--local str = false if(tonumber(uid))then str = db.getResult("SELECT * FROM `server_quests` WHERE `uid` = '"..uid.."' AND `name_player` = ".. db.escapeString(getCreatureName(cid))..";") elseif(type(uid) == 'string')then str = db.getResult("SELECT * FROM `server_quests` WHERE `name_player` = " ..db.escapeString(getCreatureName(cid)).. " AND `name` = '"..uid.."';") else return false,print('getSaveQuestInfor: tipo de uid invalido > '..tostring(type(uid))) end return (str:getID() == -1) and true or false end Essa função serve para por a primeira letra de cada palavra da 'msg' em maiúscula. function upperPrimer(msg) --[[( Marcryzius )]]--local txt = '' for k in string.gmatch(msg,'%a+') do if(#k > 1)then txt = txt..' '..k:gsub("^%a", function(s) return s:upper() end) else txt = txt..' '..k end end return txt:sub(2,-1)endEx:print(upperPrimer("toda primeira letra de cada palavra desse texto foi colocada em maiusculo")) >> Toda Primeira Letra De Cada Palavra Desse Texto Foi Colocada Em Maiusculo Função criada para determinar o valor inteiro mais próximo de uma fração. function math.proxInteger(value) --[[( Marcryzius )]]-- local value = tonumber(value) if not(value)then return 0,print('Function error: math.proxInteger() > valor => '..type(value)) end return value-math.floor(value) < 0.5 and math.floor(value) or math.ceil(value)end Essa função converte a 'string' em números e devolve a soma de todos os números. function getStoreString(str) --[[( Marcryzius )]]--local store = 0 if(type(str) == 'string')then for pos = 1,#str do store = store+str:sub(pos,pos):byte() end elseif(type(str) == 'number')then return str else print('function getStoreString adverte: tipo de parametro invalido. ('..type(str)..')') end return storeendEx:print(getStoreString("lua")) >> 322 Pega o level necessário para usar a arma dentro do arquivo weapons.xml function getLevelNeedToWeaponById(itemid) --[[( Marcryzius )]]--local xfile = xml:load("data/weapons/weapons.xml"):find('%a+','id',itemid) return tonumber(xfile and xfile.level) or 0end Essa função faz uma verificação se há um town em uma determinada área. function getTownInArea(pos, ranger) --[[( Marcryzius )]]--local ranger,townid,bloked = ranger or 200,1,{getTownId('Gods Island'),getTownId('Isle of Destiny')} -- towns suprimidos while getTownName(townid) do local get = getTownTemplePosition(townid) if not(isInArray(bloked,townid)) and ((pos.x >= get.x-ranger and pos.x <= get.x+ranger)and(pos.y >= get.y-ranger and pos.y <= get.y+ranger))then return townid else townid = townid+1 end end return 0 --retorna 0 (zero) para servir como condição.end Pega o nome e o level do top function getTopLevel() --[[( Marcryzius )]]--local target,name,level = db.getResult("SELECT `name`, `level` FROM `players` WHERE `group_id` <= 2 ORDER BY 'level' DESC;"),"",0 if(target:getID() ~= -1) then repeat local glevel = target:getDataInt("level") if(level < glevel)then name,level = target:getDataString("name"), glevel end until not(target:next()) end target:free() return name,levelend Verifica se existe o nome de um player mesmo ele estando offline. function playerExistName(nome) --[[( Marcryzius )]]--local db = db.getResult("SELECT `name` FROM `players` WHERE `id` = " ..getPlayerGUIDByName(nome).. ";") if not(db:getID() == -1) then return db:getDataString("name") end return falseend Retorna o tempo vigente apenas em segundos function HorasParaSegundos() --[[( Marcryzius )]]-- local hour,minu,second = tostring(os.date("%H:%M:%S")):match('(%d+)%d+)%d+)') return ((tonumber(hour) or 0)*3600)+((tonumber(minu) or 0)*60)+secondend
    1 ponto
  13. Boa tarde galera! Eu sou Crist. Martins, programador Delphi! A pouco tempo atrás, criei um tópico informando sobre o projeto YTC (Your Tibia Client). Que tem como objetivo: customizar o jogo Tibia, de um modo simples e prático. Infelizmente, o projeto foi em vão.. Porém, algumas partes foram concluídas, e então.. estou disponibilizando-as nesse exato momento. Abaixo, ensinarei como configurar os arquivos *.xml das 3 features vistas abaixo: Preview: Download: (servidor: 4shared) Tibia842.rar Tibia854.rar Tibia857.rar Tibia860.rar Tibia861.rar Tibia862.rar Tibia870.rar Obs: Após baixar a versão para seu cliente, adicione manualmente seus arquivos .pic, .spr e .dat. Editando: Config <Config> <WindowText>YourTibiaClient Project!</WindowText> <ChangeIP>1</ChangeIP> <IP>MeuOpenTibiaServer.ServerGame.com</IP> <Port>7171</Port> <RsaKey>109120132967399429278860960508995541528237502902798129123468757937266291492576446330739696001110603907230888610072655818825358503429057592827629436413108566029093628212635953836686562675849720620786279431090218017681061521755056710823876476444260558147179707119674283982419152118103759076030616683978566631413</RsaKey> </Config> </Config> WindowText: Nome da janela (default: @tibia "Tibia", @YTC "YourTibiaClient Project!") ChangeIp: Ativar troca de IP no cliente (default: 1 - Falso: 0, Verdadeiro: 1) IP: IP a ser trocado pelo seu servidor (default: MeuOpenTibiaServer.ServerGame.com) Port: Porta de conecção do seu servidor (default: 7171) RsaKey: RsaKey de conexão do seu servidor (default: OpenTibia) Editando: CreaturesText (Creature Description) <CreaturesText> <CreatureText> <Name> <Text>Obi</Text> <Color>1</Color> <Red>200</Red> <Blue>0</Blue> <Green>255</Green> </Name> <Description> <Text>Banker</Text> <Color>1</Color> <Red>0</Red> <Blue>237</Blue> <Green>0</Green> </Description> </CreatureText> </CreaturesText> Obs: Para a descrição de cada criatura, uma nova tag "CreatureText" é necessaria. Name/Description: Tag respectiva ao nome/descrição da criatura. Text: Nome/descrição da criatura. Color: Alterar a cor do texto (default: 1 - Falso: 0, Verdadeiro: 1) Blue, Red, Green: Cores no padrão RGB, os valores vao de 0 à 255. (info: http://pt.wikipedia.org/wiki/RGB) Editando: Labels <Labels> <Label> <X>690</X> <Y>10</Y> <Text>Hell Yeah Lol pqp hehehe</Text> <Font>1</Font> <Alignment>1</Alignment> <Red>0</Red> <Green>255</Green> <Blue>255</Blue> </Label> </Labels> Obs: Para cada Label adicional, uma nova tag "Label" é necessaria. X/Y: Posicionamento X/Y (em pixels) na tela. Text: Texto a ser escrito no label. Font: Fonte do label. (default: 1 - Vão de 1 à 4) Alignment: Alinhamento do label. (default: 1 - Direita: 0, Centro: 1, Esquerda: 2) Blue, Red, Green: Cores no padrão RGB, os valores vao de 0 à 255. (info: http://pt.wikipedia.org/wiki/RGB) Editando: Context Menus <ContextMenus> <ContextMenu> <EventID>30000</EventID> <Text>unjust Kills</Text> <ShortCut>(YTC)</ShortCut> <Separator>1</Separator> <Type>1</Type> <scriptFile>UnjustKillsMenu.lua</ScriptFile> </ContextMenu> </ContextMenus> Obs: Para cada ContextMenu adicional, uma nova tag "ContextMenu" é necessaria. EventID: ID do contextMenu, cada contextmenu deve ter o seu(Deve ser maior que 30000). Text: Texto do contextMenu. ShortCut: Shortcut do contextMenu. Separator: Separator do contextMenu. (default: 1 - Falso: 0, Verdadeiro: 1) Type: Tipo do contextMenu. Vai de 0 a 6 que correspondem a seguinte configuração: 0: AllMenus 1: SetOutfitContextMenu 2: PartyActionContextMenu 3: CopyNameContextMenu 4: TradeWithContextMenu 5: LookContextMenu 6: AttackContextMenu ScriptFile: o arquivo *.lua que vai ser acionado quando o contextmenu for clicado. Editando: ScriptFile Esse arquivo deve ficar adentro da pasta ContextMenus, localizada na pasta principal do Tibia (onde encontra-se o arquivo: "Tibia.exe") DoSay(1, "Unjustkills") Essa é a unica função presente, sua função é fazer com que o personagem fale, um talkaction. o primeiro parametro corresponde ao tipo de fala: 1 (normal), 2 (grito) e 3 (whipers). o segundo parametro corresponde ao texto a ser falado (sempre utilize "aspas"). E então é isso, pessoal. Espero que tenham gostado! Gostaria de agradecer ao meus amigos Kazz (morgado4ever) e ao Bino (LookToVask) que vieram me ajudando conforme o projeto andava, e que inclusive (Kazz), editou esse tópico para melhor entendimento!
    1 ponto
  14. yanloco70

    [AJUDA] Tile com Reset

    Pessoal ??/
    -1 pontos
Líderes está configurado para São Paulo/GMT-03:00
×
×
  • Criar Novo...