Ir para conteúdo

Torneio System Completo 4 vezes ao dia + NPC + RANK apenas PARA SITE

Featured Replies

Postado
  • Autor
  • Diretor
5 horas atrás, sidneivascao disse:

Bom no meu aqui deu esse erro quando cliquei na porta, erro na distro, o restante deu certo rs

Sem título.png

bota um end no final do script /torneio.lua

sistema arrumado pessoal vou fazer um sem site agora pra vocês....

Em 01/02/2016 10:36:33, Daniel augusto silva disse:

<?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"/>]

Essa corpse aki o player morto ou ncp

 

 

 

   npc name = nome do npc ?

   script = nome do scripts em /scripts?

   walkinterval = tempo para se mexer ?

   health now = vida

   max = vida toltal ?

   looktype =   aparencia ?      

   head = cor da cabeça ?

   body = cor do tronco ?

   legs = cor da perna ?

   feet = cor dos pés ?

   corpse = corpo quando morrer ? npc n usa pra nada

 

 

 

 

20230912_034613.png.cf49b650c34dd7d7b1f79bd49c70f53c.png

Eu sou um entusiasta da programação apaixonado por ajudar a comunidade open source a crescer. Sempre em busca de novos desafios e oportunidades para contribuir com meu código.  #OpenSource #Programação #Contribuição

 

  • 3 months later...
  • Respostas 41
  • Visualizações 9.7k
  • Created
  • Última resposta

Top Posters In This Topic

Most Popular Posts

  • localhost/phpmyadmin importar para o banco de dados

  • vamos fazer sem site então!!!

  • pq existem dois tipo de ontime e ontimer tente assim     --===--O projeto PokémonDBr - Pokémon Diamante Brasileiro é um projeto open source, uma instituição sem fins lucrativo, esse codi

Posted Images

Postado

VC ali pede pra cria uma script

lib uma pra horário outra pra rank , oq eu faço coloco tudo na MSM script

Meu facebook

 

Meu Projeto

 

Meu Skype

Spoiler

brendo.dmg.yago

 

Meu Servidor Online:

Spoiler

 

  • 3 weeks later...
Postado

Funcionando perfeitamente obrigado por contribuir para a comunidade estarei fazendo um re-post deste tópico com mapa e algumas coisas corrigidas como o problema de ontimer e os problemas de adicionar alanvanca/porta no mapa e bugar sobre o npc também amanhã irei postar tudo certinho com mapa e tudo mais desde já obrigado 

 

@Alexy Brocanello

Compre seus Scripts Agora totalmente seguro e de forma rápida, aceitamos também encomendas.

discord.gg/phJZeHa2k4

 

Projeto ATS (Naruto)

Informações Abaixo

Facebook

Youtube
Discord

 

Tutoriais / Conteúdos

Clique Aqui

  • 4 weeks later...
Postado
Em sexta-feira, 29 de janeiro de 2016 at 22:31, Alexy Brocanello disse:

t

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

 


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 morrer ?--

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 do
for y = area.fromy,area.toy do
for z = area.fromz,area.toz do

local m = getTopCreature({x=x, y=y, z=z}).uid

if m ~= 1 and isPlayer(m) then
table.insert(players, m)
end
end
end
end
return players
end

apaga os coments do scripts acima com --blablabla--

 

 

 

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

 


function onTime()
if #getPlayersInArea(torneio.area) > 1 then
doBroadcastMessage("O Torneio dessa vez não teve vencedor, tente na proxima vez") return true end
for _, pid in ipairs(getPlayersInArea(torneio.waitArea)) do
doTeleportThing(pid, torneio.tournamentFight)
doPlayerSendTextMessage(pid, 21, "O torneio começou!")
end
return true
end

ou dependendo do tfs pode ser

 


function onTimer()
if #getPlayersInArea(torneio.area) > 1 then
doBroadcastMessage("O Torneio dessa vez não teve vencedor, tente na proxima vez") return true end
for _, pid in ipairs(getPlayersInArea(torneio.waitArea)) do
doTeleportThing(pid, torneio.tournamentFight)
doPlayerSendTextMessage(pid, 21, "O torneio começou!")
end
return true
end

 

 

 

