Ir para conteúdo

Pesquisar na Comunidade

Mostrando resultados para as tags ''sistema''.

  • Pesquisar por Tags

    Digite tags separadas por vírgulas
  • Pesquisar por Autor

Tipo de Conteúdo


Fóruns

  • xTibia - Notícias e Suporte
    • Regras
    • Noticias
    • Soluções
    • Projetos Patrocinados
    • Tutoriais para Iniciantes
    • Imprensa
  • OTServ
    • Notícias e Debates
    • OTServlist
    • Downloads
    • Recursos
    • Suporte
    • Pedidos
    • Show-Off
    • Tutoriais
  • OFF-Topic
    • Barzinho do Éks
    • Design
    • Informática

Encontrar resultados em...

Encontrar resultados que contenham...


Data de Criação

  • Início

    FIM


Data de Atualização

  • Início

    FIM


Filtrar pelo número de...

Data de Registro

  • Início

    FIM


Grupo


Sou

  1. Battle Weekly 1.0 Iaiaiaeee meus jovens, tudo suaves? Hoje criei este tópico para oferecer á vocês um evento muito legal criado por mim, chamado Battle Weekly. Ele funciona da seguinte maneira: 1 - Batalha PVP de categorias (level 20 ao 50, 51 ao 75, etc); 2 - Ganhadores 1º e 2º lugar levam troféis; 3 - Totalmente segura, não perde level nem loot ao morrer; 4 - Fácil de configurar. 5 - Objetivo: Checar á X frags primeiro. E a configuração é mega simples, basta seguir os passos descritos no README.xml, o local da âncora é este: Download Battle Weekly 1.0 Scan Battle Weekly 1.0 Todas ScreenShoots tiradas estão numa pasta dentro do arquivo baixado. #GoodLuck.
  2. Este sistema é vendido por 10,00 ~ 19,90 por algumas empresas e estou liberando gratuitamente para vocês. Detalhes: Os players conseguirão subir telhados com a ROPE. <iframe width="640" height="360" src="http://www.youtube.c...layer_embedded" frameborder="0" allowfullscreen></iframe> Versão 8.60 Vá em data/actions/scripts/tools/rope.lua e troque tudo que estiver la por isto: Versão 9.60 ~ 9.70 Espero que gostem
  3. Olá galerinha do Xtibia, vim trazer um script de level recover primeiramente vá em /data/talkactions/scripts crie um arquivo chamado createRecover.lua e adicione isso dentro agora crie outro chamado recover.lua e adicione isso dentro Talkactions.xml <talkaction words="!createrecover" access="0" event="script" value="createRecover.lua"/> <talkaction words="!recover" access="0" event="script" value="recover.lua"/> agora em /data/creaturescripts/scripts crie um arquivo chamado loginRecover.lua e adicione isso dentro agora crie outro chamado recoverLogin.lua e adicione isso dentro agora crie outro chamado deathRecover.lua e adicione isso dentro creaturescripts.xml <event type="login" name="recoverLogin" event="script" value="recoverLogin.lua"/> <event type="login" name="loginRecover" event="script" value="loginRecover.lua"/> <event type="death" name="recoverDeath" event="script" value="recoverDeath.lua"/> agora em login.lua registerCreatureEvent(cid, "recoverLogin") registerCreatureEvent(cid, "loginRecover") registerCreatureEvent(cid, "recoverDeath") agora antes do ultimo return true if getPlayerStorageValue(cid, 12347) == -1 then setPlayerStorageValue(cid, 12347, 0) end então é isso pessoal espero que aproveitem se não funcionar avise no tópico Como Usar? bom você fala !createrecover ai se você morrer você podera recuperar seu level perdido falando !recover PS: Se você morrer 2 x com o comando você não podera mais recuperar
  4. O que é o jogo Piso Mágico: Resp: O sistema foi elaborado e desenvolvido por "skydangerous", é um sistema de jogo, que junta "sorte" , "emoção" e "habilidade", muito legal para otserv que gosta de ter opções novas para os player se divertirem. Como Funciona: Resp: O player falará com o npc, então poderá escolher entre 4 fases, sendo que cada fase tem um nivél diferente, ou seja do mais facil para o mais complexo. Logo em seguida, o npc teleportará o player para a fase, então ele terá um tempo para completar o jogo, caso ele não cumprir o objetivo, será eliminado. Se ele errar o piso poderá ser teleportado para o começo ou mesmo tomar danos de magias. Como Jogar: Resp: Terá vários caminho, tenha sorte escolha, cada casa certa irá criar um piso e você poderá prosseguir normalmente, até o final do jogo. Ele está em construção, então algumas coisa dito a cima não vai ter Crie um arquivo movement na pasta scripts chamado pisomagico.lua function onStepIn(cid, item, pos) local pos = getCreaturePosition(cid) local player = getCreaturePosition(cid) player.x = player.x+1 local player2 = getCreaturePosition(cid) player2.y = player2.y-1 local player3 = getCreaturePosition(cid) player3.x = player3.x-1 local player4 = getCreaturePosition(cid) player4.x = player4.x-2 if item.actionid == 5010 then doCreateItem(724,1, player) doPlayerSendTextMessage(cid,21,"Você acertou, prosiga") elseif item.actionid == 5011 then doCreateItem(724,1, player2) doPlayerSendTextMessage(cid,21,"Você acertou, prosiga") elseif item.actionid == 5013 then doCreateItem(724,1, player3) doCreateItem(724,1, player4) doPlayerSendTextMessage(cid,21,"Você acertou, prosiga") elseif item.actionid == 5014 then doTargetCombatHealth(0, cid, COMBAT_FIREDAMAGE, -270, -310, CONST_ME_FIREAREA) doSendAnimatedText(pos,"FAIL",TEXTCOLOR_RED) end return TRUE end Em movement.xml cole essas tags <movevent type="StepIn" actionid="5010" event="script" value="pisomagico.lua"/> <movevent type="StepIn" actionid="5011" event="script" value="pisomagico.lua"/> <movevent type="StepIn" actionid="5012" event="script" value="pisomagico.lua"/> <movevent type="StepIn" actionid="5013" event="script" value="pisomagico.lua"/> <movevent type="StepIn" actionid="5014" event="script" value="pisomagico.lua"/> Caso queira usar com NPC local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid local pos ={x= 1000,y=1000,z=1000} if msgcontains(msg, 'primeira fase') or msgcontains (msg, 'first') then selfSay('Voce quer participar da primeira fase?') talkState[talkUser] = 1 elseif talkState[talkUser] == 1 then if msgcontains(msg, 'yes') then selfSay('Bora jogar !.', cid) doTeleportThing(cid,pos) doPlayerSendTextMessage(cid,21,"Boa-Sorte a primeira fase") talkState[talkUser] = 0 end return true end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Lembre-se: Mude a posição que será teleportado no mapa Download Mapa: http://speedy.sh/TWQDC/jogo.otbm Scan Mapa: http://www.virustotal.com/file-scan/report.html?id=086be1bbed4e27e74b3aea414a1dfd4eb690c00bf446bd5d4c3209f883fec497-1321673489 Vale Lembrar: Fiz esse script com sono e cansado, ele está bem ruinzinho, mas irei modificar sempre até conseguir deixar ele bem legal para vocês.
  5. Testado: Versao: 8.60 ate 9.82 Painel guildshop admin: Adiciona items Remove items Add e Remove guild points Como funciona? É um sistema Guild Points, onde há uma Loja EXCLUSIVA para Guilds no Website, [ModernACC] assim Doadores e Guilds tem seu shop separado. Primeiramente faça o Download: GuildShop Depois de baixados coloque a pasta guildshop no: xampp: c:\xampp\htdocs Linux: /var/www apos feito isso vamos executar as seguintes querys em sua database: ALTER TABLE `accounts` ADD `guild_points` INT( 11 ) NOT NULL DEFAULT '0'; CREATE TABLE IF NOT EXISTS `guild_donation_history` ( `id` int(11) NOT NULL AUTO_INCREMENT, `method` varchar(256) NOT NULL, `receiver` varchar(256) NOT NULL, `buyer` varchar(256) NOT NULL, `account` varchar(256) NOT NULL, `points` int(11) NOT NULL, `date` int(10) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ; CREATE TABLE IF NOT EXISTS `guild_history` ( `id` int(11) NOT NULL AUTO_INCREMENT, `product` int(11) NOT NULL, `session` varchar(256) NOT NULL, `player` varchar(256) NOT NULL, `date` int(10) NOT NULL, `processed` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=35 ; CREATE TABLE IF NOT EXISTS `guild_offer` ( `id` int(11) NOT NULL AUTO_INCREMENT, `points` int(11) NOT NULL DEFAULT '0', `category` int(11) NOT NULL DEFAULT '1', `type` int(11) NOT NULL DEFAULT '1', `item` int(11) NOT NULL DEFAULT '0', `count` int(11) NOT NULL DEFAULT '0', `description` text NOT NULL, `name` varchar(256) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=latin1 AUTO_INCREMENT=81 ; INSERT INTO `guild_offer` (`id`, `points`, `category`, `type`, `item`, `count`, `description`, `name`) VALUES (3, 5, 1, 1, 0, 15, '', '15 days of VIP'), (6, 3, 2, 5, 2160, 100, '', '100 Crystal Coins'), (7, 2, 2, 5, 8266, 1, 'Protection holy -50%, death +8%.', 'Koshei''s Ancient Amulet'), (8, 4, 2, 5, 11393, 1, 'Increases loot rate by 0.5% while using.', 'Lucky Clover Amulet'), (10, 2, 3, 5, 8871, 1, 'Arm:9, magic level +1.<br>It can only be wielded properly by sorcerers and druids.', 'Focus Cape'), (78, 7, 2, 5, 2366, 1, 'Recupera imediatamente toda sua stamina, pode ser usado uma vez.', 'Sweet Recovery Elixir'), (79, 5, 2, 5, 9693, 1, 'Addon Doll(Escolha o Addon que você quiser). Digite !addon first(ou second) nomedoaddon.', 'Addon Doll 1x'); lembrando execute 1 de cada vez de preferencia para nao ter nenhum bug. logo em seguida vamos criar a page do shop no modernacc entra com sua conta de admin no site entre e administration [Painel Admin] vai em pages e clique em Create Page depois em Page Name coloque guildshop e clica em Create na proxima page adicione: <?php include("guildshop/gifts.php"); ?> e cliqe em Edit Page para salvar, pronto shop system instalado, agora vamos pra parte para entregar o item automaticamente ao player, basta entrar em seu ot na pasta /data/globalevents/scripts crie um arquivo guildshop.lua e adicionar: function onThink(interval, lastExecution, thinkInterval) local result = db.getResult("SELECT * FROM guild_history WHERE `processed` = 0;") if(result:getID() ~= -1) then while(true) do cid = getCreatureByName(tostring(result:getDataString("player"))) product = tonumber(result:getDataInt("product")) itemr = db.getResult("SELECT * FROM guild_offer WHERE `id` = "..product..";") if isPlayer(cid) then local id = tonumber(itemr:getDataInt("item")) local tid = tonumber(result:getDataInt("id")) local count = tonumber(itemr:getDataInt("count")) local tipe = tonumber(itemr:getDataInt("type")) local productn = tostring(itemr:getDataString("name")) if isInArray({5,8},tipe) then if getPlayerFreeCap(cid) >= getItemWeightById(id, count) then if isContainer(getPlayerSlotItem(cid, 3).uid) then received = doAddContainerItem(getPlayerSlotItem(cid, 3).uid, id,count) if received then doItemSetAttribute(received, "description", 'Bought by ' .. getCreatureName(cid) .. ' [iD:' .. id .. '].') doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You have received >> "..productn.." << from our guild shop system") db.executeQuery("UPDATE `guild_history` SET `processed`='1' WHERE id = " .. tid .. ";") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Sorry, you don't have enough space on container to receive >> "..productn.." <<") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Sorry, you don't have a container to receive >> "..productn.." <<") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Sorry, you don't have enough capacity to receive >> "..productn.." << (You need: "..getItemWeightById(id, count).." Capacity)") end elseif isInArray({6,7},tipe) then if tipe == 6 then bcap = 8 bid = 1987 elseif tipe == 7 then bcap = 20 bid = 1988 end if isItemRune(id) then count = 1 end if getPlayerFreeCap(cid) >= (getItemWeightById(1987, 1) + getItemWeightById(id,count * bcap)) then local bag = doCreateItemEx(bid, 1) for i = 1,bcap do doAddContainerItem(bag, id, count) end received = doPlayerAddItemEx(getPlayerSlotItem(cid, 3).uid, bag) if received == RETURNVALUE_NOERROR then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "You have received >> "..productn.." << from our guild shop system") db.executeQuery("UPDATE `guild_history` SET `processed`='1' WHERE id = " .. tid .. ";") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Sorry, you don't have enough space to receive >> "..productn.." <<") end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Sorry, you don't have enough capacity to receive >> "..productn.." << (You need: "..getItemWeightById(id, count).." Capacity)") end end end itemr:free() if not(result:next()) then break end end result:free() end return true end em seguida entre em globalevents.xml e adicione a linha: <globalevent name="guildshop" interval="15000" event="script" value="guildshop.lua"/> e logo em seguida vamo por o talkactions para as guild pegarem seus guild points, entre em /data/talkactions/scripts e crie uma arquivo com nome guildpoints.lua e adicione: local playersNeeded = 8 local ipsNeeded = 6 local minimumLevel = 50 local storageId = 41578 local pointsForPlayer = 20 local function sendPlayersList(cid, list) for i, pid in ipairs(list) do local level = getPlayerLevel(pid) < minimumLevel and " - " .. getPlayerLevel(cid) .. " level " or "" local valid = getCreatureStorage(pid, storageId) > 1 and " - already received!" or "" doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, getCreatureName(pid) .. level) end end function onSay(cid, words, param, channel) if(getPlayerGuildLevel(cid) == 3) then local leaderGuild = getPlayerGuildId(cid) local players = getPlayersOnline() local guildMembersValid = {} local guildMembersInvalid = {} for i, pid in ipairs(players) do if(leaderGuild == getPlayerGuildId(pid)) then if(getPlayerLevel(pid) >= minimumLevel and tonumber(getCreatureStorage(pid, storageId)) < 2) then table.insert(guildMembersValid, pid) else table.insert(guildMembersInvalid, pid) end end end if(#guildMembersValid >= playersNeeded) then local IPs = {} for i, pid in ipairs(guildMembersValid) do local ip = getPlayerIp(pid) if(IPs[ip] == nil) then IPs[ip] = ip end end if(#IPs >= ipsNeeded) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Players that received points:") sendPlayersList(cid, guildMembersValid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Players that did not receive points:") sendPlayersList(cid, guildMembersInvalid) local accounts = {} for i, pid in ipairs(guildMembersValid) do table.insert(accounts, getPlayerAccountId(pid)) doCreatureSetStorage(pid, storageId, os.time()) end db.executeQuery("UPDATE `accounts` SET `guild_points` = `guild_points`+" .. pointsForPlayer .. " WHERE `id` IN (" .. table.concat(accounts, ',') .. ");") else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, #guildMembersValid .. " players from your guild are valid (" .. playersNeeded .. " required), but you have together only " .. #IPs .. " IPs (" .. ipsNeeded .. " required)") doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Valid players:") sendPlayersList(cid, guildMembersValid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Invalid players:") sendPlayersList(cid, guildMembersInvalid) end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, #guildMembersValid .. " players from your guild are valid, " .. playersNeeded .. " required. Minimum level required is " .. minimumLevel) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Valid players:") sendPlayersList(cid, guildMembersValid) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Invalid players:") sendPlayersList(cid, guildMembersInvalid) end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, "Only guild leader can request points.") end return true end depois em talkactions.xml adicione a linha: <talkaction log="yes" words="!guildpoints" script="guildpoints.lua" /> e pronto fim do tutorial qualquer duvida so perguntar e nao esqueça de agradecerem Creditos: A mim: Por ter quebrado a cabeça pra editar o shop para postar aqui HastlerHost: Pelo Talkactions
  6. Sistema de Torneio V2.0 Saudações galera, tudo de bão e do mió? Recebi alguns pedidos e vim trazer hoje para vocês o V2.0 do meu sistema de Torneio. Changelog: V2.0: Arrumado alguns BUGS. V2.0: Agora temos sala de espera. V2.0: Funciona também em Naruto, Pokemon & seus derivados! Instalação: Siga para data/lib, nessa mesma pasta crie um arquivo chamado tournament.lua e adicione dentro: Em data/npc/ crie um arquivo chamado Tournament.xml e adicione dentro: Entre na pasta scripts dentro de data/npc/ e crie um arquivo chamado tournament.lua e adicione dentro: Agora vá para a pasta data/globalevents/scripts, dentro dela crie um arquivo chamado tournament.lua e adicione dentro: Em globalevents.xml adicione essa tag: <globalevent name="TournamentStart" time="17:47" event="script" value="tournament.lua"/> Em data/actions/scripts, crie um arquivo chamado tournament.lua e adicione dentro: Abra com o bloco de notas o arquivo actions.xml e adicione a seguinte tag: <action uniqueid="18279" event="script" value="tournament.lua"/> Configuração: O arquivo que instalamos na pasta data/lib (tournament.lua), abra-o com o bloco de notas e vamos configurar esta parte: torneio = { awardTournament = 2148, awardAmount = 2, playerTemple = {x = 1008, y = 1018, z = 7}, tournamentFight = {x = 1017, y = 1026, z = 7}, area = {fromx = 1008, fromy = 1018, fromz = 7, tox = 1024, toy = 1033, toz= 7}, area2 = {x = 1008, y = 1018, z = 7}, {x = 1024, y = 1033, z = 7}, waitPlace = {x = 1017, y = 1044, z = 7}, waitArea = {fromx = 1010, fromy = 1040, fromz = 7, tox = 1024, toy = 1050, toz= 7}, startHour = "17:40:00", endHour = "17:50:00", price = 10000, revivePoke = 2494, } awardTournament colocamos o ItemID da recompensa do vencedor do torneio, awardAmount a quantidade. playerTemple colocamos as coordenadas do templo de alguma cidade, é para lá que ele vai ser teleportado ao vencer. tournamentFight colocamos as coordenadas do CENTRO da Arena de Torneios. Em area colocamos: (fromx, fromy e fromz) as coordenadas do canto superior esquerdo da Arena, (tox, toy e toz) colocamos as coordenadas do canto inferior direito da Arena. Em waitPlace colocamos as coordenadas do CENTRO, da Sala de Espera para começar o Torneio! Já o waitArea é a mesma coisa do "area" só que nesse é os cantos superior esquerdo e inferior direito da Sala de Espera. startHour colocamos a hora em que o NPC começa a vender entradas para o Torneio, é a hora do dia, com hora/minutos/e segundos, no formato "00:00:00", lá tem que ficar entre aspas! Já o endHour é a hora que ele para de vender as entradas e que começa o Torneio pra valer! Galera, o revivePoke, se seu OTServer for de Tibia, não MEXAM! Agora, se for Pokétibia, você muda o valor do revivePoke para o Item ID dos revives, isso serve para o player não levar revives pro Torneio. Em globalevents.xml na tag: <globalevent name="TournamentStart" time="17:47" event="script" value="tournament.lua"/> Aqui time="17:47" coloque o horário TERMINA as inscrições para o Torneio, é o mesmo do que endHour do lib. Mas aqui você só pode por em formato horas:minutos (00:00) Prontinho, agora é só ir no RME Map Editor e colocar UNIQUE ID 18279 em uma alavanca ou item dentro da Arena, isso serve para o player que ganhar ir embora com seu prêmio Finalizações: Bom galera, é isso por hoje, espero que façam um bom e ótimo uso. Estou disposto a aceitar DICAS/SUGESTÕES/CRÍTICAS & BUGS! Muito obrigado pela atenção! Download Tournament MAP (8.54) Download Sistema de Torneio V2.0
  7. Siege of Danger 1.0 [sOD] Opa opa galerinha zuera, estive dois dias fazendo um evento super legal para vocês, o SIEGE OF DANGER. Nesse evento, dois times são divididos e partem para a guerra sem dó nem piedade, o time que sobreviver ganhará um prêmio muito legal. Como instalar? ScreenShoots: Scan [sOD] 1.0 Download [sOD] 1.0 Trabalhei bastante nisso galera, espero que tenham gostado, obrigado por vizualizar s2 OBS: Obrigado Celino (ScythePanthom) pelo mapa e pela logo!
  8. Este sistema baseia-se em evitar que a diferença de level dos players do seu servidor seja muito grande, reconhecendo, automaticamente, os players com os maiores leveis do servidor e então enviando uma mensagem aos players anunciando uma recompensa em GP, que será fornecida a quem matar o referido Top Level. Após a morte do mesmo, o player que ganhou o frag recebe, instantaneamente, o prêmio correspondente. COMO INSTALAR: Execute os comando em seu PhpMyAdmin: CREATE TABLE IF NOT EXISTS `bounty_hunters` ( `id` int(11) NOT NULL auto_increment, `fp_id` int(11) NOT NULL, `sp_id` int(11) NOT NULL, `k_id` int(11) NOT NULL, `added` int(15) NOT NULL, `prize` bigint(20) NOT NULL, `killed` int(11) NOT NULL, `kill_time` int(15) NOT NULL, PRIMARY KEY (`id`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci; (SCRIPT NECESSÁRIO PARA FUNCIONALIDADE DO SCRIPT COM O SEU BANCO DE DADOS) COLOQUE O ARQUIVOS bounty.lua na pasta data/creaturescripts/scripts, depois abra o arquivo creaturescripts.xml e cole a tag: <event type="kill" name="Bounty" event="script" value="bounty.lua"/> Agora abra o arquivo data/creaturescripts/scripts/login.lua e antes do último "return true" cole as tags: registerCreatureEvent(cid, "Bounty") Agora cole o arquivo "tbounty.lua" em data/talkactions/scripts e em talkactions.xml cole a tag: <talkaction words="/bounty;!bounty;!hunt;/hunt" script="tbounty.lua" /> PÁGINA DO GESIOR DISPONÍVEL DENTRO DA PASTA DO SCRIPT. Download: http://www.gg4.com.b...auto_hunted.rar Scan: https://www.virustot...sis/1359699997/ CRÉTIDOS: OTLAND / FL-SERVERS
  9. queria um sistema para que o server parecesse mais realista e o ambiente ajuda muito nisso e alem do sistema eu gostaria de pedir as spr desse efeito: se vcs me ajudarem a unica coisa em que posso retribuir será com um rep ++ mesmo não sendo muita coisa .
  10. Olá a todos, eu decidi que, para contribuir com a comunidade, vou fazer e postar um novo script toda terça-feira. Assim também fica mais organizado e padronizado. Esse tópico servirá apenas para listar todos os scripts que eu postei para o SDT, será uma lista. DATA - SCRIPT [19/02/2014] - [Action] Cassino interativo [26/02/2014] - [Talkaction] !teleport com lista [04/03/2014] - [Action] Mineração - Bronson Server [11/03/2014] - [Action] Killua Fishing System - Pesca diferente [18/03/2014] - [Creaturescript] Itens ganhando exp e upando (upgrade system) [25/03/2014] - [Action] Sistema de Cultivo (plantação) [08/04/2014] - [sistema] Monster Hunter Event [15/04/2014] - [MOD] Cart System (Andando de carrinho) [25/04/2014] - [sistema] Dice Arena Event * Os dois primeiros foram postados em Quartas-feiras, mas achei melhor colocá-los aqui também. Fiquem de olho, toda terça tem um novo! Se tiver alguma sugestão de script para ser feito, sinta-se a vontade para postar.
  11. galera gostaria de saber como colocar castle war 24horas?
  12. Bom eu e um colega meu fizemos este sistema para um antigo projeto nosso, e faz muito tempo e achei aqui no PC e como nunca tinha visto um igual resolvi postar nesta comunidade que de forma direta e/ou indireta sempre tem me ajudado, O que faz? Ao chegar em tal level (determinado pelo admin) o player receber uma nova vocacao e uma nova outfit. É o mesmo que o /transformar dos narutibias só que este só de chegar no level o cara ja transforma. Vamos ao código. Dentro da Pasta "data/creaturescripts/scripts" Crie um arquivo chamado Promovido.lua com o Seguinte Conteudo: local config = { --[vocation id] = { nova voc, looktype, efeito} [1] = { 1, 31, 111}, [ID da Vocacao Inicial] = { ID da Nova Vocacao, LookType da nova vocacao, Efeito}, } local lvlGain = Level em que ira alterar a vocacao. function onAdvance(cid, skill, oldLevel, newLevel) if (getPlayerLevel(cid) == lvlGain and getPlayerStorageValue(cid, 2012) ~= 1) then local voc = config[getPlayerVocation(cid)] if voc then doPlayerSetVocation(cid, voc[1]) doSendMagicEffect(getCreaturePosition(cid), voc[3]) local outfit = {lookType = voc[2]} doCreatureChangeOutfit(cid, outfit) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "Parabéns, você agora é um Shippuden") setPlayerStorageValue(cid, 2012, 1) end return true end end Abra o Arquivo "data/creaturescripts/creaturescripts.xml" e adicione na penultima linha: <event type="advance" name="Promovido" event="script" value="promovido.lua"/> Créditos Me and Flaah
  13. Olá galera não sei se estou na área correta, mas se não movam por favor. Hoje vim aqui para saber como eu vou não área .LUA, para tal feito vou postar um system(mini) que fiz hoje demanha. Nome: Vip Exp Rate – By SmiX O que faz: Ela deixa você configurar a rate de um monstro que você também pode configurar. Exemplo: Um player level 15 mata um “Cave Rat” ele ganhara 15 de exp. Caso ele seja vip ao matar um “Cave Rat” ele ganhar 25 de EXP. Depende de como você vai editar sua RATE. Chega de delongas e vamos ao que interessa: 1° Vá em data/lib e crie um arquivo chamado VipExp e cole o código: local mostersExp = { ["Cave Rat"] = { exp = 500 } ["Rat"] = { exp = 400 } } ----- Vip Exp System By SmiX ----- ExpVipTable = { [{1, 8}] = 5, -- Exp do Player [{9, 19}] = 4, [{20, 39}] = 3, [{40, 59}] = 2, [{60, 79}] = 1.5, [{80, 99}] = 1, [{100, 9999}] = 0.5 } for var, ret in pairs(ExpVipTable) do if getPlayerLevel(cid) >= var[1] and getPlayerLevel(cid) <= var[2] then setPlayerStorageValue(cid, 8567, ret) doPlayerSendTextMessage(cid, MESSAGE_EVENT_ADVANCE, "You status of rate this changed for "..ret.."%.") end end ----- Vip Exp System By SmiX ----- --[[Configurando]]— monsterVip = [“Aqui é o nome do Monster que vai estar neste system”] = { exp = Aqui e exp que ele vai dar * a local l1 = 5(dependo do level do Player 2° Vá em data/creaturescripts/script crie um arquivo chamado ExpVip e cole isso dentro: local function doPlayerAddVipExp(cid, expp) doPlayerAddExp(cid, expp) doSendAnimatedText(getThingPos(cid), expp, 215) end function onDeath(cid, corpse, deathList) for a = 1, #deathList do local getMonster = deathList[a] d = getCreatureName(cid) local getExpMonster = mostersExp[d].exp if isCreature(getMonster) then doPlayerAddVipExp(getMonster, math.floor(getPlayerStorageValue(getMonster, 8567) * getExpMonster)) end end end 3° Agora vá em login.LUA e antes do ultimo registerCreatureEvent(Cid) cole isso: registerCreatureEvent(cid, "ExpVip") 4° e ultimo, vá em creaturescript.XML e cole a tag abaixo: <event type="death" name="ExpVip" event="script" value="ExpVip.lua"> Pronto, agora as restriões. Caso seu Server esteja com o config.LUA e nele esteja isso (experienceStages = true) coloque false. Pronto galera acho que não esqueci de nada, mas por favor criticas e sugestões são bem vindas.</event>
  14. Bom pessoal Gostaria de um Sistema de Level parecido com o do PDA que mostra o level do pokémon apos o nome dele ex: Rattata [6] Meu servidor é feito pela base Dash V6 com sources postado aqui no forum
  15. Olá Galerinha do Melhor Fórum BR de Tibia!!! Hoje venho trazer para vocês meu sistema de Troca de Cidades...É o seguinte! Esse meu sistema trabalha com getPlayerStorageValue / setPlayerStorageValue, diferente dos outros que trabalham usando globalstorage, funciona do mesmo jeito e na minha concepção é até melhor... O meu sistema revesa um storage para player que usem algum TP, EX: se um player quiser treinar ou até mesmo para um ambiente confinado, esse player receberá um storage impedindo que ele seja puxado para troca de cidades do servidor, muitos que vi não trabalhavam dessa forma, então resolvi fazer e posta no Xtibia para vocês que querem um OT Custom, vamos ao que interessa !!!! Usarei os seguintes arquivos: Creaturescripts Globalevents Movements Creaturescripts: Login.lua if(getPlayerStorageValue(cid, 1050) < 1) then setPlayerStorageValue(cid, 1050, 0) doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid))) end Globalevents: local t = { t = {1,2,3,4,5} } function onThink(interval, lastExecution,thinkInterval) local town = math.random(1, #t.t) local name = getTownName(town) doBroadcastMessage("The map will be changed again in 1 hour: City - "..name.." | Online Players: "..#getPlayersOnline().."") for _, pid in ipairs(getPlayersOnline()) do if(getPlayerStorageValue(pid, 1050) == 0) then doRemoveConditions(pid, true) doCreatureAddHealth(pid, getCreatureMaxHealth(pid)) doCreatureAddMana(pid, getCreatureMaxMana(pid)) doTeleportThing(pid, (getTownTemplePosition(town)), false) end doPlayerSetTown(pid, town) end db.query("UPDATE players SET town_id=".. town) return true end Movements: --Entrada Teleport: function onStepIn(cid, item, pos) local training = {x=1547, y=1651, z=8} if(item.uid == 5551) then doTeleportThing(cid,training) setPlayerStorageValue(cid, 1050, 1) end return true end --Saida Teleport: function onStepIn(cid, item, pos) if(item.uid == 5552) then doTeleportThing(cid,getTownTemplePosition(getPlayerTown(cid))) setPlayerStorageValue(cid, 1050, 0) end return true end CRÉDITO 100000.....% ARTHUR LUNA SE CASO ALGUÉM QUISER COLOCAR EM OUTROS FÓRUNS, POR FAVOR USEM OS CRÉDITOS PARA XTIBIA!
  16. *Atualizado 04/04/14 *Suporta qualquer tipo de [banco de dados] *Suporta qualquer versao de ot server - Team Balance Por Tile - O Sistema se Basea em um Balanceamente Por Escolha. - Voce Pode Escolher que Time Vai Entrar e Pode Criar Varios Times ex: [Rosa,preto,branco,azul,vermelho......] - Team Storages: - Red: 6666 - Blue: 6667 - Vai em moveevents/Team1.lua e add isso: XML: <movevent type="StepIn" actionid="8888" event="script" value="Team1.lua"/> - Vai em moveevents/Team2.lua e add isso: XML: <movevent type="StepIn" actionid="8888" event="script" value="Team2.lua"/> - Em Moveevents cria um Arquivo chamado TileTeam.lua: XML: <movevent type="StepIn" actionid="14999-15000" event="script" value="TileTeam.lua"/> - Depois vai em creaturescripts/Logout.lua e add isso: XML: <event type="logout" name="logar" event="script" value="Logout.lua"/> Registra no Login.lua: registerCreatureEvent(cid, "logar") - Depois Cria um Arquivo chamado Death.lua: XML: <event type="death" name="deathtime" event="script" value="Death.lua"/> Registra no Login.lua: registerCreatureEvent(cid, "deathtime") - Depois talkactions/online.lua xml: <talkaction words="!online" event="script" value="online.lua"/> - Team Balance Por Login *ATUALIZADO [06/10/13] *Suport [Mysql] *Suporta qualquer tipo de [banco de dados] *Suporta qualquer versao de ot server *Favor trocar todos os scripts e nao reaproveitar os Antigos scripts *Download Mapa ja configurado: http://www.4shared.com/rar/glPqSHjG/world.html? Eae Galera , eu vi muita gente querendo o Script de Team balance e nao os que tem na Net para baixar Eu vou ensinar a instalar o sistema em qualquer Servidor de War: *Primeiro vai na sua Lib e cria um arquivo chamado War.Lib: Depois vai na cria um arquivo chamado data.lib ass essa linha dentro do arquivo data.lib *Depois vai em data/creaturescripts/loginwar.lua *Agora a parte do Change Map, vai em globalevents/scripts/changemap.lua e add isso : XmL: 2400 é 40 minutos *Agora os Comandos [Online e Changemap] : online: vai em talkactions/script/online.lua: *Changemap vai em talkactions/scripts/changemap.lua: XML: *Obs: da pra por 2 bases pra cada Time um exemplo: [1] = {{2,2},{3,3}}, = voce vai no seu mapa editor e coloca 4 bases 2 azul e 2 vermelho ai vc add as townid de cada time ficando assim [1] = {{2,3},{4,5}}, = ficando assim ele vai ter 4 bases 2 pra cada time e so configurar os templos de cada time no MAPA editor =D *obs²: nao adianta instala o sistema sem coloca as townid/os templos no Mapa editor vai da Erro .Voce tem que ir no mapa editor e coloca pelo menos 2 mapa pro sistema de changemap funciona se nao vai da erro tambem Creditos : Nextbr
  17. Meu servidor esta dando erros quando tem guild no servidor! Erros no Executer antes de ficar online : [04/03/2014 22:00:41] Error during getDataInt(checkdata). [04/03/2014 22:00:42] Error during getDataInt(checkdata). [04/03/2014 22:00:42] Error during getDataInt(checkdata). [04/03/2014 22:00:42] Error during getDataInt(checkdata). [04/03/2014 22:00:42] Error during getDataInt(checkdata). [04/03/2014 22:00:42] Error during getDataInt(checkdata). [04/03/2014 22:00:42] Error during getDataInt(checkdata). [04/03/2014 22:00:42] OTSYS_SQLITE3_PREPARE(): SQLITE ERROR: no such column: checkdata (UPDATE "guilds" SET "checkdata" = 1394586041 WHERE "id" = 1;) [04/03/2014 22:00:42] OTSYS_SQLITE3_PREPARE(): SQLITE ERROR: no such column: checkdata (UPDATE "guilds" SET "checkdata" = 1394586041 WHERE "id" = 2;) E quando eu excluo as 7 guilds que esta criada fica assim : Ai eu reinicio e esta limpo o Executer. E nenhum erro no Executer aparece. Por favor me ajudem preciso arrumar meu servidor. Atenciosamente, Miinerva!
  18. BOm dia Alguem pode me dizer qual é o arquivo que faz aparecer a quela barra de ataque quando vc utiliza um pokemon ?? vlw
  19. Smithcos

    [PEDIDO] Held Items

    Olá Glr do Xtibia,primeiro de tudo se não estiver na area correta por favor,movam para a area correta ... Eu gostaria de pedir a vcs,o sistema de Held Items,igual do PxG ... Qualquer coisa mandem PM,obg !
  20. [Task System] Command 1.0 Versão testada: 8.6 + TFS usado: 0.4 Comandos disponíveis: !task list -- Mostra quais monstros podem ser "taskeados"; !task Troll -- Neste modelo, você coloca o nome do monstro que quer taskear; Eaaai galerinha XTibiana, beleza comunidade? Decidi fazer um sistema de Task bem legal, com recompensa de Exp, Money e é tudo via comandos. Vá em data/creaturescripts/scripts, crie um arquivo chamado taskSys.lua e adicione dentro: Na mesma pasta, abra o arquivo login.lua e adicione: registerCreatureEvent(cid, "taskSys") Em creaturescripts.xml você deve adicionar a seguinte tag: <event type="kill" name="taskSys" event="script" value="taskSys.lua"/> Muito bem, agora vá na pasta data/talkactions/scripts, crie um arquivo chamado taskSys.lua e adicione dentro: E no arquivo talkactions.xml você adiciona essa seguinte tag: <talkaction words="!task;/task" event="script" value="taskSys.lua"/> Agora volte para a pasta data e entre na pasta lib (data/lib), nele você deve criar um arquivo também com o nome de taskSys.lua e adicionar esta tabela dentro: Demonstração É isso aêe galerinha, espero que tenham gostado e boa sorte
  21. Galera, ja vi muitos sistemas akatsuki por ai, mas nenhum do jeito que eu quero, vou explicar detalhademente como eu gostaria : Cada vez que voce matar qualquer player lvl 500+ ira ganhar um coraçao, terá um npc, que irá trocar 6 coraçoes desse, por 20% a mais de experiencia, e roupa akatsuki, cada vocaçao ira ganhar uma outfit diferente...(configuravel para eu ajeitar qual outfit cada vocaçao ira ganhar). Após fazer a troca, esses 20% de exp. é para sempre, e a akatsuki outfit tambem, Caso ele esteja com a outfit, configurada para sua vocaçao após fazer a troca, ele nao podera "transformar" ou "reverter" que no caso mudaria sua outfit (saga). É isso, espero que alguem possa fazer para mim! vlw!
  22. Pokémon Dash Advanced - Configurando os Pokémons Íniciais Eai galéra, estou abrindo este Tópico para ensinar o como arrumar aquele probleminha chato em que não se consegue por para o player ínicial pegar seu 1º pokémon. Este sistema é muito simples e bom, o player irá nascer no determinado local onde terá 6 teleport's neles será só ele passar por cima de um de sua escolha e será teleportado para o centro pokémon, já com seu pokémon ínicial + um kit ínicial para ajuda-lo em sua historia. Este sistema está completamente ( 100% ) sem bugs, qualquer erro tente fazer novamente. Então vamos lá! Vá em ( data\movements\scripts ) Crie um arquivo chamado ( pokeinicial.lua ) Dentro dele ponha isto: Agora vá em ( data\movements\movements.xml ) Em qualquer local coloque isto: Agora vá no remeres map editor, crie um templo em qualquer local e coloque 6 teleports mais ou menos assim: Logo após isto você terá que criar a ( actionid ) que são as seguintes: Onde tem o ( [XXXX] ) é o número da ( actionid ) cada uma é um pokémon, daí você escolhe, mas pra inserir elas você tem de ir nas propriedades do teleport, e nela injetar onde vai ter mais ao menos assim: actionid: [ 8696 ] Pronto daí ja é a Chikorita. Então é issu, caso queiram adicionar mais alguns items para que o player ganhe ao íniciar sua jornada. Você irá fazer o seguinte: Vá no script ali onde tem: doPlayerAddItem(cid, 2152, 10) O ( 2152 ) é o ID do item. o ( 10 ) é a quantidade. Simples assim. Onde tem o postemple = {x = 1054, y = 1048, z = 7} É onde o player será jogado, no meu caso será no Centro Pokémon de Saffron. Vá no ( Remeres Map Editor ) e procure a Posição do templo em que você deseja que o player irá nascer. Quando achar vá em ( Pasta de seu Ot\config.lua ) Procure por está linha, normalmente no ínicio. Vou explicar, Onde tem o ( accountManager = true ) é se você utiliza o Account Manager, caso não utilize será outra Historia. Vá em: newPlayerSpawnPosX = 1052 newPlayerSpawnPosY = 1055 newPlayerSpawnPosZ = 6 Está é a posição onde o player vá nascer, exemplo: ( Position: [X: 1053] [Y: 1055] [Z: 6]. ) Isto é a posição onde tem o [ newPlayerSpawnPosX = 1052 ] é onde tem o [X: Onde tem o [ newPlayerSpawnPosY = 1055 ] é onde tem o [Y: Onde se localiza o [ newPlayerSpawnPosZ = 6 ] é o conhecido [Z: Isto se resumi ao local onde o player ínicial nascerá. Créditos: @cacaiu @Kurobisu @RicardoSohnn OBS: Este Sistema Não contem nenhum bug, totalmente fora de perigo caso você ache que tem algo de errado o erro só pode ser com sua conta e não com este sistema.
  23. Bom Galera, vou ser direto to tentando postar a meia hora e não ta indo a net ta muito ruim. É um sistema que quando você arrecada 6 Corações matando players você trocar os corações por double exp no NPC Tobi. Bom sem mais vamos lá. Vá na pasta do seu ot creaturescripts/scripts crie um arquivo chamado heart.lua function onPrepareDeath(cid, deathList) local item = 5943 if isPlayer(cid) and isPlayer(deathList[1]) then local add = doPlayerAddItem(deathList[1],item,1) doItemSetAttribute(add, "description","Esse coração é de "..getPlayerName(cid).." que foi morto no level"..getPlayerLevel(cid).." por "..getPlayerName(deathList[1])..".") doPlayerSendTextMessage(deathList[1], MESSAGE_STATUS_CONSOLE_ORANGE, "Voce foi Morto " .. getCreatureName(cid) .. ".") doSendMagicEffect(getPlayerPosition(deathList[1]),12) end return true end Em Creaturescripts.xml <event type="preparedeath" name="HeartSys" event="script" value="heart.lua"/> Agora é o NPC, Vá na pasta do seu servidor data/npc/scripts crie um arquivo chamado tobi npc system.lua e cole isso. local keywordHandler = KeywordHandler:new()local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local experience = 2 -- Experience rates no caso 2x a experiencia do seu servidor. local item = 5943 -- ID do Item que necessita para trocar OBS: Editar no Hearth Tambem no creaturescripts se for mudar. local talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cid if(msgcontains(msg, 'missao')) then selfSay('Ok, Para começar vamos fazer a {troca}?', cid) end --------------------------------------------------------- if(msgcontains(msg, 'troca')) then selfSay('Traga para min 6 corações para provar a sua força {coracao}', cid) talkState[talkUser] = 1 elseif(msgcontains(msg, 'coracao') and talkState[talkUser] == 1) then if (getPlayerStorageValue(cid,2010250) > 0) then selfSay('Voce ja terminou essa missao!!', cid) else if(doPlayerRemoveItem(cid, 5943, 6) == TRUE) then setPlayerStorageValue(cid,2010250,1) doPlayerSetExperienceRate(cid, experience) selfSay('Voce recebeu sua recompensa.', cid) return true end if getPlayerItemCount(cid, item) < 6 then selfSay('Não tente me enganar, voce não tem os 6 corações !', cid) end end end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Depois crie um XML Chamado Tobi e Cole isso dentro. <?xml version="1.0" encoding="UTF-8"?> <npc name="Tobi" script="data/npc/scripts/tobi npc script.lua" walkinterval="2000" speed="0" floorchange="0"> <health now="100" max="100"/> <look type="480" head="0" body="0" legs="0" feet="0" addons="0"/> <parameters> <parameter key="message_greet" value="Ola vamos comecar a {troca} ?"/> </parameters> </npc> Bom não testei qualquer bug favor reportar flw. Créditos: Vodkart -- Pelo Script do Hearth Enself -- Pelo Sistema
  24. Eai galera, pra ajudar o evento que o xtibia esta promovendo de scripting o OMS vou posta um sistema simples pra concorrer. O Zombie Hunter, é um npc de Task que lhe permite trocar pontos que você acumula matando Monstros por dinheiro e exp mas os pontos só podem ser trocados depois de você ter terminado duas Tasks que o npc vai lhe dar. o sistema pode ser facilmente modificado pra vários tipos de monstros a edição fica por conta de vocês . para instalção do creature scripts é só adicionar essa linha no creaturescripts.xml,e jogar o script pra dentro da pasta scripts. <event type="kill" name="Hunter" event="script" value="task.lua"/> e registrar o evento Hunter no onLogin.lua Creaturescripts: local zombies = { -- task -- ["Zombie [1]"] = {storagetask = 3290, storagecount = 4290, count = 10, points = 80}, ["Zombie [2]"] = {storagetask = 3289, storagecount = 4291, count = 20, points = 130}, ["Zombie [3]"] = {storagetask = 3288, storagecount = 4292, count = 30, points = 200}, ["Zombie [4]"] = {storagetask = 3287, storagecount = 4293, count = 40, points = 250}, --No-task-- ["Rat"] = {storagetask = nil, storagecount = nil, count = nil, points = 15} , ["Wolf"] = {storagetask = nil, storagecount = nil, count = nil, points = 35}, } function onKill(cid, target, lastHit) local name = getCreatureName(target) if zombies[name] then if zombies[name].storagetask ~= nil and getPlayerStorageValue(cid, zombies[name].storagetask) > 5 then if getPlayerStorageValue(cid, zombies[name].storagetask) < 20 and getPlayerStorageValue(cid, zombies[name].storagecount) <= zombies[name].count - 1 then if getPlayerStorageValue(cid, zombies[name].storagecount) < 0 then setPlayerStorageValue(cid, zombies[name].storagecount, getPlayerStorageValue(cid, zombies[name].storagecount) + 2) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You Killed ["..getPlayerStorageValue(cid, zombies[name].storagecount).."/20] Zombies [2].") else setPlayerStorageValue(cid, zombies[name].storagecount, getPlayerStorageValue(cid, zombies[name].storagecount) + 1) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "You Killed ["..getPlayerStorageValue(cid, zombies[name].storagecount).."/20] Zombies [2].") end end end if getPlayerStorageValue(cid, 4593) < 0 then setPlayerStorageValue(cid, 4593, getPlayerStorageValue(cid, 4593) + zombies[name].points + 1) else setPlayerStorageValue(cid, 4593, getPlayerStorageValue(cid, 4593) + zombies[name].points) end doSendAnimatedText(getCreaturePosition(target), "+"..zombies[name].points.." points", math.random(255)) end return true end agora você precisa adicionar o npc ao servidor para isso crie um .xml na pasta npc e nele cole isso: <?xml version="1.0" encoding="UTF-8"?> <npc name="Paul" script="task.lua" walkinterval="5000" floorchange="0"> <health now="100" max="100"/> <look type="76" head="0" body="0" legs="0" feet="0" addons="0"/> <parameters> <parameter key="message_greet" value="Hello |PLAYERNAME|, I was looking for some {work} to you, or you can change your {points}. " /> </parameters> </npc> e na pasta npc/scripts crie um arquivo lua e dentro dele cole isso: dofile("config.lua") local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function onThink() npcHandler:onThink() end function getPlayerID(cid) -- function by Ramza(Ricardo Ianelli) local Query = db.getResult("SELECT `id` FROM `players` WHERE `players`.`name` = '"..getCreatureName(cid).."';") local player_id = Query:getDataInt("id") return player_id end function creatureSayCallback(cid, type, msg) local playerid = getPlayerID(cid) if(not npcHandler:isFocused(cid)) then return false end if msg == 'work' then selfSay('Nowadays, the world is a mess, then I Need your help to "kill" a part of the mess. {Ok}, ', cid) talkstatus = 2 elseif msg == 'points' then selfSay(' Do you wanna exchange your points, or {check}/{exchange} them?', cid) talkstatus = 41 elseif msg == 'points' and getPlayerStorageValue(cid, 3290) < 20 and getPlayerStorageValue(cid, 3289) < 20 then selfSay('You have to complete all the tasks', cid) talkstatus = 0 elseif talkstatus == 41 and msg == "exchange" then if getPlayerStorageValue(cid, 3290) >= 20 and getPlayerStorageValue(cid, 3289) >= 20 then talkstatus = 29 selfSay('How much points do you wanna exchange?',cid) else selfSay('You have to complete 2 tasks to exchange points..',cid) talkstatus = 0 end elseif talkstatus == 41 and msg == "check" then if getPlayerStorageValue(cid, 4593) < 0 then selfSay('You have '..getPlayerStorageValue(cid, 4593) + 1 ..' points.',cid) elseif getPlayerStorageValue(cid, 4593) >= 0 then selfSay('You have '..getPlayerStorageValue(cid, 4593)..' points.',cid) end talkstate = 0 elseif talkstatus == 29 then if isNumber(msg) then if getPlayerStorageValue(cid, 4593) >= tonumber(msg) then dinheiro = math.floor(tonumber(msg)*2) exp = math.floor(tonumber(msg)*3) menos = msg selfSay('It will give you of Money: '..dinheiro.." and of Experience: "..exp..". Are you right?", cid) talkstatus = 30 end else selfSay('It is an invalid number.',cid) end elseif talkstatus == 30 then if msg == 'yes' then talkstatus = 29 doPlayerAddMoney(cid, dinheiro) doPlayerAddExp(cid, exp) setPlayerStorageValue(cid, 4593, getPlayerStorageValue(cid, 4593)-menos) doSendMagicEffect(getCreaturePosition(cid), 98) selfSay('thanks',cid) talkstatus = 0 elseif msg == 'no' then talkstatus = 0 end elseif talkstatus == 2 then if msg == 'ok' then talkstatus = 3 selfSay('Nice! You have four options for work, {Easy}; {Medium}; {Hard}; {Expert}.',cid) elseif msg == 'no' then talkstatus = 0 end elseif talkstatus == 3 and msg == "easy" then if getPlayerStorageValue(cid, 3290) < 5 and getPlayerStorageValue(cid, 3290) < 20 then talkstatus = 4 selfSay('Alright! In Easy Mode, you have to kill 10 Zombies Lv 1 or higher, do you Agree?', cid) elseif getPlayerStorageValue(cid, 3290) > 5 and getPlayerStorageValue(cid, 3290) < 20 then talkstatus = 14 selfSay('Did you finish the work?', cid) elseif getPlayerStorageValue(cid, 3290) >= 20 then selfSay('You have, finished the easy mode', cid) talkstate = 0 end elseif talkstatus == 4 then if msg == 'yes' then setPlayerStorageValue(cid, 3290, 10) selfSay('Alright! When you finish the work, come back here, and I will give you a reward.', cid) talkstate = 0 elseif msg == 'no' then talkstatus = 2 end elseif talkstatus == 3 and msg == "medium" then if getPlayerStorageValue(cid, 3289) < 5 and getPlayerStorageValue(cid, 3289) < 20 then talkstatus = 5 selfSay('Alright! In Medium Mode, you have to kill 20 Zombies, Lv 2 or higher, do you Agree?', cid) elseif getPlayerStorageValue(cid, 3289) > 5 and getPlayerStorageValue(cid, 3289) < 20 then talkstatus = 15 selfSay('Did you finish the work?', cid) elseif getPlayerStorageValue(cid, 3289) >= 20 then selfSay('You have, finished the medium mode', cid) talkstate = 0 end elseif talkstatus == 5 then if msg == 'yes' then setPlayerStorageValue(cid, 3289, 10) selfSay('Alright! When you finish the work, come back here, and I will give you a reward.', cid) talkstatus = 0 elseif msg == 'no' then talkstatus = 2 end elseif talkstatus == 3 and msg == "hard" then if getPlayerStorageValue(cid, 3288) < 5 and getPlayerStorageValue(cid, 3288) < 20 then talkstatus = 6 selfSay('Alright! In Hard Mode, you have to kill 30 Zombies, Lv 3 or higher, do you Agree?', cid) elseif getPlayerStorageValue(cid, 3288) > 5 and getPlayerStorageValue(cid, 3288) < 20 then talkstatus = 16 selfSay('Did you finish the work?', cid) elseif getPlayerStorageValue(cid, 3288) >= 20 then selfSay('You have, finished the hard mode', cid) talkstate = 0 end elseif talkstatus == 6 then if msg == 'yes' then setPlayerStorageValue(cid, 3288, 10) selfSay('Alright! When you finish the work, come back here, and I will give you a reward.', cid) talkstatus = 0 elseif msg == 'no' then talkstatus = 2 end elseif talkstatus == 3 and msg == "expert" then if getPlayerStorageValue(cid, 3287) < 5 and getPlayerStorageValue(cid, 3287) < 20 then talkstatus = 7 selfSay('Alright! In Expert Mode, you have to kill 40 Zombies, lv 4 or higher, do you Agree?', cid) elseif getPlayerStorageValue(cid, 3287) > 5 and getPlayerStorageValue(cid, 3287) < 20 then talkstatus = 17 selfSay('Did you finish the work?', cid) elseif getPlayerStorageValue(cid, 3288) >= 20 then selfSay('You have, finished the expert mode', cid) talkstate = 0 end elseif talkstatus == 7 then if msg == 'yes' then setPlayerStorageValue(cid, 3287, 10) selfSay('Alright! When you finish the work, come back here, and I will give you a reward.', cid) talkstatus = 0 elseif msg == 'no' then talkstatus = 2 end elseif talkstatus == 14 then if msg == 'yes' and getPlayerStorageValue(cid, 4290) >= 10 and getPlayerStorageValue(cid, 3290) < 20 then setPlayerStorageValue(cid, 3290, 20) doPlayerAddMoney(cid, 10*100) doPlayerAddExp(cid, 500) selfSay('Nice Work! Thanks for the help, take this reward for helping us. (Experience and Money)', cid) elseif msg == "yes" and getPlayerStorageValue(cid, 4290) < 10 then selfSay('Alright! When you finish the work, come back here, and I will give you a reward.', cid) talkstatus = 0 elseif msg == 'no' then selfSay('Alright! When you finish the work, come back here, and I will give you a reward.', cid) talkstatus = 0 end elseif talkstatus == 15 then if msg == 'yes' and getPlayerStorageValue(cid, 4291) >= 20 and getPlayerStorageValue(cid, 3289) < 20 then setPlayerStorageValue(cid, 3289, 20) doPlayerAddMoney(cid, 20*100) doPlayerAddExp(cid, 1000) selfSay('Nice Work! Thanks for the help, take this reward for helping us. (Experience and Money)', cid) elseif msg == "yes" and getPlayerStorageValue(cid, 4289) < 20 then selfSay('Alright! When you finish the work, come back here, and I will give you a reward.', cid) talkstatus = 0 elseif msg == 'no' then selfSay('Alright! When you finish the work, come back here, and I will give you a reward.', cid) talkstatus = 0 end elseif talkstatus == 16 then if msg == 'yes' and getPlayerStorageValue(cid, 4292) >= 30 and getPlayerStorageValue(cid, 3288) < 20 then setPlayerStorageValue(cid, 3288, 20) doPlayerAddMoney(cid, 30*100) doPlayerAddExp(cid, 1800) selfSay('Nice Work! Thanks for the help, take this reward for helping us. (Experience and Money)', cid) elseif msg == "yes" and getPlayerStorageValue(cid, 4288) < 30 then selfSay('Alright! When you finish the work, come back here, and I will give you a reward.', cid) talkstatus = 0 elseif msg == 'no' then selfSay('Alright! When you finish the work, come back here, and I will give you a reward.', cid) talkstatus = 0 end elseif talkstatus == 17 then if msg == 'yes' and getPlayerStorageValue(cid, 4290) >= 40 and getPlayerStorageValue(cid, 3287) < 20 then setPlayerStorageValue(cid, 3287, 20) doPlayerAddMoney(cid, 40*100) doPlayerAddExp(cid, 2400) selfSay('Nice Work! Thanks for the help, take this reward for helping us. (Experience and Money)', cid) elseif msg == "yes" and getPlayerStorageValue(cid, 4287) < 40 then selfSay('Alright! When you finish the work, come back here, and I will give you a reward.', cid) talkstatus = 0 elseif msg == 'no' then selfSay('Alright! When you finish the work, come back here, and I will give you a reward.', cid) talkstatus = 0 end end end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Pronto agora é só colocar o npc pelo mapeditor ou o summonar pra testar. o sistema contem 4 tasks mas só precisa ser feito 2 tasks para poder retirar os seus pontos, os monstros configurados sempre vão dar os pontos então você sempre vai poder trocar pontos mesmo depois de te terminado todas as tasks. Obs.: o sistema esta configurado pra zombies com digamos level pra utilizar com um servidor normal você tem que editar os monstros no creaturescripts ou criar vários zombies com [lv] no nome exemplo: zombie [1], zombie [2].... Att+.
  25. Olá Galera do Xtibia, hoje vim trazer esse script que faz o seguinte: •Ao Clicar em determinador item, o player fica numa moto. Pois é, sem demora vamos ao script! • Crie um Arquivo no formato .lua no pasta seuserver/actions/scipts e renomeie para moto.lua. •Abra o arquivo, apague tudo oque esta dentro e coloque isto! •Você poder fazer alterações nestas partes: •looktype = 1482 - Nessa parte você irá colocar o id da outfit quando o player montar na moto. •Text = Mount, moto! - Aki você colocará a mensagem que aparecerá quando o player montar na moto. •speed = 9999 - Aqui é a velocidade que o player ganhará, altere de acordo com seus critérios! ~~ Agora vá no arquivo action.xml e adicione esta tag <action itemid="13053" event="script" value="moto.lua"/> Explicação em itemid="13053" você colocará o id em que quando o player der USE, irá montar na bike. No PDA, o item 13053 é uma moto comum, sem ninguém e que não pode ficar na mochila. Obrigado, Até a próxima. Se ajudei Deixe um Rep+ aew. Creditos: HenrikDiamond (Por Disponibilizar o System) OBS: Não sei se postei na sessão certa, se postei na sessão errada, Porfavor Mover !!
×
×
  • Criar Novo...