Ir para conteúdo
  • Cadastre-se

xWhiteWolf

Héroi
  • Total de itens

    3604
  • Registro em

  • Última visita

  • Dias Ganhos

    158

Tudo que xWhiteWolf postou

  1. logico que deu erro cara, vc não leu nada doque eu te falei? o script não tá completo, é só a logica que a pessoa que for te ajudar tem que seguir.. eu não sei como fazer pra voltar de uma forma que não bugue, mas enfim, o erro é aqui: -- storage que vai salvar a posição do target (isso é possível?) tira o (isso é possível?)
  2. olha cara, eu pensei em várias coisas mas a maioria delas vai bugar o seu servidor, então eu decidi fazer uma coisa que eu nunca fiz antes (e não sei se é possível) que foi salvar a posição num storage. Caso isso funcione, só vai faltar a função teleportback que eu não consegui pensar em como fazer mas em todo caso vou disponibilizar o script pra quem for tentar te ajudar: Nota 1: Não usem "for" na área teleportada pra encontrar o player porque se mais de um player usar essa magia ao mesmo tempo corre o risco dos targets serem trocados local combat = createCombatObject() local conf
  3. I could try to help you further if you post the scripts and explain what is this that you're talking about. It's a script on the server or some editing at sources?
  4. Nossa mano, que lógica mais fodenda mas tipo, oque fodeu minha mente mesmo foi isso daqui: local amuleto_novo = amuletos[lower_lvls[#lower_lvls]] table amuletos[table de lower_lvls[tamanho do ultimo lower_lvls(que no caso seria o maior, ou seja, o anterior ao meu)]] Eu nunca tinha visto esse tipo de lógica, vou até colocar nos favoritos aqui pra tentar utilizar depois auhauhauh tableception
  5. não entendi essa segunda parte, seria pros players já criados no server terem seus amuletos atualizados?
  6. ele quis dizer que os players conseguem subir em cima dos baús, se ele colocar o item atrás do baú de mostruário dá pros players roubarem. Ele quer saber como fazer para que os players não consigam subir em cima do baú.
  7. que otserv é o seu, o meu é 8.45, usa o meu reload: local reloadInfo = { {RELOAD_ACTIONS, "actions", "action"}, {RELOAD_CHAT, "chat", "channels"}, {RELOAD_CONFIG, "config", "configuration"}, {RELOAD_CREATUREEVENTS, "creatureevents", "creature events", "creaturescripts", "creature scripts", "creatureevent", "creature event", "creature script", "creaturescript"}, {RELOAD_GAMESERVERS, "gameservers", "game servers", "servers"}, {RELOAD_GLOBALEVENTS, "globalevents", "global events", "globalevent", "global event"}, {RELOAD_GROUPS, "groups", "playergroups", "group"}, {RELOAD_HIGHSCORES, "highsc
  8. bater muito forte é uma frase muito abrangante, um monte de gente me pede ajuda pra balancear classes mas o balanceamento não é dado somente pelo vocations.xml e sim de uma série de fatores que eu vou listar abaixo na ordem de importancia: 1) Spells - Certifique de que caso você faça magia novas, atente-se às formúlas para não acabar tornando uma classe muito OP e procure sempre que criar uma magia, criar outras pra outras classes e tentar manter o balanceamento 2) Vocations.xml - Aqui você pode alterar o ataque speed, o quão rápido sobe a skill de cada classe, quanto de vida ganha.. não faça
  9. /reload funciona apenas para certos tipos de arquivos: Spells, movements, actions, npc e deve ter mais algum que funcione.. os outros só abrindo e fechando o server mesmo.
  10. acho q é só mudar a frase pelo parametro <talkaction words="!afk;/afk" script="afk.lua" /> local function doSendAutoMessage(cid, pos) if (isCreature(cid) == true) then npos = getThingPos(cid) if (pos.x == npos.x) and (pos.y == npos.y) and (pos.z == npos.z) then doSendAnimatedText(pos, param) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) addEvent(doSendAutoMessage, 2*1000, cid, npos) end end end function onSay(cid, words, param) pos = getThingPos(cid) doSendAnimatedText(pos, param) doSendMagicEffect(getThingPos(cid), CONST_ME_MAGIC_BLUE) doCreatureSay(cid, "AFK: "..param.."
  11. acabei esquecendo desse post aqui: function onKill(cid, target, lastHit) local monster = "Zombie" -- nome do zombie local storage = 78956 -- deixa o mesmo storage pra todos os zombies, daí o final do script vai ser pegar o valor desse storage de cada player local points = 1 -- qnts pontos vai dar if isPlayer(cid) and getCreatureName(target) == monster then setPlayerStorageValue(cid, storage, getPlayerStorageValue(cid,storage)+points) return true end end em creaturescripts.xml <event type="kill" name="zombie1" event="script" value="zombie1.lua"/> coloca no arquivo xml do monstro qu
  12. eu tinha visto os erros e corrigido no meu script mas esqueci de avisar aqui: local amuletos = { [1] = 7887, [2] = 7888, [5] = 7889, [7] = 7890, [10] = 2129, [13] = 2130, [16] = 2131, [20] = 2132, [25] = 2133, [30] = 2134, [35] = 2135 } function onAdvance(cid, skill, oldlevel, newlevel) if skill == 8 and amuletos[newlevel] then doTransformItem(getPlayerSlotItem(cid, CONST_SLOT_NECKLACE).uid, amuletos[newlevel]) doPlayerSendTextMessage(cid, 22, "You received "..getItemNameById(amuletos[newlevel]).." for reaching level "..newlevel..".")
  13. valeu mesmo pela explicação cara, ajudou muito!
  14. <movevent type="StepOut" itemid="12165" event="script" value="closingdoor.lua"/> pelo menos no meu servidor o nome do script em movements que fecha a porta se chama closingdoor.lua e tem isso daqui dentro dele:
  15. é só editar as áreas: e no final vc muda quantas vezes vc quer que isso aconteça e de quanto em quanto tempo: addEvent(onCastSpell1, 500, parameters) -- faz a area 1 em 0,5 segundo addEvent(onCastSpell2, 700, parameters) -- faz a area 2 em 0,7 segundo, 0,2 segundo a mais que a anterior addEvent(onCastSpell3, 900, parameters) -- . addEvent(onCastSpell4, 1200, parameters)-- . addEvent(onCastSpell5, 1300, parameters)-- . addEvent(onCastSpell6, 1500, parameters)-- . addEvent(onCastSpell7, 1700, parameters)-- . addEvent(onCastSpell8, 1800, parameters) -- fa
  16. ficou bem melhor assim mesmo, eu não parei pra pensar que o amuleto é irremovível e que era muito mais fácil transformar >.>, só uma pergunta max, if skill == 8 and amuletos[newlevel] then ele vai substituir meu amuleto antigo pelo amuleto novo sempre que a table amuletos[meu level novo] existir? então nesse caso o valor amuletos[10] seria o valor da table quando meu nivel for 10? Achei que amuletos[10] retornava o décimo valor da minha table que no caso seria [30]= 2134
  17. o pessoal não pode fechar o tópico mas você pode: Clique em "Melhor Resposta" e obrigado pelo REP
  18. testa assim local voc20 = local voc21_40 = local voc41 = local strg = 84849 local cap = {20, 21, 40, 41} function onEquip(cid, item, slot) local check = getItemWeight(item, 1) local save = getPlayerVocation(cid) setPlayerStorageValue(cid, strg, save) if check < cap[1] then doPlayerSetVocation(cid, voc20) doPlayerSendTextMessage(cid, 20, "Parabens, sua vocacao mudou para ".. getPlayerVocationName(cid) ..".") elseif check >= cap[2] and check <= cap[3] then doPlayerSetVocation(cid, voc21_40) doPlayerSendTextMessage(cid, 20, "Par
  19. essa é a lógica: local contagem = 0 local pos = {XXX, YYY, Z} -- posição do templo for absice = nxp, pxp do for coordinate = nyp, pyp do for distance = nzp, pzp do local pos = {x = absice, y = coordinate, z = distance, stackpos = 253} local thing = getThingfromPos(pos) if isPlayer(thing.uid) then contagem = contagem +1 end end end end while contagem >= 4 -- numero de players do else for absice = nxp, pxp do for coordinate = nyp, pyp do for distance = nzp, pzp do local pos = {x = absice, y = coordinate, z = distance, stackpos = 253}
  20. sim, é só desenhar as areas e colocar addEvent... segue esse exemplo aqui: local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 17) setCombatFormula(combat1, COMBAT_FORMULA_LEVELMAGIC, -4, -70, -3, -90, 2, 2, 1, 4) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, 17) setCombatFormula(combat2, COMBAT_FORMULA_LEVELMAGIC, -4, -70, -3, -90, 2, 2, 1, 4) local combat3 = createCombatObject() setCombatPa
  21. toda vez que vc quiser uma magia que caia do céu vc pode se basear no meteor cast que o jovial deixou pra nós, esse é um exemplo da magia editada um pouquinho: local water = {490, 491, 492, 493} local combat = createCombatObject() local meteor = createCombatObject() setCombatParam(meteor, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(meteor, COMBAT_PARAM_EFFECT, 43) setCombatFormula(meteor, COMBAT_FORMULA_LEVELMAGIC, -9.0, -30, -10.0, 4) local stun = createConditionObject(CONDITION_PARALYZE) setConditionParam(stun, CONDITION_PARAM_TICKS, 5000) setConditionFormula(stun, -
  22. faça um quadrado mentalmente cuja as diagonais sejam as posições abaixo local areaPosition = { {x=32705, y=32342, z=7, stackpos = 255}, {x=32726, y=32358, z=7, stackpos = 255} } a arvore não pode estar dentro desse quadrado. Então ou vc diminui o quadrado ou vc coloca a arvore pra fora dele.
  23. sim, os Id's ficam exatamente assim. O erro na linha 13 tá pedindo == no lugar de só =, vc editou alguma coisa, porque a linha 13 aqui é essa: [25] = {id = }, OBS: Não sei se vai funcionar porque eu não manjo dessas tables compostas: config = { [5] = {id = 7887}, [10] = {id= 7888}} nesse caso o config[1].id seria 7887 por ser o primeiro item da table ou o config[5].id que seria o 7887?? Se alguém souber me responder eu posso arrumar o script pra fazer ele funcionar 100% ​ EDIT: fiz uns testes e arrumei uns bugs que tavam dando, infelizmente o script ainda não tá funcionando mas a ló
  24. abra o xml do monster em questão e procure por isso: <flag attackable="1"/> mude pra <flag attackable="0"/>
×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo