Jump to content

Torneio system completo 4 vezes ao dia + npc + rank apenas para site


Recommended Posts

Bom pessoal eu resolvi compartilhar o meu sistema de torneio para poketibia que fiz para meu projeto, ele tem a função de ocorrer 4 vezes ao dia....Falando apenas com o 1 NPC Nick da cidade aonde você por....

 

Como funciona ? Mata todos e o ultimo que sobrar na arena de batalha é o ganhador!

 

1° Pasta LIB copie um arquivo e deverá renomear para torneio ficando torneio.lua apaga tudo que tem dentro e add

Spoiler
torneio = {awardTournament = 2148, ---moeda usada para entra no torneio--awardAmount = 1000, -- quantidade de moeda que o player vai ganhar ao vencer o torneio--playerTemple = {x = 893, y = 499, z = 15}, --pra onde vai o player quando clicar na porta?--tournamentFight = {x = 894, y = 538, z = 15}, --centro da arena torneio combate--area = {fromx = 866, fromy = 508, fromz = 15, tox = 922, toy = 572, toz= 15},--canto acima direito da arena combate-canto esquerdo abaixo da arena combate--waitPlace = {x = 969, y = 544, z = 15},  --centro da sala de espera--waitArea = {fromx = 957, fromy = 536, fromz = 15, tox = 983, toy = 552, toz= 15}, --canto esquerdo acima da sala de espera--canto abaixo esquerdo da sala de espera--startHour1 = "07:50:00", --horario do aviso?--endHour1 = "08:00:00",--horario que começa?--startHour2 = "11:50:00",--horario do aviso?--endHour2 = "12:00:00",--horario do aviso?--startHour3 = "17:50:00",--horario do aviso?--endHour3 = "18:00:00",--horario do aviso?--startHour4 = "22:50:00",--horario do aviso?--endHour4 = "23:00:00",--horario do aviso?--price = 500,--valor para entrar no torneio ? 500 dollar no caso--revivePoke = 12344,--aqui é revive se tiver e se não tiver não precisa mexer--}function getPlayersInArea(area)local players = {}for x = area.fromx,area.tox dofor y = area.fromy,area.toy dofor z = area.fromz,area.toz dolocal m = getTopCreature({x=x, y=y, z=z}).uidif m ~= 1 and isPlayer(m) thentable.insert(players, m)endendendendreturn playersendstartHour3 = "17:50:00",--horario do aviso?--endHour3 = "18:00:00",--horario do aviso?--startHour4 = "22:50:00",--horario do aviso?--endHour4 = "23:00:00",--horario do aviso?--price = 500,--valor para entrar no torneio ? 500 dollar no caso--revivePoke = 12344,--aqui é revive se tiver e se não tiver não precisa mexer--}function getPlayersInArea(area)local players = {}for x = area.fromx,area.tox dofor y = area.fromy,area.toy dofor z = area.fromz,area.toz dolocal m = getTopCreature({x=x, y=y, z=z}).uidif m ~= 1 and isPlayer(m) thentable.insert(players, m)endendendendreturn playersend

 

2° GLOBALEVENTS vá na pasta globalevents/scripts copia um arquivo que voc?ê deverá renomear para torneio ficando torneio.lua e add

Spoiler
function onTimer()if #getPlayersInArea(torneio.area) > 1 thendoBroadcastMessage("O Torneio dessa vez não teve vencedor, tente na proxima vez") return true endfor _, pid in ipairs(getPlayersInArea(torneio.waitArea)) dodoTeleportThing(pid, torneio.tournamentFight)doPlayerSendTextMessage(pid, 21, "O torneio começou!")endreturn trueend

agora em globalevents.xml add as tag

Spoiler
<globalevent name="TournamentStart1" time="08:00" event="script" value="torneio.lua"/><globalevent name="TournamentStart2" time="12:00" event="script" value="torneio.lua"/><globalevent name="TournamentStart3" time="18:00" event="script" value="torneio.lua"/><globalevent name="TournamentStart4" time="23:00" event="script" value="torneio.lua"/>

ainda em globalevents vá em globalevents/scripts copie outro arquivo e renomeia para, msgtorneio ficando msgtorneio.lua e add

