Ir para conteúdo

Demonbholder

Infante
  • Total de itens

    1551
  • Registro em

  • Última visita

  • Dias Ganhos

    24

Tudo que Demonbholder postou

  1. Oh meu deus, vai ser difícil te explicar... se esforça ao máximo para entender o que eu vou dizer abaixo: COMO FUNCIONA: O Jogador vai comprar vip, ai na próxima vez que ele entrar no jogo vai ter o nome e a vida e a mana aumentada ao dobro. Caso ele não seja mais vip e tiver o vip no nome, vai sair e a vida e mana vão ser dividas por dois para voltar ao normal. Quanto ao tile vip, deve ter um script de Movements para esse teleport já, poste-o e eu editarei.
  2. retired. Cola essa tag no CreatureScripts.xml: <event type="login" name="VipStats" event="script" value="NomeDoArquivo.lua"/> Na tag, onde diz NomeDoArquivo você coloca o nome do arquivo que você criou para colar o script acima. COMO FUNCIONA: O Jogador vai comprar vip, ai na próxima vez que ele entrar no jogo vai ter o nome e a vida e a mana aumentada ao dobro. Caso ele não seja mais vip e tiver o vip no nome, vai sair e a vida e mana vão ser dividas por dois para voltar ao normal.
  3. Seguinte, eu estou TENTANDO ver qual o seu sistema vip, mas está difícil. Você vai ter que me ajudar. Siga os passos a seguir: Qual o comando que se usa no seu server para comprar vip? Ok, se você sabe qual o comando que se usa para comprar vip, então vá em talkactions.xml e procure onde esta este comando, exatamente igual. Feito isso, veja o nome do script referente a este comando e poste-o. Segunda coisa: Vá em CreatureScripts.xml, ache o arquivo vip.lua e poste-o.
  4. Hm... interessante, _ferrari_ voltando a frequentar o fórum. Ta bom o tutorial, as formulas parecem ser boas também, até.
  5. Hm... criticas mais construtivas please. Ainda sim, obrigado pelos comentários.
  6. Oks, os dois ali em baixo já estão comprometidos, mas qualquer coisa to aqui :)
  7. Hm, pelo visto você tem mais de um sistema vip, deixe-me ver seu CreatureScripts.xml Se possível, poste o talkactions.xml para termos certeza.
  8. Estranho porque eu testei aqui e deu certo. Não, no script não é necessário o uid ou action id do item, somente na tag no actions.xml. Bom, tente assim: local pos = {x=, y=, z=, stackpos=1} -- posição onde deve ficar o corpo local pos2 = {x=, y=, z=, stackpos=1} -- posição onde fica a parede Onde stackpos, mude de 1 para 2. Se não funcionar, mude de 2 para 255. OBS: Espero que você tenha trocado onde diz ID_DA_PAREDE e ID_DO_CORPO.
  9. 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 end Explicaçõ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: <talkaction words="!start;!bet;!accept;!reject;!quitgame;/endgame;!endgame" script="NomeDoArquivo.lua" /> MoveEvent: function StepOut(cid, item, position, fromPosition) if getPlayerStorageValue(cid, 30001) > 0 then doTeleportThing(cid, fromPosition) else return TRUE end end Explicação: Coloque um Action Id nos dois tiles onde os jogadores devem estar. Tag: <movevent event="StepOut" actionid="Action ID" script="NomeDoArquivo.lua" /> CreatureScript: function onLogout(cid) if getPlayerStorageValue(cid, 30001) > 0 then doPlayerSendCancel(cid, "You can't logout while you are in a game.") return FALSE else return TRUE end end Tag: <event type="logout" name="Game" event="script" value="NomeDoArquivo.lua"/> 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.
  10. Você provavelmente tem um script de login referente a vip, poste-o. Ele deve se encontrar em CreatureScripts.
  11. SABE JÁ NÉ VODKINHA...
    hm.. na cama te esculacho kkkk
  12. hm... jogo tibia, mato... oh no
    ela não mente Vodkinha
  13. Coloca em actions, e usa essa tag: <action itemid="7760" event="script" value="nome_do_arquivo.lua"/>
  14. Eu mesmo já atendi um pedido assim aqui. function onUse(cid, item, fromPosition, itemEx, toPosition) if itemEx.itemid == 2342 then doTransformItem(itemEx.uid, 2343) doRemoveItem(item.uid, 1) end return TRUE end tenta ai.
  15. Ficou ótimo cara, não posso mais dar rep+ hoje, mas com certeza tem o meu garantido.
  16. é a bíblia dos scripts. esses scripts de pokemon são um absurdo de grandes mesmo.
  17. É, mas se ele pedir algo de novo, e alguém pedir pra ele substituir o login.lua por um outro, o script não irá mais funcionar, por isso não é aconselhável colocar no login.lua mesmo. @Topic Vou reportar para moverem.
  18. É mesmo, tinha esquecido da tag, valeu. Só uma coisa, não precisa adicionar no login.lua quando o script é onLogin.
  19. Pronto, testa agora. function onLogin(cid) local temple = {x=, y=, z=} if getPlayerStorageValue(cid, 13540) - os.time() < 1 and getPlayerStorageValue(cid, 13540) ~= -1 then setPlayerPromotionLevel(cid, 0) doTeleportThing(cid, temple) setPlayerStorageValue(cid, 13540, -1) end return TRUE end
  20. Demonbholder

    Como Criar Quest

    Acho que isso quer dizer que funcionou, vou reportar para moverem.
  21. Não testei: function onUse(cid, item) local pos = {x=, y=, z=, stackpos=1} -- posição onde deve ficar o corpo local pos2 = {x=, y=, z=, stackpos=1} -- posição onde fica a parede local tempo = 10 -- tempo em segundos if getThingFromPos(pos).itemid == ID_DO_CORPO and getThingFromPos(pos2).itemid == ID_DA_PAREDE then doRemoveItem(getThingFromPos(pos2).uid, 1) doRemoveItem(getThingFromPos(pos).uid, 1) addEvent(doCreateItem, tempo*1000, ID_DA_PAREDE, 1, pos2) else doPlayerSendCancel(cid, "Você precisa colocar o corpo do animal em cima do tile.") end end
  22. Demonbholder

    Como Criar Quest

    Põe uma actionid no baú pelo mapeditor. Depois adiciona isso em actions.xml <action actionid="AID" event="script" value="NomeDoArquivo.lua"/> É isso, até.
  23. O Vodkart deu uma saída e pediu para mim passar esse script pra ti. Créditos: Vodkart NomeDoSeuScript.lua function onStepIn(cid, item, position, fromPosition) local b = { posx = 217,toposx = 223, -- começo e final da sala em y posy = 34,toposy = 65 -- começa e final da sala em y } for pos_x = b.posx,b.toposx do for pos_y = b.posy,b.toposy do Check = getThingfromPos({x=pos_x, y=pos_y, z=7, stackpos=253}).uid if isMonster(Check) then doRemoveCreature(Check) return TRUE end end end end Põe um actionid pelo mapEditor no tile, e adiciona esta tag no Movements.xml: <movevent event="StepIn" actionid="AID" script="NomeDoSeuScript.lua" /> Onde está AID você coloca o mesmo número de actionid que você colocou no tile pelo mapEditor.
  • Quem Está Navegando   0 membros estão online

    • Nenhum usuário registrado visualizando esta página.
×
×
  • Criar Novo...