'
'
que foda
EUHEUHUHE'
parabéens por mais um script perfeito ![]()
rep+
'
'
que foda
EUHEUHUHE'
parabéens por mais um script perfeito ![]()
rep+
info
Group: Colaborador
Joined: 27/12/10
Posts: 271
Reputation: +87
Gender: Masculino

Muito Loco Mano Rep+ :smile_positivo:
Hmm, excelente gosei por demais!
REP+ sistema inovador realmente!
info
Group: Herói
Joined: 20/05/10
Posts: 3.4k
Reputation: +1.5k
Gender: Masculino

criativo demon
achei cool *-*
tem meu rep haha
manda ve mlk
info
Group: Infante
Joined: 13/10/08
Posts: 1.6k
Reputation: +420
Tibia Character: Demonbholder

Hm... criticas mais construtivas please. Ainda sim, obrigado pelos comentários.
Otimo script hehe muito bom
info
Group: Campones
Joined: 03/12/07
Posts: 76
Reputation: +8
Tibia Character: So Logo Para Mata

meu scrip muito bom velho rep+
info
Group: Infante
Joined: 13/10/08
Posts: 1.6k
Reputation: +420
Tibia Character: Demonbholder

Como prometido, adicionado vídeo de demonstração do sistema e instalação.
info
Group: Conde
Joined: 22/01/11
Posts: 691
Reputation: +128

Muito bom mesmo, até a musiquinha de fundo do vídeu ficou maneiro. Bom, estou gostando da nova equipe, está ficando muito boa.
Hail xTibia
info
Group: Artesão
Joined: 15/11/09
Posts: 103
Reputation: +2
Tibia Character: SigilosoS u.u

ta demais velho vlw.
funciona em TFS 3.6?
o comando para começar é só "!start", e como faiz para jogar, apos o comando aparece essa mensagem cancelada "-Você precisa ser 1 dos participantes."
não mechi em nada do script apenas implantei, as unicas modificações foram as nescessarias para o funcionamento.
info
Group: Infante
Joined: 13/10/08
Posts: 1.6k
Reputation: +420
Tibia Character: Demonbholder

Ja coloquei o vídeo mostrando que funciona, você deve ter esquecido de colocar alguma coisa. Testei em New Styller Yourots 0.7.5.
tem como adicionar um item ao player vencedor da aposta alem do dinheiro?
info
Group: Infante
Joined: 13/10/08
Posts: 1.6k
Reputation: +420
Tibia Character: Demonbholder

