Líderes
-
-
xWhiteWolf
HéroiPontos3605Total de itens -
Natanael Beckman
MembroPontos574Total de itens -
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 05/22/14 em todas áreas
-
[GlobalEvents] ServeSave - Shutdown/Automático
[GlobalEvents] ServeSave - Shutdown/Automático
premii e 2 outros reagiu a Natanael Beckman por uma resposta no tópico
3 pontosGalera é um script muito simples, porém pra mim é muito ÚTIL. Abra a pasta data/globalevents/scripts crie um arquivo .lua com o nome GlobalSave.lua, em seguida adicone o code: function prepareShutdown(minutes) if(minutes <= 0) then doSetGameState(GAMESTATE_SHUTDOWN) return false end if(minutes == 1) then doBroadcastMessage("Server is going down in " .. minutes .. " minute for global save, please log out now!") elseif(minutes <= 3) then doBroadcastMessage("Server is going down in " .. minutes .. " minutes for global save, please log out.") else doBroadcastMessage("Server is going down in " .. minutes .. " minutes for global save.") end shutdownEvent = addEvent(prepareShutdown, 60000, minutes - 1) return true end function onTime() return prepareShutdown(5) -- Quantos minutos pra executar o ServeSave. end Ajustes: Quando quiser modificar os minutos altere: -return prepareShutdown(5) - (5) = 5 minutos, eu recomendo no mínimo 5 minutos, em outras palavras não mexa. Em globalevents.xml adicione a tag seguinte: <globalevent name="GlobalSave" time="05:30" event="script" value="GlobalSave.lua"/> No meu ServeSave é feito as 05:30 da manhã, modifique pro horário desejado! Em config.lua verifique essa regra: Se tiver TRUE deixa, assim ele fecha o .exe se não tiver no seu config.lua não tem problema closeInstanceOnShutdown = true - - - Esse tutorial é só isso, clique em GOSTEI, e comente no tópico, muito obrigado! -------------------------------------------------------------------------------------------------------------------------------------------------------- AUTO RESTART -------------------------------------------------------------------------------------------------------------------------------------------------------- Pra você que utiliza Windows esse é perfeito: Dezon OT Admin [restarter] Pra você que utiliza Linux: Baixe esse arquivo, TFS.SH, bote dentro da pasta do seu OT. Esse arquivo está configurado pra abrir outro arquivo chamado tfs caso o seu seja outro nome mude pra esse, tfs. Sempre que for abrir seu OT execute esse comando ./tfs.sh& e assim toda vez que o OT cair ele renicia automaticamente.3 pontos -
[GlobalEvents] Perfect Lottery System (MySql) - Atualizado
[GlobalEvents] Perfect Lottery System (MySql) - Atualizado
LeoTK e um outro reagiu a Natanael Beckman por uma resposta no tópico
2 pontosSistema de Loterias por globalevents. Crie um arquivo .lua com o nome lottery dentro da pasta data/globalevents/scripts/loterry.lua, adicione dentro do arquivo o seguinte code: local config = { lottery_hour = "2 hours", -- Tempo ate a proxima loteria (Esse tempo vai aparecer somente como broadcast message) rewards_id = {2494, 2472, 2514, 2160}, -- ID dos Itens Sorteados na Loteria crystal_counts = 10, -- Usado somente se a rewards_id for crystal coin (ID: 2160). website = "yes", -- Only if you have php scripts and table `lottery` in your database! days = { "Monday-08:00", "Monday-13:00", "Monday-19:30", "Tuesday-08:00", "Tuesday-13:00", "Tuesday-19:30", "Wednesday-08:00", "Wednesday-13:00", "Wednesday-19:30", "Thursday-08:00", "Thursday-13:00", "Thursday-19:30", "Friday-01:22", "Friday-13:00", "Friday-19:30", "Saturday-21:27", "Saturday-21:28", "Saturday-21:29", "Sunday-08:00", "Sunday-13:00", "Sunday-19:30" } } local function getPlayerWorldId(cid) if not(isPlayer(cid)) then return false end local pid = getPlayerGUID(cid) local worldPlayer = 0 local result_plr = db.getResult("SELECT * FROM `players` WHERE `id` = "..pid..";") if(result_plr:getID() ~= -1) then worldPlayer = tonumber(result_plr:getDataInt("world_id")) result_plr:free() return worldPlayer end return false end local function getOnlineParticipants() local players = {} for _, pid in pairs(getPlayersOnline()) do if getPlayerAccess(pid) <= 2 and getPlayerStorageValue(pid, 281821) <= os.time() then table.insert(players, pid) end end if #players > 0 then return players end return false end function onThink(cid, interval) if table.find(config.days, os.date("%A-%H:%M")) then if(getWorldCreatures(o) <= 0)then return true end local query = db.query or db.executeQuery local random_item = config.rewards_id[math.random(1, #config.rewards_id)] local item_name = getItemNameById(random_item) local data = os.date("%d/%m/%Y - %H:%M:%S") local online = getOnlineParticipants() if online then local winner = online[math.random(1, #online)] local world = tonumber(getPlayerWorldId(winner)) if(random_item == 2160) then doPlayerSetStorageValue(winner, 281821, os.time() + 3600 * 24) doPlayerAddItem(winner, random_item, config.crystal_counts) doBroadcastMessage("[LOTTERY SYSTEM] Winner: " .. getCreatureName(winner) .. ", Reward: " .. config.crystal_counts .." " .. getItemNameById(random_item) .. "s! Congratulations! (Next lottery in " .. config.lottery_hour .. ")") else doPlayerSetStorageValue(winner, 281821, os.time() + 3600 * 24) doBroadcastMessage("[LOTTERY SYSTEM] Winner: " .. getCreatureName(winner) .. ", Reward: " ..getItemNameById(random_item) .. "! Congratulations! (Next lottery in " .. config.lottery_hour .. ")") doPlayerAddItem(winner, random_item, 1) end if(config.website == "yes") then query("INSERT INTO `lottery` (`name`, `item`, `world_id`, `item_name`, `date`) VALUES ('".. getCreatureName(winner).."', '".. random_item .."', '".. world .."', '".. item_name .."', '".. data .."');") end else print("Ninguem OnLine pra ganhar na loteria") end end return true end Recomendamos modificar: - rewards_id = {2494, 2472, 2514, 2160}, -- ID dos Itens Sorteados na Loteria Recomendo de item count apenas o 2160, outros podem bugar. - crystal_counts = 10, -- Usado somente se a rewards_id for crystal coin (ID: 2160). Altere pra mais ou menos o dinheiro. - "Monday-08:00", Ajuste os dias e horários como desejado. Em globalevents.xml, adicione: <!-- Lottery --> <globalevent name="lottery" interval="60000" event="script" value="lottery.lua"/> Não mexa no code acima. Certo, essa é a parte do servidor, agora vamos adicionar as querys necessárias no MySql: CREATE TABLE `lottery` ( `id` int(11) NOT NULL auto_increment, `name` varchar(255) NOT NULL, `item` varchar(255) NOT NULL, `world_id` tinyint(2) unsigned NOT NULL default '0', `item_name` varchar(255) NOT NULL, `date` varchar(256) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1; Caso você queria adicionar uma query pra testar o site, veja: INSERT INTO `lottery` (`id`, `name`, `item`, `world_id`, `item_name`, `date`) VALUES(NULL, 'Character', '2470', '0', 'golden legs', '22/05/2014 - 04:49:50'); Agora vamos pra parte do site, crie um arquivo .php com o nome lottery, adicione dentro do arquivo o seguinte code: <?PHP $main_content .= '<center><h1>Lottery</h1><h3>Lotterys held at 09:00, 14:00 and 20:30 hour, brazil time.</h3></center><br><TABLE BORDER=0 CELLSPACING=1 CELLPADDING=4 WIDTH=100%><tr BGCOLOR="'.$config['site']['vdarkborder'].'"><td CLASS=white><center><b>Player Name</b></center></td><td CLASS=white width=184 colspan=2><center><b>Winning Item</b></center></td><td width=50 CLASS=white><center><b>World</b></center></td><td width=100 CLASS=white><center><b>Date and Time</b></center></td></tr>'; $lottery = $SQL->query('SELECT id, name, item, world_id, item_name, date FROM lottery WHERE world_id = 0 ORDER BY id DESC;'); foreach($lottery as $result) { $players++; if(is_int($players / 2)) $bgcolor = $config['site']['lightborder']; else $bgcolor = $config['site']['darkborder']; $main_content .= '<TR BGCOLOR='.$bgcolor.'><TD WIDTH=35%><center><a href="?subtopic=characters&name='.urlencode($result['name']).'">'.$result['name'].'</a></center></td><TD WIDTH=5%><img src=\'/item_images/'.urlencode($result['item']).'.gif\'></td><TD WIDTH=30%><center>'.$result['item_name'].'</center></td><TD WIDTH=7%><center>MegaTibia</center></td></td><TD WIDTH=30%><center>'.$result['date'].'</center></td></tr>'; } $main_content .= '</table>'; ?> Em index.php adicione: case "lottery"; $topic = "Lottery"; $subtopic = "lottery"; include("lottery.php"); break; Em layouts.php adicione o code abaixo: <a href="?subtopic=lottery"> <div id="submenu_lottery" class="Submenuitem" onmouseover="MouseOverSubmenuItem(this)" onmouseout="MouseOutSubmenuItem(this)"> <div class="LeftChain" style="background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);"></div> <div id="ActiveSubmenuItemIcon_lottery" class="ActiveSubmenuItemIcon" style="background-image:url(<?PHP echo $layout_name; ?>/images/menu/icon-activesubmenu.gif);"></div> <div id="ActiveSubmenuItemLabel_lottery" class="SubmenuitemLabel">Lottery</div> <div class="RightChain" style="background-image:url(<?PHP echo $layout_name; ?>/images/general/chain.gif);"></div> </div> </a> Pronto galera só isso, não esqueça clica em GOSTEI! Comente, participe do tópico, isso nos ajuda muito. Créditos: .lua - Killua e Matheus .php - Matheus e Natanael Beckman querys - Natanael Beckman e Matheus Atualização 24/05/2014 - Adicionado regras pra não sorteá membro da staff(GM, GOD) - Adicionando sistema de Storage pra não correr o risco de um player ganhar 2x no mesmo dia.2 pontos -
[8.6] Destruction Map V7.0 (Apropriado Para Xp Alta)
[8.6] Destruction Map V7.0 (Apropriado Para Xp Alta)
lucas.slonik e um outro reagiu a Slaake por uma resposta no tópico
2 pontosFala galerinha do Tibia King tudo bom? Venho aqui apresentar o novo Destruction Map V7.0 (8.6) O Destruction Serv V6.0 ja teve no ****** por um tempo, mas foi apagado por virus. Vamos deichar de Papo e vamos conhecer o Server ??? Informações sobre o Mapa: Mapa totalmente Editado Reflection Boots funcionando 100% Novas Spells Novos Itens Novos Monster Novas Scripts E muito mais... Screen Shot (SS) Temple: Flatron VIP Temple: Eu estou sem tempo para postar novas fotos, mas logo logo mais fotos terão Download Pasta: http://www.4shared.com/rar/D50lcdGB/86_Destruction_Map_V70.html Scan: https://www.virustotal.com/file/6ab6dae78df3290a181582d2308f666a840faa6f9a50f0828b6d7002aac459ed/analysis/ Download Distro, dlls... http://www.4shared.com/rar/jNIieRyC/Distro_e_Dlls.html? Scan https://www.virustotal.com/file/1a92bd4907edf59c62518eae1fe6973edbf6fbf414bbd5a8502cdc71d8145b41/analysis/1336049191/ Gostou ??? Então da um REP+ Ai custa nada Créditos: EU (Por editar o Mapa) Doidin (Distro, dlls...) E outros membros do ****** por alguns script. Espero que Gostem2 pontos -
PDA By: [GOD Anna]
PDA By: [GOD Anna]
arcaydecom e um outro reagiu a Wend por uma resposta no tópico
2 pontosEae Galera do Fórum, Estava editando esse Server Para deixar online Mais estava Sem tempo e Achei Melhor Postar para usarem como Base • Menu: ├ Informações; ├ Ediçoes; ├ Erros; ├ Prints; ├ Download; └ Creditos. • Informações Basicas • • Edições / Ajustes • • Erros Do Servidor • • PrintScreen • Novos Lendarios:: Ancient Aero:: Articuno Quest:: NPC de Teleport:: • Download's • Servidor:: http://www.4shared.com/rar/06OG8lB5ba/pda_by_bolz_verso_god_anna.html? OtClient:: http://www.4shared.com/rar/x5LgTQKLce/otclient.html? Scan:: 4Shared Já faz Scan *--* Para nossa Alegria @Atualizado v2 • Menu: ├ Ediçoes; ├ Prints; ├ Download; • Edições / Ajustes • • PrintScreen • Ditto System:: Held System:: • Download's • Servidor v2:: http://www.4shared.com/rar/_lB31rwxba/pda_by_bolz_verso_god_anna_v2.html? OTClient v2:: http://www.4shared.com/rar/aiqka_kQce/otclient_v2.html? Scan 4Shared Já faz Scan • Creditos • Slicer (pelo servidor) Brun123 (por alguns scripts, e por criar o pda) Stylo Maldoso (pelo mapa) Bolz (por editar Maior Parte do Server) Gabrielsales (Pelo Held System) Eu (Por Minhas Edições) Xtibia (por alguns scripts)2 pontos -
Evento Devovorga
Evento Devovorga
luanluciano93 e um outro reagiu a nibelins por uma resposta no tópico
2 pontosEvento Devovorga testado TFS 1.0 tíbia 10.37 mapa global breve explicação do evento obejetivo: mata os 5 bosses do evento rise devovorga para liberar acesso a sala do boss devovorgar com tempo de 5 horas para conclusão do evento. bosses: Anmothra Irahsae Teneshpar Phrodomo Chikhaton vamus para os scripts Data/creaturescripts/scripts cria uma pasta com nome "evento devovorga" dentro da pasta cria arquivo com nome bossdevovorga.lua copia e cola tudo dentro: local bosses = { ["devovorga"] = 206 } function onKill(cid, target) if(bosses[string.lower(getCreatureName(target))]) then if(string.lower(getCreatureName(target)) == "") then setGlobalStorageValue(bosses[string.lower(getCreatureName(target))], getGlobalStorageValue(bosses[string.lower(getCreatureName(target))]) < 1 and 1 or 2) if(getGlobalStorageValue(bosses[string.lower(getCreatureName(target))]) == 2) then end return true end broadcastMessage("Thanks to the mighty and fearless Tibians who drove Devovorga back into her abyss, your regeneration has been improved.", MESSAGE_EVENT_ADVANCE) broadcastMessage("You made it - Devovorga, the incredibly powerful weapon sealed deep below Vengoth, was destroyed.", MESSAGE_EVENT_ADVANCE) broadcastMessage("Upon her death, energy was released all over the world - the next month, it will boost your health and mana regeneration.", MESSAGE_EVENT_ADVANCE) broadcastMessage("Congratulations, Tibians!", MESSAGE_EVENT_ADVANCE) setGlobalStorageValue(bosses[string.lower(getCreatureName(target))], 2) addEvent(setGlobalStorageValue, 3 * 60 * 1000, bosses[string.lower(getCreatureName(target))], 0) end return true end proximo passo Data/creaturescripts/scripts cria uma pasta com nome "evento devovorga" dentro da pasta cria arquivo com nome bosses.lua copia e cola tudo dentro: local tpId = 11798 local tps = { ["Anmothra"] = {pos = {x=32955, y=31519, z=9}, toPos = {x=32950, y=31514, z=9}, time = 18000}, ["Irahsae"] = {pos = {x=32942, y=31514, z=9}, toPos = {x=32937, y=31510, z=9}, time = 18000}, ["Teneshpar"] = {pos = {x=32947, y=31506, z=9}, toPos = {x=32936, y=31524, z=9}, time = 18000}, ["Phrodomo"] = {pos = {x=32937, y=31521, z=9}, toPos = {x=32913, y=31515, z=9}, time = 18000}, ["Chikhaton"] = {pos = {x=32913, y=31527, z=9}, toPos = {x=32946, y=31516, z=10}, time = 18000}, } function removeTp(tp) local t = getTileItemById(tp.pos, tpId) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(tp.pos, CONST_ME_POFF) end end function onDeath(cid) local tp = tps[getCreatureName(cid)] if tp then doCreateTeleport(tpId, tp.toPos, tp.pos) doCreatureSay(cid, "O teleport irá sumir em 5 horas corra grandes aventureiros", TALKTYPE_ORANGE_1) addEvent(removeTp, tp.time*1000, tp) end return TRUE end proximo passo Data/creaturescripts abra o arquivo creaturescripts.xml adicione essas duas linhas: <event type="death" name="teleport" script="evento devovorga/bosses.lua"/> <event type="kill" name="bossdevovorga" script="evento devovorga/bossdevovorga.lua"/> arquivos creaturescripts finalizado proximo passo Data/movements/scripts criar um arquivo chamado teleportarea.lua copiar e colar tudo dentro: function onStepIn(cid, item, position, fromPosition) local teleport = { action = item.actionid, [17001] = {x=32975, y=32427, z=8}, [17002] = {x=32976, y=32429, z=7}, [17003] = {x=32634, y=32305, z=8}, [17004] = {x=32629, y=32329, z=7}, [17005] = {x=32131, y=31835, z=8}, [17006] = {x=32169, y=31829, z=7}, [17007] = {x=31936, y=31538, z=8}, [17008] = {x=31965, y=31582, z=7}, [17009] = {x=33325, y=31741, z=8}, [17010] = {x=33325, y=31741, z=7}, [17011] = {x=32956, y=31516, z=8}, [17012] = {x=32949, y=31520, z=7}, [17013] = {x=32956, y=31519, z=9}, [17014] = {x=32943, y=31514, z=9}, [17015] = {x=32947, y=31507, z=9}, [17016] = {x=32937, y=31522, z=9}, [17017] = {x=32948, y=31520, z=7} } if(not isPlayer(cid)) then return true end doTeleportThing(cid, teleport[item.actionid]) return true end proximo Data/movements/scripts criar um arquivo chamado devo.lua copiar e colar tudo dentro: local teleports2 = { [2181] = {text = "Ate o Proximo Evento", newPos = {x = 32948, y = 31520, z = 7}, storage = 7}, } local teleports = { [2182] = {boss = true, text = "Parabéns você concluiu o Evento Rise of Devovorga", bossStorage = 206, newPos = {x = 32945, y = 31521, z = 9}, storage = 7}, } function onStepIn(cid, item, position, lastPosition) if (item.uid == 2181) then if(getPlayerStorageValue(cid,1050) <= teleports2[item.uid].storage) then setPlayerStorageValue(cid, 1050, teleports2[item.uid].storage) end doTeleportThing(cid, teleports2[item.uid].newPos) doSendMagicEffect(teleports2[item.uid].newPos, CONST_ME_TELEPORT) doCreatureSay(cid, teleports2[item.uid].text, TALKTYPE_ORANGE_1) return true end if(teleports[item.uid].boss) then if(getGlobalStorageValue(teleports[item.uid].bossStorage) == 2) then if(getPlayerStorageValue(cid,1050) <= teleports[item.uid].storage) then setPlayerStorageValue(cid, 1050, teleports[item.uid].storage) end doTeleportThing(cid, teleports[item.uid].newPos) doSendMagicEffect(teleports[item.uid].newPos, CONST_ME_TELEPORT) doCreatureSay(cid, teleports[item.uid].text, TALKTYPE_ORANGE_1) else doTeleportThing(cid, {x = 32912, y = 31515, z = 10}) doSendMagicEffect({x = 32912, y = 31515, z = 10}, CONST_ME_TELEPORT) doCreatureSay(cid, "Precisa Concluir o evento Rise of Devovorga.", TALKTYPE_ORANGE_1) end return true end if(teleports[item.uid].storage) then if(getPlayerStorageValue(cid, 1050) >= teleports[item.uid].storage) then doTeleportThing(cid, teleports[item.uid].newPos) doSendMagicEffect(teleports[item.uid].newPos, CONST_ME_TELEPORT) doCreatureSay(cid, teleports[item.uid].text, TALKTYPE_ORANGE_1) else doTeleportThing(cid, lastPosition) doSendMagicEffect(getCreaturePosition(cid),10) doCreatureSay(cid, 'You don\'t have enough energy to enter this portal', TALKTYPE_ORANGE_1) end return true end if(teleports[item.uid]) then doTeleportThing(cid, teleports[item.uid].newPos) doSendMagicEffect(teleports[item.uid].newPos, CONST_ME_TELEPORT) doCreatureSay(cid, teleports[item.uid].text, TALKTYPE_ORANGE_1) return true end return true end proximo passo Data/movements abra o arquivo movements.xml adicione essas duas linhas: <movevent event="StepIn" fromaid="17001" toaid="17016" script="teleportarea.lua"/> <movevent event="StepIn" fromuid="2181" touid="2182" script="devo.lua"/> arquivos movements finalizado proximo arquivos Data/raids criar um arquivo chamado devovorga.lua copiar e colar tudo dentro: <raid> <announce delay="1000" type="Event" message="Something is rumbling deep underground all over the world" /> <announce delay="20000" type="Event" message="The Power of Devovorga has risen again." /> <singlespawn delay="20000" name="Anmothra" x="32634" y="32309" z="8" /> <announce delay="30000" type="Event" message="The Fury of Devovorga has risen again." /> <singlespawn delay="30000" name="Irahsae" x="32967" y="32405" z="8" /> <announce delay="40000" type="Event" message="The Dark knowledge of Devovorga has risen again." /> <singlespawn delay="40000" name="Teneshpar" x="31932" y="31524" z="8" /> <announce delay="50000" type="Event" message="The Soul of Devovorga has risen again." /> <singlespawn delay="50000" name="Phrodomo" x="32135" y="31833" z="8" /> <announce delay="60000" type="Event" message="The Hatred of Devovorga has risen again." /> <singlespawn delay="50000" name="Chikhaton" x="33330" y="31741" z="8" /> <singlespawn delay="1000" name="Spawn of Devovorga" x="32931" y="31516" z="10" /> <singlespawn delay="2000" name="Spawn of Devovorga" x="32925" y="31515" z="10" /> <singlespawn delay="3000" name="Spawn of Devovorga" x="32925" y="31521" z="10" /> <singlespawn delay="4000" name="Spawn of Devovorga" x="32917" y="31521" z="10" /> <singlespawn delay="5000" name="Spawn of Devovorga" x="32914" y="31514" z="10" /> <singlespawn delay="6000" name="Devovorga" x="32921" y="31516" z="10" /> </raid> proximo passo Data/raids abra o arquivo Raids.xml adicione essa linhas: <raid name="Devovorga" file="Devovorga.xml" interval2="1440" chance="1" margin="60" enabled="yes"/> download da pasta dos monstro do evento finalizado os códigos vou explica como ativa o evento no momento que usar o comando /raid devovorga o evento iniciará assim sumonando cada mini Boss pra seu lugar os jogadores terá 5 horas no momento que matarem o primeiro mini Boss passando as 5 horas e não matarem os mini bosses ou ate mesmo o Boss devovorga o evento falhara quem estive dentro da sala ficara ate o final seja quando morre ou sair da sala do Boss assim não voltara mais não irei explica código por código porque esta tudo pronto para mapa global fica a critério de cada um não sou script ( fiz uma gambiarra esta funcionando 100%) apenas tentei fazer algo diferente OBS.: sala de premiação não finalizei pois fica a critério de cada um o que fazer (minha sugestão se os jogadores concluir o evento no próximo salve serve coloca Double XP pra galera hehehehe) fora os baus que darão os itens aos jogadores. Scan dos arquivos anexados detalhe para nao buga os portais como usei o portal dimensional portal id 11798 o servidor nao reconhece como teleport vai buga abra: pasta itens abra itens.xml procure por: <item fromid="5023" toid="5024" article="a" name="magic forcefield"> <attribute key="type" value="teleport" /> <attribute key="description" value="You can see the other side trough it." /> </item> substitua por esse: <item fromid="11798" toid="11799" article="a" name="dimensional portal"> <attribute key="type" value="teleport" /> <attribute key="description" value="You can see the other side trough it." /> </item> procure por: <item id="11798" article="a" name="dimensional portal" /> substitua por esse: <item id="5023" article="a" name="magic forcefield" /> pronto Antes de mais nada não sei se postei no lugar correto peço aos moderadores que se não tiver na área correta que movam para certa fico grato se copiar e colar pelo menos mantem os creditos fico grato2 pontos -
[8.60] Kalima // War System e Pet System
[8.60] Kalima // War System e Pet System
IzzyWalker e um outro reagiu a .HuRRiKaNe por uma resposta no tópico
2 pontosInformações: Mapa Kalima 100%; Erros do console retirados; Sqlite database 100%; Novos Monstros; Items Vip Level 8, para novos players; Novas Magias; Novos Comandos; War System 100%; Pet System 100%; Teleports; Quests; Servidor 100% estável; E muito mais! Comandos War System: Escreva no Guild Channel; /war invite,Guildname,Frags /war accept,guildname /war reject,guildname Imagens: Download: http://www.mediafire.com/?a6h5kfwdwx3i4cb Scan: https://www.virustotal.com/file/adecedaac4554d4a8283bab7693da635ebb4e6216afab6b83e028b7f309d4938/analysis/1358782460/ Créditos: Kalima Team NewManiatiko Animal Pak2 pontos -
Galeria Madarada [Time line]
Galeria Madarada [Time line]
Procure e um outro reagiu a Madarada por uma resposta no tópico
2 pontosEae pessola beleza? Hoje venho trazer minhas sprites e meu desenvolvimento desde o começo 1ª sprite Dezembro - 2013 Janeiro - 2014 Fevereiro - 2014 Março - 2014 Abril - 2014 Maio - 20142 pontos -
Elime's NPC Editor
Elime's NPC Editor
Zedgast reagiu a luanluciano93 por uma resposta no tópico
1 pontoEai pessoal? Hoje trouxe para vocÊs o Elime's NPC maker, feito por Elime, ele é um software que consiste em criar um NPC conforme você edita-lo no programa. Ele é bem simples e muito completo, veja as imagens abaixo .... Requisitos: Você precisa de Java 7 ou superior instalado no seu computador. • https://www.java.com/en/download/ Baixar: • http://elime.url.ph/npc_windows/npc_editor_windows.php Anexei o programa ao tópico para download. É isso pessoal, espero que gostem, abraços! npc_editor_windows.zip1 ponto -
Gta Server
1 pontoServidor Tibia GTA Venha para o Tibia GTA e fassa sua Gangue, pegue em armas, mate todo mundo! Dirija, moto, bicicleta, skate!! Distro Totalmente Extavel Sem bugs Sem virus Sem motherfuckingthings! - O QUE TEM NO SERVIDOR: •2 Classes: RENEGADO e JUSTICEIRO •O player ao upar um level, ganha "POINTS" para trocar por LIFE OU MANA assim torna o jogo mais sensivel •BOOK DE GUIA na criação do CHAR ADICIONADO, para players não ficarem perdidos. •Mapa Proprio •40+ quests •Arena PVP - Sistema de Arma - Sistema de Moto, Bike e Skate. - Todos os NPCs funcionando e vendendo os itens corretamente. •Cada vocation com sua outfit •Ja existe vips e donates (ajuste conforme o nescessario) - Jetpack (Nescessario ter conbustivel para jetpack na BP para funcionar) - Armas, Clubs, Armors, Helmets, Legs, Shoes, Shields - TOTALMENTE CORRETO com DEVIDOS SPRITES. - Cidade totalmente tematizada - O QUE FALTA NO SERVIDOR: •AJUSTAR LIFE/HIT/LOOT DE MONSTROS (LOOKTYPE JÁ ESTA ARRUMADO) •CARRO(NAO IMPLEMENTADO) - SISTEMAS: •Colheita de maconha - Existe varias mudas espalhadas pelo servidor, usando o cortador de maconha, voce pode remove-las e utiliza-las e ganhar EXP! •Sistema de WoE - Guerra para ver quem será o dono do castelo! O dono do castelo ganha acesso para uma ilha da maconha! SCREENSHOTS MAPINHA: 1- DEPOT, SHOPPING DE ITENS, UTILIDADES 2- VENDEDOR DE ARMAS 3- VENDEDOR DE VEICULOS 4- TEMPLO 5- MEDICO, COMPRAR CURE ITEMS 6- VENDEDOR DE OUTFITS 7- VENDEDOR DE MUNICOES DOWNLOAD: http://depositfiles....files/dq8r1spji http://depositfiles....files/dq8r1spji (INCLUSO: SERVIDOR, CLIENTE, MINI MAP, CREATURES PARA MAP EDITOR) SCAN Agradeço aos que colaboraram1 ponto
-
[Aula 10] O Comando for
[Aula 10] O Comando for
Tribits reagiu a MaXwEllDeN por uma resposta no tópico
1 ponto<< Aula 9 - Tabelas Essa aula foi escrita por uma raposa levada Skyen Hasus, todos os créditos pertencem a ele. O Comando for Aula 10 Você nunca viu o comando for? Ou já abriu um Script e não entendeu nada por causa dele? Eis aqui uma explicação de como funciona o comando e alguns exemplos de utilização, assim como alguns exercícios. Antes de mais nada, o que faz o for? R: O for causa um "loop", mas não é como o while e o repeat. Por que? Porque ele atribui à uma variavel todos os valores entre o valor inicial e o valor final. Editado: O For não é um comando Condicional! Estrutura do For: for variavel = valor inicial, valor final[, incremento] do bloco end Não entendeu? Então vamos à breves explicações, começando com um exemplo abstrato: local i = 1 local j = 10 local inc = 1 for var = i, j, inc do print(var) end "Oh! Que bicho é este?" R: Isto é um exemplo ridículo do uso do for. Se você nunca viu isso antes, obviamente não entendeu, mas não é nenhum monstro de três cabeças. Quando eu explicar o que foi feito, você vai ver que é muito simples. Nas três primeiras linhas eu defini três variaveis locais, para "limpar" o script e facilitar o entendimento de quem ainda não conhece o for: local i = 1: Aqui eu usei "i" como inicial e ela é usada na linha 5. Seu valor é 1. local j = 10: Aqui eu usei "j" como final e ela é usada na linha 5. Seu valor é 10. local inc = 1: Esté é o incremento do for e seu valor é 1. Vai ser explicada mais pra frente, então não se preocupe com ela agora. var: É a variável à qual será atribuida os valores. "Perai, agora estou com dúvida. Você não declarou a variavel var!" R: Isto é porque ela não precisa ser declarada! Ela só vai servir como variavel dentro do laço(for). Se eu tentasse usar ela em um bloco fora do for bloco do sem ter declarado ela antes, vai resultar num simples nil(Nulo)! print(): Só vai escrever no console. Explicada as variáveis, vamos entender o funcionamento do código: O for vai atribuir à var todos os valores entre o "i"(valor inicial) e o "j"(valor final), incluindo os dois! Não vamos nos preocupar com o incremento agora, pois você pode escrever o código sem ele. No caso, o valor padrão do incremento é 1. Vamos à mais um exemplo: print("-- Início --") for var = 1, 5 do print("Valor de var: "..var) end print("-- Fim --") As saídas geradas por esse Script serão: -- Início -- Valor de var: 1 Valor de var: 2 Valor de var: 3 Valor de var: 4 Valor de var: 5 -- Fim -- Entendeu agora? Na primeira vez o for atribuiu à var o valor 1, executou o bloco, depois ele fez um loop, voltando para o começo e re-atribuiu à var o valor inicial + 1 que é 2, executando o bloco de novo usando o novo valor de var. Depois valor inicial + 1 + 1 e assim vai até chegar no valor final que é 5, e é aonde ele para. "Tá, mas não vejo a utilidade do for." Então você, com todo o respeito, é cego! O que eu fiz em três linhas poderia ser feito assim: i = 1 j = 5 switch = TRUE while switch == TRUE do if i == j then print("Valor de i: "..i) switch = FALSE else print("Valor de i: "..i) i = i + 1 end end Ou, dando um desconto, para encurtar, no máximo poderia ser feito assim: i = 1 j = 5 while i <= j do print("Valor de i: "..i) i = i + 1 end Além de que você não pode usar variaveis locais dentro de whiles. Você entendeu tudo o que foi feito até aqui? R: Não! Então volte até a parte onde você "se perdeu" e não leia, estude, até entender. R: Sim! Então vamos complicar um pouco mais e aplicar o for em tabelas! (Atenção, você não precisa conhecer tabelas para continuar!) Aplicando o For em Tabelas! "Qual a utilidade de aplicar o For em tabelas?" R: Não sei se você percebeu, mas não podemos aplicar, do jeito que eu exemplifiquei acima, strings no for, mas há como fazer isso, sim! Usando tabelas(tables, arrays) "Como fazemos então?" Você precisa, antes de mais nada, declarar a tabela! Para quem não conhece, as tabelas são declaradas igual a variáveis, e podem ser locais ou globais. Você pode dar-lhes o nome que quiser, desde que não contenha caracteres especiais: !@#$%¨&*()-+=-*/,.ESPAÇO<>:;?|\"'`´[]{}°ºª¹²³£¢¬§. Underlines (_) são permitidos. Você pode utilizá-los como espaços. O valor das Tabelas ficam sempre entre chaves({}) e são separados por vírgulas! As strings seguem o padrão de estarem sempre entre aspas("")! local Tabela = {} "Pronto! E agora?" R: Está esperando o que? Adicione os valores! Vou inserir na minha tabela o meu nick e o nick de mais 3 amigos: <Falta de Imaginação > local Tabela = {"Skyen Hasus", "Hwoarang", "MotoBoy", "Luketez"} Agora entra o for, mas omo fazemos para pegar os valores da tabela? Simples! Qual é a posição do primeiro valor da tabela? É 1, então como valor inicial do for nós colocamos 1! E como valor final? Este valor varia, já que uma tabela pode conter vários e vários valores. Resposta: Nós usamos o #nome_da_tabela! O # retorna o número de valores que a tabela tem! Um outro jeito de fazer isso seria usando o table.getn(tabela), mas é mais fácil e curto com o #! "Ah! Então é só construir a estrutura do for e no bloco colocar print(var)!" Errado, meu amigo, embora a culpa seja minha. O for atribui à variável somente o valor NUMÉRICO, ou seja, ele vai atribuir a posição do valor na tabela. "Então como eu tenho que fazer?" Se você já conhece tabelas, pense um pouco, não é tão difícil! Pensou? Não conseguiu? Fácil! Como eu disse, a variável vai ter o valor da posição na tabela, então só temos que "achar" este valor, seguindo sua posição! Este não conhece tabelas-> "Mas como fazemos isso?" Usando o nome_da_tabela[posição] sendo a [posição] o valor da variável, já que ela tem o valor da posição! Veja como vai ficar: local Tabela = {"Skyen Hasus", "Hwoarang", "MotoBoy", "Luketez"} for var = 1, #Tabela do print("Valor "..var..": "..Tabela[var]) end E este script vai retornar: Valor 1: Skyen Hasus Valor 2: Hwoarang Valor 3: MotoBoy Valor 4: Luketez Acho que aqui vocês já entenderam guande parte e já podem sair fazendo suas "experiências". Caso queiram continuar, tem só mais um conteúdo: incrementos, e para outros, no final tem uns exercícios. Uso de Incrementos no For! Agora que você já aprendeu a usar o for, vai ser moleza aprender os Incrementos. "Mas o que eles fazem?" Eles continuam atribuindo os valores às variáveis, mas o incremento faz eles pularem alguns valores! Exemplo: for var = 1, 16, 3 do print(var) end Saídas geradas por este Script: 1 4 7 10 13 16 Ou seja: Os números 2, 3, 5, 6, 8, 9, 11, 12, 14 e 15 são pulados pelo for! "Mas como eu uso?" Simples! Verifique no começo do tutorial a estrutura do for. Aonde está escrito incremento você "substitói" pelo número de valores que vai pular! À pedido do Mock! - Os comandos: in pairs() e in ipairs()! Antes de mais nada, saiba que ambos funcionam somente em tabelas! A diferença entre pairs() e ipairs() é que o pairs() vai incluir os índices no for, e o ipairs() não. Mas os dois fazer quase a mesma coisa: Além de definir um valor para uma variável "x", ele vai definir para a variável "y" a posição ou, no caso do pairs(), o índice. Exemplo do ipairs: local tabela = {2, 3, 4, 5, seis=6} for i, v in ipairs(tabela) do print(i, v) end Que retornará Posição(i), Valor(v): 1, 2 2, 3 3, 4 4, 5 Observe que o ipairs() não retornou o "seis=6" Exemplo do pairs: local tabela = {2, 3, 4, 5, seis=6} for i, v in pairs(tabela) do print(i, v) end Que retornará Posição(i), Valor(v): 1, 2 2, 3 3, 4 4, 5 seis, 6 E agora sim, o pairs() retornou o índice "seis=6" Acho que isso é tudo o que precisam saber sobre o ipairs() e pairs(). O resto depende da criatividade e necessidade de cada um. Exemplos de Uso do For! function onSay(cid, words, param) local Online = getPlayersOnline() -- Retorna uma Tabela for pid = 1, #Online do doPlayerSendTextMessage(Online[pid], MESSAGE_INFO_DESCR, "Server will be Restarted in "..param.." Minute(s)!") -- Arrumado por MotoBoy! end end local creatures = {"deer", "rabbit", "minotaur", "ghoul", "orc"} for crat = 1, #creatures do table.remove(creatures, crat) end function pularDois(i, j) local naoPulados = {} for index = i, j, 2 do table.insert(naoPulados, index) end return table.concat(naoPulados, ", ") end for a = 664, 668 do if a == 666 then print("O número da vez é "..a.."! O número amaldiçoado!") else print("O número da vez é "..a.."!") end end Exercícios! Atenção! Faça os exercícios com sinceridade! Não os copie no Debugger do LUA nem olhe as respostas antes de ter certeza de que sua resposta está correta, mesmo que esteja errada, pois a resposta é só para conferir. Exercício 1 - O que há de errado na seguinte função? function exemplo(i, j, inc) for valor = i, j, inc then print(valor) end end Exercício 2 - O que há de errado na seguinte função? function exemplo(i, j, inc) for a = i, j, inc do print(b) end end Exercício 3 - O Script: local tabela = {"Teste 1", "Teste 2", "Teste 3", "Teste 4", "Teste 5", "Teste 6"} for valor = 1, 3 do print(tabela[valor*2]) end Vai retornar? A) 1, 2, 3 B) "Teste 1", "Teste 2", "Teste 3" C) nil, nil, nil D) 2, 4, 6 E) "Teste 2", "Teste 4", "Teste 6" Exercício 4 - Quantos valores o script abaixo retornará? for valor = 1, 20 do if valor <= (20/4)*3 then print(valor) end end Exercício 5 - Qual deve ser o valor do incremento do script abaixo para que sejam retornados 7 valores? local incremento = ??? for valor = 1, 50, incremento do print(valor) end Respostas: Essa aula foi escrita por uma raposa levada Skyen Hasus, todos os créditos pertencem a ele.1 ponto -
[Aula 3] Primeiros Passos
[Aula 3] Primeiros Passos
Ghaz reagiu a MaXwEllDeN por uma resposta no tópico
1 ponto<< Aula 2 - Lógica da programação Primeiros Passos Aula 3 Relembrando o que eu disse na primeira aula, você precisará de um interpretador Lua e é muito recomendado que possua também um bom editor com suporte à sintaxe Lua, então nosso primeiro passo será obter o editor e o interpretador. As aulas serão voltadas ao scripting para Open Tibia Servers, então nada melhor do que um bom OTServer para testar seus scripts, mas ficar testando os scripts em um OTServer pode ser uma tarefa cansativa e demorada, então vamos usar também scripts fora de OTServers para praticar. Para isso, você pode fazer o download de qualquer um dos seguintes programas: Editores + Interpretadores: SciTE Scintilla [Avançado] OTScript Live! [Recomendado] Editores: Notepad++ Interpretadores: Lua [Oficial] Depois que você tiver seu editor e interpretador Lua (Recomendo o OTScript Live!), instale ele. No caso do OTScript Live!, depois de descompactar, vá em "Help", no menu, e clique em "Register To Lua". Abrirá uma caixa confirmando a alteração, basta apertar "OK" e todos os seus scripts irão abrir com o OTScript Live!. Testando seus scripts! No caso do SciTE, para testar o seu script você deve primeiro salvá-lo com a extensão Lua (*.lua). No caso do SciTE e do OTScript Live! você pode testar seu script apenas apertando F5, sendo que no OTScript Live! não é necessário salvar o script antes de testar. Após pressionar F5, o SciTE irá abrir uma área de textos abaixo da área de edição com as informações do teste, e o OTScript Live! vai abrir uma janela. Para testar se o seu SciTE ou OTScript Live! está funcionando, use o seguinte script: print("Hello world!") Nas informações mostradas pelo interpretador deve estar escrito "Hello world!". Se aparecer, parabéns, você testou o seu primeiro script Lua... (ou não ) O que o script fez? o0 Uma das coisas mais importantes nos scripts são as funções. Uma função é "um bloco de código previamente pronto", uma subrotina, que quando chamada executa esse bloco. Imagine as funções como um atalho para executar alguma coisa. Pode ser usada, por exemplo, para encurtar scripts que tenham alguma parte do codigo que se repita muitas vezes. Criando uma função você pode usar esse código que se repete muitas vezes somente uma vez (Dentro da função), então em vez de usar esse bloco várias vezes, você só precisaria chamar a função várias vezes. Você pode criar suas próprias funções, mas isso veremos mais para frente. Tudo o que importa agora é aprender a chamar funções. O "Nome da Função", na verdade, é o nome da variável em que está armazenada a função, mas não se preocupem com isto ainda... O "Nome da Função" é o nome que você deve chamar para que a função ocorra, pois há vária funções (Obviamente), então você deve especificar qual função quer chamar. É a mesma coisa do que ter 3 pessoas. Quando quiser chamar uma das pessoas, deve dizer o nome dela. Os argumentos são as "Respostas" para as "Perguntas" da função chamada. A maioria das funções faz "perguntas". No caso da função "print", ela nos "perguntou" o que queriamos escrever na tela, e "respondemos": "Hello world!". É importante lembrar que cada pergunta deve ser respondida adequadamente, por exemplo, se alguém te pergunta: "Que horas são?" você não pode responder: "Sim.". A mesma coisa acontece com as funções, você deve responder exatamente o que ela está perguntando. Outra observação importante é que você deve responder as perguntas da função na ordem em que foram perguntadas. Se a pergunta nº 1 for "Que horas são?" e a nº 2 for "Quer um biscoito?", você deve responder respectivamente que horas são e se você quer um biscoito. OBS: Algumas funções fazem "perguntas" opcionais, ou seja, você pode ou não responder. Se você não "responder", a própria função atribuirá um valor padrão para a resposta. Os parâmetros são simplesmente o conjunto de todos os argumentos. OBS: Todos os argumentos (Respostas) do parâmetro devem estar entre parênteses e ser separados por vírgulas! Tipos de valores! Bem, como eu disse, cada resposta deve seguir o tipo da pergunta, então vou citar aqui os tipos destes valores. OBS: Existe uma função para descobrir o tipo de cada valor! Esta função é a função type(valor)... Numbers Como o nome diz, numbers são números, não há muito o que falar sobre eles... Exemplo: print(1) print(2) print(3) OBS: A função print aceita todos os tipos como resposta. Strings As strings devem iniciar com um símbolo especial e deve terminar com o mesmo caractere que foi usado para iniciar a string. Esses símbolos são: Apóstrofo: Começa com ' e termina com '. Aspas: Começa com " e termina com ". Colchete-Colchete: Começa com [[ e termina com ]]. Colchete-Igual-Igual-Colchete: Começa com [==[ e termina com ]==]. As strings são conjuntos de caracteres, como letras, números (Não são numbers, pois se houver um número entre os símbolos especiais será tomado como string!!!), acentos, espaços, etc... Se você quiser escrever uma frase na tela, por exemplo, não pode deixá-la solta pelo script. Esta frase deve ser uma string, ou o script dará erro. Exemplo: print('Apóstrofos') print("Aspas") print([[Colchete-Colchete]]) print([==[Colchete-Igual-Igual-Colchete]==]) OBS: 1 << Isto é um number. "1" << Isto é uma string. Booleanos Os booleanos podem assumir apenas dois valores: true e false. true: Valor verdadeiro. false: Valor falso. OBS: Os booleanos podem ser complicados de entender no começo, mas com o tempo você acostuma. Não se preocupe com eles agora... Exemplo: print(true) print(false) print(nil) Functions Exatamente o que o nome diz: é o que estamos vendo agora. Functions são nada mais nada menos do que funções. Exemplo: print(function() end) OBS: Não se preocupe com isso ainda! Tables ou Arrays São tabelas, ou seja, armazenam mais do que um valor dentro de uma "caixa". Tabelas podem armazenar outras tabelas e todos os valores dentro de uma tabela possuem um identificador, chamado "index" (índice). Tabelas começam com o símbolo { (Chave) e terminam com o símbolo } (Chave). Exemplo: print({}) Userdata Lua é uma linguagem de programação criada para dar extensão à linguagem de programação C e C++. Userdatas são ponteiros que indicam valores em C ou C++. Não se preocupe com eles. Nil Nil simboliza um valor nulo. Não deixa de ser um valor, mas é um valor sem conteúdo. Exemplo: print(nil) As funções retornam! Toda função retorna um ou mais valores, nem que sejam valores nulos (nil), portanto você pode usar uma função dentro do print para escrever os valores que a função retornar! Vamos usar como exemplo a função type(valor), que vai nos retornar uma string com o tipo do valor. Exemplo: print(type(1)) O exemplo acima vai escrever em sua tela a frase: "Number", pois 1 é um number! Exercícios: Usando a função print para escrever na tela e type para pegar o tipo de algum valor, obtenha as seguintes frases na tela: Resposta: Essa aula foi escrita por uma raposa levada Skyen Hasus, todos os créditos são dele. Aula 4 - Operadores e Bibliotecas >>1 ponto -
Subwat Kamikaze V27
1 pontoPessoal estou ressuscitando meu último mapa, e a última versão do Subwat Kamikaze V27. Estou sem imagens e estou sem informações do mapa,pois deixei em um fórum,no qual o mesmo fechou inesperadamente,postei o mapa aproximadamente 7 mesês,me desculpem. Estou sem o RME tambêm porém vou deixar o link para baixarem. Qualquer coisa Administradores ou Players me mandem um PM por aqui, obrigado. Subwat Kamikaze V27: http://www.4shared.com/rar/0Wbu6pwj/subwat_kamikaze_v27.html?1 ponto
-
The Forgotten Server 1.0
The Forgotten Server 1.0
Steve reagiu a Bruno Carvalho por uma resposta no tópico
1 pontoOlá amigos, venho aqui trazer as compilações oficiais do TFS 1.0 Isso é disponibilizado pelo próprio Mark para os usuários de windows... Link de versões já compiladas para o windows http://nightlies.otland.net/ Source https://github.com/otland/forgottenserver Tutorial de como compilar https://github.com/otland/forgottenserver/wiki/Compiling-on-Windows Para ver se ele é o mais atual você deve comparar o numero da commit com o do publicado, e é só baixar o executável de acordo com sua preferencia (recomendo sempre o mais recente e compilado em Release).1 ponto -
Crazy Evolution
Crazy Evolution
antoniogaldino reagiu a Marcio Silva por uma resposta no tópico
1 pontoOla aqui estou eu de novo desta vez com um novo server!!! Andei a corrigir muitos erros que ele tinha e a adicionar novas coisas! O servidor foi construído á mais de 2 anos, está tudo pronto. No servidor tinha em média 400-600, jogadores online! As poções infinitas, runas e munição, bem desenhado o mapa, equilíbrado, exp balanceado e testado pelos jogadores! O servidor tem: (*) Sistema de bônus Addon (bônus para ganhar o addon completo) , (*) Lottery System (em que um jogador que recebe um item aleatório de algumas em alguas hores, configurem no server e no site), (*) Sistema de Treiners inovador (Monks treiners sem filas e de espera !), (*) Sistema de House (depois de entrar no tp irás para uma zona onde exista uma casa livre), (*) Sistema de Boss (Predator - o melhor monstro no servidor), (* ) Hall of Fame (as estátuas para os melhores jogadores do servidor), (*) Rust sistema removedor (alterações enferrujados no script para o item selecionado), (*) sistema Jail (prisão, que prende o automaticamente quando o GM o bem entender), (*) stall Skill (quanto mais habilidade você pode mudar o multiplicador de skill, mlvl), (*) A distribuição de itens ao alcançares certo nivel (na promoçãovocê recebe uma recompensa) (*) Profissões Balanceadas (o que permite que o jogo seja jogado de forma igual) O MAPA TEM: (*) Um belo mapa EVOLUTION - Mais de 300 respawns, 50 missões, mais de 50 teleportes para monstros, 250 casas, o peso está acima do mapa 50MB! (*) Teleportes para os monstros, foi feito para aquele jogador que não tem muito tempo para encontrá-los!), (*) itens Balance (prontos no shop), (*) Stages de Experiencia (uma forma de stages que foi popular com os jogadores), (*) Eu adicionei alguns comandos muito importantes tais como !online,!spells, !bless, !addon xxx, !premium, !promotion, !soft, !fire, !bp, !rope, entre muitos outros, (*)Sistema unico de comprar Potions e runes por alavanca, (*) Adicionei alguns eventos como Arena, (*) Adicionei a minha base de dados sql para tenar ajudar alguem! Pronto foi apenas um pequeno resumo de algumas coisas que podem encontrar no servidor. Vou colocar algumas imagens para poderem ja avaliar algumas partes. Sistema de trainers único onde players nunca se encontram nem precisam esperar para treinar e com uma rune de mana para poderem recuperar a mana e não podem pegar nela. Templo unico e inovador Alguns Teleportes para areas hunt, são mais de 50 teleportes Sistema de comprar potions e runes por alavanca, apenas compra uma pois sao infinitas. Teleportes para muitas Questes Alguns itens "VIP" Muitas Casas Quests para first itens, quem quizer pode remover e colocar first itens automático no creatures.xml Executável limpo sem erros. Alguns Eventos Depot E pronto ai esta mais um dos meus serveres, espero que gostem, alguma duvida coloquem, antes de clonar meu server ou postar em outro forum peçam autorização. Não custa agradecer, nem postar um obrigado, mas acima de tudo um REP+ pois partilhei com voces por voluntário e a voces nao custa nada agradecer. Créditos: CrAzYBoY TiXa (minha esposa) Collocorpusek otsmateria1 ponto -
Faça seu crack de iBot :)
Faça seu crack de iBot :)
gordao reagiu a Private Sub Teste por uma resposta no tópico
1 pontoPoucos fazem o crack do IBot e os que fazem não querem contar como. Aqui vai como é feito (método mais fácil): Baixem o de4dot. Baixem o IBot atualizado do site oficial. Rode o de4dot assim: 'de4dot iBot.exe' Após isso o arquivo iBot-cleaned.exe será criado, aí está o IBot sem proteção, pode-se mexer a vontade nele e salvar como .exe novamente que irá rodar normalmente. Baixem o .NET Reflector ou outro de sua preferência (que tenha suporte ao Reflexil). Abra o iBot-cleaned.exe no .NET Reflector, na aba a esquerda aparecerá sua library. De um right-click e vá até "goto entry point" Pronto, você está na parte que inicia o bot e faz aparecer a tela de login. O próximo passo é burlar isso e fazer entrar DIRETAMENTE na tela do bot. Simples: Com o plugin do reflexil, clique no método Main() e vá até "Replace all with code..." Essa é a parte mais "difícil" do crack. Uma tela irá se abrir para se completar com um código, o código está logo abaixo: #region " Imports " using System; using System.Windows.Forms; using System.Collections.Generic; using System.Text; using ns1; using ns5; #endregion static void Main() { GClass94 pm = new GClass94("tk", "tk", "tk", "tk", true, 999); form1_0 = new Form1(pm); Application.Run(form1_0); } A Classe GClass94 é a classe de login do bot, estamos alterando manualmente um usuário/senha/hardwareid/dias de vip. Form1 é o nosso form main do bot Agora é só saaaalvar o novo executável Considerações finais: Pode ser que a classe GClass94 mude de nome, analise o código e você vai encontrar facilmente a nova classe. Não vou dar nenhum tipo de suporte quanto ao crack do bot, estou aqui apenas mostrando (DA MANEIRA MAIS SIMPLIFICADA, ATÉ MESMO AO ESCREVER) como você mesmo pode fazê-lo, sem necessitar esperar de terceiros. Eu não uso iBot, então não sei se o bot é bom e como ele está, simplesmente fiz isso por que a maioria do sites está postando o crack mas tendo que pagar certa quantia para os outros, tomara que ele troque logo esse sistema e pare de funcionar essa merda de crack.1 ponto -
Galeria [rodrigorodriguess]
Galeria [rodrigorodriguess]
luanluciano93 reagiu a rodrigorodriguess por uma resposta no tópico
1 pontoAqui vou colocando todas minhas sprites, desde as mais feinhas até as menos feias.. conforme vou evoluindo em spriter, deixarei minhas sprites antigas e as novas para vocês verem o resultado de um antigo spriter até um "profissional" e até bom para inspirar vocês a tentarem ser um spriter só vou deixar meu @edit aqui, não vou colocá-las em comentários. nenhuma sprite que está aqui é igual, ou foram adicionados sombreamentos ou areas com luz. Armor 1° 2° 3° 4° 5° 6° Helmet 1° 2° 3° 4° Legs 1° 2° 3° Sword 1° Monster: 1° Estou tendo algumas ajudas com spriters com mais experiência..1 ponto -
(Resolvido)Deixando ot on no dedicado
(Resolvido)Deixando ot on no dedicado
Leoo Zanin reagiu a Danihcv por uma resposta no tópico
1 pontoRapaz, eu acho que ñ... Pelo dedicado continua com .servegame.com Faz assim, deixa o ot configurado como se tivesse rodando no seu pc msm. Aí vê se fica on. ATENÇÃO! Ñ USEI DEDICADO AINDA ENTÃO EU POSSO ESTAR ERRADO!1 ponto -
New account free premium 3 dias
1 pontoAmigo tente procurar antes de criar um tópico ! Link : http://www.tibiaking.com/forum/topic/2623-creaturescript-ganhar-3-dias-de-premium-ao-logar-pela-primeira-vez/1 ponto
-
[GlobalEvents] ServeSave - Shutdown/Automático
Isso é muito útil e o código é bem interessante, eu não sabia que dava pra fazer assim não cara! Reputado, gostei do conteúdo. Abraço.1 ponto
-
[talkactions] Adicionar item para todos players online
É para navegar na tabela,ele vai percorrer o primeiro item da tabela e jogar na variável que foi definida. Se quiser saber um pouco melhor da uma olhada nos tutoriais do Max : http://www.tibiaking.com/forum/topic/19427-aula-9-tabelas/ E se quiser procurar mais afundo sobre ipairs,procure no google que você acha uns tutoriais bem explicados !1 ponto
-
[Aula 6] Escopo
[Aula 6] Escopo
Beyond Sky reagiu a MaXwEllDeN por uma resposta no tópico
1 pontoNão, no caso ali, na linha 5, você mudou o valor da variável "var" mais próxima. Que no caso era a local var = 2,1 ponto -
[GlobalEvents] Perfect Lottery System (MySql) - Atualizado
[GlobalEvents] Perfect Lottery System (MySql) - Atualizado
Natanael Beckman reagiu a ViitinG por uma resposta no tópico
1 pontoMuito bom amigo,obrigado por trazer o conteúdo para o TK !1 ponto -
[GlobalEvents] Perfect Lottery System (MySql) - Atualizado
[GlobalEvents] Perfect Lottery System (MySql) - Atualizado
Natanael Beckman reagiu a Beyond Sky por uma resposta no tópico
1 pontoParabéns com toda certeza usarei no meu futuro servidor.1 ponto -
Sourcers e um distro!
Sourcers e um distro!
NathanAmaro reagiu a Danihcv por uma resposta no tópico
1 pontoTa faltando um arquivo chamado xmlmemory.h que deveria ficar dentro da pasta libxml1 ponto -
(Resolvido)[ERRO] SCRIPT
(Resolvido)[ERRO] SCRIPT
macalo reagiu a Eduardo Carvalho por uma resposta no tópico
1 pontoé só remover essa parte de todos os monsters que a tenha : <script> <event name="KillingInTheNameOf"/> </script> faz isso ! Não lembro todos os monstros que tem , é só procurar. Creio que todos os monster que tem o nome no script tem o registro. é só excluir1 ponto -
[Function] getPlayerByNameAccountId
Função getPlayerByNameAccountId Informações: Essa função basicamente retorna a account id do player dando de entrada o nome do player. Testado em 8.60 e mysql somente. Adicione este código no final do arquivo data/lib/050-function.lua function getPlayerByNameAccountId(name) local pid = getPlayerByNameWildcard(name) pic = getPlayerGUID(pid) local qr = db.getResult("SELECT `account_id` FROM `players` WHERE `id`= "..pic..";") rss1 = qr:getDataInt("account_id", pic) if rss1 < 0 then rss1 = 0 end end Créditos: 100% Gabisa00 - Pela idéia e pelo script. Gostou do Sistema Faça Seu Pedido Aqui!1 ponto
-
[CTF] Capture The Flag 2.0(Automático)
[CTF] Capture The Flag 2.0(Automático)
Beyond Sky reagiu a MaXwEllDeN por uma resposta no tópico
1 pontoOlá pessoal. Perdão pela demora, não estou em casa agora e não tenho o script aqui comigo. Assim que chegar em casa eu faço o upload de novo e passo pra vocês.1 ponto -
(Resolvido)Não consigo adicionar atributos aos itens
(Resolvido)Não consigo adicionar atributos aos itens
Drafenous reagiu a xWhiteWolf por uma resposta no tópico
1 pontoseguinte amigo, weapons.xml só serve pra vc editar dano das wands ou fazer scripts pras weapons.. tudo que vc quiser fazer de dar atributo (algo secundário) tem que ser pelo movements.xml pq vai ser ele que vai ativar ou desativar os atributos a mais, tanto ao equipar (Function onEquip) como ao desequipar (Function DeEquip)1 ponto -
(Resolvido)Erro ao logar em novo OT Server
(Resolvido)Erro ao logar em novo OT Server
Dinhu reagiu a Stormhashe por uma resposta no tópico
1 pontoBoa noite galera, Estou construindo um novo servidor com um amigo. Configuramos o Uniform Server, rodamos o servidor com o account manager e a base de dados MySql. Tudo parece funcionar. Porem, quando tento entrar no server local (127.0.0.1) para testar, eu consigo acessar a conta e clicar no personagem "Account Manager", porem depois disso ele fica parado na mensagem "connecting to server..." e depois de alguns minutos, da timeout. Estamos usando a versao 8.60 do Forgotten Server Alguem ja passou por isso ao configurar um novo OT? Toda ajuda é bem vinda. Obrigado! ps: Usei estes dois tutoriais para criar o servidor: http://otland.net/threads/your-first-open-tibia-server.140934/page-21 ponto -
(Resolvido)Magic Wall nao desaparece!
(Resolvido)Magic Wall nao desaparece!
Leolinduxo reagiu a ViitinG por uma resposta no tópico
1 pontoO tópico foi movido para a área correta, preste mais atenção da próxima vez! Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680 Este tópico foi movido: De: "OTServ → OTServ Geral" Para: "OTServ → Suporte OTServ → Suporte de Scripts" Verifica se a tag do item.xml está assim : <item id="1497" article="a" name="magic wall"> <attribute key="type" value="magicfield" /> <attribute key="decayTo" value="0" /> <attribute key="duration" value="20" /> </item>1 ponto -
(Resolvido)Não consigo adicionar atributos aos itens
Esquece kkk(obs vc colocou as armas só para as promotions)..1 ponto
-
(Resolvido)Não consigo adicionar atributos aos itens
Você tem que adicionar o item no movements.xml amigo. Exemplo : <movevent type="DeEquip" itemid="8900" slot="shield" event="function" value="onDeEquipItem"/> <movevent type="Equip" itemid="8900" slot="shield" level="40" event="function" value="onEquipItem"> </movevent1 ponto
-
(Resolvido)Não consigo adicionar atributos aos itens
Erros na distro?1 ponto
-
(Resolvido)Source anti divulgação
(Resolvido)Source anti divulgação
Baiak Speeds reagiu a luanluciano93 por uma resposta no tópico
1 pontoAs vezes é só pesquisar que encontrará! • http://www.tibiaking.com/forum/topic/24927-anti-divulga%C3%A7%C3%A3o/ • http://www.tibiaking.com/forum/topic/19267-anti-divulgacao/ • http://www.tibiaking.com/forum/topic/17682-anti-divulgacao/ Espero ter ajudado, se tiver dúvidas poste aqui!1 ponto -
[PEDIDO] Como diminuir exp !
[PEDIDO] Como diminuir exp !
SliceFalso reagiu a Wend por uma resposta no tópico
1 pontová em data/lib e abra o configuration.lua e procure por isso:: playerExperienceRate e vá baixando até quando estiver bom para você1 ponto -
[PEDIDO] Como diminuir exp !
[PEDIDO] Como diminuir exp !
Nildson reagiu a joseanpereira por uma resposta no tópico
1 pontomano so vc ir no configure.luo e deixe essa opção a sim experienceStages = true se ja tiver deixe va em data/xml/ abra stages com bloco de notas apague tudo e coloque o scripter a baixo <?xml version="1.0" encoding="UTF-8"?> <stages> <world id="0" multiplier="1"> <stage minlevel="1" maxlevel="8" multiplier="7"/> <stage minlevel="9" maxlevel="20" multiplier="18"/> <stage minlevel="21" maxlevel="50" multiplier="5"/> <stage minlevel="51" maxlevel="100" multiplier="4"/> <stage minlevel="101" multiplier="5"/> </world> </stages> onde esta em vermelho e as vezes di xp exemplo 7 ali e xp=7x onde esta em azul e onde o lvl e e ae onde ele vai com aquele xp <stage minlevel="1" < e o lvl que comessa maxlevel="8" < vai ater essse lvl 8 multiplier="7"/> < o xp sera 7X1 ponto -
[Ajuda] DamageCondition
[Ajuda] DamageCondition
Cazuza reagiu a xWhiteWolf por uma resposta no tópico
1 pontotentei de tudo mas não consegui.. Acho q função certa seria essa daqui setConditionFormula(combat, mina, minb, maxa, maxb) mas não consegui utilizar ela. na melhor das hipóteses consegui deixar assim addDamageCondition(condition, 1, 100, -math.random(390,1100)) mas como a condition obrigatoriamente tem que ficar fora do script o math.random é sempre o mesmo até o script ser recarregado novamente. Esse fds vou procurar melhor e tento te dar uma resposta mais satisfadora1 ponto -
(Resolvido)Attack msm q no bixo
(Resolvido)Attack msm q no bixo
cesarfilho55 reagiu a xWhiteWolf por uma resposta no tópico
1 pontoacho q o problema foi que vc deixou um numero muito alto no multiplicador de dano e deixou um numero mt pequeno no multiplicador de defesa: <formula meleeDamage="8.0" distDamage="8.0" wandDamage="3.0" magDamage="3.5" magHealingDamage="7.0" defense="1.1" magdefense="1.3" armor="50.0"/> aumenta o defense, magdefense e o armor.. isso pra cada classe!1 ponto -
(Resolvido)Dois pedidos!
(Resolvido)Dois pedidos!
NathanAmaro reagiu a xWhiteWolf por uma resposta no tópico
1 pontodanih, vc só colocar as coisas fora da function principal quando elas não variam com o tempo. a pos do player tem que ser pega quando ele clicar na alavanca e não quando liga o server. o certo seria: function onUse(cid, item, fromPosition, itemEx, toPosition) local pos = getPlayerPosition(cid) local up = {x= pos.x, y = pos.y, z= pos.z+1} -- aumenta um andar local down = {x= pos.x, y = pos.y, z= pos.z-1} -- diminui um andar. if (item.itemid == 1946) then doTeleportThing(cid, up) elseif (item.itemid == 1945) then doTeleportThing(cid, down) end return true end função ao Usar: pega a posição do Player calcula up e down se o itemid que é clicado tiver valor igual a 1946 então teleportar pra up senão, se o itemid que é clicado tiver valor igual a 1945 então teleportar pra cima fim do se retornar verdadeiro para a função (nesse caso ele checa a função e permite ou não a clicagem, se tivesse return false ele não permitira que vc clicasse e seria como se n tivesse usado (é util pra scripts que utilizem doRemoveItem) ) fim da função ___________________________________________ Vale lembrar que não irá bugar porque nesse script ele não muda o id da alavanca ao clicar;1 ponto -
(Resolvido)Dois pedidos!
(Resolvido)Dois pedidos!
NathanAmaro reagiu a Danihcv por uma resposta no tópico
1 pontoPra instalar faz assim: Voce precisa ir no seu editor de mapa e adicionar um action id pra alavanca. Adiciona essa tag em actions.xml: <action actionid="ACTION ID DA ALAVANCA" event="script" value="SCRIPT.lua"/> Aí na pasta actions/scripts vc coloca esse script: (o nome desse script será o nome que vc irá colocar na tag acima na parte de value" ") local pos = getPlayerPosition(cid) local up = {x= pos.x, y = pos.y, z= pos.z+1} -- aumenta um andar local down = {x= pos.x, y = pos.y, z= pos.z-1} -- diminui um andar. function onUse(cid, item, fromPosition, itemEx, toPosition) if (item.itemid == 1946) then doTeleportThing(cid, up) elseif (item.itemid == 1945) then doTeleportThing(cid, down) end end1 ponto -
PField Project - Open Source
1 pontoAwen* poderia concerta o download que não esta dando para baixar :3 se for possivel . Obrigado!1 ponto
-
[ PEDIDO ] Da Use em um item e ganha uma talkactions por dias
[ PEDIDO ] Da Use em um item e ganha uma talkactions por dias
xWhiteWolf reagiu a llucas75 por uma resposta no tópico
1 pontosó trocar o 1 pelo numero de dias... tipo ta pra 1 dia.. se quiser 7 fica 7*24*60*60 Se duvida foi sanada? se sim marque melhor resposta para que tópico possa ser fechado1 ponto -
Heal aura system
Heal aura system
bandos reagiu a bielzinhocrazy por uma resposta no tópico
1 pontoSim, também é possível, fiz de uma maneira bem improvisada pra você ter uma ideia de como fazer : em data\npcs crie um arquivo NOMEDONPC.xml, e cole isto : <?xml version="1.0" encoding="UTF-8"?> <npc name="NOMEDOSEUNPC" script="data/npc/scripts/auranpc.lua" walkinterval="50000" floorchange="0"> <health now="100" max="100"/> <look type="129" head="95" body="116" legs="121" feet="115" addons="3"/> <parameters> <parameter key="message_greet" value="Oi |PLAYERNAME|. Eu possuo a habilidade de ceder {aura}. O que deseja?"/> </parameters> </npc> Coloque o nome do npc, e outfits de sua preferência. agora vá em data\npcs\scripts, crie um arquivo chamado auranpc.lua, e cole isto : 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 msgcontains(msg, 'aura') then if getPlayerStorageValue(cid,20201) ~= 1 then selfSay('Para adquirir aura é necessário 10000000 golds. Você deseja adquirí-la?', cid) talkState[talkUser] = 1 else selfSay('Você já possui aura.', cid) end elseif talkState[talkUser] == 1 then if msgcontains(msg, 'yes') then if doPlayerRemoveMoney(cid, 10000000) then setPlayerStorageValue(cid,20201,1) selfSay('Parabéns, agora você possui aura!', cid) talkState[talkUser] = 0 else selfSay('Você não possui o dinheiro necessário.', cid) end else selfSay('Então porque veio aqui?', cid) end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Você pode configurar o dinheiro (ou item) necessário ali na parte "doRemovePlayerMoney", logo após o if. Se desejar algum item, escreva "doRemovePlayerItem(cid,ID do item, quantidade)". Quando você fizer isso, também deve mudar a mensagem do NPC em que diz o que precisa, que é a parte "selfSay('Para adquirir aura é necessário 10000000 golds. Você deseja adquirí-la?', cid)". Logo após isso, vá no creaturescript da aura (data\creaturescripts\scripts\aura.lua), e apenas na função principal (onLogin), troque por isto : function onLogin(cid) if(getPlayerStorageValue(cid, 20201)==1) then return efeitosAura(1,tempo/8,cid) end return TRUE end E pronto, agora é só adicionar o NPC no seu mapa.1 ponto -
Survival of the Fittest
Survival of the Fittest
Farathor reagiu a Eduardo Carvalho por uma resposta no tópico
1 pontoLogo mais faço o mapa, e uma nova versão do evento, para que funcione em PVP zone. Abraços.1 ponto -
[Show-Off] Mapas do Leof!
[Show-Off] Mapas do Leof!
sviniciusimoes reagiu a Nightinshade por uma resposta no tópico
1 pontoEaí galerinha do TK, tudo em cima? Esse será meu tópico portfólio. Com ele, pretendo me organizar melhor e conseguir uma certa evolução como mapper. Espero que apreciem meus mapas e que me ajudem, através de críticas bem formuladas e bem direcionadas, a melhorar. Obrigado! Mapa 1: "Uma pequena ilha, com uma pequena casa, um depósito e muita tranquilidade." Mapa 1, imagem 1. Mapa 1, imagem 2. Mapa 2: "Um templo bem velho, com alguns indícios de que já houve um incêndio no local." Mapa 2, imagem 1. Mapa 2, imagem 2. Mapa 3: "Uma casa qualquer, indiferente à todas as outras que uma cidade pode abraçar." Nota: esse mapa já existe e não é uma criação de minha autoria. Vi o mapa em um tópico perdido nesse fórum e resolvi recriá-lo, mas de minha maneira. Todos os créditos são de seu (s) respectivo (s) autor (es). Mapa 3, imagem 1. Mapa 4: "Uma casa com arquitetura e localização voltadas à tranquilidade? Uma casa na montanha, é isso o que você procura!" Nota: esse mapa já existe e não é uma criação de minha autoria. Vi o mapa em um tópico perdido nesse fórum e resolvi recriá-lo, mas de minha maneira. Todos os créditos são de seu (s) respectivo (s) autor (es). Mapa 4, imagem 1. Mapa 5: "Uma ponte que, convenhamos, caiu muito bem. Ninguém merece atravessar um rio sujo e poluído à nado." Nota: treinando para o concurso JTM! \o/ Mapa 5, imagem 1. Mapa 6: "Após a chegada inesperada de muitos refugiados de guerra, o nosso jovem rei foi obrigado a construir uma ponte para facilitar a movimentação entre o norte e o sul a cidade. Bem, apesar de não gostar muitos desses refugiados, ao menos me parece que, dessa vez, estamos sob um ótimo comando." Nota: treinando para o concurso JTM! \o/ Mapa 6, imagem 1. Mapa 7: "Aqueles MALDITOS orcs! Vivem nos atacando pela entrada norte da cidade, sempre nos pegando de calças curta. Diante desses ataques, erguemos então um muro para não ficarmos tão vulneráveis quando sob invasão. Erguemos também uma ponte, para podermos circular livremente de um lado para o outro. Talvez você pergunte a si mesmo: por que motivo erguer uma barricada se vocês ainda os dão chance de passar sobre ela? Isso é mais simples do que parece! Nós apenas os fazemos se agruparem na ponte, acionamos nossos arqueiros e os liquidamos sem perder muitos ou até nenhum soldado. Uma bela tática de guerra, não acha? Eu mereço uma medalha por isso!" Nota: mapa feito por mim para concorrer durante a primeira fase do concurso JTM. Mapa 7, imagem 1. Mapa 8: "Nós realmente somos bons nisso! Em um dia, com apenas 8 homens, conseguimos pavimentar uma grande avenida! Com certeza receberemos o reconhecimento do rei pelo ótimo trabalho. Acho que nem mesmo os servos de Brog possuem tamanha destreza para realizar um trabalho tão bom em tão pouco tempo!" Nota: o mapa representa a construção de uma das ruas e avenidas de uma promissora cidade. A rua em questão fica ao lado de um criadouro de animais. Mapa 8, imagem 1. Última atualização: 20/05/2014, às 06:49. Muito obrigado pelas críticas e elogios que venho recebendo. Eles são uma motivação a mais pra continuar mapeando e desenvolvendo um pouco de criatividade. Bom, por enquanto é isso galera! Em breve novas atualizações!1 ponto -
(Resolvido)[Ajuda] Ajuda Nesse Script Aqui Por favor :c
(Resolvido)[Ajuda] Ajuda Nesse Script Aqui Por favor :c
SliceFalso reagiu a Wend por uma resposta no tópico
1 pontoTenta esse:: function onUse(cid, item, frompos, itemEx, topos) local bike = {lookType = 1394} --- LookType do player em cima da bike. homem local bike1 = {lookType = 1393} --- LookType do player em cima da bike. mulher local speed = 999 --- Velocidade que a bike terá. if getPlayerStorageValue(cid, 32001) == 1 then doRemoveCondition(cid, CONDITION_OUTFIT) doChangeSpeed(cid, -speed) doSendAnimatedText(getCreaturePosition(cid), 'Bike OFF!', 35) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_RED, 'Você desmontou da bike.') setPlayerStorageValue(cid, 32001, 0) else if getPlayerSex(cid) == 1 then -- homem doChangeSpeed(cid, speed) doSetCreatureOutfit(cid, bike, -1) doSendAnimatedText(getCreaturePosition(cid), 'Bike ON!', 32) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Você montou na bike.') setPlayerStorageValue(cid, 32001, 1) elseif getPlayerSex(cid) == 0 then -- homem doChangeSpeed(cid, speed) doSetCreatureOutfit(cid, bike1, -1) doSendAnimatedText(getCreaturePosition(cid), 'Bike ON!', 32) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, 'Você montou na bike.') setPlayerStorageValue(cid, 32001, 1) end end return true end1 ponto -
PROBLEMA COM LAG EM LINUX
PROBLEMA COM LAG EM LINUX
Baiak Speeds reagiu a luanluciano93 por uma resposta no tópico
1 pontocompile outra source da mesma versão e testa!1 ponto -
LunusOt Server Download
LunusOt Server Download
Ricardo Hendges reagiu a Stigal por uma resposta no tópico
1 pontoAdicione você mesmo... Pokemon Inicial: http://www.tibiaking.com/forum/topic/8618-resolvido-pokemons-iniciais/ Bau Inicial: http://www.tibiaking.com/forum/topic/26388-pedido-bau-inicial/1 ponto -
Script para não perder item !
Script para não perder item !
Soleister reagiu a jonasneto12 por uma resposta no tópico
1 pontoCria um arquivo chamado levelprotection.lua na pasta creaturescripts/scripts Dentro dele coloque: Em creaturescripts.xml coloque Va em login.lua e adicione Creditos: Nao sei quem criou esse script, tinha no meu serv OBS:COLOQUE O LVL MAXIMO PARA NAO PERDER SKILL OU NO CASO LOOT1 ponto -
Algumas Hotkeys De Elf bot ng 8.6
Algumas Hotkeys De Elf bot ng 8.6
Igorzerah reagiu a chavespererinha por uma resposta no tópico
1 pontofikou bem mas vc podia ter colokado um hotkey de fikar rodandu para qm quiser ta ae auto 1 turnw | wait 1 | turnn | wait 1 | turne |wait 1 | turns gostou? naum custa nd dar um +rep1 ponto