Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 06/09/12 em %
-
Aprenda Linguagem C, Tutorial Basico !
rDs7008 e um outro reagiu a MageKapura por um tópico no fórum
Eae galerinha !!! Entao hoje vim aqui postar um tutorial que fiz sobre programaçao C, nada muito fabuloso, apenas um tutorial basico para terem um pequena ideia !! Bem para começar voce tem que adicionar as bibliotecas entao vamo nessa ! #include<stdio.h> #include<conio.h> Obs: essas duas bibliotecas servem para suas funções. int main(void) Obs: essa funçao é a principal, nao esqueça dela si nao ira dar erro. { printf("Ola Mundo !"); Obs: para que serve printf ? ela é responssavel por apareçer auguma coisa na tela. } E como tirar aquelas escritas que ta ali e deichar apenas a frase Ola Mundo !! ? Simples agora vou fazer o script C sem "OBS", msm por que eu acho que vocês entenderão #include<stdio.h> #include<conio.h> int main(void) { clrscr(); printf("Ola Mundo !!"); } Agora com a funçao " CLRSCR();", a tela fica assim : Azul: a entrada das bibliotecas Verde: funçao principal Vermelho:Funçao para deichar a tela limpa, nesse script C. I é isso ai rapaziada, vou fazer mais tutos mais pra frente e posto aqui si esse tuto for bem divulgado ou seja tiver jente interessada !! VLW um abrç do MageKapura !!2 pontos -
[Intermediário] - Loja De Forja
gabriel28 e um outro reagiu a darklight por um tópico no fórum
Introdução Venho através deste tutorial ensinar-lhes sobre como construir uma loja de forja, ou seja, loja onde vende-se armaduras e espadas. 1. Vamos focar no primeiro andar, então vamos fazer a estrutura (base), ou seja, o local aonde serão feitos os items: - Se quiser use os items abaixo - Ficando assim: 2. Hora de detalhar de acordo com o tema; adicione bigornas, armaduras, etc. etc. - IDs de alguns dos items usados: - Ficando deste jeito: 3. Hora de sujar o local: adicione pedrinhas andáveis, tufos, rock soil, enfim. Lembre-se: não exagere com nenhum destes items! Adicionei também alguns detalhes na parede no lado exterior, como lâmpada, escadas para o primeiro andar e plantas. - Ficou assim: 4. Adicionei algo à mais: um cercadinho com uma árvores grande, se quiser faça outra coisa, mas que chame a atenção do player. * Caso não saiba os IDs do tronco da árvore são: 4037 até 4040. 5. Ahh, finalmente acabamos com a base! Vamos agora para o primeiro andar, é óbvio. Faça a estrutura com os items do passo 1 ou se preferir faça uma randomização das paredes. P.S.: Não esquece de ir terminando sua árvore, no meu caso adicionei mais um tronco, folhas e uma flor de jungle. 6. Yep! Estamos quase no fim! Como o primeiro andar irá ser onde o NPC irá vender os items e também é onde ele dorme, eu adicionei um balcão, cama, quadro, bookshelf, etc. etc. 7. Uhul! Este é o último passo. Simplesmente terminei a minha bela árvore e fiz o telhado. Como eu o fiz? Simples: primeiramente, coloquei as bordas do wooden roof, depois completei o "espaço preto" com o flat roof. - Ficando assim: Créditos: 100% Left4Dead Tutorial exclusivo para o Xtibia. Bom, é isso galera, espero que tenham gostado!2 pontos -
[Encerrado] [Pokemon] Dúvidas? - Pda
dudusbotelho e um outro reagiu a Kurobisu por um tópico no fórum
@rodrigues17 Vou fazer um favor e postar o mapa aqui para você. >>>>MAPA<<<< REP+ REP+ REP+ Tentando ajudar a quem precisa. Tentando também ganhar mais REP+ EDIT: Eu também modifiquei uns bugs que eu achei no mar que os pokes não passavam. E uns respaws que estavam também bugando... EDIT DENOVO: Caro você utilize esse mapa você precisará dos NPCS dele para não dar erros no Console. MEUS NPCS (TO DANDO COM CARINHO EM!) Quero REP! Pesso muito né?2 pontos -
Azeroth Server Updated 12/03/2012: v1.1 Outras Versões: v1.0 [8.70]: http://www.xtibia.com/forum/topic/150269-azeroth-server-updated/ v2.0 [9.60]: http://www.xtibia.com/forum/topic/205054-960-azeroth-rpg/ Versão: 8.60 Distro: TFS 0.4 Mapa Base: Yourots Edited e Mix Yourots Features: > 7 Cidades: Azeroth Avalon Zatur Liberty Bay Gloria Sand Trap Tiquanda > Mapa RPG bem detalhado para Ots Low e Mid rate. > Inúmeras invasões automáticas, Low e High lvl (ou iniciadas pelo comando /raid "nome"). > NPCs de Travel/Boat diferentes para cada cidade. > Mais de 70 quests (além das principais) espalhadas pelo mapa. > Quests especiais com NPCs > Arena PvP sem perda de items. > Sistema de Guerras pelo Castelo [entre guilds] (mais detalhes abaixo) > Sistema de Refinamento e Slot (mais detalhes abaixo). > Sistema de Mineração (mais detalhes abaixo) > Scripts e sistemas aprimorados para o servidor > Distro SEM erro algum > Principais Quests: Annihilator Blue Legs Pits of Inferno MMS The Inquisition The Death FireWalker Boots Demon Helmet Draken Hell Conquer > 23 Raids Automáticas e configuradas: > Sistema de Guerras pelo Castelo [Honor Castle, a oeste de Azeroth] Evento automático. Quando a guerra é anunciada as guilds podem batalhar pelo controle do castelo, dando use no monumento do último andar e permanecendo assim até a guerra acabar. O último jogador a ter o controle do castelo antes do tempo acabar será o vencedor, e sua guild se tornará dona do castelo. Todos os membros da Guild ganharão uma recompensa e poderão acessar o mapa do subsolo. Os membros de outras Guilds serão teleportados para o templo e não poderão acessar o castelo. O sistema envia mensagens a todos antes de o evento começar, quando começar, quando o dono do castelo muda, antes de se finalizar e ao finalizar, relatando o conquistador do castelo e a guild vencedora. Imagens: Raids Honor Castle War Upgrade & Slot System > Histórico: V 0.2 V 0.3 V 0.4 V 1.0 V 1.1 Edição e postagem(leia): Eu autorizo edições e repostagens do Azeroth Server (aliás, não posso proibir isso) mas peço a vocês que pelo menos respeitem o estilo do mapa. Eu não sei se poderei dar continuidade a ele, mas trata-se de um projeto RPG. Pensa só, eu tive um trabalhão pra editar o server, fiz tudo com mais amor do que o arroz que sua mãe faz com sazón, e você vai baixar, encher de teleportes e hunts quadradas, colocar armas com atk de 350000, sistemas VIPs sem propósito algum, vai copiar o tópico, retirar meus créditos e postar novamente? Reconsidere, pois não há nada mais desmotivador para um desenvolvedor do que isso, ver seu trabalho cair em desuso, como aconteceu com o Styller YourOts, Vancini e Baiak, que agora é um monstro sem pé nem cabeça (alguns gostam desse tipo de server, tudo bem, mas essa não é a proposta deste servidor). Se teve boas ideias e quer editar o servidor para postar, fique à vontade, estarei à disposição quando puder, mas não me decepcione, ok? lindos Não há teleports diretos para hunts ou quests. Não há items ou monstros editados(além dos trainers). Não há sistema VIP, VIP 2, VIP 3, VIP 345456364. Não há raids com monstros excessivamente fortes nas cidades iniciais. Créditos: < Unknow YourOts Edited >< Mix Yourots Team >< Crystal Server Team >< Tryller >< Mock >< TFS Team >< TonyHanks >< Centera World >< Vmspk > (Nunca retire os créditos, nem mesmo se for postar o servidor em outro fórum) DOWNLOADS > Opcionais IP Changer - Utilitários(opcional) - Map Editor *Utilitários inclui: Lista com códigos de todos os looktypes, SQLite Studio 1.1.1, códigos das cores dos outfits e o OTRestarter. > Servidor Tive problemas para encontrar um distro confiável. Vários TFS não funcionavam direito ou pareciam estar infectados, segundo o VirusTotal, mas ao que me parece o site deve ter mudado algo em suas configurações, por que até arquivos limpos como o antigo Mix YourOts, postado aqui mesmo, agora ficam com 16 + arquivos suspeitos no novo scan. Eu optei por usar um TFS 0.4 postado na Vapus pelo usuário Lyonman (LINK). O distro foi testado com vários anti-virús, sem nenhum problema, e funciona perfeitamente com o Azeroth Server, porém, sou responsável apenas pelo DataPack do servidor. Se você decidir usar este distro, será por sua própria conta (ou se alguém tiver alguma versão do tfs 0.4 r3884 que passe lisa nos scans, poderei substituir). DOWNLOADS: Opção 1 Opção 2 Somente DataPack (+ IpChanger e SqliteStudio) Servidor Completo (DataPack + Distro e DLLs) Acc do GOD: vmspk/222222 Comandos: !war para executar a guerra pelo castelo manualmente, !reset para interromper o funcionamento da war e !castle para limpar todos os dados, ou seja, o castelo volta a ser terra de ninguém. !info para saber mais sobre as novidades do Azeroth Server. Editável na pasta do Ot, em Notícias. Comando !bless e !rank disponíveis. Para saber os IDs das pedras e outras coisas vá ao Histórico, na versão 1.0. Se acha que ter um OtServ é só baixar, abrir e largar lá, ou ainda editar chars e equipamentos para você mesmo jogar e fazer o que quiser, garanto-lhe que não vai durar 2 dias. Conheça o mapa, crie eventos, interaja com os jogadores, faça torneios Pvp, marque datas para a Honor Castle, faça updates no mapa, crie monstros, hunts e quests, dê suporte e, o mais importante, mantenha o HELP aberto, sempre. Contato: vmspk@hotmail.com Conheça também o 4Fun Server 9.1 Este servidor está liberado para postagem, mas por enquanto só existe aqui no Xtibia Um bjo pra vcs1 ponto
-
Mapa Subwat Kamikaze Atualizado
ChrisPommerz reagiu a rogeriocene por um tópico no fórum
MAPA ATUALIZADO!!!! OQUE A DE NOVO??????NOVOS MONSTROS , CITY VIP , BUGS DE GOD RETIRADOS , NOVO VISUAL ,NOVAS MAGIAS , NOVOS EVENTOS , EM FIM MAPA MELHORADO 80% IMAGENS DO TEMPLO IMAGENS DA AREA VIP IMAGENS DOS NOVOS TP DOWNLOAD: http://www.4shared.c...amikazev11.html SCAN: https://www.virustot...sis/1328973010/ super NOVA VERSAO atualizada dia 13 de dezembro de 2012 http://www.xtibia.co...__fromsearch__1 INTAO E SO ISSO GALERA xD GOSTO DO MAPA?? DA +REP AE ;D MSN: adm.kamikazeofficial@hotmail.com add fui hackd no outro1 ponto -
[Gesior Acc] Vip Status Obedecendo Vip_Time.
rayzinhoxd reagiu a Natanael Beckman por um tópico no fórum
Boa galera mais uma vez eu aqui! ;p Agora o sistema de VIP Status obedece pelo vip_time, no Gesior ACC o sistema de vip atual obedece o storage que não é tão bom devido um bug quando o player recebe um vip pelo storage no termino do vip_time ele ainda fica com o Status de VIP, nesse tutorial eu vou ensinar como ele obedecer o accont>vip_time. Recomendado pra quem usa system vip by Mock e para sistema vip By Lukeskywalker. Vamos nois... Vai até htdocs/pot/OTS_ACCOUNT.php Procure por: 'lastday' => 0, Logo após adicione: 'vip_time' => 0, Procure por: ' . $this->db->fieldName('rlname') . ', Logo após adicione: '. $this->db->fieldName('vip_time') . ', Procure por: ' . $this->db->fieldName('rlname') . ' = ' . $this->db->quote($this->data['rlname']) . ', Logo após adicione: ' . $this->db->fieldName('vip_time') . ' = ' . $this->db->quote($this->data['vip_time']) . ', Procure por: public function getRLName() { if( !isset($this->data['rlname']) ) { throw new E_OTS_NotLoaded(); } return $this->data['rlname']; } Logo após adicione: public function getPlayerVip_Time() { if( !isset($this->data['vip_time']) ) { throw new E_OTS_NotLoaded(); } return $this->data['vip_time']; } Vai até htdocs/Accountmanagement.php Procure por: $account_email = $account_logged->getEMail(); $account_email_new_time = $account_logged->getCustomField("email_new_time"); if($account_email_new_time > 1) $account_email_new = $account_logged->getCustomField("email_new"); Logo após adicione: /*Vip Status*/ $account_vip = $account_logged->getPlayerVip_Time() ? '<b><font color="green"> Vip Account, '.$account_logged->getPlayerVip_Time().' Days left </font></b>' : '<b><font color="red">Not Vip Account</font></b>'; Procure por: " ><td class="LabelV" >Account Status:</td><td>'.$account_status.'</td></tr><tr style="background-color:'.$config['site']['darkborder'].'; Logo após adicione: " ><td class="LabelV" >Vip Status:</td><td>'.$account_vip.'</td></tr><tr style="background-color:'.$config['site']['darkborder'].'; Vai até htdocs/character.php Procure por: if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Account*Status:</TD><TD>'; $main_content .= ($account->isPremium()) ? '<b><font color="green">Premium Account</font></b>' : '<b><font color="red">Free Account</font></b>'; Logo após adicione: /*Vip Status*/ if(is_int($number_of_rows / 2)) { $bgcolor = $config['site']['darkborder']; } else { $bgcolor = $config['site']['lightborder']; } $number_of_rows++; $main_content .= '<TR BGCOLOR="'.$bgcolor.'"><TD>Vip Status:</TD><TD>'; $main_content .= ($account->getPlayerVip_Time()) ? '<b><font color="green">Vip Account</font></b>' : '<b><font color="red">Not Vip Account</font></b>'; Bom, se você fizer tudo corretamente como está no topico tudo vai da certo leia atentamente e faça com calma. Creditos: Natan Beckman Acordion1 ponto -
[Pokemon] PDA By Slicer Pokemon dash advanced editado por slicer, vários bugs retidos. Projeto encerrado! Espero que todos tenham gostado desse 1 ano de trabalho duro! Todas as atualizações: * Leiam e sigam as instruções do Change Log dentro da pasta do patch! Downlaods: PDA By Slicer With Level System v2.9 Full -> http://www.mediafire...z2afuu75zblvmvq PDA By Slicer Without Level System v1.9 Full -> http://www.mediafire...td0l0ip9ajprrbf OTClient editado 2.8/1.8 => http://www.mediafire...1lcbs1fktpm676w Atualizações: EH OBRIGATORIO O USO DESSE CLIENT ABAIXO E USEM O .PIC TB!!!!!!!!! Client v1.9/2.9 => http://www.mediafire...77i414v1hy187fj Patch v1.9 => http://www.mediafire...da4umj3ip18jrf1 Patch v2.9 => http://www.mediafire...7nt275td9afl1fy Patch v1.9.1 => http://www.mediafire.com/?i3flwa3lrd016zl Patch v2.9.1 => http://www.mediafire.com/?m4zhjgn62uow1sp Obs: Atualizaçoes mais antigas estao dentro do spoiler acima!! OTAL.DLL: OBS: caso n esteja aparecendo a barra de moves no client normal do tibia, baixem essa .dll e coloquem na pasta onde fica o Pokemon_nibe.exe ... Otal.rar Patch Correçao! Todos olhem! Bugs na nova atualizaçao? Olhe o spoiler e veja se arruma o problema! Atualizado: 08/02/13 Créditos: Otal.rar1 ponto
-
1 ponto
-
Nome: Perfect Upgrade System Tipo: Biblioteca, Action, Sistema Autor: Oneshot Essa é a versão final do Perfect Refine System ou Perfect Upgrade System criado por mim. É um sistema construído em cima de funções em POO (orientação a objetos), o que o torna muito versátil, possibilitando a outros programadores/scripters criarem seus próprios sistemas com base na biblioteca. A função do sistema é simples. Não passa de um sistema de refino, presente em todos os servidores, onde você usa um item em um equipamento e este fica mais forte e ganha um nome caracterizando o nível de força - bem clichê - mas muito interessante. Meu sistema é um pouco diferente dos outros, pois possui algumas características exclusivas, listadas abaixo: O nível máximo configurável é praticamente ilimitado O sistema funciona com armas de combate corpo-a-corpo, bows e crossbows. O refino pode falhar, não acontecendo nada, regredindo o nível ou resetando ele. Há um sistema nativo de broadcasts, que são enviados quando um jogador consegue refinar um equipamento até um certo nível ou maior. As chances são configuradas manualmente e sua randomização é muito precisa. Há dois modos de instalar o sistema em seu servidor, o primeiro é baixar a pasta com os scripts necessários e apenas copiar as chaves nos arquivos XMLs ou então seguir o curto tutorial de instalação. Crie um arquivo chamado upgradesystem.lua na pasta data/lib e copie o conteúdo abaixo: --[[ PERFECT UPGRADE SYSTEM 2.0 Criado por Oneshot É proibido a venda ou a cópia sem os devidos créditos desse script. ]]-- UpgradeHandler = { levels = { [1] = {100, false, false}, [2] = {90, false, false}, [3] = {75, false, false}, [4] = {60, true, false}, [5] = {45, true, false}, [6] = {30, true, false}, [7] = {25, true, false}, [8] = {20, true, true}, [9] = {15, true, true}, [10] = {10, true, true}, [11] = {10, true, true}, [12] = {5, true, true} }, broadcast = 7, attributes = { ["attack"] = 2, ["defense"] = 1, ["armor"] = 1 }, message = { console = "Trying to refine %s to level +%s with %s%% success rate.", success = "You have upgraded %s to level +%s", fail = "You have failed in upgrade of %s to level +%s", downgrade = "The upgrade level of %s has downgraded to +%s", erase = "The upgrade level of %s has been erased.", maxlevel = "The targeted %s is already on max upgrade level.", notupgradeable = "This item is not upgradeable.", broadcast = "The player %s was successful in upgrading %s to level +%s.\nCongratulations!!", invalidtool = "This is not a valid upgrade tool.", toolrange = "This upgrade tool can only be used in items with level between +%s and +%s" }, tools = { [8306] = {range = {0, 10}, info = {chance = 0, removeable = true}}, }, isEquipment = function(self) local weaponType = self:getItemWeaponType() return ((weaponType > 0 and weaponType < 7) or self.item.armor ~= 0) end, setItemName = function(self, name) return doItemSetAttribute(self.item.uid, "name", name) end, chance = function(self) local chances = {} chances.upgrade = (self.levels[self.item.level + 1][1] or 100) chances.downgrade = (self.item.level * 5) chances.erase = (self.item.level * 3) return chances end } function UpgradeHandler:new(item) local obj, ret = {} obj.item = {} obj.item.level = 0 obj.item.uid = item.uid for key, value in pairs(getItemInfo(item.itemid)) do obj.item[key] = value end ret = setmetatable(obj, {__index = function(self, index) if _G[index] then return (setmetatable({callback = _G[index]}, {__call = function(self, ...) return self.callback(item.uid, ...) end})) else return UpgradeHandler[index] end end}) if ret:isEquipment() then ret:update() return ret end return false end function UpgradeHandler:update() self.item.level = (tonumber(self:getItemName():match("%+(%d+)")) or 0) end function UpgradeHandler:refine(uid, item) if not self.item then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_BLUE, self.message.notupgradeable) return "miss" end local tool = self.tools[item.itemid] if(tool == nil) then doPlayerSendTextMessage(uid, MESSAGE_EVENT_DEFAULT, self.message.invalidtool) return "miss" end if(self.item.level > #self.levels) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.maxlevel:format(self.item.name)) return "miss" end if(self.item.level < tool.range[1] or self.item.level >= tool.range[2]) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.toolrange:format(unpack(tool.range))) return "miss" end local chance = (self:chance().upgrade + tool.info.chance) doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_BLUE, self.message.console:format(self.item.name, (self.item.level + 1), math.min(100, chance))) if(tool.info.removeable == true) then doRemoveItem(item.uid, 1) end if chance * 100 > math.random(1, 10000) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_ORANGE, self.message.success:format(self.item.name, (self.item.level + 1))) if (self.item.level + 1) >= self.broadcast then doBroadcastMessage(self.message.broadcast:format(getCreatureName(uid), self.item.name, (self.item.level + 1))) end self:setItemName((self.item.level > 0 and self:getItemName():gsub("%+(%d+)", "+".. (self.item.level + 1)) or (self:getItemName() .." +1"))) for key, value in pairs(self.attributes) do if getItemAttribute(self.item.uid, key) ~= nil or self.item[key] ~= 0 then doItemSetAttribute(self.item.uid, key, (self.item.level > 0 and getItemAttribute(self.item.uid, key) or self.item[key]) + value) end end return "success" else if(self.levels[self.item.level][3] == true and (self:chance().erase * 100) > math.random(1, 10000)) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.erase:format(self.item.name)) self:setItemName(self.item.name) for key, value in pairs(self.attributes) do if self.item[key] > 0 then doItemSetAttribute(self.item.uid, key, self.item[key]) end end elseif(self.levels[self.item.level][2] == true and (self:chance().downgrade * 100) > math.random(1, 10000)) then doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.downgrade:format(self.item.name, (self.item.level - 1))) self:setItemName((self.item.level == 1 and self.item.name or self:getItemName():gsub("%+(%d+)", "+".. (self.item.level - 1)))) for key, value in pairs(self.attributes) do if getItemAttribute(self.item.uid, key) ~= nil or self.item[key] ~= 0 then doItemSetAttribute(self.item.uid, key, (self.item[key] + value * (self.item.level - 1))) end end else doPlayerSendTextMessage(uid, MESSAGE_STATUS_CONSOLE_RED, self.message.fail:format(self.item.name, (self.item.level + 1))) end return "fail" end end Crie um arquivo chamado upgrade.lua em data/actions/scripts e cole o conteúdo abaixo: function onUse(cid, item, fromPosition, itemEx, toPosition) if isCreature(itemEx.uid) then return doPlayerSendDefaultCancel(cid, RETURNVALUE_NOTPOSSIBLE) end local obj = UpgradeHandler:new(itemEx) if(obj == false) then return doPlayerSendCancel(cid, UpgradeHandler.message.notupgradeable) end local status = obj:refine(cid, item) if status == "success" then --doSendAnimatedText(toPosition, "Success!", COLOR_GREEN) doSendMagicEffect(toPosition, CONST_ME_MAGIC_GREEN) elseif status == "fail" then --doSendAnimatedText(toPosition, "Fail!", COLOR_RED) doSendMagicEffect(toPosition, CONST_ME_POFF) else doSendMagicEffect(toPosition, CONST_ME_POFF) end return true end No arquivo actions.xml, cole a seguinte linha: <action itemid="8306" event="script" value="upgrade.lua"/> Para adicionar mais níveis de refino no sistema, edite a seguinte tabela: levels = { [1] = {100, false, false}, [2] = {90, false, false}, [3] = {75, false, false}, [4] = {60, true, false}, [5] = {45, true, false}, [6] = {30, true, false}, [7] = {25, true, false}, [8] = {20, true, true}, [9] = {15, true, true}, [10] = {10, true, true} }, Por padrão, ela já está configurado como na maioria dos MMORPGs, 10 níveis de refino, com chances de sucesso, regressão e "quebra". Mas se você quiser, por exemplo, adicionar mais dois níveis, siga o modelo, sempre colocando uma vírgula no final com exceção da última linha da tabela: levels = { [1] = {100, false, false}, [2] = {90, false, false}, [3] = {75, false, false}, [4] = {60, true, false}, [5] = {45, true, false}, [6] = {30, true, false}, [7] = {25, true, false}, [8] = {20, true, true}, [9] = {15, true, true}, [10] = {10, true, true}, [11] = {10, true, true}, [12] = {5, true, true} }, O primeiro valor é chance de sucesso, o segundo se o item pode regredir na tentativa e o terceiro é se o item para "quebrar" (perder todo o nível de refino). Para criar novas ferramentas (itens) de refinar, configure a tabela abaixo: tools = { [8306] = {range = {0, 10}, info = {chance = 0, removeable = true}}, }, Seguindo o mesmo esquema da tabela anterior, vírgulas em todas as linhas com exceção da última, seguindo o modelo abaixo. Por exemplo, uma ferramenta de ID 8303 que refine do level +6 ao +10, que dê 10% de chance bônus e que seja finita, eu faço assim: tools = { [8306] = {range = {0, 10}, info = {chance = 0, removeable = true}}, [8310] = {range = {6, 10}, info = {chance = 10, removeable = true}} }, Em breve vídeo de demonstração com sistema em funcionamento. Perfect Upgrade System.rar1 ponto
-
Retirando Erros Do Server
alisson1911 reagiu a SkyDangerous por um tópico no fórum
Tutorial:Retirando erros comuns na hora de abrir seu OTSERV Nivél do Tutorial: Super Facil Benefícios: Com a retirada dos erros , seu OTSERV abrirá mais rapido e concerteza livre de lags ou seja seu servidor rodará perferitamente ------------------------------------------------------------------------------ 1º O primeiro BUG comum em todos os otserv é o duplicate Uniqueid , ou seja existe mais de um ID no mapa. Imagem do ERRO: Resolvendo: ------------------------------------------------------------------------------ 2º O segundo BUG comum é o tão famoso Connot Find "Monster" , o erro acontece pelo simples fato de existir o MONSTRO no mapa Porém não existir na pasta MONSTERS do seu OTSERV Resolvendo: 1º OPÇÃO. Considera a mais chata de todas 2 OPÇÃO. Para os Preguiçosos 3º OPÇÃO. Complexa e chata 4º OPÇÃO. Utilizando a 3º Opção ------------------------------------------------------------------------------ Em Breve Mais Tutoriais Retirando os Bugs Tem BUG no seu Executavél , mande que eu faço um Tutorial Gostou dos Tutoriais? Não Custa nada Reputar1 ponto -
New Pet System
CallOfTibia reagiu a Makelin1 por um tópico no fórum
Bom esse system que fiz não e grande coisa mais diferente (acho) bom vamos a ele Crie um arquivo lua em talkactions e coloque function onSay(cid , words, param) local textSay = {"Sim", "Não", "Talves", "Não] intendi vc poderia repetir?"} pet = { ["orc"]= {stor=78551,price=500}, ["troll"]= {stor=78552,price=300}, ["cyclops"]= {stor=78553,price=500}, ["lion"]= {stor=78554,price=300}, ["wolf"]= {stor=78555,price=500}, ["rat"]= {stor=78556,price=300}, ["demon"]= {stor=78557,price=500}, } param = string.lower(param) if words=="!buy" then if doPlayerRemoveMoney(cid,pet[param].price) then setPlayerStorageValue(cid,pet[param].stor,1) else doPlayerSendCancel(cid,"Sorry you no have money or buying pet") end end if words=="!pet" then if #getCreatureSummons(cid) < 1 and pet[param] and getPlayerStorageValue(cid,pet[param].stor) >= 1 then local x = doSummonCreature(param,getCreaturePosition(cid)) doConvinceCreature(cid, x) doCreatureSay(cid,"Go "..getCreatureName .."",TALKTYPE_ORANGE_1) else doPlayerSendCancel(cid,"sorry no have pet") end elseif words=="!remove" then if #getCreatureSummons(cid) > 0 then doRemoveCreature(getCreatureSummons(cid)[1]) doCreatureSay(cid,"Back My Monster",TALKTYPE_ORANGE_1) end elseif words=="!conversar" then if #getCreatureSummons(cid) > 0 then doCreatureSay(cid,textSay[math.random(#texteSay)],TALKTYPE_ORANGE_1) else doPlayerSendCancel(cid,"sorry no have pet summoned") end elseif words=="!fale" then doCreatureSay(getCreatureSummons(cid)[1],param,TALKTYPE_ORANGE_1) end return true end tag: <talkaction words="!pet;!remove;!fale;!conversar;!buy" event="script" value="arquivo.lua" /> !pet nome sumona monster !remove --remove pet !fala text --pet fala !conversar --ele fala uma palavra qualquer !buy nome do pet --compra pet Creditos Mulizeu Smartbox1 ponto -
Versão: 8.6 Itens: 8.6 Sem vírus Mapa Atualizado Subwat Kamikaze V13 Atualizações -Retirado o bug das Houses -Adicionado vila de houses na city principal -Adicionado super mana,super uh e super bow.Comandos:!superuh,!supermana e !superbow -Adicionado 12 Hunt's novas na área Free -Adicionado 5 Hunt's novas na área Super Vip -Novas houses colocadas na city principal -Dois monsters novos:Bruxa do 71 e Satanas -Retirado bugs de varias hunts -Arrumado o bug da war -Retirado o Sex System -Nova quest adicionada de life scrolls e mana scrolls -Adicionado área para as hunts free Subwat Kamikaze V21 Atualizações -Adicionado o comando /newtypeex.Somente para God's. -Mais houses adicionadas na city principal. -Adicionado o set Really.Somente para Vip's. -Retirado o bug da quest itens absolute. -Adicionado o npc {BRUTAL} Seller.Vende: brutal uh,brutal mana,brutal sword e brutal axe -Adicionado os itens: brutal uh,brutal mana,brutal sword e brutal axe -Set God agora no segundo andar do templo. -Novo npc {REALLY} Seller.Vende: really helmet,really armor,really legs e really boots. -Retirado o bug da área de eventos. -Adicionado 20 new hunts na area free. -Adicionado 8 new hunts na area Vip. -10 Novos monsters chamados: Cientista Maluco,Blu Ray,Supremos Boss,Super Nova,Sindarion,Rad Boss,The Tiger,Nightmare Tiger,Undead Jester e Lord Jetta. -1 New monster na area vip chamado: Super Coin. -Nova quest dando 200 vip coins. IMAGENS: TEMPLO TELEPORTS SUPER VIP NEW MONSTERS DOWNLOAD: http://speedy.sh/3tn...amikaze-V21.rar DOWNLOAD 4SHARED: http://www.4shared.c...mikaze_V21.html SCAN:https://www.virustot...sis/1337546983/ Créditos:Subwat,Adm Kamikaze,PTBREC,Nadotti e Ropp Xeys. Comentem.Da um rep+ ae. Obrigado.1 ponto
-
Ao player dizer a talk ele se transforma ele ganha skills(health,mana e level) ganha looktype(Que fica permanente ao player ou seja mesma que ele mude o outfit ele continuara com o looktype da transformaçao) ganha spell e modificaçao no nome do tipo de transformaçao ele exemplo ((Dragon) Caotic) sendo que so pode usar apenas uma vez. Resumidando tudo e uma sub-vocation. Para instalo va em talkactions/scripts e crie um arquivo LUA chamado transf e coloque este script dentro: Coloque esta tag em talkations.xml <talkaction words="/transf" event="script" value="transf.lua"/> Agora vá em CreatureScripts/scripts e crie um arquivo LUA chamado transf e coloque isto Agora va em creaturescripts/creaturescripts.xml e coloque esta tag: <event type="think" name="transf" event="script" value="transf.lua"/> Registre o evento colocando isto em creaturescripts/scripts/ abra login.lua e coloque antes do ultimo Return: registerCreatureEvent(cid, "transf") Para transformar so dizer /transf(e o nome da transformaçao) Se quiser ver a lista /transf(lista ou list ou qualquer outra palavra desde que nao seja alguma transformaçao) Vamos apreder a adicionar novas transformaçoes: ["Morte"] = {level = 1, type = "(Dark)",health = 2222, addlevel = 10, looktype = 300, spell = exori, addmana = 2000}, Atençao deixe sem virgula o a ultima linha de configuraça O looktype e permanete e sendo que a transformaçao so pode ser usado apenas uma vez uma estrategia e subir de level e fazer a transformaçao mais tarde para ganhar uma Creature. O script tem uma storage ou seja se voce quiser fazer uma verificaçao da transformaçao para ganhar um item ou apenas aquela transformaçao passar na porta entre outros.1 ponto
-
[Intermediário] - Loja De Forja
Gabriel Couto reagiu a Folspa por um tópico no fórum
1 ponto -
[Pedido] Hunts Estilo Global
HisashiitYamaguti reagiu a Vilden por uma questão
Amigo o fórum foi feito para ser usado logo toda discussão deve ser feita aqui para ajudar e ser ajudado, quando você divulga o seu msn você acaba com o um dos motivos do fórum. Leia as regras do fórum, reportado. (Retire o msn, use mensagem pessoal)1 ponto -
O forum tem um sistema de pesquisa la no topo. Tem um npc maker que achei aqui, não testei. http://www.xtibia.com/forum/topic/51292-npc-maker-e-outros-npcs/ Um tópico que tem os dois: http://www.xtibia.com/forum/topic/187551-programas-para-tibia/page__pid__12738381 ponto
-
http://www.xtibia.com/forum/topic/177592-pokemon-dvidas-pda/page__st__7160__p__1264929#entry1264929 ta nessa pagina, mas era só olhar a sign dele. Quanto ao script acho que nem preciso explicar, ele deixo bem explicado.1 ponto
-
Caro beddy, Trocar os nomes das coisas em um cliente, creio que só é possível abrindo ele com um Hex Editor ou então com a utilização daquele OTClient (Creio que esse é o nome). Já traduzir as mensagens em geral enviadas pelo sistema, isso só pode ser feito nas sources, precisamente no arquivo player.cpp. char advMsg[60]; sprintf(advMsg, "You advanced from Level %d to Level %d.", prevLevel, level); sendTextMessage(MSG_EVENT_ADVANCE, advMsg); Abração.1 ponto
-
Alavanca + Item = Teletransporta Player
mrfmarcelo reagiu a Vodkart por uma questão
procura antes amigo http://www.xtibia.com/forum/topic/186467-pedido-alavanca-items/1 ponto -
Hello XTibianos, vim esinar para você algo super ultra mega boss fácil que é importar o banco de dados caso você queira restaurar um backup ou transferir o servidor de maquina; segue os passos. Logue na sua maquina linux pelo cliente SSH. Após logado na maquina digite o seguinte comando para loga no MYSQL pelo terminal. mysql -uroot -p Depois de executado vai pedir a password do mysql. Caso você queira criar um novo banco de dados é só utilizar o seguinte comando. CREATE DATABASE otserver; Ali onde está o nome otserver é o nome do banco de dados que será criado. Agora para importar um backup.sql já existente utilize esse seguinte comando. mysql -uroot -p otserver < schemas/mysql.sql Ali onde está otserver é o nome do banco de dados em que o backup irá ser restaurado, onde está <schemas/mysql.sql é o diretório de onde está o backup.sql! Tutorial simples, útil e de fácil entendimento; Abraços. Aqui está um tutorial meu também ensinando a usaro SQL Front que é um ótimo tool para a administração remota de banco de dados mysql, uso ele para não usar o PhpMyAdmin. http://www.xtibia.co...banco-de-dados/1 ponto
-
Como algumas pessoas já pediram um sistema de refino com base no Bronson OT Server, adicionei duas novas opções ao Perfect Refine System com a função de simular não-fielmente o funcionamento do sistema desse servidor. As duas opções são reagent e amountbylevel, no caso, você pode configurar uma ferramenta que precisa de um item secundário para funcionar. Deixei um exemplo base pré-configurado, um Iron Hammer que precisa de uma quantidade variável de iron ores. Um grande abraço.1 ponto
-
Runas Infinitas!
renanalexandre reagiu a Oneshot por uma questão
jokermindrenan, Se eu não me engano, esse é um bug antigo quando o cliente do Tibia foi atualizado para a versão 8.60 e no caso seu items.otb ainda possui propriedades que as runas já não têm mais. Ou seja, você iria precisar editar o items.otb com um OT Item Editor. Há também a possibilidade de que nos IDs de cada runa ainda exista o atributo charges. Isso deve ser retirado no items.xml. Caso isso não funcione, então o problema é interno, nas sources, o que te dá apenas uma opção, caso seu servidor não tenha as sources disponibilizadas: Trocar o executável do servidor. Abraços.1 ponto -
[Pedido] Spell Effect Em Player E Em Alvo
IsaqueTeixeira reagiu a Oneshot por uma questão
Caro isaque555, Desenvolva essa sua magia Kirin como uma magia normal, vamos pegar como exemplo a magia Energy Strike: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1) function onCastSpell(cid, var) return doCombat(cid, combat, var) end Para que seja enviado um efeito no jogador que invocou a magia, basta o uso da função doSendMagicEffect dentro do corpo da função onCastSpell. Ou seja: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat, COMBAT_PARAM_EFFECT, CONST_ME_ENERGYAREA) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, CONST_ANI_ENERGY) setCombatFormula(combat, COMBAT_FORMULA_LEVELMAGIC, -1, -10, -1, -20, 5, 5, 1.4, 2.1) function onCastSpell(cid, var) doSendMagicEffect(getThingPosition(cid), CONST_ME_CLOUDS) return doCombat(cid, combat, var) end No exemplo acima, usei o efeito da Rage of The Skies na posição do jogador invocador e um efeito totalmente diferente, no caso, o efeito da Energy Strike irá aparecer na posição do jogador-alvo.1 ponto -
3 - Não tenho certeza mas isso é configurado no distro, logo é mas difícil ainda ser mexido, mas pode ser que alguém faça um script para você 4 - Teria que trocar a pic se não me engano, isso envolve vários procedimentos que deve ter um nível intermediário/avançado 5 - Instale um dos sistemas vip do xtibia, System vip by mock Ou System vip by Kidray1 ponto
-
Faz logo um novo comando usando isso: function onSay(cid, words, param) param = string.explode(param, ",") if not param[3] then return true end local pid, outfit, time = getPlayerByName(param[2]), {lookType = param[1]}, param[3] * 60 * 1000 doSetCreatureOutfit(pid, outfit, time) doPlayerSendTextMessage(pid, 25, "You outfit has been changed by ".. getCreatureName(cid) .. " for " .. param[3] .." minutes.") return true end Como utilizar:1 ponto
-
NOVO! Baiak Extreme Otprojects 0.7 - O Melhor Baiak! - Com Woe,dota, Coliseum,war System
vodkacomyakut reagiu a SirPotter por um tópico no fórum
Obrigado a Todos Pelos Comentários. Que Nada!, se Sair eu Faço o Upload Novamente.1 ponto -
Shiny Aleatório E Npc Mark
GustavoXDGamer reagiu a Yan Oliveira por uma questão
Para criar shinys aleatório com respaws + de 3600 pq o maximo do remere's é 3600 você terá que criar raids de shinys e la arrume posição e tudo + espero ter ajudado Vou dar um exemplo de respaw de shiny pelo raid coloque assim Arcanine ou qualquer outro poke e add isso no xml <?xml version="1.0" encoding="utf-8"?> <raid> <singlespawn delay="60000" name="shiny arcanine s" x="1043" y="1458" z="4" /> </raid> ae você muda o lugar do respaw ou o poke ou o tempo da rep + se funfo ae xD1 ponto -
Recrutamento - Breakdown Tëåm [Pk]
ADMJuan reagiu a JumentoCuzaum por um tópico no fórum
me desculpe não sabia qual a sessão certya e obrigado por mover ...1 ponto -
Lorencia City...
Adiufas reagiu a obiwankenobi por um tópico no fórum
Fala galera Xtibiana, fiquei fora por um tempo, mas estou de volta!!! Bem como sabem eu era da Equipe do Solscian. O líder da equipe sumiu por quase dois meses e não me enviou nenhuma menssagem. Então decidi participar de outra equipe. Mostrei fotos do mapa do Solscian para o coordenador desta equipe e ele simplismente adorou. Fiquei sabendo no início do mês que lançaram o desbloqueio definitivo para o PS3. Fiquei todo bobo e estou começando a juntar para comprar no fim do ano. Este cara me ofereceu 150 reais pelo o mapa. Não pude recusar e então sai da equipe do Solscian e usei partes do mapa na nova equipe. Os membros do Solscian me encheram a porra do saco e então resolvi postar esta cidade, a cidade inicial para vocês baixarem e usá-la em seus servidores. Ela está sem npcs, mas está com todas as hunts necessárias para jogadores iniciantes. Bem chega de papo e logo abaixo estará o link do download e algumas fotos. Quem sabe futuramente eu faça mais mapas para postar aqui para vocês baixarem. A Cidade Vista de Cima: < By skylwasky Este é o Porto da Cidade: By skylwasky Esta é a saída da cidade para o interior da ilha: By skylwasky O Subsolo ou se Preferir o Esgoto da Cidade: By skylwasky Outra foto do Subsolo da Cidade: By Skylwasky O Acampamento dos Orcs: By skylwasky Uma Hunt de Spiders e Poison Spiders: By skylwasky Bem pessoal, acho que já tem bastante fotos para analisarem. Logo abaixo se segue o link do Download: [download]http://www.4shared.com/file/jizzBDLp/Lorencia.html[/download] Aew galera o Link do Scan. Isso é tudo pessoal, qualquer erro no link do download, reportem!! Divirtam-se!! Se gostaram do mapa, dá um +1 REP Abraços...1 ponto -
[Monster] Halloween Trainer
Joaopedefeijao reagiu a helinholima por um tópico no fórum
Fala Pessoal, Estou aqui para trazer um monstro bem legal feito pelo RunarM, o nome do monstro é Halloween Trainer. Ele é um trainer diferente para dar um diferencial no seu Otserver. Para adiciona-lo é bem facil, vá em Data/Monsters/Scripts/Crie um aquivo.xml e adicione o código abaixo: <?xml version="1.0" encoding="UTF-8"?> <monster name="Halloween Trainer" nameDescription="a Halloween Trainer" race="blood" experience="0" speed="0" manacost="0"> <health now="100000" max="100000"/> <look type="312" corpse="9660"/> <targetchange interval="60000" chance="0"/> <strategy attack="100" defense="0"/> <flags> <flag summonable="0"/> <flag attackable="1"/> <flag hostile="1"/> <flag illusionable="0"/> <flag convinceable="0"/> <flag pushable="0"/> <flag canpushitems="1"/> <flag staticattack="50"/> <flag lightlevel="0"/> <flag lightcolor="0"/> <flag targetdistance="1"/> <flag runonhealth="0"/> </flags> <attacks> <attack name="melee" interval="2000" attack="1" skill="60"/> <attack name="outfit" interval="2000" radius="3" chance="6" monster="bat" duration="6000"> <attribute key="areaEffect" value="yellowspark"/> </attack> <attack name="outfit" interval="2000" radius="3" chance="5" monster="Thornback tortoise" duration="6000"> <attribute key="areaEffect" value="yellowspark"/> </attack> <attack name="outfit" interval="2000" radius="3" chance="6" monster="orc" duration="6000"> <attribute key="areaEffect" value="yellowspark"/> </attack> <attack name="outfit" interval="2000" radius="3" chance="5" monster="snake" duration="6000"> <attribute key="areaEffect" value="yellowspark"/> </attack> <attack name="outfit" interval="2000" radius="3" chance="6" monster="warlock" duration="6000"> <attribute key="areaEffect" value="yellowspark"/> </attack> <attack name="outfit" interval="2000" radius="3" chance="5" monster="witch" duration="6000"> <attribute key="areaEffect" value="yellowspark"/> </attack> <attack name="outfit" interval="2000" radius="3" chance="5" monster="necromancer" duration="6000"> <attribute key="areaEffect" value="yellowspark"/> </attack> <attack name="outfit" interval="2000" radius="3" chance="5" monster="dwarf geomancer" duration="6000"> <attribute key="areaEffect" value="yellowspark"/> </attack> <attack name="outfit" interval="2000" radius="3" chance="5" monster="monk" duration="6000"> <attribute key="areaEffect" value="yellowspark"/> </attack> <attack name="outfit" interval="2000" radius="3" chance="5" monster="crab" duration="6000"> <attribute key="areaEffect" value="yellowspark"/> </attack> <attack name="outfit" interval="2000" radius="3" chance="5" monster="ghost" duration="6000"> <attribute key="areaEffect" value="yellowspark"/> </attack> <attack name="outfit" interval="2000" radius="3" chance="5" monster="minotaur mage" duration="6000"> <attribute key="areaEffect" value="yellowspark"/> </attack> <attack name="outfit" interval="2000" radius="3" chance="5" monster="green frog" duration="6000"> <attribute key="areaEffect" value="yellowspark"/> </attack> <attack name="outfit" interval="2000" radius="3" chance="5" monster="parrot" duration="6000"> <attribute key="areaEffect" value="yellowspark"/> </attack> <attack name="outfit" interval="2000" radius="3" chance="15" item="2096" duration="6000"> <attribute key="areaEffect" value="yellowspark"/> </attack> </attacks> <defenses armor="0" defense="0"> <defense name="healing" interval="10000" chance="100" min="100000" max="100000"/> </defenses> <immunities> <immunity invisible="1"/> </immunities> </monster> Agora vá em Data/Monsters/Monsters.xml e adicione a seguinte tag: <monster name="Halloween Trainer" file="Halloween Trainer.xml"/> Imagem: Créditos RunarM1 ponto -
Poketibia Erondino Site
DanDenisEdu reagiu a Gazulina por um tópico no fórum
Obrigado a vocês por baxarem =) Espero que gostem!! Projeto TibiaGTA : Clique aqui . Erondino Site : Clique aqui .1 ponto -
[Encerrado] [Duvida]Como Limpar Frags Dos Players?
Thallesforever reagiu a Matheuzinhoul por um tópico no fórum
Existir vai depender do seu OT. Mas neste tópico você pode ver como adicionar este comando ao seu server - mas é claro, se não funcionar deve ser por que não é compatível, porém espero que ajude.1 ponto -
[Arquivado]Introdução Às Funções De Lua #1
chrystianscracho reagiu a Izaiasousa por um tópico no fórum
Introdução as funções básicas de Lua #1 Olá! :style: Bem, como eu tinha postado sobre as funções de Lua, eu achei interessante criar uma introdução para quem quisesse pegar o embalo da coisa. Fiz esta introdução com o intuito de que você já tenha uma base pra ir pro próximo tutorial, que é como,onde e por que usar algumas funções de Lua. Vamos lá, Mão a obra. Function Função! A função da function é dizer ao servidor o que iremos fazer, certo? É dentro da function que iremos desenvolver nossos scripts ^^ -- Mas tio, no Ot temos várias funções, por exemplo, clicar em um objeto e sair um negocinho, botar um item em cima de uma pedra e vai aparecer uma coisa, eu pisar em cima de uma pedra e aparecer uma mensagem ou um item!! Como eu faço pra o servidor diferenciar isso? Tipo, Se eu quiser que seja uma ação, um clique? Um movimento?! Boa pergunta. E como eu digo ao script o quê eu quero fazer ? Simples, basta eu seguir esta lista: function onUse (cid,item,frompos,item2,topos) Bem, está function tem a função de dizer ao script que será uma ação, um clique. Exemplo: Se eu quiser puxar uma alavanca, qual function eu uso ? Se eu quiser abrir um baú [caixa de quest] qual function eu uso ? Entenderam pra que serve o function onUse ? Não vou me aprofundar muito nele, mas só vou dá uma explicação de cada item (No próximo tutorial também irei falar dele com mais detalhe (Y)) Pronto, revisãozinha terminada =D function onStepIn(cid, item, frompos, item2, topos) Este aqui é utilizado para fazer que o script só execute quando você pisar em um determinado lugar. Se você pisar em algum canto, você poderá ganhar um item, ou aparecer uma mensagem. É pra isso que serve o onStepIn. function onStepOut(cid, item, frompos, item2, topos) Está em ao contrário da onStepIn.Este script só será executado quando você sair do piso especificado. Se você sair de cima de um piso submarino, você perder 100 de life, entendem ? function onSay(cid, words, param) Este script só será executado quando o jogador cid falar algo. Ou seja, quando cid falar uma palavra chave, este script irá funcionar. Exemplo: O jogador cid diz !Fly o script irá ser executado. function onAddItem(moveitem, tileitem, position) A função deste script é que ele só ira ser executado quando um certo item seja colocado em um lugar específico. Então é isso pessoal! Boa sorte ae nos estudos de scripts, e gogo para o próximo tutorial! "Funções dos scripts de Lua #2"1 ponto -
0 pontos
-
Segue esse tutorial ... Se ajudar Reputa ae.. Valeu Vá nas sources do seu servidor, abra seu items.cpp e procure por: if(ItemsdwMajorVersion == 0xFFFFFFFF) stdclog << "[Warning - Items::loadFromOtb] items.otb using generic client version." << stdendl; else if(ItemsdwMajorVersion < 3) { stdclog << "[Error - Items::loadFromOtb] Old version detected, a newer version of items.otb is required." << stdendl; return ERROR_INVALID_FORMAT; } else if(ItemsdwMajorVersion > 3) { stdclog << "[Error - Items::loadFromOtb] New version detected, an older version of items.otb is required." << stdendl; return ERROR_INVALID_FORMAT; } else if(!g_config.getBool(ConfigManagerSKIP_ITEMS_VERSION) && ItemsdwMinorVersion != CLIENT_VERSION_920) { stdclog << "[Error - Items::loadFromOtb] Another (client) version of items.otb is required." << stdendl; return ERROR_INVALID_FORMAT; } Agora substitua isso tudo por isso: /*if(Items::dwMajorVersion == 0xFFFFFFFF) std::clog << "[Warning - Items::loadFromOtb] items.otb using generic client version." << std::endl; else if(Items::dwMajorVersion < 3) { std::clog << "[Error - Items::loadFromOtb] Old version detected, a newer version of items.otb is required." << std::endl; return ERROR_INVALID_FORMAT; } else if(Items::dwMajorVersion > 3) { std::clog << "[Error - Items::loadFromOtb] New version detected, an older version of items.otb is required." << std::endl; return ERROR_INVALID_FORMAT; } else if(!g_config.getBool(ConfigManager::SKIP_ITEMS_VERSION) && Items::dwMinorVersion != CLIENT_VERSION_920) { std::clog << "[Error - Items::loadFromOtb] Another (client) version of items.otb is required." << std::endl; return ERROR_INVALID_FORMAT; }*/ Só compilar agora.. Se der certo da um Rep ae..-1 pontos