Ir para conteúdo

Líderes

Conteúdo Popular

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

  1. Teleport Falante 8.6 Igual 9.++

    Rafals e um outro reagiu a tetheuscunha por uma resposta no tópico

    2 pontos
    O script e basicamente um TP FALANTE, só que nada de ANIMATEDTEXT, ele e igual os TP FALANTE dos otserver 9++ function onThink(interval, lastExecution) local name_of_monster = 'Training Monk' --- here put monster name or any npc name local texts = { -- text pos effects ["test1"] = {{x=1027, y=1021, z=7},CONST_ME_ENERGYAREA, 23}, ["test2"] = {{x=1028, y=1021, z=7},CONST_ME_ENERGYAREA, 23}, ["test3"] = {{x=1029, y=1021, z=7},CONST_ME_FIREWORK_YELLOW, 23} } for text, param in pairs(texts) do doCreatureSay(getCreatureByName(name_of_monster),text,TALKTYPE_ORANGE_1, false, 0,param[1]) doSendMagicEffect(param[1], param[2]) end return TRUE end <globalevent name="texto" interval="3000" script="texto.lua"/> EXPLICAÇÃO local name_of_monster = 'demon' --- here put monster name or any npc name Aqui você coloca o nome de um NPC ou de um Monster (se for utilizar de monster, coloque um monster que nunca morra, pois se ele morrer começara a dar erro na distro) #IMAGEM NÃO E MINHA, PEGUEI DO PEDIDO QUE UM CARA VEZ NA AREA DE PEDIDOS. #NÃO LEMBRO ONDE PEGUEI ESSE SCRIPT, TENHO ELE A MUITO TEMPO. SE EU ACHAR O DONO EU POSTAREI OS DEVIDOS CREDITOS.
  2. [SPELL] Transformar

    Guilherme HP e um outro reagiu a Radamanthys Wov por uma resposta no tópico

    2 pontos
    Tenta assim
  3. [SHOW-OFF] Sistema de Montaria 8.6

    Heyron reagiu a darksoulsrpg por uma resposta no tópico

    1 ponto
    Fala pessoal! Então, vou mostrar pra voces um sistema de montaria q desenvolvi para tibia 8.6 bem simples, porém, gostaria do feedback de vcs!
  4. GesiorACC 2019 8.60 UPDATE 29/06/2019

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

    1 ponto
    Atualização de 29/06/2019. Olá meus amigos, essa é a minha última contribuição free que faço na área de OTserver, fiz uma atualização bem completa do Gesior comparando com os que existem disponíveis, não vou falar muito pois grande parte já conhecem... Vou apenas posta algumas imagem das mudanças feitas. Sempre gostei de evoluir e de oferecer aos demais uma facilidade de obter um material grátis e de qualidade, nunca utilizei meu pouco conhecimento para prejudicar os demais, pelo o contrario sempre foi na intenção de ajudar e se em algum momento falhei, falhei inconscientemente. - Foi mudado algumas imagens de layout para renovar a estrutura. - Server Info + Most Power Ful Guilds na mesma estrura. - Create Account exigindo senhas com letras minusculas, maiúsculas e números, fortalecendo a segurança do seu cliente e dificultando futuras dores de cabeças. - Adicionado o mecanismo que identifica os valores de Premuim Points e Backup Points. - Algumas mudanças de layout. - Nome do player abaixo linkado. - Adicionado um Box de doação, com a intenção apenas de complementar o layout enriquecendo a pagina. - Fixado o bug edit town, e melhorado o layout. - Characters.php refeito, nesta imagem é uma visão de uma conta com access admin. - Visão normal. - Inventário completo. - Guilds com visão ampliada. - Detalhes... - Novo SHOP com as estrutura de layout melhorada e modernizada. - Sem BUGs lembre-se do CTRL + F5 para atualizar os cookies nesta pagina. - Detalhes... - Detalhes... - Detalhes... - Histórico do SHOP... DOWNLOAD SITE SHOP.LUA XAMPP 1.7.3 DATABASE LIMPA MYSQL DATABASE COMPLETA MYSQL TUTORIAIS ÚTEIS E COMPATÍVEIS PARA O SITE: PAGSEGURO AUTOMATICO SHOPGUILD BACKUP_POINTS SISTEMA VIP_TIME Créditos: Gesior.pl(WEBMaster) Felipe Monteiro(WEBMaster, WEBDesigner) Natanael Beckman(WEBNada) Nailan (WEBMaster) Ivens Pontes (WEBMaster) Marcio Porto (WEBMaster) Danyel Varejão (Programmer LUA, C++)
  5. Remere's Map Editor 3.3 ATUALIZADO(11.00)

    Orientalz reagiu a Bruxo Ots por uma resposta no tópico

    1 ponto
    Remere's Map Editor 3.3 Características: Suporte para dicas no mapa Suporte para visualização de animações Restaurar a última posição ao abrir um mapa Exportar resultado de pesquisa para um arquivo txt Melhorias no pincel Waypoint Melhor suporte em tela cheia no macOS Corrigido bugs: Itens maiores que 64x64 agora são exibidos corretamente Corrigido potencial falha ao usar o pincel de ponto de referência Corrigido um bug em que você não conseguia abrir arquivos de mapas clicando neles enquanto o editor estava sendo executado Agora você pode abrir a pasta de extensões no macOS Corrigido um bug em que uma pesquisa de item não exibiria nenhum resultado no macOS Corrigido vários problemas relacionados à edição de casas no macOS Remeres suporte 11.0 Download Source Creditos GitHub Topico original
  6. Lucky Guard - [ANTI NUKER]

    Apache reagiu a William Oliveira por uma resposta no tópico

    1 ponto
    Boa noite pessoal do TibiaKing, Hoje estarei compartilhando uma ferramenta que poderá ajudar quem ainda cria servidores em Windows e está sofrendo alguns ataques (nukes). Bom, o nome da ferramente é Lucky Guard. Ela é bem simples de ser usada, segue os procedimentos. 1- Ao abrir o arquivo irá solicitar uma senha > luckyguard 2- Com o anti-nuker aberto, selecione as portas que deseja monitorar 3- Clique em start para começar o monitoramento 4- Para ver os ataques bloqueados clique na aba LOGS Segue algumas imagens do anti-nuker. Download: Link Scan: Link
  7. 1 ponto
    kkkk Pois é, cara. A função "get" verificaria se ele já tem ou não a bless. Cara, eu vou fazer o seguinte. Eu vou DEDUZIR que essa benção que você quer seja a 6. Eu não tenho certeza, mas olhando o script da Ceremonial Ankh, aparece essa Bless 6. Deve ser elam já que as 5 primeiras são as bless normais. Sendo assim, teste esse: 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 doCreatureSayWithDelay(cid,text,type,delay,e) if delay<=0 then doCreatureSay(cid,text,type) else local func=function(pars) doCreatureSay(pars.cid,pars.text,pars.type) pars.e.done=TRUE end e.done=FALSE e.event=addEvent(func,delay,{cid=cid, text=text, type=type, e=e}) end end function cancelNPCTalk(events) local ret=1 for aux=1,table.getn(events) do if events[aux].done==FALSE then stopEvent(events[aux].event) else ret=ret+1 end end events=nil return(ret) end function doNPCTalkALot(msgs,interval) local e={} local ret={} if interval==nil then interval=3000 end --3 seconds is default time between messages for aux=1,table.getn(msgs) do e[aux]={} doCreatureSayWithDelay(getNpcCid(),msgs[aux],TALKTYPE_PRIVATE_NP,(aux-1)*interval,e[aux]) table.insert(ret,e[aux]) end return(ret) 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(msgcontains(msg, 'Blessing') or msgcontains(msg, 'blessing')) then selfSay('Vejamos, posso vender pra você {Bless} e também {Bless PvP}, o que deseja?', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'Comando') or msgcontains(msg, 'comando') or msgcontains(msg, 'Comando Bless') or msgcontains(msg, 'comando bless')) then selfSay('Eu posso vender para você o comando "!bless full". No entanto, ele custa {120.000 gold coin}. Deseja comprar?', cid) talkState[talkUser] = 2 elseif((msgcontains(msg, 'Yes') or msgcontains(msg, 'yes')) and talkState[talkUser] == 2) then if getPlayerStorageValue(cid,834005) == 1 then selfSay('Você já comprou esse comando.', cid) talkState[talkUser] = 0 else if doPlayerRemoveMoney(cid, 120000) == TRUE then selfSay('Pronto! Agora você pode usar o comando {!bless}', cid) doSendMagicEffect(getPlayerPosition(cid), 49) setPlayerStorageValue(cid, 834005, 1) talkState[talkUser] = 0 else selfSay('Você não tem o dinheiro necessário.', cid) talkState[talkUser] = 0 end end elseif((msgcontains(msg, 'No') or msgcontains(msg, 'no')) and talkState[talkUser] == 2) then selfSay('Sem problemas.', cid) talkState[talkUser] = 0 elseif(msgcontains(msg, 'Bless') or msgcontains(msg, 'bless')) then selfSay('Eu posso lhe conceder todas as benções por {50.000 gold coin}. Deseja comprar? - [{Yes} | {No}]', cid) talkState[talkUser] = 3 elseif((msgcontains(msg, 'Yes') or msgcontains(msg, 'yes')) and talkState[talkUser] == 3) then if getPlayerBlessing(cid, 1) or getPlayerBlessing(cid, 2) or getPlayerBlessing(cid, 3) or getPlayerBlessing(cid, 4) or getPlayerBlessing(cid, 5) then selfSay('Você já tem todas as benções.', cid) talkState[talkUser] = 0 else if doPlayerRemoveMoney(cid, 50000) == TRUE then selfSay('Você agora está protegido!', cid) doSendMagicEffect(getPlayerPosition(cid), 49) doPlayerAddBlessing(cid, 1) doPlayerAddBlessing(cid, 2) doPlayerAddBlessing(cid, 3) doPlayerAddBlessing(cid, 4) doPlayerAddBlessing(cid, 5) talkState[talkUser] = 0 else selfSay('Você não tem o dinheiro necessário.', cid) end end elseif((msgcontains(msg, 'No') or msgcontains(msg, 'no')) and talkState[talkUser] == 3) then selfSay('Tudo bem, mas tenho novas coisas para vender.', cid) talkState[talkUser] = 0 elseif(msgcontains(msg, 'Bless PvP') or msgcontains(msg, 'bless pvp')) then selfSay('Eu posso lhe conceder a Bless PvP por {50.000 gold coin}. Deseja comprar? - [{Yes} | {No}]', cid) talkState[talkUser] = 4 elseif((msgcontains(msg, 'Yes') or msgcontains(msg, 'yes')) and talkState[talkUser] == 4) then if getPlayerBlessing(cid, 6) then selfSay('Você já tem todas as benções.', cid) talkState[talkUser] = 0 else if doPlayerRemoveMoney(cid, 50000) == TRUE then selfSay('Você agora está protegido!', cid) doSendMagicEffect(getPlayerPosition(cid), 49) -- doPlayerSetPVPBlessing(cid) doPlayerAddBlessing(cid, 6) talkState[talkUser] = 0 else selfSay('Você não tem o dinheiro necessário.', cid) end end elseif((msgcontains(msg, 'No') or msgcontains(msg, 'no')) and talkState[talkUser] == 4) then selfSay('Volte quando tiver interesse.', cid) talkState[talkUser] = 0 end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  8. 1 ponto
    Já tentou usar o Object Builder? Nunca tive problemas com ele. https://github.com/ottools/ObjectBuilder/releases/download/v0.4.3/ObjectBuilder_0_4_3.zip
  9. 1 ponto
    Isso mesmo. Cria ele e me diz como funciona que eu adiciono no NPC. Até lá... Vou ficar de devendo essa. Isso já está dentro da minha jurisdição (). Testa isso aqui: 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 doCreatureSayWithDelay(cid,text,type,delay,e) if delay<=0 then doCreatureSay(cid,text,type) else local func=function(pars) doCreatureSay(pars.cid,pars.text,pars.type) pars.e.done=TRUE end e.done=FALSE e.event=addEvent(func,delay,{cid=cid, text=text, type=type, e=e}) end end function cancelNPCTalk(events) local ret=1 for aux=1,table.getn(events) do if events[aux].done==FALSE then stopEvent(events[aux].event) else ret=ret+1 end end events=nil return(ret) end function doNPCTalkALot(msgs,interval) local e={} local ret={} if interval==nil then interval=3000 end --3 seconds is default time between messages for aux=1,table.getn(msgs) do e[aux]={} doCreatureSayWithDelay(getNpcCid(),msgs[aux],TALKTYPE_PRIVATE_NP,(aux-1)*interval,e[aux]) table.insert(ret,e[aux]) end return(ret) 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(msgcontains(msg, 'Bless') or msgcontains(msg, 'bless')) then selfSay('Vejamos, posso vender pra você agora o Comando {bless full} ou {Blessing} e também {Bless PvP}, o que deseja?', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'Comando') or msgcontains(msg, 'comando') or msgcontains(msg, 'Bless Full') or msgcontains(msg, 'bless full')) then selfSay('Eu posso vender para você o comando "!bless full". No entanto, ele custa {10.000 gold coin}. Deseja comprar?', cid) talkState[talkUser] = 2 elseif((msgcontains(msg, 'Yes') or msgcontains(msg, 'yes')) and talkState[talkUser] == 2) then if getPlayerStorageValue(cid,834005) == 1 then selfSay('Você já comprou esse comando.', cid) talkState[talkUser] = 0 else if doPlayerRemoveMoney(cid, 10000) == TRUE then selfSay('Pronto! Agora você pode usar o comando {!bless full}', cid) doSendMagicEffect(getPlayerPosition(cid), 49) setPlayerStorageValue(cid, 834005, 1) talkState[talkUser] = 0 else selfSay('Você não tem o dinheiro necessário.', cid) talkState[talkUser] = 0 end end elseif((msgcontains(msg, 'No') or msgcontains(msg, 'no')) and talkState[talkUser] == 2) then selfSay('Sem problemas.', cid) talkState[talkUser] = 0 elseif(msgcontains(msg, 'Blessing') or msgcontains(msg, 'blessing')) then selfSay('Eu posso lhe conceder todas as benções por {20.000 gold coin}. Deseja comprar? - [{Yes} | {No}]', cid) talkState[talkUser] = 3 elseif((msgcontains(msg, 'Yes') or msgcontains(msg, 'yes')) and talkState[talkUser] == 3) then if getPlayerBlessing(cid, 1) or getPlayerBlessing(cid, 2) or getPlayerBlessing(cid, 3) or getPlayerBlessing(cid, 4) or getPlayerBlessing(cid, 5) then selfSay('Você já tem todas as benções.', cid) talkState[talkUser] = 0 else if doPlayerRemoveMoney(cid, 20000) == TRUE then selfSay('Você agora está protegido!', cid) doSendMagicEffect(getPlayerPosition(cid), 49) doPlayerAddBlessing(cid, 1) doPlayerAddBlessing(cid, 2) doPlayerAddBlessing(cid, 3) doPlayerAddBlessing(cid, 4) doPlayerAddBlessing(cid, 5) talkState[talkUser] = 0 else selfSay('Você não tem o dinheiro necessário.', cid) end end elseif((msgcontains(msg, 'No') or msgcontains(msg, 'no')) and talkState[talkUser] == 3) then selfSay('Tudo bem, mas tenho novas coisas para vender.', cid) talkState[talkUser] = 0 end return TRUE end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  10. Task System - Storages

    encidess reagiu a fontanaxt por uma resposta no tópico

    1 ponto
    Olá á todos, gostaria de pedir uma força na questão das tasks. Estou utilizando o sistema de task onde tudo está funcionando corretamente, exceto o teleport dos bosses. . Oque eu fiz: Criei o documento bosscrocodilo.lua em data/movements/scripts/task contendo : function onStepIn(cid, item, pos) local config = { bosspos = { {x=32617,y=32730,z=8}, -- position where yakchal first spawns }, boss = "The Snapper", -- name of the boss } local thais = {x=32611, y=32723, z=8} local thaiss = {x=32609, y=32713, z=8} if item.actionid == 16370 and getPlayerStorageValue (cid, 35000) == 1 and getPlayerStorageValue (cid, 1500) == -1 then doTeleportThing(cid,thais) doSendMagicEffect(getCreaturePosition(cid),10) doCreatureSay(cid, 'You have ten minutes to kill and loot this boss, else you will lose that chance and will be kicked out.', TALKTYPE_ORANGE_1) doPlayerSetStorageValue (cid, 1500, 1) doSummonCreature(config.boss, config.bosspos[1]) elseif getPlayerStorageValue (cid, 1500) == -1 then doTeleportThing(cid,thaiss) doCreatureSay(cid, 'You did not complete the task Quest!', TALKTYPE_ORANGE_1) else doTeleportThing(cid,thaiss) doCreatureSay(cid, 'You already had a chance to kill The Snapper.', TALKTYPE_ORANGE_1) end return 1 end E registrei o movement em data/movements/movements.xml : <movevent type="StepIn" actionid="16370" event="script" value="task/bosscrocodile.lua"/> Utilizando de base a lib em data/lib/killinginthenameof.lua : RANK_NONE = 0 RANK_HUNTSMAN = 1 RANK_RANGER = 2 RANK_BIGGAMEHUNTER = 3 RANK_TROPHYHUNTER = 4 RANK_ELITEHUNTER = 5 REWARD_MONEY = 1 REWARD_EXP = 2 REWARD_ACHIEVEMENT = 3 REWARD_STORAGE = 4 REWARD_POINT = 5 REWARD_ITEM = 6 QUESTSTORAGE_BASE = 1500 KILLSSTORAGE_BASE = 65000 REPEATSTORAGE_BASE = 48950 POINTSSTORAGE = 2500 tasks = { --Tasks for level 6 to 49. [1] = {killsRequired = 100, raceName = "Trolls", level = {6, 19}, premium = true, creatures = {"troll", "troll champion", "island troll", "swamp troll"}, rewards = { {type = "exp", value = {200}}, {type = "money", value = {200}} }}, [2] = {killsRequired = 150, raceName = "Goblins", level = {6, 19}, premium = true, creatures = {"goblin", "goblin assassin", "goblin leader"}, rewards = { {type = "exp", value = {300}}, {type = "money", value = {250}} }}, [3] = {killsRequired = 10, raceName = "Crocodiles", level = {6, 49}, premium = true, creatures = {"crocodile"}, rewards = { {type = "exp", value = {800}}, {type = "achievement", value = {"Blood-Red Snapper"}}, {type = "storage", value = {35000, 1}}, {type = "points", value = {1}} }}, [4] = {killsRequired = 300, raceName = "Badgers", level = {6, 49}, premium = true, creatures = {"badger"}, rewards = { {type = "exp", value = {500}}, {type = "points", value = {1}} }}, [5] = {killsRequired = 10, raceName = "Tarantulas", level = {6, 49}, premium = true, creatures = {"tarantula"}, rewards = { {type = "exp", value = {1500}}, {type = "achievement", value = {"No More Hiding"}}, {type = "storage", value = {35001, 1}}, {type = "points", value = {2}} }}, [6] = {killsRequired = 150, raceName = "Carniphilas", level = {6, 49}, premium = true, creatures = {"carniphila"}, rewards = { {type = "exp", value = {2500}}, {type = "achievement", value = {"Rootless Behaviour"}}, {type = "storage", value = {35002, 1}}, {type = "points", value = {3}} }}, [7] = {killsRequired = 200, raceName = "Stone Golems", level = {6, 49}, premium = true, creatures = {"stone golem"}, rewards = { {type = "exp", value = {2000}}, {type = "points", value = {3}} }}, [8] = {killsRequired = 10, raceName = "Mammoths", level = {6, 49}, premium = true, creatures = {"mammoth"}, rewards = { {type = "exp", value = {4000}}, {type = "achievement", value = {"Meat Skewer"}}, {type = "storage", value = {35003, 1}}, {type = "points", value = {3}} }}, [9] = {killsRequired = 300, raceName = "Gnarlhounds", level = {6, 49}, premium = true, creatures = {"gnarlhound"}, rewards = { {type = "exp", value = {1000}}, {type = "points", value = {2}} }}, [10] = {killsRequired = 300, raceName = "Terramites", level = {6, 49}, premium = true, creatures = {"terramite"}, rewards = { {type = "exp", value = {1000}}, {type = "points", value = {2}} }}, [11] = {killsRequired = 300, raceName = "Apes", level = {6, 49}, premium = true, creatures = {"kongra", "sibang", "merklin"}, rewards = { {type = "exp", value = {1000}}, {type = "points", value = {2}} }}, [12] = {killsRequired = 300, raceName = "Thornback Tortoises", level = {6, 49}, premium = true, creatures = {"thornback tortoise"}, rewards = { {type = "exp", value = {1500}}, {type = "points", value = {2}} }}, [13] = {killsRequired = 300, raceName = "Gargoyles", level = {6, 49}, premium = true, creatures = {"gargoyle"}, rewards = { {type = "exp", value = {1500}} }}, --Tasks for level 50 to 79. [14] = {killsRequired = 300, raceName = "Ice Golems", level = {50, 79}, premium = true, creatures = {"ice golem"}, rewards = { {type = "exp", value = {12000}}, {type = "achievement", value = {"Breaking The Ice"}}, {type = "storage", value = {35004, 1}}, {type = "points", value = {2}} }}, [15] = {killsRequired = 400, raceName = "Quara Scouts", level = {50, 79}, premium = true, creatures = {"quara pincher scout", "quara predator scout", "quara hydromancer scout", "quara constrictor scout", "quara mantassin scout"}, rewards = { {type = "exp", value = {10000}}, {type = "points", value = {2}} }}, [16] = {killsRequired = 400, raceName = "Mutated Rats", level = {50, 79}, premium = true, creatures = {"mutated rat"}, rewards = { {type = "exp", value = {10000}}, {type = "achievement", value = {"Twisted Mutation"}}, {type = "storage", value = {35005, 1}}, {type = "points", value = {2}} }}, [17] = {killsRequired = 250, raceName = "Ancient Scarabs", level = {50, 79}, premium = true, creatures = {"ancient scarab"}, rewards = { {type = "exp", value = {15000}}, {type = "achievement", value = {"Crawling Death"}}, {type = "storage", value = {35006, 1}}, {type = "points", value = {2}} }}, [18] = {killsRequired = 300, raceName = "Wyverns", level = {50, 79}, premium = true, creatures = {"wyvern"}, rewards = { {type = "exp", value = {12000}}, {type = "points", value = {2}} }}, [19] = {killsRequired = 300, raceName = "Lancer Beetles", level = {50, 79}, premium = true, creatures = {"lancer beetle"}, rewards = { {type = "exp", value = {8000}}, {type = "points", value = {2}} }}, [20] = {killsRequired = 400, raceName = "Wailing Widows", level = {50, 79}, premium = true, creatures = {"wailing widow"}, rewards = { {type = "exp", value = {12000}}, {type = "points", value = {3}} }}, [21] = {killsRequired = 250, raceName = "Killer Caimans", level = {50, 79}, premium = true, creatures = {"killer caiman"}, rewards = { {type = "exp", value = {10000}}, {type = "points", value = {2}} }}, [22] = {killsRequired = 300, raceName = "Bonebeasts", level = {50, 79}, premium = true, creatures = {"bonebeast"}, rewards = { {type = "exp", value = {12000}}, {type = "achievement", value = {"Spareribs for Dinner"}}, {type = "storage", value = {35007, 1}}, {type = "points", value = {2}} }}, [23] = {killsRequired = 300, raceName = "Crystal Spiders", level = {50, 79}, creatures = {"crystal spider"}, premium = true, rewards = { {type = "exp", value = {15000}}, {type = "achievement", value = {"Arachnoise"}}, {type = "storage", value = {35008, 1}}, {type = "points", value = {3}} }}, [24] = {killsRequired = 300, raceName = "Mutated Tigers", level = {50, 79}, premium = true, creatures = {"mutated tiger"}, rewards = { {type = "exp", value = {12000}}, {type = "points", value = {2}} }}, --Taks for level 80 to 129. [25] = {killsRequired = 600, raceName = "Underwater Quara", level = {80, 129}, premium = true, creatures = {"quara hydromancer", "quara predator", "quara constrictor", "quara mantassin", "quara pincher"}, rewards = { {type = "exp", value = {15000}}, {type = "achievement", value = {"Back into the Abyss"}}, {type = "storage", value = {35009, 1}}, {type = "points", value = {3}} }}, [26] = {killsRequired = 500, raceName = "Giant Spiders", level = {80, 129}, premium = true, creatures = {"giant spider"}, rewards = { {type = "exp", value = {20000}}, {type = "achievement", value = {"Choking on Her Venom"}}, {type = "storage", value = {35010, 1}}, {type = "points", value = {3}} }}, [27] = {killsRequired = 300, raceName = "Werewolves", level = {80, 129}, premium = true, creatures = {"werewolf"}, rewards = { {type = "exp", value = {30000}}, {type = "achievement", value = {"Howly Silence"}}, {type = "storage", value = {35011, 1}}, {type = "points", value = {4}} }}, [28] = {killsRequired = 400, raceName = "Nightmares", level = {80, 129}, premium = true, creatures = {"nightmare", "nightmare scion"}, rewards = { {type = "exp", value = {25000}}, {type = "achievement", value = {"Dream is Over"}}, {type = "storage", value = {35012, 1}}, {type = "points", value = {3}} }}, [29] = {killsRequired = 600, raceName = "Hellspawns", level = {80, 129}, premium = true, creatures = {"hellspawn"}, rewards = { {type = "exp", value = {25000}}, {type = "achievement", value = {"Scorched Flames"}}, {type = "storage", value = {35013, 1}} }}, [30] = {killsRequired = 800, raceName = "High Class Lizards", level = {80, 129}, premium = true, creatures = {"lizard chosen", "lizard dragon priest", "lizard high guard", "lizard legionnaire"}, rewards = { {type = "exp", value = {30000}}, {type = "achievement", value = {"Zzztill Zzztanding!"}}, {type = "storage", value = {35014, 1}}, {type = "points", value = {3}} }}, [31] = {killsRequired = 600, raceName = "Stampors", level = {80, 129}, premium = true, creatures = {"stampor"}, rewards = { {type = "exp", value = {20000}}, {type = "achievement", value = {"Stepped on a Big Toe"}}, {type = "storage", value = {35015, 1}}, {type = "points", value = {3}} }}, [32] = {killsRequired = 500, raceName = "Brimstone Bugs", level = {80, 129}, premium = true, creatures = {"brimstone bug"}, rewards = { {type = "exp", value = {15000}}, {type = "achievement", value = {"Something Smells"}}, {type = "storage", value = {35016, 1}}, {type = "points", value = {3}} }}, [33] = {killsRequired = 400, raceName = "Mutated Bats", level = {80, 129}, premium = true, creatures = {"mutated bat"}, rewards = { {type = "exp", value = {20000}}, {type = "achievement", value = {"Kapow!"}}, {type = "storage", value = {35017, 1}}, {type = "points", value = {2}} }}, --Tasks for level 130+ [34] = {killsRequired = 650, raceName = "Hydras", level = {130, 9999}, premium = true, creatures = {"hydra"}, rewards = { {type = "exp", value = {30000}}, {type = "achievement", value = {"One Less"}}, {type = "storage", value = {35018, 1}}, {type = "points", value = {3}} }}, [35] = {killsRequired = 800, raceName = "Serpent Spawns", level = {130, 9999}, premium = true, creatures = {"serpent spawn"}, rewards = { {type = "exp", value = {30000}}, {type = "achievement", value = {"Hissing Downfall"}}, {type = "storage", value = {35019, 1}}, {type = "points", value = {4}} }}, [36] = {killsRequired = 500, raceName = "Medusae", level = {130, 9999}, premium = true, creatures = {"medusa"}, rewards = { {type = "exp", value = {40000}}, {type = "achievement", value = {"The Serpent's Bride"}}, {type = "storage", value = {35020, 1}}, {type = "points", value = {5}} }}, [37] = {killsRequired = 700, raceName = "Behemoths", level = {130, 9999}, premium = true, creatures = {"behemoth"}, rewards = { {type = "exp", value = {30000}}, {type = "achievement", value = {"Just Cracked Me Up!"}}, {type = "storage", value = {35021, 1}}, {type = "points", value = {4}} }}, [38] = {killsRequired = 900, raceName = "Sea Serpents and Young Sea Serpents", level = {130, 9999}, premium = true, creatures = {"sea serpent", "young sea serpent"}, rewards = { {type = "exp", value = {30000}}, {type = "achievement", value = {"The Drowned Sea God"}}, {type = "storage", value = {35022, 1}}, {type = "points", value = {4}} }}, [39] = {killsRequired = 250, raceName = "Hellhounds", level = {130, 9999}, premium = true, creatures = {"hellhound"}, rewards = { {type = "exp", value = {40000}}, {type = "achievement", value = {"The Gates of Hell"}}, {type = "storage", value = {35023, 1}}, {type = "points", value = {5}} }}, [40] = {killsRequired = 500, raceName = "Ghastly Dragons", level = {130, 9999}, premium = true, creatures = {"ghastly dragon"}, rewards = { {type = "exp", value = {30000}}, {type = "achievement", value = {"Beautiful Agony"}}, {type = "storage", value = {35024, 1}}, {type = "points", value = {5}} }}, [41] = {killsRequired = 900, raceName = "Drakens", level = {130, 9999}, premium = true, creatures = {"draken spellweaver", "draken warmaster", "draken abomination", "draken elite"} , rewards = { {type = "exp", value = {30000}}, {type = "achievement", value = {"Enter zze Draken!"}}, {type = "storage", value = {35025, 1}}, {type = "points", value = {3}} }}, [42] = {killsRequired = 650, raceName = "Destroyers", level = {130, 9999}, premium = true, creatures = {"destroyer"}, rewards = { {type = "exp", value = {30000}}, {type = "achievement", value = {"Best there was!"}}, {type = "storage", value = {35026, 1}}, {type = "points", value = {4}} }}, [43] = {killsRequired = 400, raceName = "Undead Dragons", level = {130, 9999}, premium = true, creatures = {"undead dragon"}, rewards = { {type = "exp", value = {50000}}, {type = "achievement", value = {"Back from the Dead"}}, {type = "storage", value = {35027, 1}}, {type = "points", value = {6}} }}, --Special tasks. [44] = {killsRequired = 6666, raceName = "Demons", level = {130, 9999}, rank = RANK_ELITEHUNTER, premium = true, creatures = {"demon"}, rewards = { {type = "storage", value = {41300, 1}} --Storage that let's you to start Demon Oak }}, [45] = {killsRequired = 500, raceName = "Green Djinns or Efreets", level = {1, 9999}, storage = {12500, 1}, premium = true, creatures = {"green djinn", "efreet"}, rewards = { --Requires an storage (Gained on The Djinn War - Marid Faction) {type = "exp", value = {10000}}, {type = "money", value = {5000}}, {type = "storage", value = {35028, 1}} }}, [46] = {killsRequired = 500, raceName = "Blue Djinns or Marids", level = {1, 9999}, storage = {12501, 1}, premium = true, creatures = {"blue djinn", "marid"}, rewards = { --Requires an storage (Gained on The Djinn War - Efreet Faction) {type = "exp", value = {10000}}, {type = "money", value = {5000}}, {type = "storage", value = {35029, 1}} }}, [47] = {killsRequired = 3000, raceName = "Pirates", level = {1, 9999}, storage = {12600, 1}, premium = true, creatures = {"pirate ghost", "pirate marauder", "pirate cutthroad", "pirate buccaneer", "pirate corsair", "pirate skeleton"}, rewards = { --Requires an storage (Gained on The Shattered Isles Quest) {type = "exp", value = {10000}}, {type = "money", value = {5000}}, {type = "storage", value = {35030, 1}} }}, [48] = {killsRequired = 3000, raceName = "Pirates second task", level = {1, 9999}, storage = {REPEATSTORAGE_BASE + 47, 3}, norepeatable = true, premium = true, creatures = {"pirate ghost", "pirate marauder", "pirate cutthroad", "pirate buccaneer", "pirate corsair", "pirate skeleton"}, rewards = { --Requires an storage (Gained completing Raymond Striker's first task three times.) NOTE: The required storage to start this task is: base + first pirate task id (47) {type = "exp", value = {10000}}, {type = "money", value = {5000}}, {type = "storage", value = {35031, 1}} }}, [49] = {killsRequired = 5000, raceName = "Minotaurs", level = {1, 40}, storage = {12700, 1}, norepeatable = true, premium = false, creatures = {"minotaur", "minotaur mage", "minotaur archer"}, rewards = { --Requires an storage (Gained on To Outfox a Fox Quest) {type = "storage", value = {35032, 1}} }}, [50] = {killsRequired = 4000, raceName = "Necromancers and Priestess", level = {60, 9999}, norepeatable = true, premium = true, creatures = {"necromancer", "priestess"}, rewards = { --Requires an storage (Gained on To Outfox a Fox Quest) {type = "storage", value = {35033, 1}}, {type = "storage", value = {12800, 1}} --storage to stark the second Necromancers and Priestess task. }}, [49] = {killsRequired = 1000, name = "Necromancers and Priestess second task", raceName = "Necromancers and Priestess", level = {60, 9999}, storage = {12800, 1}, norepeatable = true, premium = true, creatures = {"necromancer", "priestess"}, rewards = { --Requires an storage (Gained on To Outfox a Fox Quest) {type = "exp", value = {40000}}, {type = "storage", value = {35033, 1}} }}, } tasksByPlayer = 3 repeatTimes = 1 function getPlayerRank(cid) return (getPlayerStorageValue(cid, POINTSSTORAGE) >= 100 and RANK_ELITEHUNTER or getPlayerStorageValue(cid, POINTSSTORAGE) >= 70 and RANK_TROPHYHUNTER or getPlayerStorageValue(cid, POINTSSTORAGE) >= 40 and RANK_BIGGAMEHUNTER or getPlayerStorageValue(cid, POINTSSTORAGE) >= 20 and RANK_RANGER or getPlayerStorageValue(cid, POINTSSTORAGE) >= 10 and RANK_HUNTSMAN or RANK_NONE) end function getTaskByName(name, table) local t = (table and table or tasks) for k, v in pairs(t) do if v.name then if v.name:lower() == name:lower() then return k end else if v.raceName:lower() == name:lower() then return k end end end return false end function getTasksByPlayer(cid) local canmake = {} local able = {} for k, v in pairs(tasks) do if getCreatureStorage(cid, QUESTSTORAGE_BASE + k) < 1 and getCreatureStorage(cid, REPEATSTORAGE_BASE + k) < repeatTimes then able[k] = true if getPlayerLevel(cid) < v.level[1] or getPlayerLevel(cid) > v.level[2] then able[k] = false end if v.storage and getCreatureStorage(cid, v.storage[1]) < v.storage[2] then able[k] = false end if v.rank then if getPlayerRank(cid) < v.rank then able[k] = false end end if v.premium then if not isPremium(cid) then able[k] = false end end if able[k] then table.insert(canmake, k) end end end return canmake end function canStartTask(cid, name, table) local v = "" local id = 0 local t = (table and table or tasks) for k, i in pairs(t) do if i.name then if i.name:lower() == name:lower() then v = i id = k break end else if i.raceName:lower() == name:lower() then v = i id = k break end end end if v == "" then return false end if getCreatureStorage(cid, QUESTSTORAGE_BASE + id) > 0 then return false end if (getCreatureStorage(cid, REPEATSTORAGE_BASE + id) >= repeatTimes) or (v.norepeatable and getCreatureStorage(cid, REPEATSTORAGE_BASE + id) > 0) then return false end if getPlayerLevel(cid) >= v.level[1] and getPlayerLevel(cid) <= v.level[2] then if v.premium then if isPremium(cid) then if v.rank then if getPlayerRank(cid) >= v.rank then if v.storage then if getCreatureStorage(cid, v.storage[1]) >= v.storage[2] then return true end else return true end end else return true end end else return true end end return false end function getPlayerStartedTasks(cid) local tmp = {} for k, v in pairs(tasks) do if getCreatureStorage(cid, QUESTSTORAGE_BASE + k) > 0 and getCreatureStorage(cid, QUESTSTORAGE_BASE + k) < 2 then table.insert(tmp, k) end end return tmp end function isSummon(cid) return getCreatureMaster(cid) ~= cid or false end Linkei o teleport no RME pelo ID action correspondente do boss. Desta forma ocorre o seguinte: Eu faço a task, mato os monstros necessários no caso 10 crocodiles, reporto a task. vou até o teleport e entro na sala normalmente o boss The Snapper é sumonado corretamente. Porém ao matar o boss dos crocodilos, não consigo entrar no boss das tarantulas "HIDE" quando vou entrar no teleport recebo a mensagem que eu já tive a oportunidade para matar o boss. function onStepIn(cid, item, pos) local config = { bosspos = { {x=32816,y=32709,z=8}, -- position where yakchal first spawns }, boss = "Hide", -- name of the boss } local thais = {x=32816, y=32703, z=8} local thaiss = {x=32823, y=32693, z=8} if item.actionid == 16371 and getPlayerStorageValue (cid, 35001) == 1 and getPlayerStorageValue (cid, 1500) == -1 then doTeleportThing(cid,thais) doSendMagicEffect(getCreaturePosition(cid),10) doCreatureSay(cid, 'You have ten minutes to kill and loot this boss, else you will lose that chance and will be kicked out.', TALKTYPE_ORANGE_1) doPlayerSetStorageValue (cid, 35001, 1) doSummonCreature(config.boss, config.bosspos[1]) elseif getPlayerStorageValue (cid, 1500) == -1 then doTeleportThing(cid,thaiss) doCreatureSay(cid, 'You did not complete the task Quest!', TALKTYPE_ORANGE_1) else doTeleportThing(cid,thaiss) doCreatureSay(cid, 'You already had a chance to kill Hide.', TALKTYPE_ORANGE_1) end return 1 end Gostaria de saber como faço para criar os teleport para os proximos boss, acho que estou configurando as PlayerStorages errado. Alguém poderia me ajudar?
  11. 1 ponto
    Olá, meu dedicado fez uma atualização de sistema, e agora me aparece o seguinte erro ao executar: ./tfs: error while loading shared libraries: liblua5.2.so.0: cannot open shared object file: No such file or directory EDIT: RESOLVIDO, SEGUE A SOLUÇÃO PARA PROBLEMAS SEMELHANTE SE ALGUEM TIVER apt-get install git cmake build-essential liblua5.2-dev libgmp3-dev libmysqlclient-dev libboost-system-dev libpugixml-dev libboost-iostreams-dev
  12. Script Item

    Apache reagiu a NighteyeTV por uma resposta no tópico

    1 ponto
    Vdd, acabei falando em erro pq o cara citou como erro... kkk Reforçando! Esse não é o motivo de n abrir RME
  13. 1 ponto
    COMO MUDAR A PORTA>> a porta vc muda no xampp , pra mudar a porta vc entra no xampp , ai vai ter os botoes de start,admin,config clica no config e entra em HTTPD.CONF dps de entrar , voçe procura tudo relacionado a "80" e muda pra "8090" , e pronto !!. IPGLOBAL>>O ip Global Seria o Ip q Todos Podem Acessar Sua maquina de qualquer lugar do mundo , por exemplo "177.299.41.444", O Ip Global tmb pode ser visto no seu roteador , é só vc acessar seu roteador q vc vera seu ip global la , ou vc digita "My Ip" No Google , que vc descobre qual é seu ip Global!!. CRIANDO 2 IP'S>>Pra Voçe Criar 2 "Ip" que no caso é só uma mascara com a porta "8090" e outra só com a "80" é simples , basta vc criar uma conta no "no-ip" e baixar o client deles pra atualizar o ip global de 4 em 4 minutos , pra criar 2 mascara funcionando , uma para o client e outra para o site , é só vc criar uma mascara (um dns) com o ip global com a porta "8090" e para o Host Do ot vc cria uma outra mascara com a porta normal sem mexer em nada , feito isso , é só coloca aquela mascara de dns com a porta normal no seu config.lua , e a outra mascara de dns que vc criou com a porta "8090" vc passa para os seus amigos entrarem!!. OBS:Voçe Nao Pode Entra No Seu Ip Global , Para Acessar Seu site e seu host no client , tem que entrar pelo ip local , no site para entrar no ip local , tem q ser seu ip local ++ a porta "8090" no caso ficaria assim "192.168.0.1:8090" e se voçe quiser logar no seu ot , vc vai ter q fazer 2 client , um para os players com o endereço com a mascara do host q no caso seria com a porta normal , e para o site seria com o ip "8090"!!.. espero ter ajudado !!!
  14. [Pedido] Sprite de Espada

    gustavof reagiu a goldentivit por uma resposta no tópico

    1 ponto
    Não ficou a melhor coisa do mundo, mas acho que pode quebrar o galho enquanto alguém não manda uma boa
  15. [Ajuda]

    tataboy67 reagiu a luangop por uma resposta no tópico

    1 ponto
    @ES Ichigo Percebi que você deixou passar isso: if getPlayerLevel(cid) >= level and price >= 50 then doRemoveItem(2160, 50) rsrs if getPlayerLevel(cid) >= level and getPlayerItemCount(cid, 2160) >= price then doPlayerRemoveItem(cid, 2160, 50) Reformulando todo script, eu faria assim: function onUse(cid, item, fromPosition, itemEx, toPosition) local level = 1000 local price = 50 toPos = { x = 359 , y = 1667 , z = 7 } if getPlayerLevel(cid) >= level and getPlayerItemCount(cid, 2160) >= price then doPlayerRemoveItem(cid, 2160, price) doTeleportThing(cid, toPos) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você foi teleportado!") else if getPlayerLevel(cid) < level and getPlayerItemCount(cid, 2160) < price then str = "Você não possui level ".. level .." e não tem ".. price .." HD!!!" elseif getPlayerLevel(cid) < level and getPlayerItemCount(cid, 2160) >= price then str = "Você não possui level ".. level .."!" elseif getPlayerItemCount(cid, 2160) < price and getPlayerLevel(cid) >= level then str = "Você não possui ".. price .." HD!" end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, str) end return true end Tem uma forma melhor, eu sei disso, porém eu me perco se botar muito if em cima de if kkk
  16. [Ajuda]

    tataboy67 reagiu a Cjaker por uma resposta no tópico

    1 ponto
    Mude toPos = {x=359, y=1667, z=7}, Para toPos = {x=359, y=1667, z=7} Mude end return true Para return true end Mude doPlayerSendTextMessage(cid, "Você foi teleportado !") else doPlayerSendTextMessage(cid, "Você não possui level " .. level .. " e não tem " .. price .. " HD!!!") Para doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você foi teleportado !") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Você não possui level " .. level .. " e não tem " .. price .. " HD!!!") A syntax estará correta após essas alterações, vendo as funções teve só erro no return e doPlayerSendTextMessage. Teste e me avise aqui no tópico.
  17. (PEDIDO) Dat,Spr tibia rme

    Guigobrtyoyyyuyuiuiy reagiu a RagnorEsper por uma resposta no tópico

    1 ponto
    Tenta esse e avisa se deu certo... se der algum erro, posta a print do erro... https://mega.nz/#!T98AkIza!ec4caa6JpewcrJwmUV-fIQywn2Mp-jGiAhMQbO2WgcA
  18. Aprendendo a perspectiva.

    Ishiban reagiu a Ewerton Weto Costa por uma resposta no tópico

    1 ponto
    Boas povo, bom to criando esse tutorial para ajudar vocês com a perspectiva que muitos acham que ser um bixo de 7 cabeças. Mas na verdade é mais simples do que parece. Bom vamos lá! Se você tem dificuldades faça uma caixa com esta, se seu sprite se encaixar perfeitamente significa que ele está na perspectiva correta, se ficar torto tem algo errado! Faça seu sprite e certifique se que ele encaixe como este! < Lembre se deixar as mãos e os pés alinhados! Caixas maiores para criaturas maiores! Funciona da mesma forma é só ver se encaixa perfeitamente na caixa. Mãos a obra! Qualquer dúvida contate-me, seria um prazer ajudar!
  19. [TFS 1.2 10.99 - 11.00] LIMPO

    Cicuta Verde reagiu a Wake por uma resposta no tópico

    1 ponto
    https://github.com/otland/forgottenserver
  20. (Resolvido)[PEDIDO] Script TOP LEVEL

    ArielZeRah reagiu a Bruno Minervino por uma resposta no tópico

    1 ponto
    Em data/creaturescripts/creaturescripts.xml adicione: <event type="login" name="TopEffect" event="script" value="topeffect.lua"/> Em data/creaturescripts/scripts/login.lua adicione no fim: registerCreatureEvent(cid, "TopEffect") Agora crie um arquivo em data/creaturescripts/scripts com o nome topeffect.lua e adicione: local tempo = 10 --tempo em segundos function onLogin(cid) query = db.getResult("SELECT `name`, `level` FROM `players` WHERE `group_id` < 2 ORDER BY `level` DESC LIMIT 1") if (query:getID() ~= -1) then name = query:getDataString("name") if getPlayerName(cid) == name then TopEffect(cid) end end return true end function TopEffect(cid) if isPlayer(cid) then doSendAnimatedText(getCreaturePosition(cid), "[TOP]", TEXTCOLOR_LIGHTBLUE) doSendMagicEffect(getCreaturePosition(cid), 30) addEvent(TopEffect, tempo*1000, cid) end return true end Altere apenas a primeira linha de acordo com sua necessidade. Espero ter ajudado! EDIT: Coloquei um outro efeito também rsrs
  21. (Resolvido)Spell INOVADORA !

    Rikikajimo reagiu a buddha por uma resposta no tópico

    1 ponto
    Fera, acabei de pensar numa maneira simples de criar sua spell tão esperada de LifeSteal(o real, não esse fajuto... heuhueuhe), se quiseres eu faço pra ti aqui... Editado Vi que a do Orochi Elf é quase um LifeSteal... MAS... Tá aqui: E tem que ter a tag "casterTargetOrDirection="1"" para funcionar, tire a "selftarget="1"".
  22. Elime's NPC Editor

    fillipek2 reagiu a luanluciano93 por uma resposta no tópico

    1 ponto
    é só mudar o items.xml dentro do programa!
  23. Scripting Dictionary

    UnknowLoad reagiu a Ryzor por uma resposta no tópico

    1 ponto
    Scripting Dictionary Antes de tudo Olá comunidade Tibia King. Venho através desse tutorial facilitar a vida de muitos scripters. Trago a vocês o Scripting Dictionary. Uma forma mais simples de entender aquelas siglas ou palavrinhas chatas encontradas em todos os scripts e que poucas pessoas sabem o significado ou o motivo de estar ali. Vocês também podem ajudar a aumentar o conteúdo desse dicionário enviando-me as palavras que vocês gostariam de serem adicionadas. Para isso, poste nesse mesmo tópico. Estou disposto a atualizar sempre que for preciso o tópico, mas, caso algum imprevisto aconteça, a moderação está liberada para editar, adicionando dicas e palavras, sempre seguindo o mesmo padrão de postagem, enfatizando as palavras. Assim teremos uma melhor organização. Por fim, gostaria que todos os scripters, experientes ou não, e principalmente os que estão iniciando sua possível carreira na área, dentro da comunidade TK, lessem e corrigissem, se necessário. Começando array Array é uma variável onde há dois ou mais valores. É conhecido como vetor ou lista. Dependendo do caso, também pode ser conhecida como matriz. Cada valor dentro da array tem sua posição que é dada por um índice e que, geralmente, segue uma sequência de números inteiros. Pode ser local ou global. Exemplo: local arr = {1, 2, "valor 3", 503, variavelTeste} cid Normalmente uma variável onde é atribuida a identificação da criatura que, em muitos casos, está executando o script. A sigla cid vem do inglês Creature Identification. Exemplo: if isPlayer(cid) == TRUE then concatenação Éo ato de juntar uma ou mais strings. Em Lua, a concatenação é feita com o simbolo Ponto-Ponto (..) Exemplo: print("Skyen".."_".."Hasus") A saída gerada por esse comando seria: Skyen_Hasus. do 1. Normalmente usada no começo de funções que exercem alguma ação. Pode ser usada separada (sozinha) ou em alguma condição (ex. if). Tem sua tradução mais próxima da palavra fazer. 2. É utilizado em conjunto com o FOR, tendo de estar, obrigatoriamente, no final da linha em que há o loop for. Exemplo: doSendMagicEffect(pos, effect) Exemplo: for i =1, 10 do else É utilizado em condições. Caso todas as outras não sejam verdadeiras, o else será executado. É sempre usado sozinho e pode ser entendido como "Se não:". É utilizado em conjunto do if. Exemplo: if 1 > 2 then else -- script end[/code] [b]elseif[/b] Assim como o else, é utilizado em conjunto do if e serve para verificar se há outra possível condição. Pode ser entendido como "Ou se:". Exemplo: [code=lua] if 1 > 2 then elseif 1 < 2 then --script end end End é utilizado para fechar todas as condições, inclusive o loop for. Significa FIM. Tudo o que abre (if e for) deve ser fechado com um end. Exemplo: if 1 > 2 then else -- script end[/code] [b]get[/b] É muito encontrada em funções, onde sempre é retornado um valor, nulo ou não. Get, em inglês, no nosso caso, tem a tradução mais próxima de obter. As funções que começam com get, nunca estarão sozinhas, e sim, dando valor a alguma variável ou comparado a algo. Exemplo: local level = getPlayerLevel(cid) [b]if[/b] Obrigatoriamente deve ter em um script. Claro, há excessões, sempre há excessões. Serve para impor uma condição. Essa condição pode ser verdadeira ou falsa. Caso seje verdadeira, a continuação do script continuará até encontrar um END, caso contrário, verificará os elseifs e se não for verdadeiro com nenhum, havendo um else, será executado o código a partir dele. A palavra if é proveniente do inglês e significa SE. Exemplo: if level >= 30 then -- (Se level maior ou igual a 30, então) [b]is[/b] Is, no começo de funções, é para fazer uma verificação. Sempre é usada em alguma condição e tem seu significado mais próximo da palavra é. Exemplo: if isPlayer(cid) == TRUE then [b]loop[/b] Loop é o nome dado a função que é executada várias vezes até que haja a condição para que ele pare. O mais utilizado é o for, mas também, na linguagem LUA temos o while e repeat. Exemplo: for i = 1, 10 do [b]parâmetros[/b] Parâmetros de uma função são todas as variáveis que se encontram entre os parênteses. Exemplo: doRemoveItem(uid) -- uid é o parâmetro da função doRemoveItem [b]syntax sugars[/b] São as facilidades que a linguagem de programação permite ao programador. Exemplo 1: [code=lua] var = "Skyen Hasus" print(string.upper(var)) -- Normal print(var:upper()) -- Syntax Sugar Ambas as saídas geradas seriam: SKYEN HASUS. Exemplo 2: teste = function(s) -- Normal end function teste(s) -- Syntax Sugar end[/code] Apesar de parecerem legais, evite usar Syntax Sugars quando desnecessário, pois podem causar problemas se usadas incorretamente. [b]set[/b] Palavra utilizada no começo de nomes de funções que estabelecem valor de algo. É muito utilizado por iniciantes apenas para quests, mas tem muito mais importância que isso. No português, tem o significado mais próximo de estabelecer. [color=DarkRed](conteúdo a ser ampliado)[/color] Exemplo: setPlayerStorageValue(cid, 3001, 1) [b]string[/b] Corresponde a um texto, as strings sempre são entre aspas. Exemplos: "string" ou 'string' Note que há dois tipos de aspas, as duas são válidas. [b]then[/b] Utilizado em conjunto do if ou do elseif. Pode ser entendido como ENTÃO. Sempre será encontrado no fim da linha em que haja as condições citadas. Exemplo: if getPlayerStorageValue(cid, 3001) > 0 then [b]variáveis[/b] Variáveis são valores reservados na memória ram do computador para serem utilizados durante o script. Pode-se entender por variável, quando é encontrado a palavra var ou variable (em inglês). Variáveis podem ser locais ou globais, nesse último caso, tendo uso em mais de uma função. Exemplo: local level = getPlayerLevel(cid) Exemplo: global estatistica = estatistica + 1 [b]Você também pode ajudar[/b] Perguntando o que você não entendeu é uma forma de ajudar. Poste suas dúvidas aqui, não tenha vergonha. Outro modo de ajudar, é postando mensagem com as palavras que você não sabe o significado ou sabe e não está aqui. Quero deixar claro que eu não sou expert e não saberei tudo. Pesquisarei e tentarei deixar o mais claro possível todo o conteúdo aqui contido. Eu gostaria que esse dicionário funcionasse como a wikipedia, onde todos podem editar e corrigir. Mas como não há a possibilidade de todos editarem, postem. Se você editou algo, ponha seu nome. Se você postar conteúdo a ser adicionado, seu nome irá ser posto aqui. [b]Atualizações[/b] 05.08.2009 - Adicionado as palavras array, loop e set. 06.08.2009 - Adicionado as palavras if, else, elseif, end, string (Nord) e then. 06.08.2009 - Atualizado a palavra do. 09.08.2009 - Adicionado as palavras concatenação e syntax sugars. (Skyen Hasus) 18.08.2009 - Atualizado a palavra end. (marcryzius) Creditos Pivizz
  24. Entendo .lua

    fontanaxt reagiu a Skyligh por uma resposta no tópico

    1 ponto
    Olá galera do tibiaking, hoje estou trazendo um tutorial para vocês que querem entender a linguagem.lua Entendendo A Linguagem.lua Então vamos aprender a linguagem . Abaixo irei amostrar todos os significado do ((if , end , else , elseif , then , and)) traduzido para o português if - Se then - Então end - Fim else - senão elseif - senãose and - e Functions Iniciais De Um Script Agora irei ensina-los qual e as functions certas para iniciar um script function onUse(cid, item, frompos, item2, topos) -- Action function onLogin(cid) -- so se for usa alguma tag no login.lua utilize essa function ela serve para creaturescripts. function onAdvance(cid, skill, oldLevel, newLevel) -- creaturescripts function onSay(cid, words, param) -- talkactions function onStepIn(cid, item, pos) -- movements Funções.lua : http://tibiaking.com...26-funcoes-lua/ Estudando Sobre If nossa primeira estrutura de controle e o if, como em todas as linguagens de programação, ela e uma estrutura que introduz um desvio condicional ou seja, um desvio de execução natural do programa Em outras palavras, se a condição dada pela expressão for satisfatória, será executado um bloco de comandos, caso a condição não seja satisfatória, o bloco de comando será ignorado. Alem do if temos seu complemento que e chamado de ELSE. Essa expressão complementa o if, fazendo com que seja executado caso a expressão seja a negação da expressão do if. No caso, caso a verificação seja falsa (quando lua não e 1) ele pulará o que tem depois do then mas irá parar no else e executara o que tem depois do else. Diferente do IF, o ELSE não pode ser colocado separado de um IF, ou seja, para usar um ELSE é necessário ter um IF anteriormente, podendo ser junto como um ELSEIF fazendo quem que outra expressão seja executada em caso de um retorno contrário à expressão. os ELSEIF fornecem um métodos mais conveniente para verificar muitas alternativas em uma instrução. Formalmente equivale aos comandos IF-THEN-ELSE-IF-THEN aninhados, mas somente necessita de um END, que serve para fechar o nosso "IF" Créditos Skyligh 100 % (Criação e postagem)
Líderes está configurado para São Paulo/GMT-03:00

Informação Importante

Confirmação de Termo