Ir para conteúdo

RigBy

Visconde
  • Total de itens

    411
  • Registro em

  • Última visita

  • Dias Ganhos

    10

Tudo que RigBy postou

  1. Não deveria responde mas já respondendo, qual a diferencia entre: "Eu queria uma spell que de stun no target." Para: "Queria uma spell que deixa o target parado. Explicaõ: eu atacou um target o ficara parado por 10 segundos n poderá se move, mas ninguém poderá o ataca. E fica uma statua em cima do target que foi ativado a spell, a statua ficará por 10 segundos depois some." Para que dois pedidos com a mesma coisa? Qualquer duvida entre em contato via PM #tópico Então espere alguém responde com a solução. Quer que mova para a área de pedidos e duvidas? já que você já tinha marcado como melhor resposta e desmarco.
  2. Caso o do bruno não funcione, tente esse: local config = { [100] = { -- level [{1, 5}] = {item = 2160, quant = 50, sto = 1001}, -- [voc] = s e ms [{2, 6}] = {item = 2160, quant = 50, sto = 1001}, -- [voc] = d e ed [{3, 7}] = {item = 2160, quant = 50, sto = 1001}, -- [voc] = p e rp [{4, 8}] = {item = 2160, quant = 50, sto = 1001} -- [voc] = k e ek }, [200] = { -- level [{1, 5}] = {item = 2160, quant = 100, sto = 1002}, -- [voc] = s e ms [{2, 6}] = {item = 2160, quant = 100, sto = 1002}, -- [voc] = d e ed [{3, 7}] = {item = 2160, quant = 100, sto = 1002}, -- [voc] = p e rp [{4, 8}] = {item = 2160, quant = 100, sto = 1002} -- [voc] = k e ek } } function onAdvance(cid, skill, oldLevel, newLevel) for level, a in pairs(config) do if newLevel >= level then for voc, b in pairs(a) do for i = 1, #voc do if getPlayerVocation(cid) == voc[i] and getPlayerStorageValue(cid, b.sto) <= 0then doPlayerAddItem(cid, b.item, b.quant) setPlayerStorageValue(cid, b.sto, 1) doPlayerSendTextMessage(cid, 22, "Você upou level " .. newLevel .. " e ganhou " .. b.quant .. "x ".. getItemNameById(b.item) .. "!") break end end end end end return true end
  3. porque você simplesmente não coloca um teleport dentro da sala?
  4. que TFS você ta usando? eu testei aqui e pega de boa.
  5. Eu fiz desse jeito, vai remove a parede quando joga o item no coal basin mas para volta você coloca um teleport la porque se não o cara pode esquecer de ter o black pearl e fica preso la dentro. e também para que o cara não passe, não tendo feito a quest eu criei um movement que impede ele de passar. Testa ai: Movement: xml: <movevent event="AddItem" tileitem="1" actionid="13501" script="NOMEDOSCRIPT.lua"/> <movevent event="StepIn" actionid="13500" script="NOMEDOSCRIPT.lua"/> lua: local pearl = 2693 -- id do item que vai joga local pos = Position({x = 90, y = 124, z = 7}) -- onde a parede esta local wall_id = 3362 -- id da parede local time = 5 -- quanto tempo ficara aberto local storage = 21321 -- storage que precissa para passar function onAddItem(moveitem, tileitem, position) local wall = getTileItemById(pos, wall_id) if moveitem:getId() == pearl then if wall.itemid ~= 0 then pos:sendMagicEffect(3) doRemoveItem(wall.uid, 1) moveitem:remove() addEvent(function() Game.createItem(wall_id, 1, pos) pos:sendMagicEffect(3) end, time*1000) end end return true end function onStepIn(creature, item, position, fromPosition) if creature:isPlayer() then if creature:getStorageValue(storage) == -1 then creature:teleportTo(fromPosition) end end return true end agora só basta coloca o actionid 13501 no coal basin onde terá que joga o item e o actionid 13500 no local em que só pode passar se tiver feito a quest. ps. não esqueça de configurar o script
  6. Tópico movido para lixeira, por você já ter criado um igual. http://www.xtibia.com/forum/topic/235945-spell-stop/ Espere alguém responder sua pergunta
  7. To meio sem tempo porque eu to consertando meu computador mas vou tentar fazer. Vou fazer um npc. * So vai ter essa redução se ele for para rook, então para outras cidades ele fica com a skill normal?
  8. RigBy

    Mudar nome

    se for possível, quero mudar meu nome para: JV ou J.V
  9. 1 - Avueja 2 - Kissy 3 - crownz
  10. Legal, eu tinha feito um sistema quase assim só que para 8.6, mas não fico tão bom quanto esse.
  11. Se tiver precisando de ajuda pode adicionar eu no skype: jv.alves97
  12. é o action do teleport, não precisa coloca em lugar nenhum, ele ja é criado automaticamente quando aparece o teleport. Sim, eu acabei de formatar o pc, então depois eu posto aqui adaptado para 1.2
  13. Eu fiz isso porque caso o player deslogue la dentro e o tempo acaba-se o script ia buga e ele poderia fica la pra sempre. desculpa, muda o valor de 1 para -1 no setPlayerSto.... Da uma olhada nessa parte: addEvent(function() if not isPlayer(cid) then return false end if getPlayerStorageValue(cid, 21321321) == 1 then doTeleportThing(cid, pos) setPlayerStorageValue(cid, 21321321, -1) end end, tempo * 60 * 1000)
  14. Ola, tava dando uma olhada no TFS 1.x e acabei percebendo que não tinha o comando /attr, então tinha decidido recriar, alguns comandos ja tava funcionando mas eu acabei achando esse na internet e resolvi trazer para ca. Exemplo: /attr action, 1231 Então vamos la instalar: Em talkactions/talkactions.xml adicione essa tag: <talkaction words="/attr" separator=" " script="attributes.lua" /> Em talkactions/scripts, crie o arquivo attributes.lua e adicione isso: local itemFunctions = { ["actionid"] = { isActive = true, targetFunction = function (item, target) return item:setActionId(target) end }, ["action"] = { isActive = true, targetFunction = function (item, target) return item:setActionId(target) end }, ["aid"] = { isActive = true, targetFunction = function (item, target) return item:setActionId(target) end }, ["description"] = { isActive = true, targetFunction = function (item, target) return item:setAttribute(ITEM_ATTRIBUTE_DESCRIPTION, target) end }, ["desc"] = { isActive = true, targetFunction = function (item, target) return item:setAttribute(ITEM_ATTRIBUTE_DESCRIPTION, target) end }, ["remove"] = { isActive = true, targetFunction = function (item, target) return item:remove() end }, ["decay"] = { isActive = true, targetFunction = function (item, target) return item:decay() end }, ["transform"] = { isActive = true, targetFunction = function (item, target) return item:transform(target) end }, ["clone"] = { isActive = true, targetFunction = function (item, target) return item:clone() end } } local creatureFunctions = { ["health"] = { isActive = true, targetFunction = function (creature, target) return creature:addHealth(target) end }, ["mana"] = { isActive = true, targetFunction = function (creature, target) return creature:addMana(target) end }, ["speed"] = { isActive = true, targetFunction = function (creature, target) return creature:changeSpeed(target) end }, ["droploot"] = { isActive = true, targetFunction = function (creature, target) return creature:setDropLoot(target) end }, ["skull"] = { isActive = true, targetFunction = function (creature, target) return creature:setSkull(target) end }, ["direction"] = { isActive = true, targetFunction = function (creature, target) return creature:setDirection(target) end }, ["maxHealth"] = { isActive = true, targetFunction = function (creature, target) return creature:setMaxHealth(target) end }, ["say"] = { isActive = true, targetFunction = function (creature, target) creature:say(target, TALKTYPE_SAY) end } } local playerFunctions = { ["fyi"] = { isActive = true, targetFunction = function (player, target) return player:popupFYI(target) end }, ["tutorial"] = { isActive = true, targetFunction = function (player, target) return player:sendTutorial(target) end }, ["guildnick"] = { isActive = true, targetFunction = function (player, target) return player:setGuildNick(target) end }, ["group"] = { isActive = true, targetFunction = function (player, target) return player:setGroup(Group(target)) end }, ["vocation"] = { isActive = true, targetFunction = function (player, target) return player:setVocation(Vocation(target)) end }, ["stamina"] = { isActive = true, targetFunction = function (player, target) return player:setStamina(target) end }, ["town"] = { isActive = true, targetFunction = function (player, target) return player:setTown(Town(target)) end }, ["balance"] = { isActive = true, targetFunction = function (player, target) return player:setBankBalance(target + player:getBankBalance()) end }, ["save"] = { isActive = true, targetFunction = function (player, target) return target:save() end }, ["type"] = { isActive = true, targetFunction = function (player, target) return player:setAccountType(target) end }, ["skullTime"] = { isActive = true, targetFunction = function (player, target) return player:setSkullTime(target) end }, ["maxMana"] = { isActive = true, targetFunction = function (player, target) return player:setMaxMana(target) end }, ["addItem"] = { isActive = true, targetFunction = function (player, target) return player:addItem(target, 1) end }, ["removeItem"] = { isActive = true, targetFunction = function (player, target) return player:removeItem(target, 1) end }, ["premium"] = { isActive = true, targetFunction = function (player, target) return player:addPremiumDays(target) end } } function onSay(player, words, param) if(not player:getGroup():getAccess()) or player:getAccountType() < ACCOUNT_TYPE_GOD then return true end if(param == "") then player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Command param required.") return false end local position = player:getPosition() position:getNextPosition(player:getDirection(), 1) local split = param:split(",") local itemFunction, creatureFunction, playerFunction = itemFunctions[split[1]], creatureFunctions[split[1]], playerFunctions[split[1]] if(itemFunction and itemFunction.isActive) then local item = Tile(position):getTopVisibleThing(player) if(not item or not item:isItem()) then player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Item not found.") return false end if(itemFunction.targetFunction(item, split[2])) then position:sendMagicEffect(CONST_ME_MAGIC_GREEN) else player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "You cannot add that attribute to this item.") end elseif(creatureFunction and creatureFunction.isActive) then local creature = Tile(position):getTopCreature() if(not creature or not creature:isCreature()) then player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Creature not found.") return false end if(creatureFunction.targetFunction(creature, split[2])) then position:sendMagicEffect(CONST_ME_MAGIC_GREEN) else player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "You cannot add that attribute to this creature.") end elseif(playerFunction and playerFunction.isActive) then local targetPlayer = Tile(position):getTopCreature() if(not targetPlayer or not targetPlayer:getPlayer()) then player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Player not found.") return false end if(playerFunction.targetFunction(targetPlayer, split[2])) then position:sendMagicEffect(CONST_ME_MAGIC_GREEN) else player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "You cannot add that attribute to this player.") end else player:sendTextMessage(MESSAGE_STATUS_CONSOLE_BLUE, "Unknow attribute.") end return false end Credito: Darkhaos, por ter adptado para lua WibbenZ, por ter adptado para TFS 1.x
  15. Movido para lixeira por você já ter criado um tópico com o mesmo pedido, espere alguém responde com a solução http://www.xtibia.com/forum/topic/235868-quest-log/#entry1662937
  16. substitui o movement por esse: -- Do not remove the credits -- -- [MOVEEVENT] Limite de player por sala -- -- Developed by Rigby -- -- Especially for the Xtibia.com -- function onStepIn(cid, item, position, lastPosition, fromPosition, toPosition, actor) local pos = {x = 1073, y = 1031, z = 7} -- quando o tempo acaba para onde ele ira ser teleportado local tempo = 10 -- tempo que pode fica em minutos local config = { [5555] = {area = getPlayersInArea({x = 1030, y = 1020, z = 7}, {x = 1040, y = 1030, z = 7}), amountOfPlayers = 1, teleport = {x = 1037, y = 1025, z = 7}}, } if config[item.actionid] then if #config[item.actionid].area < config[item.actionid].amountOfPlayers then doTeleportThing(cid, config[item.actionid].teleport, false) doPlayerSendTextMessage(cid, 25, "Welcome") setPlayerStorageValue(cid, 21321321, 1) addEvent(function() if not isPlayer(cid) then return false end if getPlayerStorageValue(cid, 21321321) == 1 then doTeleportThing(cid, pos) setPlayerStorageValue(cid, 21321321, -1) end end, tempo * 60 * 1000) else doPlayerSendTextMessage(cid, 25, "The room already reached its limit "..config[item.actionid].amountOfPlayers.." player 's wait someone out .") doTeleportThing(cid, fromPosition) end end return true end function getPlayersInArea(fromPos, toPos) -- Function made ​​by Vodkart local players = {} for _, pid in ipairs(getPlayersOnline()) do if isInRange(getPlayerPosition(pid), fromPos, toPos) then table.insert(players, pid) end end return players end e para que ele quando desloga volta pro templo adicione isso. em creaturescript, dentro do Login.lua antes do ultimo return true. .lua if getPlayerStorageValue(cid, 21321321) == 1 then local pos = {x = 1073, y = 1031, z = 7} -- posição para onde ele vai doTeleportThing(cid, pos) setPlayerStorageValue(cid, 21321321, 1) end
  17. RigBy

    Ajuda nesse NPC.

    Como já tinha feito, e só tinha esquecido de posta ta aqui: Eu meio que refiz. .xml <?xml version="1.0" encoding="UTF-8"?> <npc name="Jasinto Pinto" script="NOME_DO_SCRIPT.lua" walkinterval="2000" floorchange="0"> <health now="100" max="100"/> <look type="128" head="17" body="54" legs="114" feet="0" addons="2"/> <parameters> <parameter key="message_greet" value="Ola, gostaria de fazer uma mission"/> </parameters> </npc> .lua 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 onThink() npcHandler:onThink() 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 storage = 60081 if msgcontains(msg, 'missão') and getPlayerStorageValue(cid, storage) == -1 then selfSay('Você poderia ajudar a achar o briquedo do meu irmão?', cid) talkState[talkUser] = 1 elseif msgcontains(msg, 'yes') and getPlayerStorageValue(cid, storage) == -1 and talkState[talkUser] == 1 then selfSay('Obrigada, você estará fazendo um grande favor.', cid) setPlayerStorageValue(cid, storage, 1) talkState[talkUser] = 0 end if msgcontains(msg, 'mission') and getPlayerStorageValue(cid, storage) == 1 then selfSay('Você acho o briquedo?', cid) talkState[talkUser] = 1 elseif msgcontains(msg, 'yes') and getPlayerStorageValue(cid, storage) == 1 and talkState[talkUser] == 1 then if getPlayerItemCount(cid, 5944) >= 2 then selfSay('Obrigao, ja fazia ideia de que isso iria acontecer. Pegue isso em forma de gratidao!', cid) doPlayerAddItem(cid, 5908, 2) setPlayerStorageValue(cid, storage, 2) doPlayerRemoveItem(cid, 5944, 2) talkState[talkUser] = 0 else selfSay('Isso nao eh do meu irmao, nao brinque comigo!', cid) end end if msgcontains(msg, 'mission') and getPlayerStorageValue(cid, storage) == 2 then selfSay('Você ja me ajudou!', cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  18. Tava testando a TFS 1.2, e acabei adaptando esse script, então ta ai quem quiser. -- Do not remove the credits -- -- [ACTION] Fruit Harvesting [TFS 1.2]-- -- Developed by Rigby -- -- Especially for the Xtibia.com -- local config = { -- [ID_DA_ARVORE] = {FRUTA, QUANTIDADE{minimo, maximo}, ID_DA_ARVORE_SEM_FRUTO, TEMPO_PARA_ÀRVORE_FICA_COM_FRUTO} [5157] = {fruit = 5097, quantity = {0,1}, treeWithoutFruit = 5156, timeToGrow = 5}, [4006] = {fruit = 2675, quantity = {0,3}, treeWithoutFruit = 4008, timeToGrow = 5}, [5094] = {fruit = 2676, quantity = {3,6}, treeWithoutFruit = 5092, timeToGrow = 5}, [5096] = {fruit = 2678, quantity = {2,7}, treeWithoutFruit = 2726, timeToGrow = 5}, } function onUse(player, item, fromPosition, itemEx, toPosition) for i, k in pairs(config) do if item:getId() == i then random = math.random(k.quantity[1],k.quantity[2]) item:transform(k.treeWithoutFruit) player:addItem(k.fruit, random) addEvent(function() item:transform(i) end, k.timeToGrow * 1000) if random > 0 then player:sendTextMessage(27,"Você pego "..random.." "..ItemType(k.fruit):getName().."!") else player:sendTextMessage(27,"Àrvore não deu nenhum fruto!") end end end return true end
  19. De uma olhada nisso: http://www.xtibia.com/forum/topic/235070-limite-de-player-por-sala/
  20. Tópico movido a área correta. Belo sistema, obrigado por compartilhar.
  21. Ta dando esse erro agora. Query: SELECT `id`, `name`, `password`, `premdays`, `lastday`, `email`, `key`, `create_ip`, `creation`, `premium_points`, `page_access`, `location`, `rlname`, `email_new`, `email_new_time`, `email_code`, `next_email`, `last_post`, `flag` FROM `accounts` WHERE `name` = '1' SQLSTATE: 42S22 Driver code: 1054 Error message: Unknown column 'create_ip' in 'field list' Fatal error: Call to a member function fetch() on boolean in C:\xampp\htdocs\classes\account.phpon line 33
  22. Erro: http://prntscr.com/7xr7kg
  23. http://prntscr.com/7xr1le Deu esse erro quando eu fui executar, se for a db, passa alguma eu to usando a que veio no TFS.
  24. Tem isso. $last_threads = $SQL->query('SELECT ' . $SQL->tableName('players') . '.' . $SQL->fieldName('name') . ', ' . $SQL->tableName('z_forum') . '.' . $SQL->fieldName('post_text') . ', ' . $SQL->tableName('z_forum') . '.' . $SQL->fieldName('post_topic') . ', ' . $SQL->tableName('z_forum') . '.' . $SQL->fieldName('post_smile') . ', ' . $SQL->tableName('z_forum') . '.' . $SQL->fieldName('id') . ', ' . $SQL->tableName('z_forum') . '.' . $SQL->fieldName('replies') . ', ' . $SQL->tableName('z_forum') . '.' . $SQL->fieldName('post_date') . ' FROM ' . $SQL->tableName('players') . ', ' . $SQL->tableName('z_forum') . ' WHERE ' . $SQL->tableName('players') . '.' . $SQL->fieldName('id') . ' = ' . $SQL->tableName('z_forum') . '.' . $SQL->fieldName('author_guid') . ' AND ' . $SQL->tableName('z_forum') . '.' . $SQL->fieldName('section') . ' = 1 AND ' . $SQL->tableName('z_forum') . '.' . $SQL->fieldName('first_post') . ' = ' . $SQL->tableName('z_forum') . '.' . $SQL->fieldName('id') . ' ORDER BY ' . $SQL->tableName('z_forum') . '.' . $SQL->fieldName('last_post') . ' DESC LIMIT ' . $config['site']['news_limit'])->fetchAll();
  25. Alguém pode explica como resolve esse erro? http://prntscr.com/7xqoml To usando Gesior 2012 - TFS 1.0 com a TFS 1.2.
  • Quem Está Navegando   0 membros estão online

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