Ter tem, mas o jogo que eu planejei não funciona assim. Se fosse pra fazer do jeito que tu quer não teria apostas e tal, ficaria meio chato, nem vou fazer.
info
Group: Infante
Joined: 13/10/08
Posts: 1.6k
Reputation: +420
Tibia Character: Demonbholder
Boooas galera! E ai, tudo bem? Ontem a noite eu estava tomando um Redbull e percebi que não ira dormir tão cedo, então eu resolvi bolar um pequeno jogo que terá novas versões em breve. O mais impressionante é que eu fiz e deu certo quase de primeira.
Bom, vamos parar com a conversa fiada e vamos logo as explicações:
Como funciona:
Um breve resumo: dois jogadores devem ficar em duas posições escolhidas no script. Um comando inicial !start inicia o jogo, assim cada um recebe um número de carta, que pode variar de 1 a 20. Certo, depois disso vem a segunda parte, a seção de aposta. O primeiro jogador que apostar algo acima de 0 e menor que 1000 com o comando !bet Número vai ser o mandante. Depois disso, os dois jogadores devem falar !accept para ver quem tem a maior carta, assim o vencedor ganhará o dinheiro da aposta. Se algum jogador usar a palavra !reject ao invés de !accept o jogo reiniciará.
Algumas prevenções de bugs do sistema:
Se o oponente demorar muito para fazer sua jogada, tal como aceitar a aposta, é possível, depois de 3 minutos, o jogador falar !quitgame e o jogo reiniciar. Qualquer membro da staff com acesso maior que 3 pode usar o comando /endgame para encerrar algum jogo em andamento.
O script não deixa jogadores com o mesmo ip utilizarem o sistema por motivos claros.
Há um script de movement para não deixar os jogadores sair do tile após começar o jogo.
Há um script de creaturescripts para não deixar os jogadores logarem após começar o jogo.
Bom, é isso, acho que deu pra entender. Eu fiz o script tentando evitar o máximo que algum jogador abuse de bugs.
Talkaction:
function onSay(cid, words, param) local random1 = math.random(1, 20) local pos1 = getThingFromPos({x=, y=, z=, stackpos=253}).uid local pos2 = getThingFromPos({x=, y=, z=, stackpos=253}).uid local place1 = {x=, y=, z=} local place2 = {x=, y=, z=} local tempo = 180 local random2 = math.random(1, 20) if words == "!start" then if isPlayer(pos1) and isPlayer(pos2) and (pos1 == cid or pos2 == cid) then if getPlayerStorageValue(pos1, 30001) == -1 and getPlayerStorageValue(pos2, 30001) == -1 then if getPlayerIp(pos1) ~= getPlayerIp(pos2) then setGlobalStorageValue(30002, -1) doPlayerSendTextMessage(pos1, 22, "Game starting...") doPlayerSendTextMessage(pos2, 22, "Game starting...") setPlayerStorageValue(pos1, 30001, 1) setPlayerStorageValue(pos2, 30001, 1) setPlayerStorageValue(pos1, 30002, random1) setPlayerStorageValue(pos2, 30002, random2) doPlayerSendTextMessage(pos1, 4, "Sua carta é " .. random1) doPlayerSendTextMessage(pos2, 4, "Sua carta é " .. random2) doSendMagicEffect(getThingPos(pos1), 65) doSendMagicEffect(getThingPos(pos2), 65) setGlobalStorageValue(30002, tempo + os.time()) else doPlayerSendCancel(cid, "Você e seu companheiro tem o mesmo ip.") doSendMagicEffect(getCreaturePosition(cid), 2) end else doPlayerSendCancel(cid, "Você já esta no meio de um jogo.") doSendMagicEffect(getCreaturePosition(cid), 2) end else doPlayerSendCancel(cid, "Você precisa ser um dos dois participantes.") doSendMagicEffect(getCreaturePosition(cid), 2) end end if words == "!bet" then if isNumber(tonumber(param)) and tonumber(param) <= 1000 and tonumber(param) > 0 then if isPlayer(pos1) and isPlayer(pos2) and (pos1 == cid or pos2 == cid) then if getPlayerStorageValue(pos1, 30001) == 1 and getPlayerStorageValue(pos2, 30001) == 1 then setGlobalStorageValue(30002, -1) setGlobalStorageValue(30001, tonumber(param)) setPlayerStorageValue(pos1, 30001, 2) setPlayerStorageValue(pos2, 30001, 2) doPlayerSendTextMessage(pos1, 4, "The bet is " .. param) doPlayerSendTextMessage(pos2, 4, "The bet is " .. param) setGlobalStorageValue(30002, tempo + os.time()) else doPlayerSendCancel(cid, "O jogo não esta no estagio de apostas.") doSendMagicEffect(getCreaturePosition(cid), 2) end else doPlayerSendCancel(cid, "Você precisa ser um dos dois participantes.") doSendMagicEffect(getCreaturePosition(cid), 2) end else doPlayerSendCancel(cid, "A aposta deve ser menor 1000 e maior que 0.") doSendMagicEffect(getCreaturePosition(cid), 2) end end if words == "!accept" then if isPlayer(pos1) and isPlayer(pos2) and (pos1 == cid or pos2 == cid) then if (getPlayerStorageValue(pos1, 30001) == 3 and pos1 ~= cid) or (getPlayerStorageValue(pos2, 30001) == 3 and pos2 ~= cid) then local winner = getPlayerStorageValue(pos1, 30002) > getPlayerStorageValue(pos2, 30002) and pos1 or pos2 if getPlayerStorageValue(pos1, 30002) == getPlayerStorageValue(pos2, 30002) then doPlayerSendTextMessage(pos1, 4, "Empate.") doPlayerSendTextMessage(pos2, 4, "Empate.") setPlayerStorageValue(pos1, 30001, -1) setPlayerStorageValue(pos2, 30001, -1) setPlayerStorageValue(pos1, 30002, -1) setPlayerStorageValue(pos2, 30002, -1) doPlayerSendTextMessage(pos1, 4, "O jogo foi resetado.") doPlayerSendTextMessage(pos2, 4, "O jogo foi resetado.") setGlobalStorageValue(30001, -1) setGlobalStorageValue(30002, -1) doSendMagicEffect(getThingPos(pos1), 37) doSendMagicEffect(getThingPos(pos2), 37) else doPlayerAddMoney(winner, getGlobalStorageValue(30001)) doPlayerSendTextMessage(pos1, 4, "O ganhador é " .. getCreatureName(winner)) doPlayerSendTextMessage(pos2, 4, "O ganhador é " .. getCreatureName(winner)) setPlayerStorageValue(pos1, 30001, -1) setPlayerStorageValue(pos2, 30001, -1) setPlayerStorageValue(pos1, 30002, -1) setPlayerStorageValue(pos2, 30002, -1) doPlayerSendTextMessage(pos1, 4, "O jogo foi resetado.") doPlayerSendTextMessage(pos2, 4, "O jogo foi resetado.") setGlobalStorageValue(30001, -1) setGlobalStorageValue(30002, -1) doSendMagicEffect(getThingPos(pos1), 37) doSendMagicEffect(getThingPos(pos2), 37) end elseif getPlayerStorageValue(pos1, 30001) > 1 and getPlayerStorageValue(pos2, 30001) > 1 and (getPlayerStorageValue(pos1, 30001) ~= 3 or getPlayerStorageValue(pos2, 30001) ~= 3) then setGlobalStorageValue(30002, -1) setPlayerStorageValue(cid, 30001, 3) doPlayerSendTextMessage(pos1, 4, getCreatureName(cid) .. " Aceitou a aposta.") doPlayerSendTextMessage(pos2, 4, getCreatureName(cid) .. " Aceitou a aposta.") setGlobalStorageValue(30002, tempo + os.time()) end end end if words == "!reject" then if isPlayer(pos1) and isPlayer(pos2) and (pos1 == cid or pos2 == cid) then if getPlayerStorageValue(pos1, 30001) > 1 and getPlayerStorageValue(pos2, 30001) > 1 and (getPlayerStorageValue(pos1, 30001) ~= 3 or getPlayerStorageValue(pos2, 30001) ~= 3) then setPlayerStorageValue(pos1, 30001, -1) setPlayerStorageValue(pos2, 30001, -1) setPlayerStorageValue(pos1, 30002, -1) setPlayerStorageValue(pos2, 30002, -1) doPlayerSendTextMessage(pos1, 4, "O jogo foi resetado.") doPlayerSendTextMessage(pos2, 4, "O jogo foi resetado.") setGlobalStorageValue(30001, -1) setGlobalStorageValue(30002, -1) doSendMagicEffect(getThingPos(pos1), 37) doSendMagicEffect(getThingPos(pos2), 37) else doPlayerSendCancel(cid, "Você não esta no estagio para rejeitar uma aposta.") doSendMagicEffect(getCreaturePosition(cid), 2) end else doPlayerSendCancel(cid, "Você precisa ser um dos dois participantes.") doSendMagicEffect(getCreaturePosition(cid), 2) end end if words == "/endgame" or words == "!endgame" then if getPlayerAccess(cid) > 3 then if isPlayer(pos1) and isPlayer(pos2) then if getPlayerStorageValue(pos1, 30001) ~= -1 and getPlayerStorageValue(pos2, 30001) ~= -1 then setPlayerStorageValue(pos1, 30001, -1) setPlayerStorageValue(pos2, 30001, -1) setPlayerStorageValue(pos1, 30002, -1) setPlayerStorageValue(pos2, 30002, -1) doTeleportThing(pos1, place1) doTeleportThing(pos2, place2) doPlayerSendTextMessage(pos1, 4, "O jogo foi resetado por " .. getCreatureName(cid)) doPlayerSendTextMessage(pos2, 4, "O jogo foi resetado por " .. getCreatureName(cid)) setGlobalStorageValue(30001, -1) doSendMagicEffect(getThingPos(pos1), 37) doSendMagicEffect(getThingPos(pos2), 37) setGlobalStorageValue(30002, -1) else doPlayerSendCancel(cid, "O jogo ainda não começou.") doSendMagicEffect(getCreaturePosition(cid), 2) end else doPlayerSendCancel(cid, "Não há dois jogadores nas posições marcadas.") doSendMagicEffect(getCreaturePosition(cid), 2) end else doPlayerSendCancel(cid, "Você não pode executar este comando.") doSendMagicEffect(getCreaturePosition(cid), 2) end end if words == "!quitgame" then if isPlayer(pos1) and isPlayer(pos2) and (pos1 == cid or pos2 == cid) then if getGlobalStorageValue(30002) - os.time() <= 0 and getGlobalStorageValue(30002) ~= -1 then setPlayerStorageValue(pos1, 30001, -1) setPlayerStorageValue(pos2, 30001, -1) setPlayerStorageValue(pos1, 30002, -1) setPlayerStorageValue(pos2, 30002, -1) doPlayerSendTextMessage(pos1, 4, "O jogo foi resetado.") doPlayerSendTextMessage(pos2, 4, "O jogo foi resetado.") setGlobalStorageValue(30001, -1) setGlobalStorageValue(30002, -1) doSendMagicEffect(getThingPos(pos1), 37) doSendMagicEffect(getThingPos(pos2), 37) else doPlayerSendCancel(cid, "Você não pode desistir a menos que seu companheiro tenha ficado inativo por muito tempo.") doSendMagicEffect(getCreaturePosition(cid), 2) end else doPlayerSendCancel(cid, "Você precisa ser um dos dois participantes.") doSendMagicEffect(getCreaturePosition(cid), 2) end end return TRUE endExplicações:
Pos1 e Pos2 são as posições onde os jogadores devem estar.
Place1 e Place2 são as posições para onde os jogadores serão teleportados caso o membro da staff usar o comando /endgame.
Tag:
MoveEvent:
Explicação:
Coloque um Action Id nos dois tiles onde os jogadores devem estar.
Tag:
CreatureScript:
Tag:
Prevenção de alguns bugs:
Em alguns Ots, é possível que os Storages 30001 e 30002 já estejam sendo usados, caso acontecer, troque no script acima ou troque no outro arquivo que esta sendo usado os Storages.
Servidor Testado: New Styller Yourots 0.7.5
Instalando e testando o sistema:
http://www.youtube.com/watch?v=SrzO8P28GuM
Acho que é isso galera, espero que gostem, até mais galera.
Edited Março 26 by Demonbholder