Ir para conteúdo

xWhiteWolf

Héroi
  • Registro em

  • Última visita

Tudo que xWhiteWolf postou

  1. depois de vc editar o script obviamente que ele não vai funcionar da forma que deveria né... haha ele cura você independente da distancia e cura todos da party que estejam dentro da area. Se quiser que só cure o cid se tiver dentro da area também deixa assim (troca só do else pra baixo): else if getDistanceBetween(getCreaturePosition(cid), getCreaturePosition(master)) < config.area then doCreatureAddHealth(master, config.health) doCreatureAddMana(master, config.mana) doSendAnimatedText(getCreaturePosition(master), "+"..config.health, 18) doSendMagicEffect(getCreaturePosition(master), config.effectheal) end end end return true end Eu não tinha feito isso antes pq pela lógica o summon te segue então não teria a necessidade de fazer uma checagem dessas.
  2. faz as duas numa só igual eu falei e ao invés de colocar retorn = tal coisa vc coloca só todos os combats local function onCastSpell1(parameters) doCombat(parameters.cid, parameters.combat1, parameters.var) end local function onCastSpell2(parameters) doCombat(parameters.cid, parameters.combat2, parameters.var) end local function onCastSpell3(parameters) doCombat(parameters.cid, parameters.combat3, parameters.var) end local function onCastSpell4(parameters) doCombat(parameters.cid, parameters.xcombat1, parameters.var) end local function onCastSpell5(parameters) doCombat(parameters.cid, parameters.xcombat2, parameters.var) end local function onCastSpell6(parameters) doCombat(parameters.cid, parameters.xcombat3, parameters.var) end function onCastSpell(cid, var) local parameters = { cid = cid, var = var, xcombat1 = xcombat1, xcombat2 = xcombat2, xcombat3 = xcombat3, combat1 = combat1, combat2 = combat2, combat3 = combat3} if getPlayerStorageValue(cid, config.storageativ) == 1 thenaddEvent(onCastSpell1, 100, parameters) addEvent(onCastSpell2, 500, parameters) addEvent(onCastSpell3, 600, parameters) else addEvent(onCastSpell4, 100, parameters) addEvent(onCastSpell5, 500, parameters) addEvent(onCastSpell6, 600, parameters) end return true end Espero que ajude.
  3. xWhiteWolf postou uma resposta no tópico em Monsters, NPC, Raids & Mounts
    @Cook, salva uma string num storage e dps printa ela pra ver oque sai no console... Se aparecer a mensagem salva significa que o seu server aceita string em storage, se não aparecer nada daí pode ser um problema (tem que passar a tabela pro creaturescripts e salvar só o index da tabela e o tipo de tabela que vai procurar no script do npc)
  4. xWhiteWolf postou uma resposta no tópico em Scripts tfs 0.4 (OLD)
    até daria mas vc teria que ficar fazendo addEvent pra executar toda a magia, oque poderia dar lag e causar alguns bugs caso players usassem mais de uma vez uns nos outros. Eu criei uma própria função Taunt, semelhante ao charm do League of Legends que obriga o player a andar até você por alguns segundos e em breve estarei liberando.
  5. o vídeo ficou uma bosta e não dá pra enxergar onde começa e onde termina mas em todo caso eu fiz essa função aqui que deve funcionar da forma que vc quer function loopEffect(uid, effect, tempo) local pos = getCreaturePosition(uid) local effectPositions = { [1] = {x = pos.x - 1, y = pos.y - 1, z = pos.z, stackpos = 0}, [2] = {x = pos.x, y = pos.y - 1, z = pos.z, stackpos = 0}, [3] = {x = pos.x + 1, y = pos.y - 1, z = pos.z, stackpos = 0}, [4] = {x = pos.x + 1, y = pos.y, z = pos.z, stackpos = 0}, [5] = {x = pos.x + 1, y = pos.y + 1, z = pos.z, stackpos = 0}, [6] = {x = pos.x, y = pos.y + 1, z = pos.z, stackpos = 0}, [7] = {x = pos.x - 1, y = pos.y + 1, z = pos.z, stackpos = 0}, [8] = {x = pos.x - 1, y = pos.y, z = pos.z, stackpos = 0}, [9] = {x = pos.x, y = pos.y, z = pos.z, stackpos = 0} } doSendDistanceShoot(effectPositions[math.random(#effectPositions)], effectPositions[math.random(#effectPositions)], effect) addEvent(function() if isCreature(uid) then loopEffect(uid, effect, tempo) end end, 1000 * tempo) return true end só colocar ela no final de data\lib\constant.lua e no script que vc quiser que adicione ela você coloca essa linha: loopEffect(cid, 18, 0.3)
  6. substitui o script por esse daqui.. --[[Script made 100% by Nogard and Night Wolf. You can feel free to edit anything you want, but don't remove the credits]] local config = { minlevel = 150, --- level inical para resetar price = 10000, --- preço inicial para resetar newlevel = 20, --- level após reset priceByReset = 0, --- preço acrescentado por reset percent = 100, ---- porcentagem da vida/mana que você terá ao resetar (em relação à sua antiga vida total) levelbyreset = 0 --- quanto de level vai precisar a mais no próximo reset } --- end config function addReset(uid) resets = getResets(uid) setPlayerStorageValue(uid, 378378, resets+1) doTeleportThing(uid, getTownTemplePosition(getPlayerTown(uid))) local hp = getCreatureMaxHealth(uid) local resethp = hp*(config.percent/100) setCreatureMaxHealth(uid, resethp) local differencehp = (hp - resethp) doCreatureAddHealth(uid, -differencehp) local mana = getCreatureMaxMana(uid) local resetmana = mana*(config.percent/100) setCreatureMaxMana(uid, resetmana) local differencemana = (mana - resetmana) doCreatureAddMana(uid, -differencemana) doRemoveCreature(uid) local description = resets+1 db.executeQuery("UPDATE `players` SET `description` = ' [Reset: "..description.."]' WHERE `players`.`id`= ".. playerid .."") db.executeQuery("UPDATE `players` SET `level`="..config.newlevel..",`experience`= 0 WHERE `players`.`id`= ".. playerid .."") return true end function getResets(uid) resets = getPlayerStorageValue(uid, 378378) if resets < 0 then resets = 0 end return resets end local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} function onCreatureAppear(cid) npcHandler:onCreatureAppear(cid) end function onCreatureDisappear(cid) npcHandler:onCreatureDisappear(cid) end function onCreatureSay(cid, type, msg) npcHandler:onCreatureSay(cid, type, msg) end function creatureSayCallback(cid, type, msg) if(not npcHandler:isFocused(cid)) then return false end local talkUser = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid local newPrice = config.price + (getResets(cid) * config.priceByReset) local newminlevel = config.minlevel + (getResets(cid) * config.levelbyreset) if msgcontains(msg, 'reset') then if getResets(cid) == resets then selfSay('You want to reset your character? It will cost '..newPrice..' gp\'s!', cid) talkState[talkUser] = 1 else selfSay('I couldnt acess your bank of acess!', cid) end elseif(msgcontains(msg, 'yes') and talkState[talkUser] == 1) then if getPlayerMoney(cid) < newPrice then selfSay('Its necessary to have at least '..newPrice..' gp\'s for reseting!', cid) elseif getPlayerLevel(cid) < newminlevel then selfSay('The minimum level for reseting is '..newminlevel..'!', cid) else doPlayerRemoveMoney(cid,newPrice) playerid = getPlayerGUID(cid) addEvent(addReset, (5*1000), cid) local number = getResets(cid)+1 local msg ="---[Reset: "..number.."]-- You have reseted! You'll be disconnected in 5 seconds." doPlayerPopupFYI(cid, msg) talkState[talkUser] = 0 end talkState[talkUser] = 0 elseif(msgcontains(msg, 'no')) and isInArray({1}, talkState[talkUser]) == TRUE then talkState[talkUser] = 0 selfSay('Ok.', cid) elseif msgcontains(msg, 'quantity') then selfSay('You have a total of '..getResets(cid)..' reset(s).', cid) talkState[talkUser] = 0 end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) obrigado por avisar, vou arrumar o tópico principal tb
  7. trabalha com uma dessas checagens http://www.lua.org/pil/22.1.html
  8. vc acabou de dizer a função o.O getItemText(uid)
  9. ^ acho que vai ser dificil ele postar todas as magias de knight
  10. @xarles, isso é considerado flood. Se você não tem nada a dizer que vá acrescentar algo ao tópico, apenas fique quieto. @Topic: me manda um vídeo ou faz um desenho que eu tento fazer
  11. To sem net no pc... to respondend8 pelo tablet e sem condições de programarnpelo tablet
  12. xWhiteWolf postou uma resposta no tópico em Scripts tfs 0.4 (OLD)
    Creaturescripts/scripts/login.lua
  13. xWhiteWolf postou uma resposta no tópico em Scripts tfs 0.4 (OLD)
    Deleta a linha um e reescreve ela
  14. eita, dá algum erro no console? Era pra parar o evento ao remover o anel... qual a versão do seu TFS?
  15. é tranquilo, dps faço pra ti.. to sem net no pc de casa e tá complicado criar coisas novas por conta disso
  16. O problema foi que vc tava usando o getglobal do v... eu havia dito que era no index! O v só existe dentro do for. Em todo caso se a dúvida foi resolvida, apenas clique em "melhor resposta" pra deixar como resolvido e clique em gostei nos comentários de quem te ajudou.
  17. Só fazer um creaturescript onAdvance que coloca o storage e adiciona o mesmo evento se baseando na vocação, igualzinho no script da action... eu faria pra vc mas to sem pc, to digitando pelo tablet...
  18. Só colocar os mesmos ids nas armas ali na parte da spell haha. Espero ter ajudado ;]
  19. xWhiteWolf postou uma resposta no tópico em Scripts tfs 0.4 (OLD)
    Onde está cooldown = 180, apenas coloque cooldown = 15
  20. Ganhar oque, a aura ou o crystal?
  21. eu criei uma função que faz esse tipo de coisa, testa aí e me fala se funciona: function hasGroundInDistance(cid, distance, tablegrama) local checker = {} -- deixe assim local pos = getThingPos(cid) for i = -distance, distance do for j = -distance, distance do local position = {x = pos.x + i, y = pos.y + j, z = pos.z, stackpos = 0} if i ~= 0 or j ~= 0 then local grama = getThingFromPos(position).itemid for k = 1, #tablegrama do if tablegrama[k] == grama then table.insert(checker, 1) end end end end end if distance >= 1 then local total = 0 for x = 1, distance do number = x * 2 + 1 t = (number * 2) + (2* (number-2)) total = total + t end end return (#checker == total and true or false) end pra usar vc precisa colocar isso daí tudo que tá no spoiler no começo do script e quando quiser saber se o player está cercado por grama/agua/lava/etc. vc faz: local itemid = {todos os ids do piso que vc quer analisar} local distancia = 1 -- distancia a ser analisada.. como vc quer só 1 sqm da posição do player a distancia é 1. if hasGroundInDistance(cid, distancia, itemid) thenfaz isso end Se vc quisesse a seguinte area abaixo: Você colocaria distancia = 2. Bom, espero ter ajudado PS : minha internet quebrou e to pelo tablet. no Lugar de local total = 0 coloca só total = 0
  22. sim, se não me engano se vc colocar aquele uniqueid do actions vc também consegue ganhar a aura independente do item que tenha o uniqueid mas isso eu não cheguei a testar. Coloca os items normais no mapa e faz uma action de uma alavanca pra cada gema e esconde essa alavanca em algum lugar e que quando você clicar nela, se não tiver a pedra no lugar ele cria ela.

Informação Importante

Confirmação de Termo