Tudo que Doughell postou
-
PingOut 4.0
Kimoszin, sim foi puro CTRL+C e CTRL+V apenas quis contribuir com este otimo utilitário, aliás foi retirado do MundoRPGMaker, como até dito: Colaboração: KinaAlreon, MachineScripts e MundoRPGMaker.com E acabei não editando aquela parte. Obrigado por avisar.
-
Perfect VIP System 2.0
Literamente perfect VIP System, haha! Reputado. @Gabriel10101 A respeito da sua dúvida, você procedeu dessa seguinte maneira na hora de adicionar os novos outfits: <outfit id="24" premium="yes"> <list gender="0" lookType="366" name="Wayfarer"/> <list gender="1" lookType="367" name="Wayfarer"/> </outfit> <outfit id="25" premium="yes"> <list gender="0-3" lookType="159" name="Elf"/> </outfit> <outfit id="26" premium="yes"> <list gender="0-3" lookType="160" name="Dwarf"/> </outfit> <outfit id="27" premium="yes"> <list gender="0-3" lookType="226" name="Frog"/> </outfit> <outfit id="28" premium="yes"> <list gender="0-3" lookType="194" name="Cult"/> </outfit> Por acaso você ao adicionar as novas outfits, colocou os <outfid id="?"> sucessivamente, por exemplo: 24, 25, 26... A respeito da sua pergunta se tem limites de outfits, não há limites. Não sei se essa era sua dúvida, mais caso não for mande me PM especificando melhor!
-
[System] Pontos "P" Points System
Otimo script, o que seria bom mesmo fazer um NPC ou um tipo de SHOP onde comprasse itens especiais que utilizasse esse tipo de moeda, p points!
- [MOD] Reflect System 0.1
-
[TalkAction] Gate System
Lpz muito obrigado pelo comentário e pelo aviso!
-
PingOut 4.0
PingOut 4.0 Software by Doughell Atual Versão: 4.0.0 (Atualizações através do Auto-Updater do programa). Tamanho: 6.2 MB (Instalado) Criação: Diego Braga Machado (Aldimun Works) Colaboração: KinaAlreon, MachineScripts e MundoRPGMaker.com Compatibilidade da versão: Servidores de Jogos Online (Private Servers), inclusive OTServs (todos os protocolos). Descrição: - O famoso PingOut (Versão antiga by Machine) agora em nova geração, atualizações constantes e um novo conceito em software. Nova versão criada por mim com ajuda do próprio Machine. - Sua função é controlar e estabilizar, de acordo com a sua configuração, a quantidade de envio de pacotes da conexão ao servidor. Controlando o envio, o Ping fica quase nulo, evitando ao máximo o LAG e o incômodo trava-trava em servidores privados de jogos online, inclusive Tibia OTServs de todos os Protocolos. - Possui o recurso Kick Hight Ping, que bloqueia e expulsa do Servidor, o acesso de IP's (jogadores conectados) com alto Ping, o que ocasiona Lag e Freeze (Esse recurso pode ser ativado ou não, fica à disposição do usuário). - Software não permite ser minimizado, mantendo seu monitoramento sempre em primeiro plano, e por ser um programa extremamente leve, garante livre funcionamento do computador. - O PingOut vêm se desenvolvendo ao longo dos anos e se aperfeiçoando cada vez mais, hoje, se tornando o único programa no ramo de otimização de pequenos e grandes servidores. Versão testada e aprovada por milhares de usuários experientes de diversas comunidades, inclusive pela equipe de Administração do MundoRPGMaker.com VERSÃO GRATUITA. SEM LIMITAÇÕES DE FUNCIONAMENTO! - Em relação a Versão Profissional, deixo claro que a compra da mesma, é somente no site oficial do programa (http://aldimun.forumbrasil.net) (fórum temporário, em breve site próprio). A versão Profissional ainda está em fase de testes e em breve estará disponível para compra. - A única diferença entre a versão Gratuita e a Profissional é que, na segunda existem recursos adicionais e configurações avançadas para o programa. O Controle de Ping é o mesmo nas duas versões. ___________________________________ Recomendado para servidores que buscam estabilidade e qualidade nas horas de jogo de seus jogadores. ___________________________________ DOWNLOAD: Clique aqui para baixar! SCAN: Veja o resultado do scanner VirusTotal Log da versão 4.0.0 [OK] - Programa 100% modificado. Novo código e script reformulado. [OK] - Mudanças nas configurações do programa. [OK] - Mudanças gráficas. [OK] - Fim temporário do recurso de Skin's (aparências). [OK] - Novo sistema de atualizações automáticas, mais eficaz e eficiente. [OK] - Correções de pequenos erros. [OK] - Melhorias nos recursos já existentes. [OK] - Nova licença de uso do programa. Versões "Gratuita" e "Profissional". Gratuita não possui limitações de funcionamento. Apenas alguns recursos são liberados para a versão Profissional. [OK] - Grandes melhorias no funcionamento e carregamento do programa. [OK] - Ampla compatibilidade. Não se limitando somente à servidores de RM. Compatível com variados jogos e servidores.
-
[TalkAction] Gate System
Obrigado Matheus por me auxiliar!
-
[MoveEvent] Scripts para PokeTIBIA v2.0
Olá a todos! Como notaram-se eu tenho um tópico chamado Scripts para PokeTIBIA aonde passei a vocês um tipo de SHOP in-game utilizando a moeda como Small Diamonds, nesta nova versão estarei ensinando como botar unique item em potions, pokeball como é o caso do PXG, que no inicio as pokeballs e as potions estão como uniques. O problema é o seguinte, que ao selecionar um item para ser unique todos que obterem este item de alguma forma por exemplo em SHOP (NPC Mark) ele também ficará como unique item! Unique Item Primeiramente crie um arquivo em otserv/movements/scripts com o nome de uniqueitem.lua e adicione no arquivo: Agora adicione em movements.xml: 2 parte do Script Crie um arquivo em otserv/movements/scripts com o nome de tradeunique.lua e adicione no arquivo: Agora adicione em movements.xml: <movevent type="TradeAccept" itemid="XXXX" event="script" value="tradeunique.lua"/> OBS: Formatei o tópico em para solucionar alguns bugs! Bom é isso ai galera, qualquer dúvida ou sujestões postem aqui mesmo no tópico! E lembre-se, este e um script mais ou menos, estarei aperfeiçoando mais na medida do possível!
-
[TalkAction] Gate System
Bom baiano é assim mesmo Renato, hehe! Mais agora já foi, da proxima foi tentar lembrar desse aviso, hahahaha. - Galera, estarei aperfeiçoando o script para que ao portão ser aberto mande uma mensagem a todos players do servidor! Em breve, estará disponível!
-
[TalkAction] Gate System
Olá a todos! Bom, estou aqui para mostrar um dos meus novos scripts BEM MAIS APERFEIÇOADO com base em um dos antigos, como assim? Apenas peguei um script de alavanca como base e modifiquei completamente para que fique mais fácil e bem mais útil. Pode ser utilizados em todos tipos de eventos, por exemplo: Você anuncia que terá Castle WAR tal horário, até você chegar terá um monte de gente e tal... Para antecipar a abertura, apenas execute o comando que será aberto automaticamente! E claro também possui outras utilidades, mais cada um com a sua Ok, agora vamos ao script! Portão System Crie um arquivo em otserv/talkactions/scripts com o nome de abertura.lua e adicione no arquivo: Agora em talkactions.xml adicione: [/color] [color=#000000]<talkaction words="!open" event="script" value="abertura.lua"/>[/color] [color=#000000] É isso ai galera, qualquer duvida postem aqui mesmo ou dêem sujestões!
-
Portal WoE
Muito obrigado Matheus e Ferlations, e Ferlations estava vendo aquele seu desenho de ORC cara você é 10! Hehe, o que não gostei muito foi o logo do otPokémon mais nada que um pouco de tempo aperfeiçoe! E Matheus, obrigado por acompanhar em meus scripts!
-
[TalkAction] Scripts para PokeTIBIA
Bom obrigado ai Matheus pela força, mais é isso ai pessoal!
-
Portal WoE
Olá a todos! Estou aqui novamente para mostrar um de meus novos scripts, o Portal. Mais afinal, se perguntam: Qual é a utilidade? Muitos possuem evento como o WoE, ou Castle War, e afinal são belos scripts! Mas com esta talkactions será possível deixar esses eventos bem mais, vamos dizer "legais" rs. No Ragnarok, possui algo na magia do clã que seria o "recall" algo assim, aonde todos os players aparecem no Castelo, a talkaction tem a mesma utilidade. Chega de enrolação, e vamos direto ao script! Portal WoE Crie um arquivo em otserv/actions/scripts chamdo woe.lua e adicione isso em arquivo: local mensagens = { ['blocked'] = "Você não pode usar esse item.", ['pzed'] = "Você não pode usar esse item em protection zone.", ['usingInCreature'] = "Você não pode usar esse item.", ['alreadUsing'] = "Você já está usando um elemental gate.", ['noMana'] = "Você não tem mana points suficientes para usar esse item.", ['noSoul'] = "Você não tem soul points suficientes para usar esse item." } local config = { dist = 1, intervalo = 750, efeito = {[2156] = 6}, vezes = 15, mana = 300, soul = 30, actionID = {[2156] = 3001}, storage = 3001 } function onUse(cid, item, fromPosition, itemEx, toPosition) local pos = getThingPos(cid) local dir = getPlayerLookDir(cid) local p = {math.fmod(dir,2)*(-(dir-2)),(dir-1)*(dir-1-(dir-1)*math.abs(dir-2))} local newPos = {x=pos.x+(p[1])*config.dist,y=pos.y+(p[2])*config.dist,z=pos.z} newPos.stackpos = 0 local aid = getThingFromPos(newPos).actionid -- Verificar Erros if getCreatureMana(cid) < config.mana then doPlayerSendCancel(cid, mensagens['noMana']) return FALSE end if getPlayerSoul(cid) < config.soul then doPlayerSendCancel(cid, mensagens['noSoul']) return FALSE end if isCreature(getTopCreature(newPos).uid) == 1 and getPlayerAccess(cid) < 2 then doPlayerSendCancel(cid, mensagens['usingInCreature']) return FALSE end if isWalkable(newPos) == FALSE and getPlayerAccess(cid) < 2 then doPlayerSendCancel(cid, mensagens['blocked']) return FALSE end if (getTilePzInfo(newPos) == TRUE or getTilePzInfo(getThingPos(cid)) == TRUE) and getPlayerAccess(cid) < 2 then doPlayerSendCancel(cid, mensagens['pzed']) return FALSE end if getPlayerStorageValue(cid, config.storage) > 0 and getPlayerAccess(cid) < 2 then doPlayerSendCancel(cid, mensagens['alreadUsing']) return FALSE end doCreatureAddMana(cid, config.mana * (-1)) doPlayerAddSpentMana(cid, config.mana * (-1)) doPlayerAddSoul(cid, config.soul * (-1)) doRemoveItem(item.uid) if doTileQueryAdd(cid, newPos) == 1 then setPlayerStorageValue(cid, config.storage, 1) doSetItemActionId(getThingFromPos(newPos).uid, config.actionID[item.itemid]) doLoopEffect(cid, newPos, aid, config.efeito[item.itemid], 1) end return TRUE end function doLoopEffect(cid, pos, aid, effect, times) doSendMagicEffect(pos, effect) times = times + 1 if times < config.vezes then addEvent(doLoopEffect, config.intervalo, cid, pos, aid, effect, times) else doSetItemActionId(getThingFromPos(pos).uid, aid) setPlayerStorageValue(cid, config.storage, 0) end end function isWalkable(pos) -- Version by Pivigu local thing = getTileThingByPos({x=pos.x, y=pos.y, z=pos.z, stackpos = 0}) local points = 0 if thing.uid ~= 0 and hasProperty(thing.uid, 3) == FALSE and hasProperty(thing.uid, 7) == FALSE then for i = 1, 2 do thing = getTileThingByPos({x=pos.x, y=pos.y, z=pos.z, stackpos = i}) if thing.uid == 0 or (hasProperty(thing.uid, 3) == FALSE and hasProperty(thing.uid, 7) == FALSE) then points = points + 1 end end end if points > 1 then return TRUE end return FALSE end Agora em actions.xml adicione: <action itemid="2156" script="woe.lua"/> 2 parte do Script WoE Crie um arquivo em otserv/movements/scripts chamado recall.lua e adicione isso em seu arquivo: local area = { [3001] = {x=699,y=699,z=7}, } function onStepIn(cid, item, position, fromPosition) if isPlayer(cid) == TRUE then doSendMagicEffect(position, CONST_ME_POFF) doTeleportThing(cid, area[item.actionid], FALSE) doSendMagicEffect(area[item.actionid], CONST_ME_TELEPORT) end return TRUE end -- Explicação do Script local area = { [3001] = {x=152,y=100,z=7} Esta e a posição do começo do castelo, a posição tem que se determinado não da pra escolher na hora! Agora em movements.xml adicione: <movevent event="StepIn" actionid="3001" script="recall.lua"/> Comentário: Como no Ragnarok é o sumo-sacerdote que possui a magia recall da guild, no caso agora apenas os elders druids e master sorcerers que poderma utilizar a magia recall. Adicione em spells.xml: <conjure name="Recall Guild" words="recall" lvl="20" mana="20" prem="0" conjureId="2156" exhaustion="6500" needlearn="0" function="conjureItem"> <vocation name="Master Sorcerer"/> <vocation name="Elder Druid"/> </conjure> É isso ai galera, qualquer dúvida postem ou dêem sujestões!
-
[TalkAction] Scripts para PokeTIBIA
@Kimoszin É sim de minha autoria todos scripts, no caso do !buyshopkit, eu peguei o comando !aol de base e apenas refiz o item que ganharia, quanto lhe custaria... É sobre sujestão, estarei trabalho nelas @Augusto Muito obrigado pelo comentário e pelo REP+ - Queria avisar ao povo do fórum, que algumas mensagems estão com alguns bugs com alguns caracters especiais por exemplo: #$4's Isso é porquê usei o "~" ou até mesmo acento! Antes de adicionar e salvar o script, confira as mensagems para não ocorrer bugs
-
[TalkAction] Scripts para PokeTIBIA
Olá a todos! Estou aqui para mostrar um script aonde será bem útil a servidores de Pokémon. Não é nada mais do quem um SHOP in-game. Como assim? Com estes 3 comandos será possível comprar Revives, Hyper Potions, Ultra Balls, trocar de nome pelo jogo e até mesmo comprar o Ditto. Detalhe o tipo de moeda que utilizei foi Small Diamonds, caso queria modificar leia passo a passo. Como se percebe, a maioria de servidores hoje em dia vende apenas estes items e outros, mais esses são os padrões. Chega de enrolação e vamos direto ao script. Changename Script: Primeiramente crie um arquivo em otserv/talkactions/scripts chamado changename.lua e adicione isso em seu arquivo. (Este script serve para modificar o nome do jogador pelo jogo). -- Creditos a Doughell function onSay(cid, words, param) local maxLen = 15 -- tamanho maximo do nome local itemid = 2145 ------ Numero do Item que será removido local proibido = [{"!","@","*"}-- simbolos proibidos for i = 1, #proibido do if string.find(tostring(param), proibido[i]) then doPlayerSendCancel(cid,"[AUTO SHOP] You can not use symbols in their name.") return TRUE end end if tostring(param) == "" then -- checkar se não é nome vazio doPlayerSendCancel(cid, "[AUTO SHOP] Choose a name to make the change of his surname.") return TRUE end if string.len(tostring(param)) > maxLen then doPlayerSendCancel(cid, "[AUTO SHOP] You can use a maximum of " .. maxLen .. " letters.") return TRUE end if not getTilePzInfo(getCreaturePosition(cid)) then doPlayerSendCancel(cid,"[AUTO SHOP] Can only be used in Protection Zone.") return TRUE end if getPlayerItemCount(cid, itemid) >= 1 then doPlayerRemoveItem(cid, itemid, 5) db.executeQuery("UPDATE `players` SET `name` = '"..param.."' WHERE `id` = "..getPlayerGUID(cid)..";") doPlayerSendTextMessage(cid,25,"[AUTO SHOP] You will be logged out in 5 seconds for the changes to be made.") addEvent(doRemoveCreature, 5*1000, cid, true) else doPlayerSendCancel(cid,"[AUTO SHOP] You don't have " .. getItemNameById(itemid) .. " to make the purchase of changename.") end return TRUE end Agora em talkactions.xml adicione em Players: <talkaction words="!changename" event="script" value="changename.lua"/> -- Explicação do Script (Changename): local maxLen = 15 -- tamanho maximo do nome O número 15 e a quantidade máxima de caracteres que poderá ser utilizado na troca de nome. local itemid = 2145 ------ Numero do Item que será removido Este e o ID do item que será removido, no caso do 2145 e Small Diamonds (moeda principal do PokeXGames). Aconselho a usar Small Diamonds. local proibido = {"!","@","*"} -- simbolos proibidos Estes e os símbolos proibidos, caso queria adicionar mais faça o seguinte: {"!","@","*","?"} adicionando dessa seguinte maneira: ,"?"} Ditto Script: Crie um arquivo em otserv/talkactions/scripts com o nome de ditto2.lua e adicione isso em seu arquivo: (Este script serve para adicionar a caixa do Ditto no jogador). function onSay(cid,words,param) if doPlayerRemoveItem(cid,2145,10) == TRUE then doPlayerAddItem(cid,1738,1) doCreatureSay(cid,"[AUTO SHOP] You bought your Pokemon Ditto, it cost 10 diamonds.",TALKTYPE_ORANGE_1) else doCreatureSay(cid,"[AUTO SHOP] You do not have two diamonds to make the purchase.",TALKTYPE_ORANGE_1) end end Agora em talkactions.xml adicione em Players: <talkaction words="!buyditto" event="script" value="ditto2.lua"/> A segunda parte do script você precisa ir otserv/actions/scripts crie um arquivo chamado ditto_.lua e adicione o seguinte: (Este script serve para o id da caixa ser usado para conseguir o Ditto) function onUse(cid, item, frompos, item2, topos) if getPlayerStorageValue(cid, 15215) <= 100 then doPlayerSendTextMessage(cid, 20,"[AUTO SHOP] Thank donations.") setPlayerStorageValue(cid, 15215, 1) local pox = getTownTemplePosition(1) local health = 325 local maxhealth = 325 local description = "Contains a Ditto." local poke1 = "This is Ditto's pokeball. HP = ["..health.."/"..maxhealth.."]" item = doCreateItemEx(2219) doItemSetAttribute(item, "poke", poke1) doItemSetAttribute(item, "nome", "Ditto") doItemSetAttribute(item, "apelido", "Ditto") doItemSetAttribute(item, "description", description) doPlayerAddItemEx(cid, item, true) doTransformItem(item, 2222) doPlayerSendTextMessage(cid, 27, "[AUTO SHOP] You just get the Pokemon Ditto.") doPlayerSendTextMessage(cid, 27, "Do not forget to donate this item has a cost of 10 diamonds, and you can not get this Pokemon through quests / npcs / catchs.") doTeleportThing(cid, pox) doSendMagicEffect(pox, 21) doPlayerAddSoul(cid, 1) doPlayerRemoveItem(cid,1738,1) setPlayerStorageValue(cid, 54842, "Ditto, ") return TRUE else doPlayerSendTextMessage(cid, 20, "Have you got this Pokemon.") end end Agora em actions.xml adicione: <action itemid="1738" event="script" value="ditto_.lua"/> -- Explicação do Script (Ditto): PARTE DAS TALKACTIONS if doPlayerRemoveItem(cid,2145,10) == TRUE then O número 2145 e o id da Small Diamonds, já o número 10 e a quantidade de Small Diamonds que precisa para comprar o Ditto. doPlayerAddItem(cid,1738,1) O número 1738 e o id da box, caso modificar este número modifique tambem em actions.xml! PARTE DAS ACTIONS doSendMagicEffect(pox, 21) O número 21 e o número do efeito que vai ser utilizado ao abrir a box, pode ser modificado em qual você preferir. doPlayerAddSoul(cid, 1) Será adicionado 1 de soul, como se fosse 1 de catch (dependendo de alguns servidores) se preferir retire a linha inteira. doPlayerRemoveItem(cid,1738,1) Este e o id da box, caso você muda-lá na talkactions, e na actions.xml mude aqui tambem. Kit Script: Crie um arquivo em otserv/talkactions/scripts chamado kit.lua e adicione isso dentro dele: (Este script serve para receber Revives, Ultra Balls e Hyper Potions). function onSay(cid,words,param) if doPlayerRemoveItem(cid,2145,2) == TRUE then doPlayerAddItem(cid,2269,100) doPlayerAddItem(cid,2275,100) doPlayerAddItem(cid,2146,100) doCreatureSay(cid,"[AUTO-SHOP]: You just buy ultra ball 100x, 100x revive and 100x hyper potion. All this will cost 2 diamonds!",TALKTYPE_ORANGE_1) else doCreatureSay(cid,"[AUTO-SHOP]: You do not have two diamonds to make the purchase.",TALKTYPE_ORANGE_1) end end Agora em talkactions.xml adicione: <talkaction words="!buykit" event="script" value="kit.lua"/> -- Explicação do Script (Kit): if doPlayerRemoveItem(cid,2145,2) == TRUE then O id 2145 e o Small Diamonds e o número 2 e a quantidade que será retirada para a realização da compra do kit. doPlayerAddItem(cid,2269,100) O id 2269 e o da Ultra Ball e o número 100 e a quantidade que o player receberá de Ultra Balls. doPlayerAddItem(cid,2275,100) O id 2275 e o do Revive, e o número 100 e a quantidade que o player receberá de Revives. doPlayerAddItem(cid,2146,100) O id 2146 e o da Hyper Potion, e o número 100 e a quantidade que o player receberá de Hyper Potions. Bom, estes são os scripts prometido, mas se alguém quiser coloca outras talkactions como a !buykit vou colocar abaixo o que poderam usar de base: function onSay(cid,words,param) if doPlayerRemoveMoney(cid,10000) == TRUE then doPlayerAddItem(cid,2173,1) doCreatureSay(cid,"Mensagem que ele conseguiu comprar o item.",TALKTYPE_ORANGE_1) else doCreatureSay(cid,"Mensagem quando não possui dinheiro ou diamantes suficientes.",TALKTYPE_ORANGE_1) end end if doPlayerRemoveMoney(cid,10000) == TRUE then Essa função diz que irá remover 10k para comprar o item, se você quiser que remova outra coisa por exemplo um shield você adiciona a seguinte função no lugar dessa: doPlayerRemoveItem(cid,1738,1) ficando assim: doPlayerRemoveItem(cid,1738,1) = TRUE then O id do shield você modifica no 1738 e a quantidade no número 1. doPlayerAddItem(cid,2173,1) Esas função adiciona o item e a quantidade no jogador, exemplo: 2173 e o ID do item, e o número 1 e a quantidade só modificar do seu gosto. O que você pode adicionar em um script? Efeitos, para adicionar um efeito basta colocar essa função: doSendMagicEffect(getThingPos(cid), 132) O número 132 e o número do efeito, para pesquisar mais procure pelo jogo no GOD o seguinte: /z 1, /z 2, /z 3 até o seu limite. É isso ai galera, qualquer dúvida postem ou dêem sujestões! Detalhe: as cores nos scripts foram retiradas por bug, em outra hora adicionarei novamente!
-
Anuncio de entrada e saída
Nossa, nunca pensei que teria toda estes comentários o tópico! Muito obrigado pelos REP+ e pelas sujestões, estarei botando em prática! Um comentário que desejo fazer, achei otimo o fórum TibiaKING acessava antes mais sem ter conta, agora decidi criar para contribuir com os scripts de minha autoridade e ajudar os usuários, parabêns a equipe!
-
Anuncio de entrada e saída
Olá a todos! Estou aqui para mostrar uma script (creaturescript) aonde tem de função: mandar um broadcast (mensagem) para o servidor avisando que o tal player entrou ou saiu do servidor. As duas actions são iguais, as modificações são apenas as funções: function onLogout(cid) e function onLogin(cid) Bom, vamos chegar de inrolação e vamos direto ao script! Login Crie um arquivo em otserv/creaturescript/scripts com o nome de login.lua e adicione isso em seu arquivo: (Este script serve para anunciar que o tal player entrou no servidor). function onLogin(cid) doBroadcastMessage(getPlayerName(cid) .. "[" .. getPlayerLevel(cid) .. "]: acabou de entrar no servidor", MESSAGE_STATUS_CONSOLE_BLUE) return TRUE end Agora em creaturescripts.xml adicione: <event type="login" name="PlayerLogin" event="script" value="script/login.lua"/> -- Explicação do Script (login): [" .. getPlayerLevel(cid) .. "] Essa função falará o level do jogador que entrou no servidor. (getPlayerName(cid) .. " Essa função falará o nome do jogador que entrou no servidor. "acabou de entrar no servidor" Esta frase pode ser modificada do seu gosto. , MESSAGE_STATUS_CONSOLE_BLUE) Esta função serve para que a mensagem apareça no default com a cor azul. Logout Crie um arquivo em otserv/creaturescript/scripts com o nome de logout.lua e adicione isso em seu arquivo: (Este script serve para anunciar que o tal player saiu do servidor). function onLogout(cid) doBroadcastMessage(getPlayerName(cid) .. " [" .. getPlayerLevel(cid) .. "]: acabou de sair do servidor", MESSAGE_STATUS_CONSOLE_ORANGE) return TRUE end Agora em creaturescripts.xml adicione: <event type="logout" name="PlayerLogout" event="script" value="script/logout.lua"/> -- Explicação do Script (logout): Não há o que explicar, todas funções são iguais no script login (que está logo acima), o que você pode modificar e a mensagem do "acabou de sair do servidor" e a função "MESSAGE_STATUS_CONSOLE_ORANGE)" que funciona para que a mensagem apareca no default com a cor laranja, dai vocês modificam ao gosto de vocês. É isso ai galera, qualquer dúvida postem ou dêem sujestões!