'
'
que foda
EUHEUHUHE'
parabéens por mais um script perfeito ![]()
rep+
'
'
que foda
EUHEUHUHE'
parabéens por mais um script perfeito ![]()
rep+
info
Grupo: Colaborador
Registrado: 27/12/10
Posts: 271
Reputação: +87
Gênero: Masculino

Muito Loco Mano Rep+ :smile_positivo:
Hmm, excelente gosei por demais!
REP+ sistema inovador realmente!
info
Grupo: Herói
Registrado: 20/05/10
Posts: 3.4k
Reputação: +1.5k
Gênero: Masculino

criativo demon
achei cool *-*
tem meu rep haha
manda ve mlk
info
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: Demonbholder

Hm... criticas mais construtivas please. Ainda sim, obrigado pelos comentários.
Otimo script hehe muito bom
info
Grupo: Campones
Registrado: 03/12/07
Posts: 76
Reputação: +8
Char no Tibia: So Logo Para Mata

meu scrip muito bom velho rep+
info
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: Demonbholder

Como prometido, adicionado vídeo de demonstração do sistema e instalação.
info
Grupo: Conde
Registrado: 22/01/11
Posts: 691
Reputação: +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
Grupo: Artesão
Registrado: 15/11/09
Posts: 103
Reputação: +2
Char no Tibia: 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
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: 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
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: 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
Grupo: Infante
Registrado: 13/10/08
Posts: 1.6k
Reputação: +420
Char no Tibia: 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.
Editado Março 26 por Demonbholder