Ir para conteúdo

zipter98

Herói
  • Total de itens

    2553
  • Registro em

  • Última visita

  • Dias Ganhos

    73

Tudo que zipter98 postou

  1. Seria, simplesmente, um NPC que retira um único item x do player e adiciona 25 de outro item? Ou nesse NPC teria vários outros items, sendo uma espécie de Mark? Estou indo para o curso de inglês agora, na volta, se ninguém tiver te ajudado ainda, tentarei fazer o NPC para você.
  2. zipter98

    Ak-Gold

    Sobre "unir" os scripts, você quer dizer algo assim? Não entendi direito e.e local ak_chumbo = 2171 -- id da sua ak-47 de chumbo local ak_bullets = 2170 -- id da sua ak-47 de bullets function onSay(cid, words, param) if(words == "!ak bullet") then if getPlayerItemCount(cid, ak_bullets) >= 1 then doPlayerRemoveItem(cid, ak_bullets, 1) doPlayerAddItem(cid, ak_chumbo, 1) doPlayerSendTextMessage(cid, 25,"Transformou sua AK-47 de bullets para chumbo.") else doPlayerSendTextMessage(cid, 25,"Voce nao tem a AK-47 de bullets.") end end if(words == "!ak chumbo") then if getPlayerItemCount(cid, ak_chumbo) >= 1 then doPlayerRemoveItem(cid, ak_chumbo, 1) doPlayerAddItem(cid, ak_bullets, 1) doPlayerSendTextMessage(cid, 25,"Transformou sua AK-47 de chumbo para bullets.") else doPlayerSendTextMessage(cid, 25,"Voce nao tem a AK-47 de chumbo.") end end return true end Ou assim? Dessa última maneira, deverá ser setado no player, ao equipar uma munição pela primeira vez, a storage correspondente a munição, para poder trocar de munição com a talkaction abaixo. local ak_chumbo = 2171 -- id da sua ak-47 de chumbo local ak_bullets = 2170 -- id da sua ak-47 de bullets function onSay(cid, words, param) local storage_chumbo = xxx --storage do chumbo local storage_bullet = xxx --storage do bullet if getPlayerStorageValue(cid, storage_chumbo) == 0 and getPlayerStorageValue(cid, storage_bullet) == 0 then return doPlayerSendTextMessage(cid, 27, "Equipe uma munição, primeiramente!") end if getPlayerStorageValue(cid, storage_chumbo) >= 1 then doPlayerRemoveItem(cid, ak_chumbo, 1) doPlayerAddItem(cid, ak_bullets, 1) doPlayerSendTextMessage(cid, 25,"Transformou sua AK-47 de chumbo para bullets.") setPlayerStorageValue(cid, storage_chumbo, -1) setPlayerStorageValue(cid, storage_bullet, 1) elseif getPlayerStorageValue(cid, storage_bullet) >= 1 then doPlayerRemoveItem(cid, ak_bullets, 1) doPlayerAddItem(cid, ak_chumbo, 1) doPlayerSendTextMessage(cid, 25,"Transformou sua AK-47 de bullets para chumbo.") setPlayerStorageValue(cid, storage_bullet, -1) setPlayerStorageValue(cid, storage_chumbo, 1) end return true end Fiz rapidinho esses códigos, talvez tenha algo errado '-'
  3. pokeballs.lua, localizado em data/talkactions/scripts.
  4. Em order.lua [actions], adicione, abaixo do doPlayerSendCancel(cid, "Your ditto is not transformed.") markPos(mysum, unfix) return true end Isso: if string.find(item2.uid, "Shiny") or string.find(item2.uid, "shiny") then doPlayerSendCancel(cid, "Seu Ditto não pode se transformar em pokémons shinies.") markPos(mysum, unfix) return true end
  5. zipter98

    npc

    Eu pensava que ambos serviam para players, valeu pela informação \o
  6. zipter98

    Castle

    De nada Reportado para moverem p/ Pedidos e dúvidas resolvidos - Scripting.
  7. zipter98

    Castle

    Você poderia postar aqui o script que teleporta o player para o castle? Neste, o player recebe um "valor", que, com ele, poderá criar condições (como uma utilizada em meu comentário anterior), até que este valor seja retirado do jogador. Realmente, não sou bom com explicação, tente descobrir qual o código que teleporta (provável) o jogador para o castelo. Para adicionar/registrar esses códigos que passei, faça o seguinte: Vá em data/creaturescripts/scripts, copie e cole um arquivo com extensão .lua qualquer desta pasta, delete todo o conteúdo. Depois, adicione nele o código que passei. Feito isso, vá em data/creaturescripts e abra o arquivo creaturescripts.xml. Nele, você verá várias "tags", como, por exemplo: <event type="look" name="LookSystem" event="script" value="look.lua"/> Neste arquivo, você deve adicionar a seguinte tag: <event type="preparedeath" name="Nome do arquivo (para registrar depois no login.lua)" event="script" value="nome do arquivo.lua criado (como expliquei acima).lua"/> Salve então o arquivo. Após ter criado o arquivo.lua e colocado a tag no creaturescripts.xml, vá em data/creaturescripts/scripts, e abra o arquivo login.lua. Lá, procure pela parte que terá vários semelhantes a esses: registerCreatureEvent(cid, "EffectOnAdvance") registerCreatureEvent(cid, "GeneralConfiguration") registerCreatureEvent(cid, "SaveReportBug") registerCreatureEvent(cid, "LookSystem") Após o último registro de creatureevent, pule uma linha e coloque isso (ou coloque entre eles, isso você decide): registerCreatureEvent(cid, "Nome do arquivo que você colocou na tag em actions.xml") Como eu disse, não sou muito bom em explicações, mas espero que você tenha entendido um pouco sobre o que fazer.
  8. zipter98

    Castle

    Tirei como base um script que achei por ae no fórum. Se quiser tentar: function onPrepareDeath(cid, lastHitKiller, mostDamageKiller) local storage_castle = xxx --Storage que o player recebe ao entrar no castelo. if isPlayer(cid) and getPlayerStorageValue(cid, storage_castle) >= 1 then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doCreatureAddHealth(cid, getCreatureMaxHealth(cid), 65535, 256, true) doCreatureAddMana(cid, getCreatureMaxMana(cid)) doRemoveConditions(cid, false) return false end return true end E tem esse também '-' function onPrepareDeath(cid, lastHitKiller, mostDamageKiller) local storage_castle = xxx --Storage do castle. if isPlayer(cid) and getPlayerStorageValue(cid, storage_castle) >= 1 then doCreatureSetDropLoot(cid, false) doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doCreatureAddHealth(cid, getCreatureMaxHealth(cid) + 65500, true) end return true end
  9. zipter98

    npc

    Eita, agora que reparei que esqueci do - nessa parte. Vlw por lembrar, amoeba!
  10. Certo, qualquer erro, só postar aqui, ou mandar PM mesmo.
  11. Fiz bem rapidinho um aqui, como se fossem seis tiles. Se forem tiles diferentes, na tag, você separa os actions ids dos tiles com um ";". Por exemplo: <movevent type="StepIn" actionid="33799;33800;33808" event="script" value="test.lua"/> Assim, os tiles 33799, 33800 e 33808 irão "aplicar" o script test.lua. Código: function onStepIn(cid, item, position, fromPosition) local storage = xxx --Storage. local pos = {x = xxx, y = yyy, z = zzz} --Pos para onde será teleportado. if getPlayerStorageValue(cid, storage) >= 7 then return true end if getPlayerStorageValue(cid, storage) == 6 then doTeleportThing(cid, pos) doSendMagicEffect(getThingPos(cid), 35) setPlayerStorageValue(cid, storage, getPlayerStorageValue(cid, storage) + 1) end setPlayerStorageValue(cid, storage, getPlayerStorageValue(cid, storage) + 1) doSendMagicEffect(getThingPos(cid), 32) return true end
  12. Serão quantos tiles/lugares que o player precisará pisar? E os locais, você edita no map editor mesmo.
  13. edit: já vi o que é, ignorem meu comentário anterior (antes do edit) Recomendo fazer o que o snix disse, mais fácil e você vê o sistema "ao vivo", digamos assim.
  14. /\ o autor só pediu pro item teleportar, mas se ele quiser, posso adicionar um efeito no script..
  15. zipter98

    npc

    Tenta assim o NPC: --O npc, após teleportar o player, some. O tile de dano, eu não tenho certeza se vai funcionar, fiz rapidinho aqui. data/globalevents/scripts Tag, antes de tudo: <globalevent name="nome desse globalevent" interval="intervalo da execução do script" script="arquivo.lua" /> E, o script: function onThink(cid, interval, lastExecution) local posis = {{x = xxx, y = yyy, z = zzz}, {x = xxx, y = yyy, z = zzz}, {x = xxx, y = yyy, z = zzz}, {x = xxx, y = yyy, z = zzz}} --Edite aqui as posições dos tiles. local cfg = { eff_one = xxx, --Efeito que irá aparecer no tile de dano após os dois segundos. eff_two = xxx, --Efeito que irá aparecer nos tiles de dano. } function dmg(cid) doCreatureAddHealth(cid, getCreatureHealth(cid)/2) doSendMagicEffect(i, cfg.eff_one) end for a, i in ipairs(posis) do doSendMagicEffect(i, cfg.eff_two) if isInArray(i, getThingPos(cid)) then addEvent(dmg, 2000) end end return true end
  16. zipter98

    npc

    Quais as posições dos tiles, por favor? E quantos são? E a quantidade de monstros que devem ser mortos para o player ser teleportado ao CP? E quais são estes monstros? Porygon e Porygon2? EDIT: O tile que você se refere é tipo o do CW da PxG, né? Se for, o script será assim +-, né: A cada x tempo, em alguns tiles, aparecerá um efeito que, depois de dois segundos após a execução deste efeito, o player que estiver no local em que o efeito foi "soltado", tomará uma x quantia de hit na life, certo?
  17. Já tentou analisar o bug do surf com um client normal? Normal que eu digo, é o base que vem ao baixar o PDA. Talvez o erro seja proveniente de alguma coisa de seu client personalizado (TALVEZ). Ou, caso o que disse acima não funcione, poste seu surf.lua. Quem sabe o erro seja lá.
  18. Você deve ter feito alguma coisa errada, então. Porque eu testei aqui, e funcionou perfeitamente. Fez um arquivo.lua com aquele conteúdo que mandei, e colocou a tag no actions.xml? (Sobre o arquivo lua, recomendo copiar um outro com a mesma extensão, colar na pasta actions/scripts, deletar todo o conteúdo e colocar o que mandei.) #EDIT: Esqueci de complementar no meu comentário anterior que o arquivo.lua deve ser colocado em data/actions/scripts, e não data/actions. Se você fizer TUDO corretamente, e ainda assim não funcionar, tente com outro item. (não esqueça de mudar a tag, em actions.xml.)
  19. Tem esses dois tutoriais que achei, se quiser dar uma olhada: http://www.xtibia.com/forum/topic/185601-mini-tuto-strings-e-maths/ http://www.xtibia.com/forum/topic/219153-aula-3-operadores-e-bibliotecas/ Não há exemplos usando strings, pelo que vi, mas há a explicação sobre eles.
  20. Crie um arquivo.lua na pasta actions, com o nome de teleportitem, e coloque nele o seguinte conteúdo: function onUse(cid, item, frompos, item2, topos) local pos = {x=1059, y=904, z=7} doTeleportThing(cid, pos) return true end Em actions.xml, coloque a seguinte tag: <action actionid="2260" event="script" value="teleportitem.lua"/>
  21. zipter98

    npc

    Esses tiles que o player pisa, são em posições específicas, ou randômicas? Sobre o primeiro pedido, poderia informar quantos monstros o player precisa matar? E quais são? E se o player morrer, poderá fazer a quest novamente?
  22. zipter98

    Livro de p.a

    Suponho que seu vip system seja o do Mock. Tenta dessa maneira: function onUse(cid, item, fromPosition, itemEx, toPosition) local vip_days = 30 --Coloque aqui os dias vip que irá receber. doPlayerAddVipDays(cid, vip_days) doRemoveItem(item.uid, 1) doPlayerSendTextMessage(cid, 19, "Você ganhou "..vip_days.." dias de VIP.") doSendMagicEffect(getCreaturePosition(cid), 51) return true end
  23. zipter98

    Livro de p.a

    Lol, o do KluiMaster tá certin, wtf Mylorc, qual seu sistema de VIP?
  24. Um action id que não esteja em uso em seu servidor. Depois, só editar no map editor.
  25. De nada xD Reportado p/ moverem.
  • Quem Está Navegando   0 membros estão online

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