agora em globalevents.xml add as tag

 


<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"/>


ou

 


<globalevent name="TournamentStart1" timer="08:00" event="script" value="torneio.lua"/>
<globalevent name="TournamentStart2" timer="12:00" event="script" value="torneio.lua"/>
<globalevent name="TournamentStart3" timer="18:00" event="script" value="torneio.lua"/>
<globalevent name="TournamentStart4" timer="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

 


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 true
end

agora as tag globalevents.xml add

 


<globalevent name="msg torneio" interval="60000" 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

 


function onUse(cid, item)
local torneios = 1
if #getCreatureSummons(cid) >= 1 then
doPlayerSendCancel(cid, "Volte seu pokémonDBR!")
else
if #getPlayersInArea(torneio.area) > 1 then
doPlayerSendTextMessage(cid, 20 ,"Só o ultimo que ficar na arena, poderá abrir está porta! ") return true end
doTeleportThing(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 true
end
end

agora a tag de actions.xml add

 


<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

 


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

if msgcontains(msg, 'torneio') or msgcontains(msg, 'enter') then

if getPlayerItemCount(cid, torneio.revivePoke) >= 1 then
selfSay('Voce nao Pode entrar no torneio com {revives}, por favor guarde eles e volte a falar comigo novamente.', cid)
return true
end

selfSay('Voce quer Participar no torneio por '..torneio.price..' de Dollars?', cid)
talkState[talkUser] = 2

elseif talkState[talkUser] == 2 then

if msgcontains(msg, 'yes') or msgcontains(msg, 'sim') then
if os.date("%X") < torneio.startHour1 or os.date("%X") > torneio.endHour1 then
if os.date("%X") < torneio.startHour2 or os.date("%X") > torneio.endHour2 then
if os.date("%X") < torneio.startHour3 or os.date("%X") > torneio.endHour3 then
if os.date("%X") < torneio.startHour4 or os.date("%X") > torneio.endHour4 then
selfSay('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
   end
end
if doPlayerRemoveMoney(cid, torneio.price) then
doTeleportThing(cid, torneio.waitPlace)
doPlayerSendTextMessage(cid, 21, "Bem vindo, esta e a sala de espera, voce espera aqui enquanto o torneio nao começa.")
else

selfSay('Voce não tem ('..torneio.price..') Dollars.', cid)
end
else
selfSay('Certeza que voce não quer Participar? Ok, ate a Proxima', cid)
talkState[talkUser] = 0
end
end
end

npcHandler: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

 


<?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>

 importa para seu mysql o código

 


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

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

 


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") end
function addTopt(cid,amount)
db.executeQuery("UPDATE `players` SET `torneio` = "..getTopt(cid).."+"..amount.." WHERE `id` = "..getPlayerGUID(cid)) end
function removeTopt(cid,amount)
db.executeQuery("UPDATE `players` SET `torneio` = "..getTopt(cid).."-"..amount.." WHERE `id` = "..getPlayerGUID(cid)) end
function 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á

 


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

 

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

 


<?PHP 
//** Connection to the database **// 
$ots = POT::getInstance(); 
$ots->connect(POT::DB_MYSQL, connection()); 
$SQL = POT::getInstance()->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>'; 

 

 

isso ai pessoal é completo eu fiz pro meu PokémonDBR que tinha fechado então resolvi compartilhar.... qualquer copia favor bote devido créditos e não quero ver ninguém vendendo meu scrpts....

 

Créditos a mim... qualquer dúvida falando que não sou o dono aqui minha página da PokémonDBR Oficial 2000 curtidas + http://facebook.com/pokemondbr

 

fiz tudo certinho mas quando clika na porta alavanca diz you cannot use the objeto tem como ajuda ae quero so a essa parte que ultimo player clike pra vencer

 

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.

Visitante
Responder

Quem Está Navegando 0

  • Nenhum usuário registrado visualizando esta página.

Estatísticas dos Fóruns

  • Tópicos 96.9k
  • Posts 519.6k

Informação Importante

Confirmação de Termo