Líderes
Conteúdo Popular
Exibindo conteúdo com a maior reputação em 03/09/12 em todas áreas
-
Tutorial Básico Creaturescripts
lucasromero e um outro reagiu a jhon992 por um tópico no fórum
Tutorial Básico sobre CreatureScripts CreatureScripts = São scripts que serão ativados após uma determinada ação criada pelo monstro ou personagem. Essas ações são determinadas como funções. Existem varias funções utilizadas para a criação de creaturescripts e estas são: onDeath(cid, corpse, killer)-- que é executada ao morrer. onPrepareDeath(cid, lastHitKiller, mostDamageKiller) -- semelhante a onDeath. onAttack(cid, target) -- executa ao atacar. onCombat(cid, target) -- semelhante ao onAttack. onLogin(cid) -- executa ao logar. onLook(cid, thing, position, lookDistance) -- executa ao dar look. onAdvance(cid, skill, oldLevel, newLevel) -- executa ao upar skills/levels. onStatsChange(cid, attacker, type, combat, value) -- executa ao perder ou ganhar life/mana/condições. onLogout(cid) -- executa ao deslogar. onKill(cid, target, lastHit) -- executa ao matar. onThink(cid, interval) -- executa em determinado tempo. onJoinChannel(cid, channelId, users) -- executa ao entrar em um chat. onReceiveMail(cid, sender, item, openBox) -- executa ao receber um parcel/carta. onReportBug(cid, comment) -- executa ao reportar bug. Para criar esse tipo de script, primeiramente vai na pasta data/creaturescripts/scripts e duplica um arquivo e salve com "nomedesejado"; Agora você vai determinar que função você vai precisar para criação do seu script. Para exemplo vou usar a função "onAdvance"(ao upar). Neste exemplo, quando o player upar level 100 ele irá ganhar 1kk: 1 function onAdvance(cid, skill, oldLevel, newLevel) 2 if (getPlayerLevel(cid) == 100) then 3 doPlayerAddItem(cid, 2160, 100) 4 doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Parabéns, você ganhou 1kk por atingir level 100!") 5 doSendMagicEffect(getCreaturePosition(cid), 30) 6 end 7 return true 8 end Numerei as linhas para melhor entendimento, nos seus scripts vocês não devem numerar. linha 1 = Inicio da função onAdvance, essa linha recebe algumas informações do player que upou, como seu cid, seus skills o velho level e o novo level. Obs: cid = creature id, numero de identificação do player/monstro. linha 2 = Inicia-se um if onde verifica se o level do player é igual a 100. Se for verdadeiro, o script executa as linhas 3,4 e 5, senão pula direto a linha 6. linha 3 = Adiciona 100 itens com o id 2160 ao player. linha 4 = Manda uma mensagem parabenizando o player. linha 5 = Solta o efeito de numero 30, na posição em que o player esta. linha 6 = Finaliza a verificação do if. linha 7 = Retorna verdadeiro. Obs: sempre é necessario ela linha no final de seu código. linha 8 = Finaliza a função onAdvance. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Por fim para funcionamento do seu script é necessario adicionar 2 tags: 1º- No "data/creaturescripts/creaturescripts.xml" 2º- No arquivo "data/creaturescripts/scripts/login.lua", Obs: se o script que você for fazer for de função onLogin, não precisa adicionar a segunda tag. 1º Tag: Vai em data/creaturescripts/creaturescripts.xml e cole a tag: <event type="advance" name="QualquerNome" event="script" value="nomedesejado.lua"/> O type="" , será o nome da função de seu script após a palavra "on" e sempre tudo em minusculo. O name="", use qualquer nome porem esse nome vai ser usado para registrar no script onLogin na tag2. O value="", é o nome com qual você salvou seu script. Agora em data/creaturescripts/scripts/login.lua, sempre antes do último return true: registerCreatureEvent(cid, "QualquerNome") QualquerNome é o name que você adicionou na tag1 do creaturescripts.xml. ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- Acho que é isso aew, espero ter ajudado a galera que esta iniciando. Dica para criação de scripts: Para melhor edição e organização use Notepad++: http://www.baixaki.c...ad/notepad-.htm Sempre usar uma lista de funções como apoio: http://www.xtibia.co...sta-de-funcoes/ E sempre pesquise por scripts prontos e tutoriais para ter uma base.2 pontos -
[ Resolvido ]Cade Os Mitos Dos Scripts? (Para Perito Em Scripts)
matador027 e um outro reagiu a Vodkart por uma questão
em movements.xml é porque eu não tinha o id do item ai não coloquei a tag kk -------------------------- EDITED ------------------------------------ seguinte,para o script funcionar você faz assim: hparmor.lua local amount = 1000 function onEquip(cid, item, slot) setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)+(amount/2)) return TRUE end function onDeEquip(cid, item, slot) setCreatureMaxHealth(cid, getCreatureMaxHealth(cid)-amount) return TRUE end em movements.xml <movevent type="Equip" itemid="ID DA ARMOR" slot="armor" event="script" value="hparmor.lua"/> <movevent type="DeEquip" itemid="ID DA ARMOR" slot="armor" event="script" value="hparmor.lua"/> você coloca o ID da sua armor ali... vai fazer com que adicione 1000 de hp e depois remova...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
-
Subwat Kamikaze v30
Killingtabom reagiu a rogeriocene por um tópico no fórum
Novo Lançamento!!!! < King Subwat Kamikaze> OMG Oque Ha de Novo no Server? -Sistem Pet /Pet noob,Pet normal,Pet Descente e Pet Foda -Shadow vip -Shadow vocaçao -Shadow coins e Demonic coins -Novos Sets: Brutal set,Demonic Set,Shadow set e o Melhor De todos King Set E Strike Set E Adicionado Apocalypse Set (19/07/2013) -Hard Quest - Dando Brutal Set -Novo Design Do Templo E Das Hunts Sistema De Refinamento de Set Removido o bug Do GOD -Demonic Quest - Dando demonic Set -Shop De Alavanca -Vocaçoes balanceadas -Novas Runas e armas -Comando !maxlvl -Novo Design -Trainer em cima do templo -Novos Monstros Adicionado Sistema De Cassino Nova Moeda De Jogo..Apocalypse Coin (Bugs De loot em monster Removidos) Imagens: Download : http://www.4shared.com/rar/JbURldl7/novo.html? GOSTOU ??/ + REP AE PLIZ !!!!!BUGS RETIRADOS!!!!!!1 ponto -
Hoje eu pensei em criar um tutorial para os novatos de com criar Swords... Parece Difícil, mais é muito facil e vou encinar um método que uso e que é 100% Paint e nem parece!! Aki vai o Sumário: ----------------------------------------------------------------------------------------------------------- --- Outline --- Retirada dos Pixels Pretos --- Lâmina ----- Parte 1, Básico ----- Parte 2, Brilho --- Cabo --- Guarda --- Ajuste de AA --- Apreciação Final.. =P ----------------------------------------------------------------------------------------------------------- 1° Passo: Outline! Se você vai fazer qualquer tipo de Sprite, você prescisa de um outline, principalmente em uma Sword. Tente ser inovador, crie uma lâmina diferente das mais conhecidas, uma guarda legal, mas de um jeito que tudo tenha sentido.. Eu fiz um simples só para o tuto. 2° Passo: Retirada dos Pixels Pretos! Na maior parte das Sprites Você tem que retirar os pixels pretos de dentro das sprites e subistituílos por outras cores, de sua preferência, mais com tonalidade escura. Use também a mesma cor da retirada dos píxels pretos para separar o cabo da continuidade da guarda da parte debaixo. 3° Passo: Lâmina • Parte 1, Básico! Eu começo a fazer a Lâmina primeiro, mais algumas pessoas gostão de começar pela guarda.. Deixe o risco do meio Branco e do lado de lah << da reta branca faça retas um degrade de cores claras de lá > para cá < (mais escuro, prata, branco) e do outro lado faça do mesmo jeito (escuro, cinza, cinza mais claro). • Parte 2, Brilho! Agora faça um brilho com parte escura no canto inferior direito da sprite e clareando mais pra cima e do outro lado da linha branca você faz a mesma coisa mais só que em baixo não pode ficar tão escuro.. e também faça a linha do meio com uma cor cinza um pouco sólida um pouquinho mais clara na ponda da espada. E não se esqueça do AA. 4° Passo: Cabo! Para fazer um cabo é só fazer com se fosse um ferro amarrado.. è simples e você vai entender! 5° Passo: Guarda! Agora é a hora da guarda. Se você for fazer uma guarda dourada você vai usar as cores: Marron (para o AA), Laranja escuro (complementação do AA), laranja e Amarelo (para contraste e efeito "Dourado"). 6° Passo: Ajuste de AA! Agora fassa assim pegue a lata de tinta e pinte o fundo de preto e depois diminua o Zoom. Se a Sprite não ficar com o aspécto afiado, aperte CTRL+Z (para voltar a ficar branco o fundo) e na ponta vá escurecendo mais até ficar do jeito que você julgar melhor.. É isso.. Agora é só apreciar o resultado!!! Quero ver melhores Swords Agora hein!!! hahaha1 ponto
-
Eu gostaria de compartilhar com vocês como é interessante que Atlantida World servidor. Ao mesmo tempo o projeto nasce de um grande OTS . Atlantyda World tratou-se um super server que pertencia a uma equipa polaca, tive o prazer de jogar nele, mas ao final de algum tempo fechou. O server esteve online varios meses, no entanto, alguém nao se apercebeu que as más escolhas da administração resultou em uma grande queda. Pack Full contém literalmente tudo para gozar as suas Atlântida! Mapa, scripts, actions, monters,etc! O importante é tudo isso vem de uma fonte legal como era na administração.Pessoalmente, eu não tenho tempo para abrir de novo este OTS por isso quis compartilhar com vocês tudo o que qualquer um de vocês pode reconstruir o que foi acima no fumo! Esta imagem é reduzida. Clique nesta barra para ver a imagem completa. Imagem original: 2202x1392. Esta imagem é reduzida. Clique nesta barra para ver a imagem completa. Imagem original: 801x586. Esta imagem é reduzida. Clique nesta barra para ver a imagem completa. Imagem original: 801x586. Esta imagem é reduzida. Clique nesta barra para ver a imagem completa. Imagem original: 801x586. Esta imagem é reduzida. Clique nesta barra para ver a imagem completa. Imagem original: 801x586. Download ou Download Vírus Total Depois de vários pedidos decidi colocar um executável compactivel com windows, mas aconselho a configurar os vossos itens aconselho a utilização de rook para um maior rpg, bom jogo não esqueçam de um comentário e do REP+. Download Com exe e dlls Se tiver alguma dificuldade reporte-me, server configurado para ligar um mysql.1 ponto
-
Nesta quarta-feira, o focus group (grupo que se dedica ao desenvolvimento do jogo) divulgou uma verdadeira bomba no fórum oficial. A partir de agora teremos servidores exclusivos para o Desenvolvimento do Jogo, e funcionará basicamente como um OTserver! Esses servidores terão rates 2x de Experiência e Skills , pois, assim como em test servers, eles poderão ser resetados a qualquer momento. Pelo mesmo motivo fica proibida a transferência de ida ou volta desse tipo de servidor. Isso é uma jogada, no mínimo, inteligente por parte da Cipsoft. Qual a melhor forma de pensar e implantar sem medo de errar um novo sistema, monstro ou NPC? Fazer um servidor sem compromissos! Para ler o tópico no Fórum Oficial do Tibia clique aqui.1 ponto
-
[8.6]Baiak Vip Revolution Youruts 0.1.5 New Update!
Regice reagiu a jamersonandres por um tópico no fórum
Iae galera volto aqui para postar o novo update de atualização que vem com novos teletransportes! novos itens! novas quests! tudo de novo - denovo! VAMOS LA UPDATE 0.1.5 VALEW GALERA ! Update 0.1.3 Update 0.1.4 Novo Update! E ISSO AE GALERA SEMPRE VOU FICA ATUALIZANDO NOVO UPDATE BAIXEM E COMENTEM AE GALERA! VALEWS! COMENTA NÃO CUSTA NADA! GALERA VO MANDA UM UPDATE PEQUENO PRA VIP4! O SEGUINTE Baixem esses 2 arquivos > http://www.4shared.com/file/sMSpQq59/items_2.html http://www.4shared.com/file/2UlbeOv0/scripts.html QUEM CRIA SERVIDOR COM ESSE MAP ME DIZ AE! E ADC MSN LORD_JAMERSON@HOTMAIL.COM1 ponto -
Pedido Arrumando Changename
GabrielCastro reagiu a LucasCastro por um tópico no fórum
Aeew Galeera! Tenhu Um script de CHangeName aq! MAis eu queria q so pudesse usar ele se tivesse tal Item! que no caso eu quero o Item 11388! Vlw's Script do ChangeName: -- Creditos a Won Helder, apocarai, MatheusMkalo function onSay(cid, words, param) local maxLen = 25 -- tamanho maximo do nome local itemid = 2160 ------ Numero do Item que será removido local proibido = {"!"} -- simbolos proibidos for i = 1, #proibido do if string.find(tostring(param), proibido) then doPlayerSendCancel(cid,"Não pode usar símbolos em seu nome.") return TRUE end end if tostring(param) == "" then -- checkar se não é nome vazio doPlayerSendCancel(cid, "Você deve informar um nome.") return TRUE end if string.len(tostring(param)) > maxLen then doPlayerSendCancel(cid, "Você pode usar no máximo " .. maxLen .. " letras.") return TRUE end if not getTilePzInfo(getCreaturePosition(cid)) then doPlayerSendCancel(cid,"So pode ser usado em pz.") return TRUE end if getPlayerItemCount(cid, itemid) >= 500 then doPlayerRemoveItem(cid, itemid, 500) db.executeQuery("UPDATE `players` SET `name` = '"..param.."' WHERE `id` = "..getPlayerGUID(cid)..";") doPlayerSendTextMessage(cid,25,"Você será kickado em 3 segundos.") addEvent(doRemoveCreature, 3*1000, cid, true) else doPlayerSendCancel(cid,"Você não possui os 5kk.") end return TRUE end ;D1 ponto -
não,com essa function onPrepareDeath não tem como1 ponto
-
[Encerrado] [Pokemon] Dúvidas? - Pda
Drk Shadow reagiu a Nibelins por um tópico no fórum
@Pokemonultimatetwo ta ai http://www.4shared.com/rar/ij75hjfa/Poketibia_2.html?1 ponto -
Ta ae mais uma. Essa mais escura To tentando fazer vários tipos pra começar a acertar na Tipografia, que pra mim, é a parte mais difícil. Essa foi bem rápida, mais pra treinar a tipo, que mesmo assim ficou estranha. Bjo lindo. AHSHUAHUSA1 ponto
-
Pedido Arrumando Changename
LucasCastro reagiu a albere por um tópico no fórum
-- Creditos a Won Helder, apocarai, MatheusMkalo function onSay(cid, words, param) local maxLen = 25 -- tamanho maximo do nome local itemid = 11388 ------ Numero do Item que será removido local proibido = {"!"} -- simbolos proibidos for i = 1, #proibido do if string.find(tostring(param), proibido) then doPlayerSendCancel(cid,"Não pode usar símbolos em seu nome.") return TRUE end end if tostring(param) == "" then -- checkar se não é nome vazio doPlayerSendCancel(cid, "Você deve informar um nome.") return TRUE end if string.len(tostring(param)) > maxLen then doPlayerSendCancel(cid, "Você pode usar no máximo " .. maxLen .. " letras.") return TRUE end if not getTilePzInfo(getCreaturePosition(cid)) then doPlayerSendCancel(cid,"So pode ser usado em pz.") return TRUE end if getPlayerItemCount(cid, itemid) >= 500 then doPlayerRemoveItem(cid, itemid, 500) db.executeQuery("UPDATE `players` SET `name` = '"..param.."' WHERE `id` = "..getPlayerGUID(cid)..";") doPlayerSendTextMessage(cid,25,"Você será kickado em 3 segundos.") addEvent(doRemoveCreature, 3*1000, cid, true) else doPlayerSendCancel(cid,"Você não possui os 5kk.") end return TRUE end era so muda ali no itemid Te ajudei ? de REP+1 ponto -
[ Resolvido ]Helpcomo Fazer Para Gesior Entregar Itens Do Shop E Premium Account Do Shop Online Automaticamente?
terabite reagiu a Piabeta Kun por um tópico no fórum
existem milhoes de tutos do msmo tipo, antes de postar algo procure ou se informe onde possa ter! Apenas faça isso em seu ot, na psta globalevents abra globalevents.xml e cole isso: <globalevent name="shop" interval="30" script="shop.lua"/> e nas pasta scripts, crie um arquivo chamado shop.lua e add isso dentro: -- ### CONFIG ### -- message send to player by script "type" (types you can check in "global.lua") SHOP_MSG_TYPE = 19 -- time (in seconds) between connections to SQL database by shop script SQL_interval = 30 -- ### END OF CONFIG ### function onThink(interval, lastExecution) local result_plr = db.getResult("SELECT * FROM z_ots_comunication WHERE `type` = 'login';") if(result_plr:getID() ~= -1) then while(true) do id = tonumber(result_plr:getDataInt("id")) action = tostring(result_plr:getDataString("action")) delete = tonumber(result_plr:getDataInt("delete_it")) cid = getCreatureByName(tostring(result_plr:getDataString("name"))) if isPlayer(cid) == TRUE then local itemtogive_id = tonumber(result_plr:getDataInt("param1")) local itemtogive_count = tonumber(result_plr:getDataInt("param2")) local container_id = tonumber(result_plr:getDataInt("param3")) local container_count = tonumber(result_plr:getDataInt("param4")) local add_item_type = tostring(result_plr:getDataString("param5")) local add_item_name = tostring(result_plr:getDataString("param6")) local received_item = 0 local full_weight = 0 if add_item_type == 'container' then container_weight = getItemWeightById(container_id, 1) if isItemRune(itemtogive_id) == TRUE then items_weight = container_count * getItemWeightById(itemtogive_id, 1) else items_weight = container_count * getItemWeightById(itemtogive_id, itemtogive_count) end full_weight = items_weight + container_weight else full_weight = getItemWeightById(itemtogive_id, itemtogive_count) if isItemRune(itemtogive_id) == TRUE then full_weight = getItemWeightById(itemtogive_id, 1) else full_weight = getItemWeightById(itemtogive_id, itemtogive_count) end end local free_cap = getPlayerFreeCap(cid) if full_weight <= free_cap then if add_item_type == 'container' then local new_container = doCreateItemEx(container_id, 1) local iter = 0 while iter ~= container_count do doAddContainerItem(new_container, itemtogive_id, itemtogive_count) iter = iter + 1 end received_item = doPlayerAddItemEx(cid, new_container) else local new_item = doCreateItemEx(itemtogive_id, itemtogive_count) received_item = doPlayerAddItemEx(cid, new_item) end if received_item == RETURNVALUE_NOERROR then doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received >> '.. add_item_name ..' << from OTS shop.') db.executeQuery("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";") db.executeQuery("UPDATE `z_shop_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";") else doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. Please make place for this item in your backpack/hands and wait about '.. SQL_interval ..' seconds to get it.') end else doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. It weight is '.. full_weight ..' oz., you have only '.. free_cap ..' oz. free capacity. Put some items in depot and wait about '.. SQL_interval ..' seconds to get it.') end end if not(result_plr:next()) then break end end result_plr:free() end return TRUE end Caso use war system o valos no globalevents.xml deve conter 3 numroes zeros (000) a mais pois warsystem ultiliza contagem por milesegundos! Agradeça com Reputaçao! +rep!1 ponto -
[Pedido] !online
Maiikbarbosa1 reagiu a Vodkart por um tópico no fórum
tenta deixar assim: talkactions/script/online.lua function onSay(cid, words, param, channel) local players = getPlayersOnline() local strings = {""} local i, position = 1, 1 local added = false for _, pid in ipairs(players) do if(added) then if(i > (position * 7)) then strings[position] = strings[position] .. "," position = position + 1 strings[position] = "" else strings[position] = i == 1 and "" or strings[position] .. ", " end end if getPlayerAccess(pid) < 3 then strings[position] = strings[position] .. getCreatureName(pid) .. " [" .. getPlayerLevel(pid) .. "]" i = i + 1 added = true else added = false end end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, (i - 1) .. " player(s) online:") for i, str in ipairs(strings) do if(str:sub(str:len()) ~= ",") then str = str .. "." end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, str) end return true end1 ponto -
Tem esse aqui e está perfeito ^^ http://www.xtibia.com/forum/topic/181749-talk-comando-mute-atualizado/1 ponto
-
Isso que era simples néh, sahuda. Agora vai funcionar, testa com um char que tu n fez ainda. function onAdvance(cid, oldLevel, newLevel) local pid = getPlayerGUID(cid) if (getPlayerLevel(cid) == 12 and getPlayerStorageValue(cid, 102089) <= 0) then if (getPlayerVocation(cid) == 4) then setPlayerStorageValue(cid, 102089, 1) local bp = doPlayerAddItem(cid, 1988, 1) doAddContainerItem(bp, 2395, 1) doAddContainerItem(bp, 2195, 1) doAddContainerItem(bp, 2519, 1) doAddContainerItem(bp, 2491, 1) doAddContainerItem(bp, 2488, 1) doAddContainerItem(bp, 2487, 1) doRemoveCreature(cid) db.executeQuery("UPDATE `player_skills` SET `value` = ".. 20 .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. 5 ..";") db.executeQuery("UPDATE `player_skills` SET `value` = ".. 20 .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. 3 ..";") db.executeQuery("UPDATE `player_skills` SET `value` = ".. 20 .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. 1 ..";") db.executeQuery("UPDATE `player_skills` SET `value` = ".. 20 .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. 2 ..";") return TRUE end if (getPlayerVocation(cid) == 3) then setPlayerStorageValue(cid, 102089, 1) local bp2 = doPlayerAddItem(cid, 1988, 1) doAddContainerItem(bp2, 8891, 1) doAddContainerItem(bp2, 2195, 1) doAddContainerItem(bp2, 8851, 1) doAddContainerItem(bp2, 6529, 1) doAddContainerItem(bp2, 2470, 1) doAddContainerItem(bp2, 2471, 1) doAddContainerItem(bp2, 7367, 1) doRemoveCreature(cid) db.executeQuery("UPDATE `player_skills` SET `value` = ".. 20 .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. 4 ..";") db.executeQuery("UPDATE `player_skills` SET `value` = ".. 20 .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. 5 ..";") return TRUE end if (getPlayerVocation(cid) == 1 or getPlayerVocation(cid) == 2) then setPlayerStorageValue(cid, 102089, 1) local bp3 = doPlayerAddItem(cid, 1988, 1) if (getPlayerVocation(cid) == 1) then doAddContainerItem(bp3, 2188, 1) doAddContainerItem(bp3, 2195, 1) doAddContainerItem(bp3, 7730, 1) doAddContainerItem(bp3, 2656, 1) doAddContainerItem(bp3, 2499, 1) else doAddContainerItem(bp3, 2185, 1) doAddContainerItem(bp3, 2195, 1) doAddContainerItem(bp3, 7730, 1) doAddContainerItem(bp3, 2656, 1) doAddContainerItem(bp3, 2499, 1) end doRemoveCreature(cid) db.executeQuery("UPDATE `players` SET `maglevel` = " .. 20 .. " WHERE `id` = "..pid) return TRUE end end if (getPlayerLevel(cid) == 200 and getPlayerStorageValue(cid, 102090) <= 0) then if (getPlayerVocation(cid) == 1) then doPlayerSetVocation(cid, getPlayerVocation(cid)+4) setPlayerStorageValue(cid, 102090, 1) doRemoveCreature(cid) return TRUE elseif (getPlayerVocation(cid) == 2) then doPlayerSetVocation(cid, getPlayerVocation(cid)+4) setPlayerStorageValue(cid, 102090, 1) doRemoveCreature(cid) return TRUE elseif (getPlayerVocation(cid) == 3) then doPlayerSetVocation(cid, getPlayerVocation(cid)+4) setPlayerStorageValue(cid, 102090, 1) doRemoveCreature(cid) return TRUE else doPlayerSetVocation(cid, getPlayerVocation(cid)+4) setPlayerStorageValue(cid, 102090, 1) doRemoveCreature(cid) return TRUE end end return TRUE end1 ponto
-
O comando checa: - O total de membros que sua guild possui - Quantos Players Tem online - Mostra o nome e o Rank dos jogadores Online Em lib/050-function adicione: function CountGuildMembers(GuildName) -- function by vodkart local count = 0 local lista = db.getResult("SELECT `name`, `rank_id` FROM `players` WHERE `rank_id` IN (SELECT `id` FROM `guild_ranks` WHERE `guild_id` = " .. getGuildId(GuildName) .. ");") if(lista:getID() ~= -1) then repeat count = count + 1 until not lista:next() lista:free() return count end end Em talkactions/script guildinformation.lua function onSay(cid, words, param, channel) local players,str,GuildName = {},'',getPlayerGuildName(cid) if getPlayerGuildId(cid) <= 0 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE,"Você precisa estar em uma Guild.") return true end for _, cid in pairs(getPlayersOnline()) do if getPlayerGuildName(cid) == GuildName then table.insert(players, cid) end end str = str .. "Membros total da guild: "..CountGuildMembers(GuildName).." Players.\n\nExiste "..#players.." Players online na sua guild:\n\n" for i = 1, #players do str = str.."\n["..getPlayerName(players[i]).."]["..getPlayerGuildRank(players[i]).."]" end return doShowTextDialog(cid, 2533, str) end talkactions.xml <talkaction words="!guild" event="script" value="guildinformation.lua"/> Link úteis: Comando !guild List: http://www.xtibia.co...ion-guild-list/ comando !party: http://www.xtibia.co...-comando-party/1 ponto
-
http://www.xtibia.com/forum/topic/137298-dev-c-como-compilar-um-otserv/ http://www.xtibia.com/forum/topic/145300-c-compilando-um-otserv/ Descompilar o executavel creio que nem tem como. Vais ter que baixar as sources e fazer um executavel novo, procura no XTibia que tem varios tutoriais, e tem esses aew em cima.1 ponto
-
1ª Tentativa Abra o seu mapa com o RME, aperta as teclas "Ctrl+T" e verifique se as coordenadas do templo esta la, se não tiver coloque-as! 2ª Tentativa Vá na pasta do seu servidor, abra o arquivo "config.lua", logo de cara você vai ver mais ou menos assim: Mude onde tem os numero em negrito pela posição do seu templo,1 ponto
-
[Source] 8.4
LukasScott reagiu a Beeki por uma questão
Aqui está direto da free svn da OTland, na versão 8.42 espero ter ajudado, até! http://otland.net/subversion.php?svn=public&file=dl.php&repname=forgottenserver&path=%2Ftags%2F0.2.3%2F&rev=96&peg=96&isdir=11 ponto -
Problema Com O Gesior Server Mysql
pvmp reagiu a Piabeta Kun por um tópico no fórum
de nada amigo! so nao veio o rep+ kkk até mais!1 ponto -
Eu pelo contrario curto, com bordas assim... Só acho que faltou, Iluminação, e um pouco mais de efeitos, em fim, ta legal.1 ponto
-
1 ponto
-
Aqui Scripts Para OT Server,ira ajudar muito. Perfect Forge System Link : http://www.xtibia.co...t-forge-system/ Powergamers E Most Online Link : http://www.xtibia.co...-e-most-online/ Cassino Link : http://www.xtibia.co...154950-cassino/ Piso Que Bloqueia Players, Tutores E Senior Tutores Link : http://www.xtibia.co...__1#entry994966 Radiance [Dota] http://www.xtibia.co...-radiance-dota/ [Quest] Tasks - Completo http://www.xtibia.co...tasks-completo/ [ Action ] Montaria http://www.xtibia.co...ction-montaria/ Premmy Exp Com Stages. http://www.xtibia.co...exp-com-stages/ Zombie Events + Pagina Gesior. http://www.xtibia.co...-pagina-gesior/ [Gesior Aac] Lottery System http://www.xtibia.co...lottery-system/ [Gesior Acc] Trade Offline http://www.xtibia.co...-trade-offline/ [Gesior Acc] Addon Bonus Page http://www.xtibia.co...don-bonus-page/ [Gesior Acc] Guild War System Com Escudos http://www.xtibia.co...em-com-escudos/ Valeu ai,Qualquer De Vez em Quando eu Atualizo,commentem ai. vlw ! Créditos : Xtibia Créditos : Thiago Willian (My-Eu).1 ponto
-
[Encerrado] Acc Manager ñ Cria Mais Char Help
MoabHenrique reagiu a xReyntek por um tópico no fórum
Acredito que o sql não tá mais suportando o numero de character/accounts... ou faz um database com apche ou tudo mais, ou deleta chares inativos1 ponto -
NOSSA Q DAHORA UHU-1 pontos
-
Prezyoso problematico ashuduashdu' O kra fode o pc dele e fala que foi o Ot kkkkkkkkkkkk' So da chkdsk no cmd de recuperação do windows seu noob .-.-1 pontos