Spoiler
local i = {["07:50"] = {nome = "O Torneio vai começar em 10 minutos, fale com o NPC Nike no CP de sua cidade, vai custar 500 Dollar's  para participar!"},["07:55"] = {nome = "Faltam 5 minutos para fechar as inscrições do torneio!"},["07:59"] = {nome = "As inscrições do Torneio fecharam!"},["11:50"] = {nome = "O Torneio vai começar em 10 minutos, fale com o NPC Nike no CP de sua cidade, vai custar 500 Dollar's para participar!"},["11:55"] = {nome = "Faltam 5 minutos para fechar as inscrições do torneio!"},["11:59"] = {nome = "As inscrições do Torneio fecharam!"},["17:50"] = {nome = "O Torneio vai começar em 10 minutos, fale com o NPC Nike no CP de sua cidade, vai custar 500 Dollar's para participar!"},["17:55"] = {nome = "Faltam 5 minutos para fechar as inscrições do torneio!"},["17:59"] = {nome = "As inscrições do Torneio fecharam!"},["22:50"] = {nome = "O Torneio vai começar em 10 minutos, fale com o NPC Nike no CP de sua cidade, vai custar 500 Dollar's para participar!"},["22:55"] = {nome = "Faltam 5 minutos para fechar as inscrições do torneio!"},["22:59"] = {nome = "As inscrições do Torneio fecharam!"},}function onThink(interval, lastExecution)        hours = tostring(os.date("%X")):sub(1, 5)        tb = i[hours]        if tb then                doBroadcastMessage(hours .. " - " .. tb.nome .. "")                        end        return trueend

agora as tag globalevents.xml add

Spoiler

<globalevent name="msg torneio" interval="65" event="script" value="msgtorneio.lua"/>
 

pronto agora vamos mexer com actions...

 

3° ACTIONS para o player receber a recompensa... vá em actions/scripts copie um arquivo lá e renomeia para torneio ficando torneio.lua e add

Spoiler
function onUse(cid, item)local torneios = 1if #getCreatureSummons(cid) >= 1 thendoPlayerSendCancel(cid, "Volte seu pokémonDBR!")elseif #getPlayersInArea(torneio.area) > 1 thendoPlayerSendTextMessage(cid, 20 ,"Só o ultimo que ficar na arena, poderá abrir está porta! ") return true enddoTeleportThing(cid, torneio.playerTemple)doBroadcastMessage("[Torneio] Parabéns ao treinador "..getCreatureName(cid).." foi o ganhador do torneio de hoje, verifique o rank em nosso site www.seusite.com!")doPlayerAddItem(cid,2148,300)addTopt(cid, torneios)doPlayerSendTextMessage(cid,MESSAGE_EVENT_ORANGE,"[Torneio] Você já venceu "..(getTopt(cid,torneio)).."x, Parabéns.")doPlayerAddItem(cid, torneio.awardTournament, torneio.awardAmount)return trueendend

ou se n tiver site

Spoiler
function onUse(cid, item)local torneios = 1if #getCreatureSummons(cid) >= 1 thendoPlayerSendCancel(cid, "Volte seu pokémonDBR!")elseif #getPlayersInArea(torneio.area) > 1 thendoPlayerSendTextMessage(cid, 20 ,"Só o ultimo que ficar na arena, poderá abrir está porta! ") return true enddoTeleportThing(cid, torneio.playerTemple)doBroadcastMessage("[Torneio] Parabéns ao treinador "..getCreatureName(cid).." foi o ganhador do torneio de hoje, verifique o rank em nosso site www.seusite.com!")doPlayerAddItem(cid,2148,300)doPlayerSendTextMessage(cid,MESSAGE_EVENT_ORANGE,"[Torneio] Você já venceu "..(getTopt(cid,torneio)).."x, Parabéns.")doPlayerAddItem(cid, torneio.awardTournament, torneio.awardAmount)return trueendend
<action uniqueid="18279" event="script" value="torneio.lua"/>

18279 é unique ID que vc terá que por numa porta alavanca o que for pra depois o ultimo player clicar...

 NPC vá na pasta npc/scripts copia um arquivo e você deverá renomear para torneio ficando torneio.lua e add

