Ir para conteúdo

Skymagnum

Marquês
  • Total de itens

    1025
  • Registro em

  • Última visita

  • Dias Ganhos

    2

Tudo que Skymagnum postou

  1. Você achou a função de pegar a posição de um item? se sim favor passar.
  2. local moves = {0, 2, 1, 1, 3} for i = 1, #moves do addEvent(doMoveItem, i * 100, item.uid, moves[i]) end Então no caso moveria, pra cima, pra baixo, pra direita, pra direita, pra esquerda.
  3. function onAdvance(cid, skill, oldLevel, newLevel) local toPos = {x = x, y = y, z = z} if skill == 8 then if newLevel == 55 then if getPlayerStorageValue(cid, 367221) < 1 then addEvent(doTeleportThing, 2 * 1000, cid, toPos) doPlayerSendTextMessage(cid, 27, "You advanced to level 55 and now has been teleported.") setPlayerStorageValue(cid, 367221, 1) end end end return true end tag: <event type="advance" name="advanceLev" event="script" value="nome_do_script.lua"/> login.lua registerCreatureEvent(cid, "advanceLev") function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) local itemId, quant = 2160, 10 if isPlayer(cid) then if getPlayerStorageValue(cid, 327116) < 0 then doPlayerAddItem(cid, itemId, quant) doPlayerSendTextMessage(cid, 27, "You win " .. quant .. "x " .. getItemNameById(itemId) .. ".") setPlayerStorageValue(cid, 327116, 1) end end return true end <movevent type="StepIn" actionid="X" event="script" value="nome_do_script.lua"/>
  4. Na verdade a função não é difícil, o problema é que não sei nenhuma função que pegue a posição de um item, no mais é fácil. function doMoveItem(item, dir) local uidPos = pegarPosiçãoDoItem(item.uid) uidPos.stackpos = 253 local dirTab = { [0] = {x = uidPos.x, y = uidPos.y - 1, z = uidPos.z}, [1] = {x = uidPos.x + 1, y = uidPos.y, z = uidPos.z}, [2] = {x = uidPos.x, y = uidPos.y + 1, z = uidPos.z}, [3] = {x = uidPos.x - 1, y = uidPos.y, z = uidPos.z} } return doRemoveItem(getThingFromPos(uidPos)) and doCreateItem(item.itemid, 1, dirTab[dir]) end exêmplo function onUse(cid, item) return doMoveItem(item.uid, getCreatureLookDirection(cid)) and true end lembrando que a função não está terminada, se eu achar alguma função que pegue a posição de um item eu termino ela, a action é só um exêmplo. Norte = 0 Leste = 1 Sul = 2 Oeste = 3
  5. Para a magia durar mais você deve aumentar os números nessa linha: until seconds == 22000 só ir aumentando o 22000 até um resultado do seu gosto. Veja que para dar 22000 ele soltara os fogos 220 vezes: print(100 * 220) retorna 22000 então só aumenta os 22000 ali ;d.
  6. Não irá funcionar a função de teleport é exclusivamente para jogadores, se alguém souber uma função que pega a posição do item eu faço a função.
  7. Então, assim estaria correto: db.executeQuery("DELETE FROM `player_storage` WHERE `key` = " .. storage .." AND `player_id` = " .. getPlayerGUID(cid) ..";") ?
  8. Olá, gostaria de pedir uma query que deletasse a storage do player. Não quero uma que coloque a storage 1, 2, 3, 4 etc... quero uma que delete ela mesmo como se não existisse, tentei fazer mais deu erro.
  9. Galera promoção de natal / 2x exp prolongado até dia 15. Fotos do novo script do Fireworks Rocket. depois vou fazer outro.
  10. function onCastSpell(cid, var) local pos = getPosByDir(getCreaturePosition(cid), getCreatureLookDirection(cid),1) pos.stackpos = 253 if (isPlayer(getThingFromPos(pos).uid)) then player = getThingFromPos(pos).uid addEvent(doEmpurrePlayer, 1, cid, player, 1, getCreaturePosition(cid)) end doCombat(cid, combat6, var) addEvent(event7, 100, {id=cid, combat=combat1, var=var}) addEvent(event7, 200, {id=cid, combat=combat2, var=var}) addEvent(event7, 300, {id=cid, combat=combat3, var=var}) addEvent(event7, 400, {id=cid, combat=combat4, var=var}) addEvent(event7, 500, {id=cid, combat=combat5, var=var}) addEvent(event7, 600, {id=cid, combat=combat6, var=var}) return TRUE end usa esse onCastSpel, mais não esqueça de adicionar a função nas libs.
  11. Hum não sabia dessa valeu ai quando liberar rep eu te dou ;P.
  12. Oneshot, Caotic, acho que é também bom colocar pra verificar se cid é um player se for um monstro pode dar erro no distro.
  13. Sim eu sei oque ela faz só que já abre uma caixa de dialogo quando você clica em algum item que dá para escrever tem isso nas sources.
  14. function onTextEdit(cid, item, newText) doShowTextDialog(cid, item.itemid, newText) return true end Mais qual a finalidade disso cara?.
  15. Skymagnum

    ITEM AO MATAR

    Acho que é melhor colocar para verificar se o target é player também.
  16. Cara acho que vai dar erro porque o broadcastMessage está sem o 2 parâmetro que seta a cor da mensagem então use esse: function executeSave() broadcastMessage("Servidor salvo próximo salve em 2 horas.", 25) doSaveServer() end function onThink(interval, lastExecution, thinkInterval) broadcastMessage("Servidor será salvo em 5 segundos.", 25) addEvent(executeSave, 5 * 1000) return true end
  17. é amigo precisa tambem criar o script em movements/script se nao como vai funcionar se voce so tiver a tag e nao tiver o script. Você está errado nesses caso não precisa de script porquê na tag está event="function" então é uma função das sources do servidor.
  18. Cara while em tabela é meio zuado/podre for é bem mais fácil/limpo de trabalhar em tabelas.
  19. Testa aí, também coloquei uma verificação para que se o player deslogar durante o addEvent não aparecer erros no distro: local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_ENERGYDAMAGE) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 13) local combat2 = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_POISONDAMAGE) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 1) local combat3 = createCombatObject() setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_FIREDAMAGE) setCombatParam(combat, COMBAT_PARAM_DISTANCEEFFECT, 15) function onGetFormulaValues(cid, level, skill, attack, factor) return -(((skill + 25) / 3) + (level / 5)), -((skill + 25) + (level / 5)) end setCombatCallback(combat, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") function onEnergy(cid) if not isCreature(cid) then return true end doCombat(cid, combat, var) end function onPoison(cid) if not isCreature(cid) then return true end doCombat(cid, combat2, var) end function onFlame(cid) if not isCreature(cid) then return true end doCombat(cid, combat3, var) end function onCastSpell(cid, var) addEvent(onPoison, 300, cid) addEvent(onFlame, 600, cid) addEvent(onEnergy, 900, cid) addEvent(onPoison, 1200, cid) addEvent(onFlame, 1500, cid) end
  20. CARA PARA DE MIMIMI E VAI SE FUDER VLW FLW ABÇS
  21. Skymagnum

    Nao

    ORRA CARA REBELDI V1D4 L@K4
  22. Você é o mesmo cara que eu tenho no msn? eu joguei teu server no test quando nukaram ele e bugou teu pc, joao aki, server muito massa.
  23. Tipo: TalkActions & Lib. Testado: Não. @Oque Faz?. Bom você fala o comando /cmd storageN, limit aí mostra os players que tem essa storage em um rank em forma decrescente(do maior pro menor). @Instalando. Primeiramente vá na pasta do seu servidor depois entre na pasta data depois na lib e agora no arquivo 050 - function e adicione esse conteúdo lá: function doOrderStorageRank(cid, storageId, limit) -- by Skyforever/magnum str = " - [ ~ Rank da storage " .. storageId .. "! Nome do jogador - value da storage." result = db.getResult("SELECT `player_id`, `value` FROM `player_storage` WHERE `key` = ".. storageId .." ORDER BY `value` DESC;") if result:getID() < 1 then str = "/nNingúem tem essa storage." return true end count = 1 while true do str = str .."/n" .. count .. "º " .. getPlayerNameByGUID(result:getDataInt("player_id")) .. " - " .. result:getDataInt("value") .. "" count = count + 1 if not result:next() or count > limit then break end result:free() end doShowTextDialog(cid, 2160, str) end agora vá para a pasta talkactions agora entre na pasta scripts duplique um arquivo da extensão .lua e renomeie para RankStorage e adicione o seguinte conteúdo dentro: --[[ Rank Storage System v.1 Created by: Skyforever Contact: joao_xtibia85@hotmail.com version: 1.0 ]]-- function onSay(cid, words, param, channel) local T = string.explode(param, ",") if tonumber(T[1]) and tonumber(T[2]) then if tonumber(T[2]) < 50 then local maxLimite = tonumber(T[2]) doOrderStorageRank(cid, T[1], maxLimite) else maxLimite = 50 end else doPlayerSendCancel(cid, 27, "Only numbers.") end return true end agora vá em talkactions.xml e adicione essa tag: <talkaction words="!rankstorage" event="script" value="RankStorage.lua"/> é isso esperem que gostem. Qualquer bug, dúvida ou sugestão favor postem no tópico!.
  24. Porque ele deixou um espaço na ret ret = ret ..string.sub(n,0,1):upper()..string.sub(n,2).."AQUI" é só deixar assim ret = ret ..string.sub(n,0,1):upper()..string.sub(n,2)..""
  • Quem Está Navegando   0 membros estão online

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