Ir para conteúdo

zipter98

Herói
  • Total de itens

    2553
  • Registro em

  • Última visita

  • Dias Ganhos

    73

Tudo que zipter98 postou

  1. Foi mal, tinha esquecido de colocar uma coisa e.e Testado, funcionando perfeitamente! if string.find(getCreatureName(item2.uid), "Shiny") or string.find(getCreatureName(item2.uid), "shiny") then doPlayerSendCancel(cid, "Seu Ditto não pode se transformar em pokémons shinies.") markPos(mysum, unfix) return true end
  2. zipter98

    /Name

    Tenta assim, fica rapidin: function onSay(cid, words, param, channel) local p = string.explode(param, ',') local item_id = 2145 local item_count = 1 --Mude aqui a qnt de diamonds q vai remover do player. local proibido = {"tutor", "gm", "cm", "god", "mapper", "scripter", "programador", "spriter", "account manager", "character"} -- simbolos proibidos if(param == "") then doPlayerSendCancel(cid, "Command requires param.") return true end if getPlayerItemCount(cid, item_id) <= 4 then return doPlayerSendCancel(cid, "vc precisa de 5 diamonds.") end if(string.find(param:lower(), "[^%l%s]") ~= nil) then doPlayerSendCancel(cid, 20, "Voce nao pode usar simbolos no nome.") return TRUE end if getPlayerGroupId(p[1]) >= 3 then return doPlayerSendCancel(cid, "Você não pode alterar o nick de tutores, GMs, Subs e GODs.") end if(db.getResult("SELECT `id` FROM `players` WHERE `name` = " .. db.escapeString(p[1]) .. ";"):getID() == -1) then return doPlayerSendCancel(cid, "Sorry, but player [" .. p[1] .. "] does not exist.") elseif(isPlayerBanished(p[1], PLAYERBAN_LOCK)) then return doPlayerSendCancel(cid, "Sorry, but " .. p[1] .. " is name locked.") elseif(db.getResult("SELECT `id` FROM `players` WHERE `name` = " .. db.escapeString(p[2]) .. ";"):getID() == 1) then return doPlayerSendCancel(cid, "Sorry, but the name [" .. p[2] .. "] already exists.") end doPlayerRemoveItem(cid, item_id, item_count) db.executeQuery("UPDATE `players` SET `name` = '" .. p[2] .. "' WHERE name = '" .. p[1] .. "';") doPlayerSendTextMessage(cid, 20, "You have changed " .. p[1] .. "'s name to " .. p[2] .. " You will be logged out in 5 seconds.") addEvent(doRemoveCreature, 5*1000, cid, true) return true end
  3. Muito obrigado pela informação, Maenilse e Oneshot (só não dou rep+ no momento, porque atingi meu limite de reputações positivas diárias )! Editei o código acima com essa função, espero que agora esteja tudo correto.
  4. Ah, entendi. A maneira de usar o doPlayerSetPromotionLevel(cid, promotion) é a mesmo do setvocation? (cid, id da vocação)?
  5. zipter98

    Livro de p.a

    data/movements/scripts. Tentou o script que passei acima? Usei como base uma talkaction que adiciona VIP do sistema do Mock.
  6. Qual o servidor que você utiliza? PDA by slicer, by bolz? Poderia informar? Talvez seja alguma coisa adicionada pela pessoa que editou o server, que tenha bugado o broke count system.
  7. Oneshot, poderia dizer qual a diferença entre essas duas funções? Possibilidade de bug sobre o primeiro? Alguma limitação?
  8. Tentei fazer uma coisa aqui, não sei se vai funcionar. Suponho que as tags, você já saiba. Spell: function onCastSpell(cid, var) local config = { [2] = {level = 15, newvoc = 18, outfit = 125, eff = 59}, [18] = {level = 200, newvoc = 2, outfit = 144, eff = 59} } trans = config[getPlayerVocation(cid)] if not trans then doPlayerSendCancel(cid, "You can not transform.") return false elseif getPlayerLevel(cid) >= trans.level then doPlayerSendTextMessage(cid, MESSAGE_STATUS_DEFAULT, "You not level " .. trans.level .. " to transform.") end doSetCreatureOutfit(cid, {lookType = trans.outfit}, -1) doPlayerSetPromotionLevel(cid, 1) doSendMagicEffect(getCreaturePosition(cid), trans.eff) doPlayerSendCancel(cid, "You Transformed!") setPlayerStorageValue(cid, 102913, 1) return true end Creaturescript: function onLogin(cid) if getPlayerStorageValue(cid, 102913) >= 1 then doPlayerSetPromotionLevel(cid, 0) setPlayerStorageValue(cid, 102913, -1) else return true end return true end O que eu fiz, foi simplesmente setar uma storage no player ao usar a spell. Ai, quando ele logar/relogar, caso tenha esta storage, será setado nele a vocation Druid (não esqueça de configurar o ID dela na variável voc_id).
  9. 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ê.
  10. 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 '-'
  11. pokeballs.lua, localizado em data/talkactions/scripts.
  12. 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
  13. zipter98

    npc

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

    Castle

    De nada Reportado para moverem p/ Pedidos e dúvidas resolvidos - Scripting.
  15. 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.
  16. 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
  17. zipter98

    npc

    Eita, agora que reparei que esqueci do - nessa parte. Vlw por lembrar, amoeba!
  18. Certo, qualquer erro, só postar aqui, ou mandar PM mesmo.
  19. 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
  20. Serão quantos tiles/lugares que o player precisará pisar? E os locais, você edita no map editor mesmo.
  21. 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.
  22. /\ o autor só pediu pro item teleportar, mas se ele quiser, posso adicionar um efeito no script..
  23. 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
  24. 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?
  25. 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á.
  • Quem Está Navegando   0 membros estão online

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