Spoiler
local keywordHandler = KeywordHandler:new()local npcHandler = NpcHandler:new(keywordHandler)NpcSystem.parseParameters(npcHandler)local talkState = {}function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) endfunction onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) endfunction onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) endfunction onThink() npcHandler:onThink() endfunction creatureSayCallback(cid, type, msg)if(not npcHandler:isFocused(cid)) thenreturn falseendlocal talkUser = NPCHANDLER_CONVBEHAVIOR == CONVERSATION_DEFAULT and 0 or cidif msgcontains(msg, 'torneio') or msgcontains(msg, 'enter') thenif getPlayerItemCount(cid, torneio.revivePoke) >= 1 thenselfSay('Voce nao Pode entrar no torneio com {revives}, por favor guarde eles e volte a falar comigo novamente.', cid)return trueendselfSay('Voce quer Participar no torneio por '..torneio.price..' de Dollars?', cid)talkState[talkUser] = 2elseif talkState[talkUser] == 2 thenif msgcontains(msg, 'yes') or msgcontains(msg, 'sim') thenif os.date("%X") < torneio.startHour1 or os.date("%X") > torneio.endHour1 thenif os.date("%X") < torneio.startHour2 or os.date("%X") > torneio.endHour2 thenif os.date("%X") < torneio.startHour3 or os.date("%X") > torneio.endHour3 thenif os.date("%X") < torneio.startHour4 or os.date("%X") > torneio.endHour4 thenselfSay('As inscrições para o torneiro ainda não abriram, volte ás 07:50 AM, 11:50 AM, 17:50 AM ou ás 22:50 PM todo os dias', cid)return true         end      end   endendif doPlayerRemoveMoney(cid, torneio.price) thendoTeleportThing(cid, torneio.waitPlace)doPlayerSendTextMessage(cid, 21, "Bem vindo, esta e a sala de espera, voce espera aqui enquanto o torneio nao começa.")elseselfSay('Voce não tem ('..torneio.price..') Dollars.', cid)endelseselfSay('Certeza que voce não quer Participar? Ok, ate a Proxima', cid)talkState[talkUser] = 0endendendnpcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback)npcHandler:addModule(FocusModule:new())

bom agora volte um pasta e copia um arquivo.xml e renomeia para torneio ficando torneio.xml e add

 

Spoiler
<?xml version="1.0" encoding="UTF-8"?><npc name="Nick" script="torneio.lua" walkinterval="999000" floorchange="0"><health now="150" max="150"/><look type="1245" head="20" body="100" legs="50" feet="99" corpse="2212"/>]<parameters><parameter key="message_greet" value="Ola |PLAYERNAME|. Sou o NIKE, Encarregado pelo Torneio diario caso queira entrar diga: {torneio}."/>        </parameters></npc>

agora vamos para parte do site pra quer for usar site com rank e tudo mais

 

 importa para seu mysql o código

Spoiler
ALTER TABLE `players` ADD `torneio` int(11) NOT NULL default '0';

agora a vá na pasta lib copia um arquivo.lua e renomeia para torneio2 e add ficando torneio2.lua

Spoiler
function getTopt(cid)local check4 = db.getResult("SELECT `torneio` FROM `players` WHERE `id` = " .. getPlayerGUID(cid) .. " LIMIT 1")return check4:getDataInt("torneio") <= 0 and 0 or check4:getDataInt("torneio") endfunction addTopt(cid,amount)db.executeQuery("UPDATE `players` SET `torneio` = "..getTopt(cid).."+"..amount.." WHERE `id` = "..getPlayerGUID(cid)) endfunction removeTopt(cid,amount)db.executeQuery("UPDATE `players` SET `torneio` = "..getTopt(cid).."-"..amount.." WHERE `id` = "..getPlayerGUID(cid)) endfunction setTopt(cid,value)db.executeQuery("UPDATE `players` SET `torneio` = "..value.." WHERE `id` = "..getPlayerGUID(cid)) end

 pronto torneio 4 vezes ao dia + npc + rank para site como usar o rank no site ? vai em htdocs/template/seulayout/index.tpl e add em algum lugar lá

Spoiler
<div class="top-box">                                      {include_php file='torneio.php'}                                                          </div>

agora vá em htdocs criar um novo text com nome torneio.php e add

