Postado Julho 31, 2014 10 anos Este é um post popular. Arena War Informações: Todos os Players Falam com o NPC, e vão param em uma sala de espera, após um período todos são teleportados para uma arena, quando todos se matarem e só restar 1 ele ganhara um premio. Descrição: ADM Usa o comando !epvp e libera o acesso de todos os players no evento. Não testado, bugs me procurem.OBS: IMPORTANTE! Colocar piso no-logout na arena e na sala de espera para evitar futuros bugs.Sigam as instruções das linhas que apresentam "-- Alterar".Instalação Vá em data/npc/ e cria um arquivo chamado pvp.xml, dentro dele coloque. <?xml version="1.0"?> <npc name="Oracle" script="data/npc/scripts/pvp.lua" access="3" speed="0" lookdir="2" walkinterval="2000"> <mana now="800" max="800"/> <health now="200" max="200"/> <look type="309" head="115" body="76" legs="35" feet="117" addons="2" corpse="6080"/> <parameters> <parameter key="message_greet" value="Voce e forte suficiente para entrar no evento?({yes})"/> <parameter key="module_shop" value="0"/> </parameters> </npc> Negrito - Frase de inicio do NPC Vá em data/npc/scripts/ e cria um arquivo chamado pvp.lua, dentro dele coloque. local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) 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 oracle(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end if getGlobalStorageValue(24658) ~= 0 then -- ALTERAR Storage usado no Sistema, colocar sempre o mesmo npcHandler:say("O Evento Está Fechado.", cid) return true end if doPlayerRemoveMoney(cid, 10000) == true then -- ALTERAR 10000, esse é o valor para entrar doTeleportThing(cid, {x=153,y=48,z=7}) -- ALTERAR coordenada da sala de espera npcHandler:say("Até mas!.", cid) -- ALTERAR frase que o npc fala após entrar na sala de espera else npcHandler:say("Voce nao possue 10k.", cid) -- ALTERAR frase caso o player não tenha 10k return true end return true end function oracle1(cid, message, keywords, parameters, node) if(not npcHandler:isFocused(cid)) then return false end npcHandler:say("Volte quando tiver 10k entao!", cid) -- ALTERAR frase caso o player diga No return true end local node0 = keywordHandler:addKeyword({'yes'}, StdModule.say, {npcHandler = npcHandler, onlyFocus = true, text = 'Voce possue 10k para entrar no evento?({yes} ou {no})'}) -- ALTERAR segunda frase de interação node0:addChildKeyword({'yes'}, oracle, {blessing = 1}) node0:addChildKeyword({'no'}, oracle1, {blessing = 1}) npcHandler:addModule(FocusModule:new()) Vá em data/talkactions.xml e adicione essa linha. <talkaction log="yes" words="!epvp" access="5" event="script" value="pvp.lua"/> Vá em data/talkactions/scripts/ e cria um arquivo chamado pvp.lua, dentro dele coloque. function onSay(cid, words, param) if getGlobalStorageValue(24658) >= 0 then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Evento Já esta Online.") end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Evento Acabou de Ser Ativado.") local tempo_espera = 60 * 1000 -- ALTERAR tempo de espera na sala, 1 minuto doBroadcastMessage("Evento PVP foi Ativado.",22) -- ALTERAR frase que aparece para todos quando usar o comando setGlobalStorageValue(24658, 0) -- ALTERAR storage usado no sistema, deixar todos iguais addEvent( function () local pos_templo = {x = 156, y = 56, z = 7} -- ALTERAR coordenada do templo do seu ot server doBroadcastMessage("Evento Iniciado.",22) -- ALTERAR frase quando todos forem para a arena setGlobalStorageValue(24658, 1) -- ALTERAR storage usado no sistema, deixar todos iguais local players = getPlayersOnline() local i = 1 local total_player = 0 while i <= #players do local pos_player = getPlayerPosition(players) local pos1_espera = {x = 152, y = 47, z = 7} -- ALTERAR pos do canto superior esquerdo da sala de espera local pos2_espera = {x = 155, y = 49, z = 7} -- ALTERAR pos do canto inferior direito da sala de espera if pos_player.x >= pos1_espera.x and pos_player.y >= pos1_espera.y and pos_player.x <= pos2_espera.x and pos_player.y <= pos2_espera.y then total_player = total_player + 1 end i = i + 1 end i = 1 if total_player <= 1 then doBroadcastMessage("Evento Cancelado, Players Insuficientes.",22) -- ALTERAR Frase de evento cancelado por falta de players setGlobalStorageValue(24658, -1) -- ALTERAR storage usado no sistema, deixar todos iguais while i <= #players do local pos_player = getPlayerPosition(players) local pos1_espera = {x = 152, y = 47, z = 7} -- ALTERAR pos do canto superior esquerdo da sala de espera local pos2_espera = {x = 155, y = 49, z = 7} -- ALTERAR pos do canto inferior direito da sala de espera if pos_player.x >= pos1_espera.x and pos_player.y >= pos1_espera.y and pos_player.x <= pos2_espera.x and pos_player.y <= pos2_espera.y then doTeleportThing(players, pos_templo) end i = i + 1 end return TRUE end while i <= #players do local pos_player = getPlayerPosition(players) local pos1_espera = {x = 152, y = 47, z = 7} -- ALTERAR pos do canto superior esquerdo da sala de espera local pos2_espera = {x = 155, y = 49, z = 7} -- ALTERAR pos do canto inferior direito da sala de espera local pos_arena = {x = 160, y = 54, z = 7} -- ALTERAR do inicio da arena if pos_player.x >= pos1_espera.x and pos_player.y >= pos1_espera.y and pos_player.x <= pos2_espera.x and pos_player.y <= pos2_espera.y then doTeleportThing(players, pos_arena) doPlayerSendTextMessage(players, MESSAGE_STATUS_CONSOLE_BLUE, "Batalhe pela sua vida.") -- ALTERAR frase que vai aparecer para o player quando ele entrar na arena end i = i + 1 end end ,tempo_espera) return true end Vá em data/globalevents.xml e adicione essa linha. (não alterar o tempo) <globalevent name="arenawar" interval="5000" event="script" value="pvp.lua"/> Vá em data/globalevents/scripts/ e cria um arquivo chamado pvp.lua, dentro dele coloque. function onThink(interval, lastExecution) local total_players = 0 local storage = 24658 -- ALTERAR storage usado no sistema deixar todos iguais local item_premio = 2190 -- ALTERAR item dado de premio, caso não queira dar item, coloque 2160 local item_quantidade_premio = 1 -- ALTERAR quantidade do item ganho, caso não queira dar item , coloque 0 local player_escolhido = 0 local players = getPlayersOnline() local i = 1 local pos_templo = {x = 156, y = 56, z = 7} -- ALTERAR coordenada do templo do seu ot server if getGlobalStorageValue(storage) == 1 then else return TRUE end while i <= #players do local pos_player = getPlayerPosition(players) local pos1_arena = {x = 159, y = 53, z = 7} -- ALTERAR pos do canto superior esquerdo da arena local pos2_arena = {x = 161, y = 55, z = 7} -- ALTERAR pos do canto inferior direito da arena if pos_player.x >= pos1_arena.x and pos_player.y >= pos1_arena.y and pos_player.x <= pos2_arena.x and pos_player.y <= pos2_arena.y then total_players = total_players + 1 player_escolhido = players end i = i + 1 end if total_players == 1 then setGlobalStorageValue(storage, -1) doTeleportThing(player_escolhido, pos_templo) doPlayerAddItem(player_escolhido, item_premio, item_quantidade_premio) doPlayerSendTextMessage(player_escolhido, MESSAGE_STATUS_CONSOLE_BLUE, "Você é o Vencedor do Evento.") -- ALTERAR frase para o vencedor do premio doBroadcastMessage("O Player "..(getPlayerName(player_escolhido)).." é o Vencedor do Evento.",22) -- ALTERAR frase para todos, do ganhador do premio return TRUE else if total_players <= 0 then setGlobalStorageValue(storage, -1) doBroadcastMessage("Todos os Jogadores Se mataram, fim do Evento.",22) -- ALTERAR frase para todos, do ganhador do premio return TRUE end end return TRUE end Pronto instalado com sucesso. Créditos Pelo Script: 100% - Gabisa00 Créditos Pela Ideia: 100% - 161996Dúvidas, bugs, sugestões, somente no tópico. Gostou do Sistema Faça Seu Pedido Aqui! Editado Agosto 4, 2014 10 anos por gabisa00 (veja o histórico de edições) Meus Trabalhos *CreatureScripts* Defense System *CreatureScripts* {Premium} No Nome *GlobalEvents* Removing Houses Inactive Players *Função* getplayerbyhousewildcard *Função* getplayerbynameaccountid *Sistema* Arena War *Sistema* 3 Teans And 1 Boss *Sistema* Five Fase Quest *Sistema* Pilar Bosses *Sistema* Absorb Mana ArmMeu Site Porno ;P
Postado Julho 31, 2014 10 anos O tópico foi movido para a área correta, preste mais atenção da próxima vez! Leia as regras do fórum: http://tibiaking.com/forum/topic/1281-regras-gerais/?p=7680 Este tópico foi movido: De: "OTServ → Suporte OTServ → Suporte de Scripts" Para: "OTServ → Scripting → Sistemas e MODs" -- O título do seu tópico foi alterado por estar inadequado, procure relacionar o título com o tópico facilitando a todos. Leia as regras do fórum: Regras Entenda tudo sobre VPS, DEDICADOS & HOSPEDAGENS. => Clique aqui Global Full Download 10.9x - TFS 1.2/FERUMBRAS/KRAILOS. => Clique aqui Muitos querem aquilo que você tem, mas vão desistir quando souberem o preço que você pagou. lu.lukinha [email protected]
Postado Julho 31, 2014 10 anos Autor Postei na pagina de pedidos pelo motivo de que isso foi o pedido de um internauta, o pedido foi feito na pagina, por isso achei que deveria relata-lo como pedido, mas tudo bem vivendo e parendendo, Editado Julho 31, 2014 10 anos por gabisa00 (veja o histórico de edições) Meus Trabalhos *CreatureScripts* Defense System *CreatureScripts* {Premium} No Nome *GlobalEvents* Removing Houses Inactive Players *Função* getplayerbyhousewildcard *Função* getplayerbynameaccountid *Sistema* Arena War *Sistema* 3 Teans And 1 Boss *Sistema* Five Fase Quest *Sistema* Pilar Bosses *Sistema* Absorb Mana ArmMeu Site Porno ;P
Postado Julho 31, 2014 10 anos tem um erro no globalevents/scripts/ e cria um arquivo chamado pvp.lua ERROR: pvp.lua:11: unexpected symbol near ',' tem erro no talkactions/scripts/ e cria um arquivo chamado pvp.lua ERROR: pvp.lua:16: unexpected symbol near ',' a axo q não tem as coordenadas ainda né ? rep + pelo evento.
Postado Julho 31, 2014 10 anos Autor a ausência das coordenadas vai implicar no não funcionamento, provavelmente é isso. Muito Obrigado pela Rep. Editado Julho 31, 2014 10 anos por gabisa00 (veja o histórico de edições) Meus Trabalhos *CreatureScripts* Defense System *CreatureScripts* {Premium} No Nome *GlobalEvents* Removing Houses Inactive Players *Função* getplayerbyhousewildcard *Função* getplayerbynameaccountid *Sistema* Arena War *Sistema* 3 Teans And 1 Boss *Sistema* Five Fase Quest *Sistema* Pilar Bosses *Sistema* Absorb Mana ArmMeu Site Porno ;P
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.