Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 04/03/15 em todas áreas

  1. Global 11/12x [v32] - New Falcons - New Asuras - Warzone 4,5,6 - Exercise Training - Raids 100% - Monstros 100% - Trainer Offline 100% - Trainer Online 100% - Taming system funcionando 100%; - Database completa - War System 100% - Global MAP Full - Store 100% - Imbuement - Prey System - Entre outros sistemas. Projeto no: GITHUB Scan Vírus Total IMAGES Créditos:
  2. [Tutorial] Um dos melhores Grandient Map's.

    Danihcv e um outro reagiu a Factur por uma resposta no tópico

    2 pontos
    Olá eu venho trazendo um dos melhores grandient map's, porque na moral, eu realmente uso muito ele e eu gosto bastante dele, veja o efeito que ele da ! • Programa necessário: Adobe Photoshop • Versão: Não conheco muito bem, porém creio que qualquer uma!. • Tutorial: GM R&Y (gradient map red e yellow). Primeiramente vamos selecionar o gradient map e vamos colocar está cor no lado direito •Resultado• Segundamente, agora ao lado esquerdo, vamos colocar está cor •Resultado• Terceiramente, podemos dar um OK e vamos botar o gradient em Sobrepor. Fim do tutorial galera, espero que tenham gostado, foi um tutorial bem simples apenas mostrando que um gradient'map fez uma grande diferença '-' --Namoral este gradient'map por mim combina com quase todas imagens até!
  3. [Showoff] Castelo de Pedra

    arthur122222 e um outro reagiu a runeraserver por uma resposta no tópico

    2 pontos
    Fala galera, uma palinha do meu castelo baseado na idéia do n1. créditos: n1, me.
  4. Heal aura system

    Salazar Slytherin reagiu a bielzinhocrazy por uma resposta no tópico

    1 ponto
    Olá pessoal do TibiaKing, Hoje venho trazer um script sistema de auras, que explicado superficialmente, é uma bolha de luz que te rodeia constantemente (é possível mudar o efeito visual da aura, como você poderá conferir no script), e possui uma chance pré-determinada pela pessoa, em porcentagem, de curar a cada volta que dá no player. Para ligar a aura digite !aura on, e para desligar !aura off. Vocês podem conferir como funciona assistindo o vídeo a seguir : Bom, vamos aos códigos. Primeiro, na pasta de seu OT, vá em data\talkactions\scripts, e crie um novo arquivo chamado aura.lua, e coloque isto nele (serão necessários dois storages) : -- CONFIGURAÇÕES aurastr = 25950 -- storage da aura estr = 25951 -- storage para o exhaust porcentagem = 40 -- chance de curar em cada volta da aura, em porcentagem quantheal = 10 -- porcentagem do hp máximo que cada cura irá curar. (No caso, irá curar 10% do hp máximo cada cura) tempo = 1180 -- tempo para dar uma volta no player (este tempo foi o que achei mais agradável visualmente, é recomendável não mudar) tipoaura = 30 -- número do efeito da aura (efeito de distância, pode ser identificado com /x no jogo) efeitocura = 49 -- número do efeito quando a cura chega ao player (efeito de posição fixa, pode ser identificado com /z no jogo) -- Função que chama a aura function efeitosAura(i,tm,cid) if(isCreature(cid)) then local atual = getCreaturePosition(cid) local posaura = { {x=(atual.x)-1, y=(atual.y)-1, z=atual.z}, {x=atual.x, y=(atual.y)-1, z=atual.z}, {x=(atual.x)+1, y=(atual.y)-1, z=atual.z}, {x=(atual.x)+1, y=atual.y, z=atual.z}, {x=(atual.x)+1, y=(atual.y)+1, z=atual.z}, {x=atual.x, y=(atual.y)+1, z=atual.z}, {x=(atual.x)-1, y=(atual.y)+1, z=atual.z}, {x=(atual.x)-1, y=atual.y, z=atual.z}, } local chances = math.random(100) if(chances<=porcentagem/8 and getCreatureHealth(cid)<getCreatureMaxHealth(cid)) then doCreatureAddHealth(cid, getCreatureMaxHealth(cid)/quantheal) if(i<=8 and i>1) then doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].z}, atual, tipoaura) else doSendDistanceShoot({x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, atual, tipoaura) end doSendMagicEffect(atual, efeitocura) end if(i==8) then doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].z}, {x=posaura[1].x, y=posaura[1].y, z=posaura[1].z}, tipoaura) elseif(i<8) then doSendDistanceShoot({x=posaura[i].x, y=posaura[i].y, z=posaura[i].z}, {x=posaura[i+1].x, y=posaura[i+1].y, z=posaura[i+1].z}, tipoaura) end if(i<=8 and getPlayerStorageValue(cid, aurastr)==2) then i = i+1 tm = tempo/8 return addEvent(efeitosAura,tm,i,tm,cid) elseif(i>8 and getPlayerStorageValue(cid, aurastr)==2) then return efeitosAura(1,0,cid) else return TRUE end else return TRUE end end -- Função principal function onSay(cid, words, param, channel) if(param=="on") then if getPlayerStorageValue(cid, estr) > os.time() then doPlayerSendCancel(cid, "Espere "..(getPlayerStorageValue(cid, estr) - os.time()).." segundos para poder habilitar aura novamente.") else if(getPlayerStorageValue(cid, aurastr)==2) then doPlayerSendCancel(cid,"Sua aura já está habilitada.") elseif(getPlayerStorageValue(cid, aurastr)==-1) then doPlayerSendCancel(cid,"Aura ligada!") setPlayerStorageValue(cid, aurastr, 2) efeitosAura(1,tempo/8,cid) end end elseif(param=="off") then if(getPlayerStorageValue(cid, aurastr)==2) then setPlayerStorageValue(cid, estr, os.time()+2) setPlayerStorageValue(cid, aurastr, -1) doPlayerSendCancel(cid,"Aura desligada!") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Digite '!aura on' para ligar sua aura, e '!aura off' para desligá-la.") end return TRUE end As configurações estão comentadas, portanto é só modificar de acordo com as suas preferências. Agora, em data\talkactions, abra o arquivos talkactions.xml, e cole isto dentro dele : <talkaction words="!aura" event="script" value="aura.lua"/> Após feito isso, para evitar erros ao player logar, será necessário criar um script que mudará o storage da aura toda vez que o player se logar novamente, para isso, vá em data\creaturescripts\scripts e crie um arquivo chamado auralogin.lua, e cole isto : function onLogin(cid) aurastr = 25950 -- storage da aura setPlayerStorageValue(cid, aurastr, -1) return TRUE end Após isto, vá em data\creaturescripts e abra o arquivo creaturescripts.xml, e cole o seguinte código nele : <event type="login" name="AuraLogin" script="auralogin.lua"/> E pronto! Agora é só desfrutar do sistema. OBS : Se você der /reload talkactions no OT em execução, com algum player estando com aura em execução, elas serão interrompidas e será necessário usar !aura off, e !aura on, para reabilitá-las. Portanto cuidado! Créditos : Eu mesmo(Fakezim/BielzinhoCrazy/GMLeal, tanto faz o nick rererere) Obrigado pessoal!
  5. Sistema: Cassino Slots.

    JcA reagiu a Adriano SwaTT por uma resposta no tópico

    1 ponto
    Boa noite galera, após um pedido aqui no fórum sobre um sistema de Cassino, decidi então criar este e disponibilizar para vocês. Introdução: Bom, este script simula a máquina de Cassino conhecida como Cassino Slots, pra quem não conhece é a máquina que se encontra no spoiler abaixo: Como funciona? O jogador precisa escolher 1 (um) dos 10 (dez) itens disponíveis (da para configurar a quantidade de itens) como seu Item da Sorte, e após feito isso, terá que girar a alavanca e torcer para que a máquina sorteie 3 itens repetidos igual ao que o jogador em questão escolheu. Para tornar um pouco mais fácil de vencer, criei para que a máquina dê pequenos brindes à quem acertar 1 ou 2 itens dos sorteados (configurável). Como jogar? Para jogar é simples, como desenvolvi todo script em apenas um arquivo, para facilitar na criação, na instalação e até mesmo na jogabilidade, o jogo se baseia na posição em que o jogador está para identificar qual ação executar. Selecionar Item da Sorte: com seu personagem virado para baixo (sul), clique na alavanca e automaticamente o item da sorte aparecerá na mesa configurada no script, caso queira outro item, basta ir usando a alavanca até encontrar o item desejado. Como Jogar: Após ter selecionado seu item da sorte, que deve estar à mostra em cima da mesa própria, basta virar seu personagem para cima (norte) e clicar novamente na alavanca. E se virar esquerda ou direita?: Nada acontecerá, apenas uma mensagem ensinando como jogar será enviada para que o jogador se oriente. Dicas de instalação! Sugiro que quando for criar o mapa para o evento, não faça como do vídeo, pois os itens criados nas mesas não estão com atributos para que não possam ser movidos, sendo assim é provável que jogadores de má fé venham a roubar itens... Faça como a imagem abaixo: Instalando: Basta criar um arquivo na pasta “data/actions/scripts” chamado “cassino_slots.lua” e adicionar o código abaixo dentro: Agora em “actions.xml” adicione a tag abaixo: Agora basta configurar de acordo com as informações disponíveis no início do script. Vejam o vídeo demonstrativo do Sistema em funcionamento. Criado por: Adriano Swatt'
  6. {Simple} Level Points

    guirpraduh reagiu a MaXwEllDeN por uma resposta no tópico

    1 ponto
    #Introdução Este é um sistema muito simples e básico que eu fiz baseando-me no jogo Mu Online, no qual ao avançar de nível você ganha pontos que podem ser distribuídos para aumentar seus "stats". #Instalação Faça o download do sistema e cole na pasta do seu servidor. @Creaturescripts Depois abra a pasta creaturescripts/scripts que fica dentro da pasta data do seu servidor, abra o arquivo login.lua, com algum editor de texto, e lá no final antes do último return true cole a seguinte linha: registerCreatureEvent(cid, "PointSystem") #Configuração No arquivo PointsSystem.lua da pasta lib L_LvlPoints = { vocPoints = { -- [Skill] = Pontos que ganha, [1] = 3, [2] = 3, [3] = 3, [4] = 5, [5] = 5, [6] = 5, [7] = 5, [8] = 8, }, entre Colchetes fica o id da vocation, e depois do sinal de igualdade a quantidade de pontos que ele ganhará por level que for upado. attributes = { ["vitalidade"] = {np = 2, vl = 5, nm = "Hit Points"}, -- Precisa usar 2 points para adicionar 10 de hp ["energy"] = {np = 4, vl = 2, nm = "Mana Points"}, ["magic"] = {np = 30, vl = 1, nm = "Magic Level"}, ["shielding"] = {np = 40, vl = 1, nm = "Shielding Skill"}, ["sword"] = {np = 20, vl = 1, nm = "Sword Skill"}, ["axe"] = {np = 20, vl = 1, nm = "Axe Skill"}, ["club"] = {np = 20, vl = 1, nm = "Club Skill"}, ["distance"] = {np = 20, vl = 1, nm = "Distance Skill"}, } np - quantidade de pontos para adicionar o stat vl - quanto vai adicioanar pelo np. Exemplo: ["vitalidade"] = {np = 2, vl = 5, nm = "Hit Points"} Com 2 pontos eu compro 5 de HP É isso ai galera, bye bye
  7. 1 ponto
    Fala Ae Galera do TibiaKing Estou mais um vez disponibilizando um Baiak Barao que Acabei de Editar Espero Que Gostem Oque eu Mudei e Adicionei ? -| Novo Visual do Templo -| Aura System (comando !aura on) -| Task System -| Dodge System -| Run Event (CORRIDA MALUCA) -| Reset System (ÁREA EXCLUSIVA COM CASTELO E HUNTS) para resetar fale !reset -| Guild Frags System (ÁREA EXCLUSIVA COM CASTELO E HUNTS) -| War System (100% RODANDO EM SQLITE) -| Cast System (100% Roda em Mysql ) ( Para Ativar vai em Config.lua e ache | enableCast = false | mude para true ) Duvidas entrem em http://www.tibiaking.com/forum/topic/34609-add-cast-system-pra-quem-já-tem-os-códigos-na-distro/ -| PvP Balanceado -| Varios Eventos Automaticos -| Battle Field Event -| Capture The Flag Event -| Adicionado CASTLE 24HORAS (COM CASTELO) e AVISOS DE INVASORES -| Itens DONATES -| Área DONATE ~~ (Só Entra Quem Usar o Itens) -| Vários Novos Script -| Fast Atk Arrumado -| Distro 0.4 Rodando 100% ( Se For 64x Bits) -| Refinamento ( Aprimora seu Item ) -| Level Points System Adicionado (Melhora Seu Skill) -| Frags no Look -| Npc Major Ancient (Vende Itens Exclusivos para quem tiver honor points) Obs:Consegue no GFS) -| Fly System Adicionado fale !fly -| e Muito Mais que Não Lembro -| CONFIRA ~~ ! -| SENHA DO GOD: barao/styller ~~ Algumas Imagens do Servidor ~~ CASTELO GFS Localizado na Barao City Castelo Reset System Localizado na Barao City Amostra do CASTLE War 24HORAS Vista por Cima CASTLE WAR 24 HORAS Vista por Baixo + Amostra de Invasão Donate Área Amostra de Itens Donate Amostra de Systema de Points Amostra do Refinamento TEMPLO -| Download http://www.4shared.com/rar/kv68Q66Hba/Baiak_Barao_Editado_By_DeathRo.html? -| Scan https://www.virustotal.com/pt/file/b036f248977d3b75e8fc205983b449a2fd68a942e62a48963adfcfa49fd954b8/analysis/1402686644/ -| Créditos Gostou ? então dei um +REP Não vai cair o Dedo
  8. [Demonstração] Points Level {SIMPLES}

    bbergmann reagiu a MaXwEllDeN por uma resposta no tópico

    1 ponto
    Acho que só pela imagem dá pra ver de que se trata o sistema né, é tipo como no Mu Online, quando upo eu ganho uns pontos pra distribuir e aumentar meus stats, lembrando: Só ganho os points uma vez que chego no level, se eu upar o level 20, morrer e voltar para o 19, quando upar o 20 denovo não ganherei pontos, somente quando upar o 21...
  9. Colocando seu site online

    samuelandrade45 reagiu a ADMPianista por uma resposta no tópico

    1 ponto
    Fala gente, vi que muitas pessoas estavam querendo fazer um site para seu servidor e não sabem como fazer... Então resolvi postar um tutorial Completíssimo aqui. O que vamos precisar? -> Xampp ( 1.6.5 ) - Download - http://www.oldapps.com/xampp.php?old_xampp=38 -> Gesior Acc. Maker ( 0.3.8 ) - Download - http://www.mediafire.com/?u0bao9bcp9ua5vr -> Um servidor de sua escolha. Agora que já temos tudo, vamos começar !! 1°) Abra o instalador do XamPP, e instale-o. 2°) Selecione aonde a pasta do XamPP ficará salva. (de preferência algum lugar de fácil acesso) 3°) Deixe apenas a primeira e a segunda opções marcadas e clique em Next. 4°) Aguarde o fim da instação e provavelmente uma tela preta irá aparecer. 5°) Após o fim da instalação, clique em Yes para abrir o XamPP e dê Start em Apache e MySQL. 6°) Clique em Admin do Apache. Você será redirecionado para a sua localhost (endereço que apenas você entra). Clique em Português (Brasil). 7°) No canto esquerdo do site , clique na Aba Segurança. Vá descendo até achar " http://localhost/security/xamppsecurity.php " . Clique. OBS : Se você não conseguiu abrir a página de Segurança, vá na pasta do seu Xampp/security/htdocs/lang e renomeie o arquivo pt para pt_br . 8°) Após ter clicado, deverá ser redirecionado para uma página parecida com essa: OBS :Faça o numero 1 e depois clique em Alterar Senha. Depois Faça o numero 3 e clique em Tornar Seguro o Diretorio do XamPP. 9°) Após ter feito isso, dê Stop no MySql (no XamPP) e dê Start denovo. Agora vá em seu navegador e digite : localhost/phpmyadmin 10°) Digite a senha que foi criada há pouco tempo que eu disse que era para a criação do banco de dados. 11°) Minimize seu navegador e vá na pasta de seu servidor, e abra o arquivo config.lua. Tire todos os espaços iniciais e as "frases" iniciadas com o sinal de " - " . Veja : 12°) Não feche o config.lua ainda, vá descendo até achar informações sobre a database de seu servidor ... algo parecido com isto : [b][b][b]sqlType = "mysql" <- se estiver em sqlite, mude para mysql sqlHost = "localhost" sqlPort = 3306 sqlUser = "root" sqlPass = "123456" < - coloque a senha que foi criada para entrar no banco de dados. sqlDatabase = "otserv" < - coloque o nome de sua database , coloque " otserv " para facilitar. sqlFile = "otserv.s3db" < - de prefencia, coloque " otserv.s3db " ( o mesmo nome de sua database ) sqlKeepAlive = 0 mysqlReadTimeout = 10 mysqlWriteTimeout = 10 encryptionType = "sha1"[/b][/b][/b] 13°) Salve e feche o config.lua. Agora vamos voltar a pagina minimizada (localhost/phpmyadmin) : 14°) Clique na aba Importar na parte superior da tela. 15°) Agora Selecione o Arquivo para Importar. Selecione o arquivo terminado em .sql que fica na pasta de seu servidor e clique em Executar no canto inferior direito. 16°) Pronto !! A database de seu servidor foi criada. Agora vamos instalar os arquivos do site. 17°) Abra a pasta do XamPP/htdocs. Apague tudo que tem dentro de htdocs e cole tudo o que veio dentro da pasta do Gesior ACC. 18°) Abra o XamPP novamente e clique em Admin do Apache. 19°) Uma nova pagina foi aberta, agora você terá que fazer mais 5 passos rápidos. 19.1) Set Server Path Coloque o diretório da pasta de seu servidor. Ex : C:\Users\user\Desktop\Tibia Server Clique em Set Server Path. 19.2) Check database connection 19.3) Add tables and columns to DB 19.4) Agora desça e clique no botão. 19.5) Set Admin Account Coloque uma senha SEGURA pois esse será o password do administrador do site e servidor. 19.6) Load Monsters from OTS Carregue os monstros do servidor. 19.7) Load Spells from OTS Carregue as magias do servidor. 20°) Agora você deverá ser redirecionado para seu site, e você pode acessá-lo pelo localhost ou pelo ip do seu servidor. Para acessar sua database, digite em seu navegador : localhost/phpmyadmin Pronto !! Seu site foi criado :] Colocando seu site online pelo 8090 e Desbloqueando a porta 8090 : 1° - Acesse a pasta do XamPP/apache/conf e abra o arquivo httpd com o bloco de notas. Procure por : #Listen 12.34.56.78:80 Listen 80 E por : ServerName localhost:80 Substitua todos os 80 por 8090. 2° - Dentro da pasta conf, abra a pasta extra, e em seguida abra httpd-ssl e procure por : Listen directives: "Listen [::]:443" and "Listen 0.0.0.0:443" # Listen 443 E procure por : <VirtualHost _default_:443> Substitua todos esses 443 por 4499. Agora vá em seu firewall e Adicione a Porta 8090 e Porta 80 e marca a opção TCP. Se usar Roteador, faça a mesma coisa . Site por porta 80 localhost Site por porta 8090 localhost:8090 Créditos : 100% por Mim :] Não conseguiu criar ou está com dúvida? Poste aqui que ajudarei.
  10. [854] Servidor Galaxy PokeOT

    pedro poke tibia reagiu a Wolf Admin por uma resposta no tópico

    1 ponto
    GALAXY POKEOT Olá Galera... Estou Aqui hoje para postar um servidor onde eu editei por um tempo, o "Galaxy PokeOT". Vamos começar: • Menu: ├ Informações; ├ Ediçoes; ├ Erros; ├ Prints; ├ Download; └ Creditos. Informações Básicas: Edições Erros do Servidor Prints Downloads Créditos Bom, é isso galera.. Espero que tenham gostado do meu servidor Façam bom proveito. Gostou? Ajudei? Deixe seu Rep ai Vlw !!
  11. Object Builder

    LUCASMDC reagiu a EdMignari por uma resposta no tópico

    1 ponto
    Object Builder é o programa usado para editar itens, outfits, efeitos e mísseis no cliente. Ele edita e compila os arquivos dat e spr. (Object Builder) Versões suportadas:7.10 - 10.41 Download: Adobe AIR Object Builder 0.3.4 Scan ___________________________ Sources GitHub
  12. [Talk] Comando Mute/Desmute

    Digoshow reagiu a Vodkart por uma resposta no tópico

    1 ponto
    Em talkactions/script muteplayer.lua local v = {} for k = 1, 100 do table.insert(v, createConditionObject(CONDITION_MUTED)) setConditionParam(v[k], CONDITION_PARAM_TICKS, k*60*1000) end function onSay(cid, words, param) if (words == "/mute") then local t = string.explode(param, ",") if param == '' then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") return true end local player,time,pid = getPlayerByName(t[1]),t[2],getPlayerByNameWildcard(t[1]) if(not pid or (isPlayerGhost(pid) and getPlayerGhostAccess(pid) > getPlayerGhostAccess(cid))) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player with this name doesn\'t exist or is offline.") return TRUE end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você mutou o jogador "..t[1].." por "..time.." minutos.") doAddCondition(player, v[tonumber(time)]) setPlayerStorageValue(player, 90000, os.time()+time*60) doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Você foi mutado por "..time.." minutos.") elseif (words == "/desmute") then if param == '' then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Invalid param specified.") return true end local player = getPlayerByNameWildcard(param) if(not player)then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Player not found.") return true end if getCreatureCondition(player, CONDITION_MUTED) == false then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "este jogador não está mutado.") return true end doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "Você desmutou o jogador "..param..".") doRemoveCondition(player, CONDITION_MUTED) setPlayerStorageValue(player, 90000, -1) doPlayerSendTextMessage(player, MESSAGE_INFO_DESCR, "Você foi desmutado.") end return true end talkactions.xml <talkaction log="yes" words="/mute;/desmute" access="2" event="script" value="muteplayer.lua"/> Comando: /mute NOME,MINUTOS /desmute NOME Em creaturescript/script mute_check.lua local v = {} for k = 1, 100000 do table.insert(v, createConditionObject(CONDITION_MUTED)) setConditionParam(v[k], CONDITION_PARAM_TICKS, k*1000) end function onLogin(cid) if getPlayerStorageValue(cid, 90000) >= os.time() then doAddCondition(cid, v[tonumber(getPlayerStorageValue(cid, 90000) - os.time())]) end return TRUE end creaturescript.xml <event type="login" name="MutePlayer" event="script" value="mute_check.lua"/>
  13. [Gesior] Widget Top Level BOX

    Thiagodourado1 reagiu a KekezitoLHP por uma resposta no tópico

    1 ponto
    Para quem deseja ter um box igual a este em seu site: 1º Baixe o arquivo: http://www.sendspace.com/file/ejr1jt Virus Total: https://www.virustot...sis/1360784756/ 2º Extraia os arquivos na pasta do seu layout. 3º Abra layout.php e procure por: <div id="Themeboxes"> 4º Para quem tem pouco mais de experiencia vou falar da seguinte forma: Copie esta linha antes de fechar a div themeboxes. <?php include($layout_name.'/widget_rank.php'); ?> Para quem não entendeu o que eu disse, fica meio complicado explicar onde inserir a linha, então, depois desta linha que disse para pesquisar vá copiando a linha do passo 4º e atualizando o site até obter um resultado agradável. Meu layout.php fico assim: <div id="Themeboxes"> <div id="NewcomerBox" class="Themebox" style="background-image:url(<?PHP echo $layout_name; ?>/images/themeboxes/newcomer/newcomerbox.gif);"> <div class="ThemeboxButton" onClick="BigButtonAction('?subtopic=createaccount')" onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" style="background-image:url(<?PHP echo $layout_name; ?>/images/buttons/sbutton.gif);"><div class="BigButtonOver" style="background-image:url(<?PHP echo $layout_name; ?>/images/buttons/sbutton_over.gif);"></div> <div class="ButtonText" style="background-image:url(<?PHP echo $layout_name; ?>/images/buttons/_sbutton_jointibia.gif);"></div> </div> <div class="Bottom" style="background-image:url(<?PHP echo $layout_name; ?>/images/general/box-bottom.gif);"></div> </div> <div id="PremiumBox" class="Themebox" style="background-image:url(layouts/tibiacom/images/themeboxes/premium/premiumbox.gif);"> <div class="ThemeboxButton" onClick="BigButtonAction('?subtopic=donate')" onMouseOver="MouseOverBigButton(this);" onMouseOut="MouseOutBigButton(this);" style="background-image:url(layouts/tibiacom/images/buttons/sbutton.gif);"><div class="BigButtonOver" style="background-image:url(layouts/tibiacom/images/buttons/sbutton_over.gif);"></div> <div class="ButtonText" style="background-image:url(http://i54.tinypic.com/25uqof8.gif);"></div> </div> <div class="Bottom" style="background-image:url(layouts/tibiacom/images/general/box-bottom.gif);"></div> </div> <?php include($layout_name.'/widget_rank.php'); ?> </div> Creditos Kekezitolhp Duvidas ou erros só pergunta
  14. [Básico] Aprendendo Script

    Shirushi1 reagiu a VictorFT por uma resposta no tópico

    1 ponto
    ---Tutorial by Leo --- Bom galera, venho através desse tutorial tentar ajudar aqueles que querem aprender um pouco mais sobre a área de scripting. Vai ser bem básico, como muita gente tinha me pedido por pm (então resolvi fazer para acabar com o enjoo =P). Acredito que existam muitos tutoriais, alguns bons, outros não, e como vinham me pedindo, ou os tutoriais eram ruins, ou queriam uma visão de outra pessoa (quem sabe com outra pessoa falando, entenda melhor). Diante mão, vou logo dizendo que não me considero um bom scripter ou coisa perto disso até porque estou nisso há menos de 1 mês, mas vou tentar ajudar as pessoas com o pouco que sei. Nessa primeira parte, vamos ver os seguintes pontos: 1. [LÓGICA DE PROGRAMAÇÃO] 1.1 O que é um algoritmo? 1.2 Um exemplo de algoritmo. 1.3 Exercício: Faça seu próprio algoritmo. 1. Desde que existe o ser humano, existe programação. Quando os homens da pré-história iam caçar, ele se programavam, decidiam quais passos tinham que seguir a fim de alcançar a caça. (hehe) Com o computador não é diferente, você deve dar os passos para que ele possa executar as ações e alcançar o objetivo, que no nosso caso, é o sucesso do script. Isso é a linguagem de programação, é uma linguagem criada para instruir o computador a realizar suas tarefas, e o programador deve seguir uma lógica para colocar cada parte do script no seu devido local, essa é a lógica de programação. 1.1 Algoritmo é nada mais que uma "receita" que deve ter os passos seguidos pelo computador para realizar uma tarefa. Esses passos não devem deixar o computador com dúvidas, e portanto, devem ser bem definidos e claros. 1.2 Vamos a um exemplo de um algoritmo. Algoritmo: Preparar um cafezinho Geralmente, tomamos um cafezinho logo quando acordamos então a primeira coisa que devemos fazer é: Acordar Se não tiver água quente então Colocar água na panela Colocar a panela no fogão Ligar o fogão Esperar água ferver Vejam que se esses passos acima forem seguidos rigorosamente, você vai conseguir por a água para ferver. Continuando... Mas se já tiver água quente então Botar água na xícara Botar duas colheres de açúcar Botar uma colher de café em pó Mexer Tomar Dizer: Delíiiciaa =P Vejam, que aí estão os passos exatos para preparar um cafezinho. Aliás, mais do que preparar, até tomar o café. Como ficou o algoritmo: 1.3 Faça um algoritmo para: Ir à escola/faculdade (não precisa postar, é só para treinar). 2. [sCRIPTEANDO] 2.1 Arquivos de Base 2.2 Controladores Lógicos - Condicionais - Operadores de relação - Operadores-controladores 2.3 Variáveis 2.4 Storage Nessa parte, vamos começar a parte de script realmente. Lembrando que existem muitos tutoriais e só esse aqui não é o bastante, até por estar bem básico. 2.1 Os arquivos que podem dar auxílio na hora de fazer os seus scripts são: -- Em data/lib (alguns, global.lua) encontre o arquivo: 000-constant.lua que dá muitas informações sobre o server, como por exemplo, id dos channels, id das skulls, tipos de mensagens, etc.. é bastante útil na construção dos scripts. -- Ot script Live by Colex: Programa que facilita bastante pros iniciantes. Ele marca algumas funções em uma cor diferente além de executar o script para ver se há algum erro de escrita. Em alguns fórums tem, é só usar o sistema de busca. -- Notepad++: Um editor de texto que também pode ser útil. 2.2 Os controladores lógicos são aqueles que colocarão em prática a sua lógica de programação. São eles que guiarão os passos que o computador deve seguir. --- Condicionais Acho que todos sabem o que é um condicional. Como o nome já diz, ele abre uma condição para que algo possa ser feito. Exemplo: Caso não chova, irei jogar bola. Então, isso é uma condição, a condição de que não esteja chuvendo. Se não chover eu jogo, se chover não jogo. Na programação, os principais condicionais são: if -- equivale ao se em português. Está presente em todas linguagens de programação. Provavelmente, você já o viu nas aulas de português. Ele abre uma condição. Regra: Todo if tem seu end. else -- equivale ao senão. Vai ser executado caso a primeira condição aberta pelo if seja falsa. elseif -- equivale a "senão se" ou "mas se". Ele evita a repetição de vários se. Não precisa de end, "utiliza" o end do if. Construindo um algoritmo só para exemplificar: Pegando o exemplo acima, vamos usar o elseif. ---- Operadores de relação Os operadores de relação são aqueles que vocês estudam em matemática: igual, maior igual, menor igual...Em lua, é um pouco diferente: igual: = menor igual: <= maior igual: >= verificação: == Esse de verificação serve para checkar se algo é realmente igual. A diferença dele para o de igual "=" é que o igual serve para atribuir valores. Exemplo: se o level do player == 100 então -- verifica se o level do player é realmente 100 --- Operadores controladores Esses operadores são o and e o or que significa basicamente "e" e "ou", respectivamente. O and verifica se todas as condições são verdadeiras para executar algo. Exemplo: se o player tem level 100 e o nome dele é Leoking então execute script fim Perceba que só será executado caso a condição de ser lvl 100 e o nome ser Leo sejam respeitadas. No caso do or, é necessário que apenas uma delas seja respeitadas. Exemplo: se o player tem level 100 ou o nome dele é Leo então execute script fim Nesse caso, com somente uma condição sendo respeitada, já é o bastante para que o script seja executado. 2.3 Variáveis: Servem basicamente para guardarem valores. Exemplo: O script retornará: king -- king é exatamente o valor da variável var. 2.4 Storage: É simplesmente uma função que vai guardar um valor ou letra, palavra, etc. Para dar um storage usamos a função: setPlayerStorageValue(cid, valor, novo valor) Exemplo: setPlayerStorageValue(cid, 1234, 1) Para verificar se um player tem um storage usamos a função: getPlayerStorageValue(cid, valor) Exemplo: getPlayerStorageValue(cid, 1234) Essas funções você pode ver naquele arquivo de base: lista de funções em lua Agora a última parte desse mini tutorial: 3. [ACTIONS] 3.1 Sintaxe das actions 3.2 Exemplo de actions 3.1 A sintaxe das actions é: function onUse(cid, item, fromPosition, itemEx, toPosition) mas também podem ser encontradas como fromPos, toPos, isso vai depender de como o scripter queira e como vai usar no script. Usei essa que está em negrito, pois, já é a padrão. Agora a explicação: function onUse(cid, item, fromPosition, itemEx, toPosition) Primeramente, é bom lembrar que assim como o if, toda função (function) tem seu end. Exemplo: Explicação da sintaxe: onUse = ao Usar (assim que o player use um item) cid = creature id -- quem vai usar o item item = item que será usado ou item "principal" fromPosition = da Posição itemEx = item "secundário" toPosition = para a Posição 3.2 Vamos colocar em prática tudo que lemos até agora. Nossa action fará: [/center] [center]Ao dar use em um item --- para inserir comentários que não alterarão o script, é só colocar -- e escrever[/center] [center]Se o player for level maior ou igual a 100 então[/center] [center]Sumona um monstro em uma posição[/center] [center]Manda uma mensagem para o player[/center] [center]Manda um efeito no player[/center] [center]se não for level 100[/center] [center]Manda uma mensagem para o player[/center] [center]fim do script[/center] [center] [/center] [center]function onUse(cid, item, fromPosition, toPosition, itemEx) --- sintaxe das actions[/center] [center]if getPlayerLevel(cid) >= 100 then -- se o level do player é maior igual a 100 então[/center] [center]doSummonCreature("Demon", {x=1, y=1, z=1}) --- sumona um demon na posição determinada. Todo valor que seja uma letra, palavra deve estar entre aspas. A posição, entre chaves.[/center] [center]doPlayerSendTextMessage(cid, 22, "Você sumonou um Demon.") -- manda uma mensagem do tipo 22 (veja no constant.lua)[/center] [center]doSendMagicEffect(getPlayerPosition(cid), 10) -- manda um efeito de id 10 (veja constant.lua) na posição do player[/center] [center]else -- se não[/center] [center]doPlayerSendTextMessage(cid, 22, "Você não tem level 100.")[/center] [center]end -- end do if[/center] [center]end -- end da função[/center] [center] Toda script deve ser registrado em um arquivo.xml, no caso da nossa action,será registrado no actions.xml e como é o item que será usado, usaremos itemid: <action itemid="IDDOITEM" event="script" value="NOMEDOARQUIVO.lua"/> Esse foi nosso script usando quase tudo que explicamos anteriormente. Vamos usar agora storage e variáveis nesse script. Vimos que variáveis podem guardar valores, seja númerico ou não. Então, podemos fazer com que não precisemos editar o monstro, a posição e o level dentro do script. (não vou explicar o que é uma variável local e global, pois é intuitivo -- se tiverem dúvidas procurem em outros tutoriais). Podemos colocar: --- Guardando os valores com variáveis --- local monster = "Demon" -- entre aspas, lembre-se! local pos = {x=1,y=1,z=1} -- entre chaves! local minlevel = 100 -- minimo de level Ok até aqui, então nosso script ficaria: [/center] [center]local monster = "Demon"[/center] [center]local pos = {x=1,y=1,z=1}[/center] [center]local minlevel = 100[/center] [center]function onUse(cid, item, fromPosition, toPosition, itemEx)[/center] [center]if getPlayerLevel(cid) >= minlevel then[/center] [center]doSummonCreature(monster, pos)[/center] [center]doPlayerSendTextMessage(cid, 22, "Você sumonou um Demon.")[/center] [center]doSendMagicEffect(getPlayerPosition(cid), 10)[/center] [center]else[/center] [center]doPlayerSendTextMessage(cid, 22, "Você não tem level 100.")[/center] [center]end[/center] [center]end[/center] [center] Mas, digamos que vou passar esse script para um amigo e ele não sabe nada de editar scripts. Aí você fala, é só colocar o nome do monstro no lugar do Demon. Ele vai e faz: [/center] [center]local monster = "Rotworm" --- olha aqui[/center] [center]local pos = {x=1,y=1,z=1}[/center] [center]local minlevel = 100[/center] [center]function onUse(cid, item, fromPosition, toPosition, itemEx)[/center] [center]if getPlayerLevel(cid) >= minlevel then[/center] [center]doSummonCreature(monster, pos)[/center] [center]doPlayerSendTextMessage(cid, 22, "Você sumonou um Demon.")[/center] [center]doSendMagicEffect(getPlayerPosition(cid), 10)[/center] [center]else[/center] [center]doPlayerSendTextMessage(cid, 22, "Você não tem level 100.")[/center] [center]end[/center] [center]end[/center] [center] Ou seja, vai sumonar um rotworm mas vai mandar a mensagem: Você sumonou um Demon. Como resolver isso? Existe os strings, (não vou me aprofundar) vou dar um exemplo e mostrar como ficaria. Exemplo: local var = king imprima("Você quis dizer ".. var .."?) Retornaria: Você quis dizer king? Percebam que é só colocar ".. variavel .." . Além de resolver o problema do monster, também poderíamos fazer isso com o level, no nosso script ficaria: [/center] [center]local monster = "Rotworm"[/center] [center]local pos = {x=1,y=1,z=1}[/center] [center]local minlevel = 100[/center] [center]function onUse(cid, item, fromPosition, toPosition, itemEx)[/center] [center]if getPlayerLevel(cid) >= minlevel then[/center] [center]doSummonCreature(monster, pos)[/center] [center]doPlayerSendTextMessage(cid, 22, "Você sumonou um "..monster..".")[/center] [center]doSendMagicEffect(getPlayerPosition(cid), 10)[/center] [center]else[/center] [center]doPlayerSendTextMessage(cid, 22, "Você não tem level "..minlevel..".")[/center] [center]end[/center] [center]end[/center] [center] Sendo assim, seu amigo noob só vai precisar editar na parte de cima do script. Adicionando storage ao script. Nesse caso, faremos com que o item só possa ser usado uma única vez. Para isso, daremos um storage a ele quando o item for usado e verificaremos se o player já tem esse storage para ver se poderá ser usado o item novamente ou não. (Leia a parte de storage) A função que verifica se o player tem storage é : getPlayerStorageValue(cid, value), então: [/center] [center]se o player tiver esse storage menor ou igual a 0 então[/center] [center]execute o script[/center] [center]dê a storage -- para que o player n possa usar novamente[/center] [center]se não --- se ele já não tiver storage menor ou igual a 0, ou seja, ja tiver usado o item[/center] [center]mande msg negando[/center] [center] No script ficaria assim: [/center] [center]local monster = "Rotworm"[/center] [center]local pos = {x=1,y=1,z=1}[/center] [center]local minlevel = 100[/center] [center]function onUse(cid, item, fromPosition, toPosition, itemEx)[/center] [center]if getPlayerStorageValue(cid, 1234) <= 0 then -- se o storage 1234 for menor ou igual a zero entao[/center] [center]if getPlayerLevel(cid) >= minlevel then[/center] [center]doSummonCreature(monster, pos)[/center] [center]doPlayerSendTextMessage(cid, 22, "Você sumonou um "..monster..".")[/center] [center]doSendMagicEffect(getPlayerPosition(cid), 10)[/center] [center]setPlayerStorageValue(cid, 1234,1) --- dar storage 1234 pra q n possa usar novamente[/center] [center]else[/center] [center]doPlayerSendTextMessage(cid, 22, "Você não tem level "..minlevel..".")[/center] [center]end --- end do if do getPlayerLevel[/center] [center]else -- se já tiver storage igual a 1[/center] [center]doPlayerSendTextMessage(cid, 22, "Você já usou esse item.") -- manda a mensagem[/center] [center]end -- end do if getPlayerStorage...[/center] [center]end -- end da função[/center] [center] Então é isso galera, tentei englobar o maior número de informações necessárias para vocês começarem a fazer seus scripts e espero que esse tutorial ajude alguém. É bom lembrar que só isso não basta e que é sempre bom olhar os scripts dos outros e pelo menos tentar entender como que foram feitos. Vlw aí, abraços. Créditos: 100% Leo PS: Não quero ninguém pegando o Tutorial e colocando em outro fórum se for colocar em outro fórum deixa que eu ou o Leo .
  15. 1 ponto
    Atualizado (2016) Olá galera do TibiaKing! Hoje vim trazer um tutorial em video de como criar novos moves no seu server de PDA. Então, vamos lá, espero que gostem! VIDEO: SCRIPT USADA: Desatualizado (2014)
  16. [GlobalEvents]Raids Automáticas

    falling reagiu a Natanael Beckman por uma resposta no tópico

    1 ponto
    Galera não encontrei um tutorial no fórum com esse script, mais caso haja por favor moderadores remova o tópico! Script útil a todos: TFS 0.4 e OTX Abra data/globalevents/globalevents.xml adicione a seguinte tag: <globalevent name="raids" interval="1000" event="script" value="raid.lua"/> Na pasta data/globalevents/scripts crie um arquivo .lua com o nome raid.lua adicione o seguinte code dentro do arquivo: --[[ - hour should be exact SERVER hour - to do the raid at clock 00 minutes 00 - to do the raid at exaxt date use type "exact" - to do the raid weekly use type "weekly" - days names are used only for weekly type and should be - "monday", "tuesday", "wednesday", "thursday", "friday", "saturday", "sunday" - also should be inside a array -> {} ]] local raids = { [1] = { name = 'Morgaroth', type = 'exact', date = {day = 15, month = 08}, hour = 16, minu = 27 }, [2] = { name = 'Zulazza the Corruptor', type = 'weekly', days = {'monday'}, hour = 20, minu = 00 }, [3] = { name = 'RatsThais', type = 'exact', date = {day = 31, month = 07}, hour = 03, minu = 00 }, [4] = { name = 'OrcsThais', type = 'exact', date = {day = 03, month = 08}, hour = 17, minu = 00 }, [5] = { name = 'Barbarian', type = 'exact', date = {day = 05, month = 08}, hour = 18, minu = 00 }, [6] = { name = 'Demodras', type = 'exact', date = {day = 07, month = 08}, hour = 19, minu = 00 }, [7] = { name = 'Elfos', type = 'exact', date = {day = 09, month = 08}, hour = 20, minu = 00 }, [8] = { name = 'Ferumbras', type = 'exact', date = {day = 11, month = 08}, hour = 21, minu = 00 }, [9] = { name = 'Ghazbaran', type = 'exact', date = {day = 13, month = 08}, hour = 22, minu = 00 }, [10] = { name = 'Horned Fox', type = 'exact', date = {day = 17, month = 08}, hour = 23, minu = 00 }, [11] = { name = 'Necropharus', type = 'exact', date = {day = 19, month = 08}, hour = 00, minu = 00 }, [12] = { name = 'Nomads', type = 'exact', date = {day = 21, month = 08}, hour = 01, minu = 00 }, [13] = { name = 'Orshabaal', type = 'exact', date = {day = 23, month = 08}, hour = 14, minu = 00 }, [14] = { name = 'Pirates', type = 'exact', date = {day = 25, month = 08}, hour = 15, minu = 00 }, [15] = { name = 'Quaras', type = 'exact', date = {day = 27, month = 08}, hour = 16, minu = 00 }, [16] = { name = 'Scarabs', type = 'exact', date = {day = 29, month = 08}, hour = 17, minu = 00 }, [17] = { name = 'Old Widow', type = 'exact', date = {day = 31, month = 08}, hour = 18, minu = 00 }, [18] = { name = 'Undead Army', type = 'exact', date = {day = 02, month = 09}, hour = 19, minu = 00 }, [19] = { name = 'Undead Darashia', type = 'exact', date = {day = 04, month = 09}, hour = 20, minu = 00 }, [20] = { name = 'Sir Valorcrest', type = 'weekly', days = {'monday'}, hour = 20, minu = 00 }, [21] = { name = 'Zevelong Duskbringer', type = 'weekly', days = {'tuesday'}, hour = 20, minu = 00 }, [22] = { name = 'Diblis The Fair', type = 'weekly', days = {'thursday'}, hour = 20, minu = 00 }, [23] = { name = 'Arachir the Ancient One', type = 'weekly', days = {'saturday'}, hour = 20, minu = 00 }, [24] = { name = 'Halloween Hare', type = 'exact', date = {day = 31, month = 10}, hour = 16, minu = 00 } } local last_execsutes = {} function onThink(interval, lastExecution, thinkInterval) local static_time = os.time() for k, raid in ipairs(raids) do if (raid.type == 'weekly') then local day = os.date("%A", static_time):lower() if isInArray(raid.days, day) then local hour = tonumber(os.date("%H", static_time)) if (raid.hour == hour) then local minute = tonumber(os.date("%M", static_time)) if (raid.minu == minute) then local day_number = tonumber(os.date("%d", static_time)) if (last_execsutes[k] ~= day_number) then last_execsutes[k] = day_number doExecuteRaid(raid.name) end end end end elseif (raid.type == 'exact') then local month = tonumber(os.date("%m", static_time)) if (raid.date.month == month) then local day = tonumber(os.date("%d", static_time)) if (raid.date.day == day) then local hour = tonumber(os.date("%H", static_time)) if (raid.hour == hour) then local minute = tonumber(os.date("%M", static_time)) if (raid.minu == minute) then if (last_execsutes[k] ~= day) then last_execsutes[k] = day doExecuteRaid(raid.name) end end end end end end end return true end Como funciona? Veja abaixo alguns exemplos: Nessa raid abaixo está configurada pra ser executada, dia X, mês X, hora XX:XX minutos. [1] = { name = 'Morgaroth', type = 'exact', date = {day = 15, month = 08}, hour = 16, minu = 27 }, Essa outra abaixo é uma raid pra ser executada semanalmente no dia e horário que você desejar. [2] = { name = 'Zulazza the Corruptor', type = 'weekly', days = {'monday'}, hour = 20, minu = 00 }, Lembrado, name = 'Morgaroth', é necessário que essa raid esteja configurada na pasta data/raids. Os créditos eu não sei quem fez, só sei que foi alguém da otland
  17. Bug MW

    falling reagiu a Natanael Beckman por uma resposta no tópico

    1 ponto
    Galera eu fiz uma alteração no server pra uma certa melhora, o problema é que essa melhora bugou o MW e tipo ele fica sem exhausted pra renovar, bom procurei e encontrei uma solução, mais contém outro problema, a MW se renova no tempo certo o problema é que se usar uma MW não posso usar outra em outro SQM só pode usar após os 20 segundos quando termina a que lancei, alguém tem algum palpite pra da? local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY) setCombatParam(combat, COMBAT_PARAM_CREATEITEM, 1497) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) function onCastSpell(cid, var) if exhaustion.check(cid, 1000) == false then exhaustion.set(cid,1000, 20) return doCombat(cid, combat, var) else doPlayerSendCancel(cid, "Cooldown[" ..exhaustion.get(cid,1000).."]") end end
  18. 1 ponto
    Imagens dos bugs que podem ser arrumados com este tutorial: 2- Configurações Incorretas: 3- Chão Vermelho: Tutorial: Vá a pasta "Seu Servidor > Data > Itens" pegue itens.xml e itens.otb. Agora Vá na pasta "RME > Data > VERSÃO DO SEU OT" e adicione o itens.xml e itens.otb lá. Abra o RME com seu mapa, Vá em "File > Preferences > Client Version" selecione VERSÃO DO SEU OT e Deixe o diretorio do seu client. Diretorio Exemplo: "C:\Users\W7\Desktop\meuclient\" Após fazer tudo isso, basta ir ao lado do "File" selecionar "MAP" ira abrir umas opções, basta selecionar "Cleanup" e apertar em "YES" Oquê é Cleanup? R: Ele remove todos "Invalid itens" que esta no seu mapa.... (*Se for usar, tenha um BACKUP do seu mapa) Atenciosamente, Stigal.
  19. [Procura-se Mapper] Pokemon Online

    cleber13 reagiu a Orochi Elf por uma resposta no tópico

    1 ponto
    Salve galera do TibiaKing, hoje eu venho avisar que estamos necessitando de um (1) mapper na nossa equipe, para agilizar a criação do nosso servidor. Para visualizar o tópico oficial do nosso projeto, clique aqui, lá contém imagens, vídeos e o nosso progresso. Bom, a experiência necessária é iniciante/mediana, não iremos pedir para "criar" o mapa, e sim recriar o que já foi feito, tornando o trabalho mais fácil. Caso tenha se interessado, deixe seu comentário abaixo contendo: Formulário Idade: Tempo de experiência: Contato (whatsapp, facebook, skype): Se tiver algum trabalho, o link ou fotos:
  20. Faço Scripts Para Todos

    fernandobernardin reagiu a gabisa00 por uma resposta no tópico

    1 ponto
    Olá galera do TK, quero ajudar o pessoal com dificuldades, então vamos lá, faça seu pedido que eu provavelmente vou faze-lo, somente peço que usem o fomulário. Nome Fantasia do Script: Como ele Vai Funcionar: Qual a Finalidade: Urgência: OBS: Regras: Necessário ter 100 ou mais posts. Pedidos podem ser NEGADOS. Aguarde sua vez, analiso cada caso. Não garanto que os sistemas vão funcionar de Primeira. Agradeço aqueles que postarem seus pedidos desde já. OBS, vou disponibilizar todos os scripts que fizer.
  21. Distro - Error Lost Connection MYSQL

    lucasromero reagiu a Danihcv por uma resposta no tópico

    1 ponto
    Mas o propósito de mudar a distro nesta situação é apenas para descobrir onde está o problema: se é o seu pc q ñ está conseguindo manter a conexão com a db, ou se é a distro que está falha. Então após testar a nova distro, veremos qual o resultado e aí saberemos a raiz do problema. E aí você poderá ficar com a distro do luan (e a gnt buscar saber mais sobre como resolver o erro) ou optar por outra. Sacas?
  22. Distro - Error Lost Connection MYSQL

    lucasromero reagiu a Danihcv por uma resposta no tópico

    1 ponto
    Hm... Tentou trocar a distro?
  23. Pedido Avatar

    Factur reagiu a loreal por uma resposta no tópico

    1 ponto
  24. 1 ponto
    Bom... Vc tem que conhecer o server que tem em mãos... Se o server é baiak, mapa é baiak... Se o server for global, o mapa é global... Se for poketibia, o mapa é de poketibia... etc.
  25. 1 ponto
    Na vdd o tipo de mapa seria se é baiak, tibia global, etc.... shausahusa
  26. 1 ponto
    Provavelmente são as configurações da máquina. Me diga quais são as configurações da mesma e qual é o tipo de mapa. -------------------- Tópico movido para a área correta.
  27. [DESATIVADO]

    Lord Stryton reagiu a Danihcv por uma resposta no tópico

    1 ponto
    Tópico refeito! Corrigi os bugs de formatação. Qualquer coisa que esteja faltando, o próprio dono do tópico pode editar.
  28. Hearthstone: Heroes of Warcraft

    Heyron reagiu a Vodkart por uma resposta no tópico

    1 ponto
    Estou pensando em jogar, alguém ai já jogo?? quero saber se vale a pena ou é mto enjoativo
  29. Segunda promotion VIP e NPC [TFS 1.0]

    Andreselos1988 reagiu a Summ por uma resposta no tópico

    1 ponto
    local money = xxxx -- Quanto vai custar local storage = 14542 -- Não mexer local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end local function creatureSayCallback(cid, type, msg) if not npcHandler:isFocused(cid) then return false end player = Player(cid) if player:getStorageValue(storage) == 1 then npcHandler:say('you have already received the promotion', cid) return true end if msgcontains(msg:lower(), 'promotion') then npcHandler:say('you are sure?', cid) npcHandler.topic[cid] = 1 end if msgcontains(msg:lower(), 'yes') and npcHandler.topic[cid] == 1 then if isInArray({5, 6, 7, 8}, player:getVocation()) then if player:getVipDays() >= 1 then if player:removeMoney(money) then npcHandler:say('you just received a new promotion', cid) player:setVocation(player:getVocation() + 4) player:setStorageValue(storage, 1) npcHandler.topic[cid] = 0 else npcHandler:say('you no have money', cid) npcHandler.topic[cid] = 0 end else npcHandler:say('You do not have any vip days.', cid) npcHandler.topic[cid] = 0 end else npcHandler:say('you no have first promotion', cid) npcHandler.topic[cid] = 0 end elseif msgcontains(msg:lower(), 'no') and npcHandler.topic[cid] == 1 then NpcHandler:say('Bye!!', cid) npcHandler.topic[cid] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  30. Compila Para Pra min?

    Heyron reagiu a Drazyn1291 por uma resposta no tópico

    1 ponto
    Amigo vc acha que eu estaria aqui pedindo, sem no minimo ter tentado baixar o lixo do visual studio??? Ajuda quem pode, quem não quer, não ajude! Estou aqui por jah ter tentado de muitas coisas pra copila isto! mas se for ficar falando, falando e falando que não fiz esforço nenhum é melhor vc nem mais acompanhas o tópico... Feliz Páscoa e flw
  31. 1 ponto
    amigo, algum programa deve estar usando está porta então porque pelo que disse está tudo correto tente mudar para 8090 e teste para ver se funcione para outra pessoa entrar e tals caso a pessoa conseguir entrar com a porta 8090 é que algum programa está usando a porta 80
  32. 1 ponto
    amigo, abriu no firewall do windows também e outra coisa você está com o xampp ou wampp com o apache e mysql ligados?
  33. 1 ponto
    no firewall do windows e no roteador? caso abriu no roteador muitas pessoas cometem o erro de colocar o gateway padrão no ip addres em vez do endereço IPV4 caso não sabe o endereço IPV4 abra o executar no pc e escreve cmd aperte enter dentro da propomt de comando escreve ipconfig e de enter que você vera seu endereço de IPV4 xD
  34. 1 ponto
    Em "Data/movements/scripts" copie e cole um arquivo .lua e renomeie para premmytile.lua, apague tudo e cole: function onStepIn(cid, item, position, fromPosition) if not isPlayer(cid) then return true end if getPlayerPremiumDays(cid) <= 0 then doPlayerSendCancel(cid, "Apenas premium accounts podem passar aqui.") doTeleportThing(cid, fromPosition) doSendMagicEffect(position, 13) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Bem-Vindo a area premium.") doSendMagicEffect(position, 12) end return true end Agora em "Data/movements" abra o movements.xml e adicione a tag: <movevent type="StepIn" actionid="25200" event="script" value="premmytile.lua" /> Ai você coloca a actionid 25200 nos locais que apenas premium pode passar. Agora em "Data/creaturescripts/scripts" copie e cole um arquivo .lua e renomeie para checkpremmy.lua, apague tudo e cole: function onLogin(cid) local pos = {x = 160, y = 54, z = 7} local storage = 21590 if getPlayerStorageValue(cid, storage) <= 0 and getPlayerPremiumDays(cid) >= 1 then setPlayerStorageValue(cid, storage, 1) end if getPlayerPremiumDays(cid) >= 1 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você tem "..getPlayerPremiumDays(cid).." dias de premium restantes.") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você é free account.") end if getPlayerStorageValue(cid, storage) >= 1 and getPlayerPremiumDays(cid) <= 0 then doTeleportThing(cid, pos) doPlayerSendTextMessage(cid, 25, "Sua premium expirou.") setPlayerStorageValue(cid, storage, -1) doSendMagicEffect(getPlayerPosition(cid), 13) end return true end Em "Data/creaturescripts" abra o creaturescripts.xml e adicione a tag: <event type="login" name="CheckPremmy" event="script" value="CheckPremmy.lua"/>
  35. Segunda promotion VIP e NPC [TFS 1.0]

    Andreselos1988 reagiu a Summ por uma resposta no tópico

    1 ponto
    local money = xxxx -- Quanto vai custar local storage = 14542 -- Não mexer local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end local function creatureSayCallback(cid, type, msg) if not npcHandler:isFocused(cid) then return false end player = Player(cid) if player:getStorageValue(storage) == 1 then npcHandler:say('you have already received the promotion', cid) return true end if msgcontains(msg:lower(), 'promotion') then npcHandler:say('you are sure?', cid) npcHandler.topic[cid] = 1 end if msgcontains(msg:lower, 'yes') and npcHandler.topic[cid] == 1 then if isInArray({5, 6, 7, 8}, player:getVocation()) then if player:getVipDays() >= 1 then if player:removeMoney(money) then npcHandler:say('you just received a new promotion', cid) player:setVocation(player:getVocation() + 4) player:setStorageValue(storage, 1) npcHandler.topic[cid] = 0 else npcHandler:say('you no have money', cid) npcHandler.topic[cid] = 0 end else npcHandler:say('You do not have any vip days.', cid) npcHandler.topic[cid] = 0 end else npcHandler:say('you no have first promotion', cid) npcHandler.topic[cid] = 0 end elseif msgcontains(msg:lower(), 'no') and npcHandler.topic[cid] == 1 then NpcHandler:say('Bye!!', cid) npcHandler.topic[cid] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) em creaturescripts : function onLogin(cid) local storage = 14542; player = Player(cid); if player:getVipDays() == 0 and player:getStorageValue(storage) == 1 then player:setVocation(player:getVocation() - 4) player:setStorageValue(storage, - 1) end return true end
  36. (Duvida/Pedido) Erro Distro

    Biinhow reagiu a Fir3element por uma resposta no tópico

    1 ponto
    executa ai: ALTER TABLE `players` ADD `cast` TINYINT NOT NULL DEFAULT '0', ADD `castViewers` INT( 11 ) NOT NULL DEFAULT '0', ADD `castDescription` VARCHAR( 255 ) NOT NULL
  37. [pedido] Npc adiciona Premium days!

    Baned reagiu a Summ por uma resposta no tópico

    1 ponto
    local verf_storage = {xxx, xxx, xxx, xxx}; -- Coloca todas as storage aqui local storage = 97545; local premium_days = 10; local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if getPlayerStorageValue(cid, storage) == 1 then selfSay('Você já pegou sua premium!!', cid) return true end if msgcontains(msg:lower(), 'premium') then selfSay('you are sure?', cid) talkState[talkUser] = 1 end if msgcontains(msg:lower(), 'yes') and talkState[talkUser] == 1 then conf_storage = 0 for x = 1, #verf_storage do if getPlayerStorageValue(cid, verf_storage[x]) >= 1 then conf_storage = conf_storage + 1 end end if conf_storage == #verf_storage then doPlayerAddPremiumDays(cid, premium_days) setPlayerStorageValue(cid, storage, 1) selfSay('is Add 10 premium days', cid) talkState[talkUser] = 0 else selfSay('you no have permission!', cid) talkState[talkUser] = 0 end elseif msgcontains(msg:lower(), 'no') and talkState[talkUser] == 1 then selfSay('Bye!!', cid) talkState[talkUser] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) local verf_storage = {xxx, xxx, xxx, xxx}; -- Coloca todas as storage aqui
  38. Troque seu inServiceOfYalaharQuestReward.lua Por esse: function onUse(cid, item, fromPosition, itemEx, toPosition) if(getPlayerStorageValue(cid, 10012) < 1) then doPlayerAddItem(cid, 9776, 1) doPlayerAddItem(cid, 9778, 1) doPlayerAddItem(cid, 9777, 1) doPlayerAddExp(cid, 250000, true, true) setPlayerStorageValue(cid, 10012, 1) end if(item.uid == 3088) then if(getPlayerStorageValue(cid, 30) == 53) then setPlayerStorageValue(cid, 30, 54) Player(cid):setStorageValue(12021, 5) -- StorageValue for Questlog "Mission 10: The Final Battle" doPlayerAddItem(cid, 9776, 1) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You've found a yalahari armor.") else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "The chest is empty.") end elseif(item.uid == 3089) then if(getPlayerStorageValue(cid, 30) == 53) then setPlayerStorageValue(cid, 30, 54) Player(cid):setStorageValue(12021, 5) -- StorageValue for Questlog "Mission 10: The Final Battle" doPlayerAddItem(cid, 9778, 1) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You've found a yalahari mask.") else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "The chest is empty.") end elseif(item.uid == 3090) then if(getPlayerStorageValue(cid, 30) == 53) then setPlayerStorageValue(cid, 30, 54) Player(cid):setStorageValue(12021, 5) -- StorageValue for Questlog "Mission 10: The Final Battle" doPlayerAddItem(cid, 9777, 1) doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "You've found a yalahari leg piece.") else doPlayerSendTextMessage(cid, MESSAGE_INFO_DESCR, "The chest is empty.") end end return true end
  39. [Crack] iBot 2.7.3 [Tibia 10.77]

    Lukz reagiu a EdsonJunior por uma resposta no tópico

    1 ponto
    Sim, são bots diferentes, o iBot plus é um bot mais leve (Sobre carga da CPU), porém, não tem cracker pra ele, ainda.
  40. Pedido Avatar

    igorcbc reagiu a loreal por uma resposta no tópico

    1 ponto
    espero que goste tive que fazer em resoluçãos fiz em 3 tamanhos , 150x250 perde muita resolução para imagem caso for para avatar esses tamanhos são ideal
  41. (Resolvido)Ring Anti-Paralyze

    Sotomayor reagiu a Adriano SwaTT por uma resposta no tópico

    1 ponto
    Boa noite, após alguns testes na distro Alissow 0.3.6... Segue abaixo: Primeiramente, precisaremos adicionar um pequeno detalhe à runa paralyze. Em spells/scripts/support/paralyze rune.lua, adicione as funções em negrito e ficará como abaixo: Agora em CreatureScripts.xml, adicione a tag abaixo: <event type="combat" name="RingParalyze" event="script" value="ring_paralyze.lua" /> Agora o script ring_paralyze.lua terá o script abaixo: Agora em login.lua, adicione a tag abaixo junto com as do gênero: registerCreatureEvent(cid, "RingParalyze") Boa sorte. Aguardo retorno se foi útil.
  42. Sistema: Cassino Slots.

    Ceos reagiu a Adriano SwaTT por uma resposta no tópico

    1 ponto
    Boa tarde, preciso saber como configurou cada script... Mas tente fazer como direi abaixo: Vi que criou o sistema de Cassino 6x, certo.. Além das Storages que mudou, precisamos considerar uma função interna do script. Que no caso, me refiro à esta: function CassPremio(cid) Deve colocar um número diferente para cada, ou seja, no script 1, pode deixar "function CassPremio1(cid)". No script2 pode deixar "function CassPremio2(cid)" e assim sucessivamente. Lembre-se de mudar também aqui "addEvent(CassPremio, 500, cid)" de cada script para o nome da função, está próximo à linha 104 do script. Pois senão o script não encontrará a função. Ficará basicamente assim: addEvent(CassPremio1, 500, cid) -- e a função assim: function CassPremio1(cid) addEvent(CassPremio2, 500, cid) -- e a função assim: function CassPremio2(cid) Boa sorte.
  43. (Resolvido)(ERRO) Event onTime not found

    abilioalemao reagiu a zipter98 por uma resposta no tópico

    1 ponto
    data/globalevents/scripts, CTFMax.lua. Troque: function onTimer(interval) por: function onTime()
  44. {Demonstração} Aura System

    fernandobernardin reagiu a MaXwEllDeN por uma resposta no tópico

    1 ponto
    Ainda falta fazer alguns ajustes
  45. Casino Script ElfBot 100%AFK

    salama reagiu a oclipper por uma resposta no tópico

    1 ponto
    Não sei se viola alguma regra ou se o topico anterior teve algo improrio. Irei postar uma versao simples do Casino pra Elfbot. Casino Script Tutorial 100% ElfBot Afk Necessario: Dice Golden BackPack Purple BackPack 1º Passo Neste Script, usaremos 'purple backpack' e 'golden backpack' como na foto acima 2º Passo Criar Script 'Casino' pode ser qualquer nome. Aqui ele joga com 50k e paga 80k Action START setcaption 'script by Adolf' | if [$topitem.($posx+1).($posy-1).($posz) == 3043] {collectitems 'purple backpack' 3043 | wait 1000 | equiplhand 3043 | wait 1000 | gotolabel MOVE} else {gotolabel START} ACTION MOVE setcaption 'MOVE' | if .id == 3043 && $lhandslot.count >= 5 ] {openbpitem | wait 1500 | unequip 'lhand' 'golden backpack' | wait 1000 | say 'Fale H ou L agora.' | gotolabel CHECK} | else {gotolabel START} Action CHECK setcaption 'CHECK' | if [$curmsg.isdefault && $playersaround.2 && $curmsg.content == 'l'] {usegroundxyz [$posx] [$posy-1] [$posz] | wait 1000 | gotolabel LOW} if [$curmsg.isdefault && $playersaround.2 && $curmsg.content == 'h'] {usegroundxyz [$posx] [$posy-1] [$posz] | wait 1000 | gotolabel HIGH } | else {gotolabel CHECK} Action LOW setcaption 'LOW' | if [$topitem.($posx).($posy-1).($posz) == 5792 || $topitem.($posx).($posy-1).($posz) == 5793 || $topitem.($posx).($posy-1).($posz) == 5794]{gotolabel PAYOUT} else {say 'Perdeu Playboy' | openbpitem | gotolabel START} Action HIGH setcaption 'HIGH' | if [$topitem.($posx).($posy-1).($posz) == 5795 || $topitem.($posx).($posy-1).($posz) == 5796 || $topitem.($posx).($posy-1).($posz) == 5797] {gotolabel PAYOUT} else {say 'Perdeu Playboy' | openbpitem | gotolabel START} Action PAYOUT setcaption 'PAYOUT' | dropitemsxyzamount [$posx+2] [$posy-1] $posz 3043 8 | say 'You Won.' | openbpitem | wait 500 | gotolabel START} Download Colar na pasta 'Script' dentro da pasta do 'ElfBot'. Baixe apenas se tiver dificuldade de copiar e colar o codigo no Edit do CaveBot. V2.0 http://speedy.sh/JW67C/casino.txt Copiar e Colar EDIT do Casino
  46. Em Talkactions.xml Em talkactions/scripts crie um arquivo lua com o nome teleportto.lua, abra e cole isso
  47. [Aula 6] Escopo

    abmauromacedo reagiu a MaXwEllDeN por uma resposta no tópico

    1 ponto
    << Aula 5 - Variáveis e Comentários Escopo Aula 6 Vimos na aula anterior sobre variáveis, e vimos também, bem superficialmente, como declarar variáveis como locais. Você pode se perguntar: "Qual a utilidade de uma variável local?", "O que ela tem de diferente de uma variável global?" ou "Se elas são tão importantes, por que quase ninguém usa?". Vamos por passos. Imagine a seguinte situação: "Você tem uma variável chamada var, e ela vale 1, mas em certo ponto do script você quer que ela receba o valor 2, execute alguma coisa (Como um print) e, depois que executar, ela retorne ao valor anterior (1).". Um dos modos de fazer isto é usando uma outra variável temporária para armazenar o valor antigo, ficando assim: var = 1 temp_var = var var = 2 print(var) var = temp_var temp_var = nil print(var) Veja que o código possui 7 linhas para fazer algo tão simples, por isso usar a variável temporária foi uma idéia de girico chamada carinhosamente de Gambiarra. Vamos fazer a mesma coisa que antes, mas agora do modo "correto": var = 1 do local var = 2 print(var) end print(var) Observe que agora, mesmo tendo ficado com quase o mesmo número de linhas, está mais "charmoso". Vamos agora entender o do e o end. O do é uma estrutura de controle (Abre/Fecha um Escopo) que abre um novo escopo. O end é uma estrutura de controle (Abre/Fecha um Escopo) que fecha o escopo mais alto. Você não deve ter entendido. Imagine que os escopos são como uma pirâmide, que começa inicialmente no andar 0 (Estes números são "imaginários", somente para facilitar o entendimento). As estruturas de controle tem o poder de construir ou destruir um degrau desta pirâmide, no caso o do constrói um andar e o end destrói o andar mais alto da pirâmide. Vamos tentar entender: -- Estamos no andar 0. do -- Construímos um andar. Agora estamos no andar 1. end -- Destruímos o andar 1 e voltamos para o 0. -- Estamos no andar 0. Importante: Você deve terminar no andar que começou, ou seja, no andar 0. Vamos ver o mesmo código um pouco maior: -- Estamos no andar 0. do -- Construímos um andar. Agora estamos no andar 1. do -- Construímos mais um andar. Agora estamos no andar 2. do -- Construímos mais um andar. Agora estamos no andar 3. end -- Destruímos o andar 3 e voltamos para o 2. end -- Destruímos o andar 2 e voltamos para o 1. end -- Destruímos o andar 1 e voltamos para o 0. -- Estamos no andar 0. A definição ideal para escopo (Em Lua) seria: Até onde as variáveis locais são alcançáveis. Isso porque se você estiver no andar 1 e tiver declarado uma variável no andar 2, quando o andar 2 tiver sido destuido pelo end, a variável será apagada e você não poderá mais chamá-la no andar 1, embora você possa chamar variáveis do andar 1 se estiver no andar 2. Se esta variável existir no andar 1 e no 2, vai sempre pegar a que estiver mais perto (No caso, a do andar 2). Se existir uma local alcançável e uma global, sempre pegará a local ao invés da global. A global só será pega se não houver nenhuma local alcançável. Você pode declarar uma variável local em um andar e modificar seu valor em outro escopo. Esta é uma tática muito útil: var = 1 do local var do var = 2 end do print(var) end end print(var) Preste bastante atenção quanto à isto: var = 1 do do local var = 2 end do print(var) end end Se você está pensando que o valor escrito será 2, está muito enganado. A variável local "var" do primeiro andar 2 será apagada assim que o end destruir o andar, então o valor escrito será 1. Essa "pegadinha" pode frustrar vocês, então prestem atenção. Vale lembrar que, como as funções são armazenadas em variáveis, elas também podem ser locais: teste = function() end -- Variável Global function teste() end -- Variável Global local teste = function() end -- Variável Local local function teste() end -- Variável Local OBS: Toda Estrutura de Controle deve terminar com o end. São estruturas de controle: do function while repeat if OBS: O repeat é um caso especial e não usa end para finalizar o escopo. Ele usa o until. Veremos as 4 últimas em aulas futuras. Exercício Descubra o que acontece em cada um dos casos e por quê: var = 1 local var = 2 print(var) var = 1 do local var = 2 end print(var) var = 1 local var do var = 2 end print(var) var = 1 local var = 2 do print(var) end var = 1 do local var = 2 do var = 3 end print(var) end Aula escrita por uma raposa levada Skyen Hasus, todos os créditos são dele. Aula 7 - Estruturas de Controle >>
  48. (Resolvido)HOUSE COM ERRO NA PORTA.

    lucasromero reagiu a Cat por uma resposta no tópico

    1 ponto
    no rme, em house PALETTE -> Brushes -> Select exit esse select exit é um splash de água no mapa, deve ser colocado na frente da porta selecionada no mapa, mas na frente onde o player vai ficar pra comprar. Fiz uma ilustração pra você: Note que o 'splash' está onde o player deve ficar para comprar a casa.
  49. 1 ponto
    depois do ot online pra entrar tem que usar o ip de rede vai em executar/cmd e executa ipconfig e pega o Endereço IPv4 coloca o ipchanger e bom jogo.
  50. (Resolvido)[Pedido] NPC Task System

    Sivermisty reagiu a Vodkart por uma resposta no tópico

    1 ponto
    Mods: Task Kill.xml <?xml version="1.0" encoding="ISO-8859-1"?> <mod name="Task Kill" version="1.0" author="Vodkart" contact="tibiaking.com" enabled="yes"> <config name="KillM_func"><![CDATA[ tsk = { storages = {68754,68755}, task = {"dragon", 10}, -- nome do bixo e quantidade exp = 200, item = {2123,1} } ]]></config> <event type="login" name="AreKill" event="script"><![CDATA[ function onLogin(cid) registerCreatureEvent(cid, "CountTask") return true end]]></event> <event type="kill" name="CountTask" event="script"><![CDATA[ domodlib('KillM_func') function onKill(cid, target) if isMonster(target) then local n = string.lower(getCreatureName(target)) if n == tsk.task[1] and getPlayerStorageValue(cid, tsk.storages[2]) >= 1 then local contagem = getPlayerStorageValue(cid, tsk.storages[1]) if (contagem == -1) then contagem = 1 end if not tonumber(contagem) then return true end if contagem > tsk.task[2] then return true end setPlayerStorageValue(cid, tsk.storages[1], contagem+1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE,""..(contagem == tsk.task[2] and "Congratulations! You finished the task of "..n.."." or "defeated. Total [" .. contagem .. "/" .. tsk.task[2] .. "] " .. n .. ".").."") end end return true end]]></event> </mod> npc: domodlib('KillM_func') local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid local msg = string.lower(msg) if isInArray({"task","mission","missao"}, msg) then if not tonumber(getPlayerStorageValue(cid, tsk.storages[1])) then npcHandler:say("Você já terminou a task!", cid) elseif getPlayerStorageValue(cid, tsk.storages[2]) >= 1 then npcHandler:say("Você já matou "..tsk.task[2].." "..tsk.task[1].."? {yes}", cid) talkState[talkUser] = 2 else npcHandler:say("Você deseja fazer uma missão de matar "..tsk.task[2].." "..tsk.task[1].." e receber "..tsk.exp.." de experience e "..tsk.item[2].." "..getItemNameById(tsk.item[1]).."? {yes}", cid) talkState[talkUser] = 1 end elseif isInArray({"yes","sim"}, msg) and talkState[talkUser] > 0 then if talkState[talkUser] == 1 then npcHandler:say("Parabéns! Agora você está participando da task, volte quanto tiver terminado!", cid) setPlayerStorageValue(cid, tsk.storages[2], 1) else if getPlayerStorageValue(cid, tsk.storages[1]) >= tsk.task[2] then npcHandler:say("Obrigado guerreiro, aqui está sua recompensa!", cid) setPlayerStorageValue(cid, tsk.storages[1], "Finished") doPlayerAddExp(cid, tsk.exp) doPlayerAddItem(cid, tsk.item[1], tsk.item[2]) else npcHandler:say("Você ainda não terminou a sua task!", cid) end end talkState[talkUser] = 0 elseif msg == "no" then selfSay("Tudo bem então", cid) talkState[talkUser] = 0 npcHandler:releaseFocus(cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
Líderes está configurado para São Paulo/GMT-03:00

Informação Importante

Confirmação de Termo