Spoiler
<?PHP //** Connection to the database **// $ots = POTgetInstance(); $ots->connect(POTDB_MYSQL, connection()); $SQL = POTgetInstance()->getDBHandle(); //** Top Players + online status By Kavvson **//                                 $money_list = $SQL->query('SELECT name,torneio FROM players ORDER BY torneio DESC LIMIT 5')->fetchAll();                                         $i = 1;                                         foreach($money_list as $money_chr){                                         echo '<center>';                                             echo $i.'. <a href="/pt/index.php/character/view/'.urlencode($money_chr['name']).'">';         $player = $ots->createObject('Player');         $player->find($money_chr['name']);                          echo '<font color="';                         echo ($player->isOnline()) ? 'green' : 'green';                         echo '">';                             echo ''.$money_chr['name'].'</b></a></font>';  echo' Torneio Ganhos: '.$money_chr['torneio'].'</B>';                                             $i++;                                         }                                         for( $i; $i <= 1; $i++ ){                                             echo $i.'. <br><i>Empty</i><br /><br />';                                         }                                         echo '</center>'; 

se ajudo deixe seu rep+

 

CREDITOS ; OTPOKEMONDBR e pra min

 

 

 

 

 

 

MEU PROJETO

Spoiler

WWW.FACEBOOK.COM/PXMOSTYER

 

 

 

 

 

 

 

 

 

 

 

 

 

Link to comment
Share on other sites

  • 1 month later...
Em 30/06/2016 at 13:33, BrendoGraphics0 disse:

playerTemple = {x = 893, y = 499, z = 15}, --pra onde vai o player quando clicar na porta?--

 

Qual porta?

Em 30/06/2016 at 13:33, BrendoGraphics0 disse:

revivePoke = 12344,--aqui é revive se tiver e se não tiver não precisa mexer--

 

Aqui no caso está configurado para usar Revive? 

E onde tem as partes do ''Aviso''

Não tem alguma parte para configurar para começar, porque só vi de anuncio.

Tente fazer um post mais completo, mais formatado e com mais explicações. Nem todos entendem Script perfeitamente.

Link to comment
Share on other sites

ale ta configurado pra n ter revive

Porta Ou alavanca para o ultimo player clicar ele vai se teleportado para o templo do ganhador

 

esse foi meu primeiro post foi um pouco zuado

Link to comment
Share on other sites

  • 3 months later...
  • 2 weeks later...
  • 2 months later...

e a i? esse sistema ai eu já disponibilizei mano ? porque vc liberou dnv ? tanto nesse forum quanto no outro, se vc não apagar ja era nossa amizade!

 

Esse parte foi eu mesmo que fiz cade meus créditos  ? etc... sou dono da otPokémon AMV e liberei o de 4 vezes ao dia por que n tinha um!!!!

 

startHour1 = "07:50:00", --horario do aviso?--endHour1 = "08:00:00",--horario que começa?--startHour2 = "11:50:00",--horario do aviso?--endHour2 = "12:00:00",--horario do aviso?--startHour3 = "17:50:00",--horario do aviso?--endHour3 = "18:00:00",--horario do aviso?--startHour4 = "22:50:00",--horario do aviso?--endHour4 = 

 

 

 

Edited by Alexy Brocanello
Link to comment
Share on other sites

26 minutos atrás, Alexy Brocanello disse:

e a i? esse sistema ai eu já disponibilizei mano ? porque vc liberou dnv ? tanto nesse forum quanto no outro, se vc não apagar ja era nossa amizade!

 

Esse parte foi eu mesmo que fiz cade meus créditos  ? etc... sou dono da otPokémon AMV e liberei o de 4 vezes ao dia por que n tinha um!!!!

 

startHour1 = "07:50:00", --horario do aviso?--endHour1 = "08:00:00",--horario que começa?--startHour2 = "11:50:00",--horario do aviso?--endHour2 = "12:00:00",--horario do aviso?--startHour3 = "17:50:00",--horario do aviso?--endHour3 = "18:00:00",--horario do aviso?--startHour4 = "22:50:00",--horario do aviso?--endHour4 = 

eu coloquei os Creditos , e tmbn n sabia q vc tinha colocado aki no forum vou pedir para remover o topico

 

 

 

Link to comment
Share on other sites

×
×
  • Create New...