Ir para conteúdo

Vodkart

Herói
  • Total de itens

    3406
  • Registro em

  • Última visita

  • Dias Ganhos

    111

Histórico de Reputação

  1. Upvote
    Vodkart recebeu reputação de AdilsonHacker em Apenas X vocation id pode atacar X monstro   
    olá amigo, acho q vc está falando besteira.
     
    esse código é simples e pode ser feito com onAttack ou onCombat
  2. Upvote
    Vodkart recebeu reputação de valakas em bug no meu npc   
    local keywordHandler = KeywordHandler:new() local npcHandler = NpcHandler:new(keywordHandler) NpcSystem.parseParameters(npcHandler) local talkState = {} local var_city = { ["saffron"] = 5, ["cerulean"] = 4, ["fuchsia"] = 9, ["viridian"] = 2, ["lavender"] = 7, ["pewter"] = 3, ["vermilion"] = 8, ["cinnabar"] = 10, ["celadon"] = 6 } local ret_pokes = {"bulbasaur", "charmander", "squirtle"} 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, msg = NPCHANDLER_CONVbehavior == CONVERSATION_DEFAULT and 0 or cid, msg:lower() if isInArray({'yes', 'sim', 'si'}, msg) then if getPlayerStorageValue(cid, 157171) == 2 then selfSay("Desculpe, mas só pode fazer uma escolha.", cid) elseif getPlayerStorageValue(cid, 157171) == 1 then selfSay('Agora escolha seu Pokemon Inicial? {Bulbasaur}, {Charmander} ou {Squirtle} ?', cid) talkState[talkUser] = 2 else selfSay("Muito Bom! Agora me Fale qual sua cidade natal? {saffron}, {cerulean} ou {fuchsia} ?", cid) talkState[talkUser] = 1 end elseif talkState[talkUser] == 1 then if var_city[msg] then doPlayerSetTown(cid, var_city[msg]) setPlayerStorageValue(cid, 157171, 1) selfSay('Agora escolha seu Pokemon Inicial? {Bulbasaur}, {Charmander} ou {Squirtle} ?', cid) talkState[talkUser] = 2 else selfSay("está cidade não está disponivel.", cid) end elseif talkState[talkUser] == 2 then if isInArray(ret_pokes, msg) then doPokemonToPlayer(cid, msg) setPlayerStorageValue(cid, 157171, 2) selfSay('Agora voce tem um pokemon e pode seguir sua Jornada, Ate Ate logo!', cid) talkState[talkUser] = 0 doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid)), false) else selfSay('você só pode escolher {Bulbasaur}, {Charmander} ou {Squirtle}!', cid) end elseif msg == "no" and talkState[talkUser] >= 1 then selfSay("tudo bem então.", cid) talkState[talkUser] = 0 npcHandler:releaseFocus(cid) end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new())
  3. Upvote
    Vodkart deu reputação a Mudrock em [PDA] Autoloot igual pxg   
    Bom, vi por aqui e não achei nenhum autoloot igual o da pxg ou sem bugs, então decidi vir aqui postar o que eu fiz.
    Vamos lá.

    1º - Vá na pasta Lib, no arquivo some functions.lua e adicione isso depois do ultimo "end":
    function doPlayerAddItemStacking(cid, itemid, quant) local item = getItemsInContainerById(getPlayerSlotItem(cid, 3).uid, itemid) local piles = 0 if #item > 0 then for i,x in pairs(item) do if getThing(x).type < 100 then local it = getThing(x) doTransformItem(it.uid, itemid, it.type+quant) if it.type+quant > 100 then doPlayerAddItem(cid, itemid, it.type+quant-100) end else piles = piles+1 end break end else return doPlayerAddItem(cid, itemid, quant) end if piles == #item then doPlayerAddItem(cid, itemid, quant) end end 2º - Vá em actions/script e crie um arquivo.lua com nome de Autoloot, dentro coloque:
    --local toloot = {11441, 11441, 11443, 11444, 11445, 11446, 11447, 11448, 11449,11450, 11451, 11452, 11453, 11454, 12618, 12232, 12244} -- PREFERENCIAL - SE QUISER APENAS COM ALGUNS ITENS function onUse(cid, item, frompos, item2, topos) if getItemAttribute(item.uid, "corpseowner") ~= cid then doPlayerSendCancel(cid, "You're not the owner.") return true end local items = {} for x=0, (getContainerSize(item.uid)) do local itens = getContainerItem(item.uid, x) --if isInArray(toloot, itens.itemid) then table.insert(items, {i=itens.itemid, q=itens.type}) doRemoveItem(itens.uid) --break --end end for y=1, #items do doPlayerAddItemStacking(cid, items[y].i, items[y].q) doPlayerSendTextMessage(cid, 20, "Looted "..items[y].q.."x "..getItemNameById(items[y].i)..".") end if #items > 0 then return true else return false end end --[[ AUTO LOOT BY GABRIEL SALES SE QUISER ATIVAR O AUTOLOOT APENAS PARA ALGUNS ITENS, ADICIONE OS IDS NA TABELA toloot E TIRE OS COMENTÁRIOS(--). --]] Agora, no actions.xml adicione a tag:
    <action itemid="" event="script" value="Autoloot.lua"/> Dentro de itemid="", coloque o id dos corpses.

    Para conseguir o id dos corpses, podemos fazer um pequeno script, que pegará o corpse de cada pokemon capturável.
    Créditos:
    Mkalo -- Auto Stacking
    Gabriel Sales(eu) -- Resto
  4. Upvote
    Vodkart deu reputação a Bruno em Adquirir storage temporariamente por meio de talkaction.   
    Talkaction:
    local config = { storage = 99488, -- STORAGE PARA CONTROLAR TEMPO cost = 1000000, -- Preço para comprar o acesso tempo = 24 -- Tempo em horas para durar a compra } function onSay(cid, words, param) if getPlayerStorageValue(cid, config.storage) < os.time() then if doPlayerRemoveMoney(cid, config.cost) then setPlayerStorageValue(cid, config.storage, os.time() + (config.tempo * 60 * 60)) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce comprou " .. config.tempo .. " horas de acesso.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_GIFT_WRAPS) return true else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce precisa de " .. config.cost .. " gold coins para comprar este acesso.") return false end else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, "Voce so pode comprar este acesso a cada " .. config.tempo .. " horas.") end return false end Porta:
    local storage = 99488 -- STORAGE PARA CONTROLAR TEMPO function onUse(cid, item, topos) if getPlayerStorageValue(cid, storage) < os.time() then doTeleportThing(cid, topos, true) return true end return doPlayerSendCancel(cid, "Voce precisa comprar acesso para entrar nessa area.") end
  5. Upvote
    Vodkart deu reputação a Bruno em Script mandando apenas uma mensagem   
    Tenta assim:

    function onUse(cid, item) local itens = { [17101] = {id = 11447, qnt = 1, storage = 13470}, -- id = (ID do item do do bau 1), qnt = (Quantidade do item do bau 1) FIre [17102] = {id = 11441, qnt = 1, storage = 13471}, -- id = (ID do item do do bau 2), qnt = (Quantidade do item do bau 2) Leaf [17103] = {id = 11442, qnt = 1, storage = 13472}, -- id = (ID do item do do bau 3), qnt = (Quantidade do item do bau 3) Water } local quest = itens[item.actionid] if getPlayerStorageValue(cid, quest.storage) ~= 1 then doPlayerAddItem(cid, quest.id, quest.qnt) doPlayerSendTextMessage(cid,22,"[Quest] Voce ganhou " .. quest.qnt .. "x " .. getItemNameById(quest.id) .. ", por completar a Elementar Stone Quest!") setPlayerStorageValue(cid, quest.storage, 1) else return doPlayerSendTextMessage(cid,22,"[Quest] Voce ja fez esta quest!") end return true end
  6. Upvote
    Vodkart deu reputação a Administrador em Global Reward System   
    Testado em TFS 1.2, 10.77/78 Baseado em: http://www.tibia.com/news/?subtopic=newsarchive&id=2486 http://portaltibia.com.br/teaser-3-recompensa-para-quem-precisa-de-recompensa/ INSTRUÇÕES Execute a query na database: CREATE TABLE IF NOT EXISTS `player_rewardchest` ( `id` int(11) NOT NULL AUTO_INCREMENT, `player_id` int(11) NOT NULL, `reward` text NOT NULL, `date` bigint(20) unsigned NOT NULL DEFAULT '0', PRIMARY KEY (`id`), FOREIGN KEY (`player_id`) REFERENCES `players` (`id`) ON DELETE CASCADE ON UPDATE CASCADE ) ENGINE=InnoDB; src/const.h Antes de... ITEM_MARKET = 14405 Adicione:
    ITEM_REWARD_CHEST = 21584, REWARD_CHEST_DEPOT = 99,
    src/depotchest.h Antes de: explicit DepotChest(uint16_t _type); Adicione: uint32_t getDepotId() const { return depotId; } void setDepotId(uint32_t id) { depotId = id; } Antes de:
    uint32_t maxDepotItems; Adicione:
    uint32_t depotId;src/depotchest.cpp Antes de:
    maxDepotItems = 1500; Adicione: depotId = 0; Acima de:
    return Container::queryAdd(index, thing, count, flags, actor); Adicione: if (actor != nullptr && getDepotId() == REWARD_CHEST_DEPOT) { return RETURNVALUE_NOTPOSSIBLE; }src/depotlocker.h Acima de: //cylinder implementations Adicione: void setMaxLockerItems(uint32_t maxitems) { maxSize = maxitems; }
    src/luascript.h Acima de: static int luaContainerGetSize(lua_State* L); Adicione static int luaContainerGetContentDescription(lua_State* L);
    src/luascript.cpp Acima de: registerMethod("Container", "getSize", LuaScriptInterface::luaContainerGetSize); Adicione: registerMethod("Container", "getContentDescription", LuaScriptInterface::luaContainerGetContentDescription); Acima: int LuaScriptInterface::luaContainerGetSize(lua_State* L) Adicione: int LuaScriptInterface::luaContainerGetContentDescription(lua_State* L) { // container:getContentDescription() Container* container = getUserdata<Container>(L, 1); if (container) { std::ostringstream ss; ss << container->getContentDescription(); pushString(L, ss.str()); } else { lua_pushnil(L); } return 1; }
    src/actions.cpp Mude: //depot container if (DepotLocker* depot = container->getDepotLocker()) { DepotLocker* myDepotLocker = player->getDepotLocker(depot->getDepotId()); myDepotLocker->setParent(depot->getParent()->getTile()); openContainer = myDepotLocker; player->setLastDepotId(depot->getDepotId()); } else { openContainer = container; } Para: //reward chest and depot container if (item->getID() == ITEM_REWARD_CHEST) { DepotLocker* myRewardChest = player->getRewardChest(); myRewardChest->setParent(item->getTile()); openContainer = myRewardChest; player->setLastDepotId(REWARD_CHEST_DEPOT); } else if (DepotLocker* depot = container->getDepotLocker()) { DepotLocker* myDepotLocker = player->getDepotLocker(depot->getDepotId()); myDepotLocker->setParent(depot->getParent()->getTile()); openContainer = myDepotLocker; player->setLastDepotId(depot->getDepotId()); } else { openContainer = container; } src/player.h Antes de: DepotLocker* getDepotLocker(uint32_t depotId); Adicione: DepotLocker* getRewardChest(); src/player.cpp Antes de: DepotChest* depotChest = new DepotChest(ITEM_DEPOT); Adicione: depotChest->setDepotId(depotId); Acima de: void Player::sendCancelMessage(ReturnValue message) const Adicione: DepotLocker* Player::getRewardChest() { auto it = depotLockerMap.find(REWARD_CHEST_DEPOT); if (it != depotLockerMap.end()) { inbox->setParent(it->second); return it->second; } DepotLocker* rewardChest = new DepotLocker(ITEM_LOCKER1); rewardChest->setDepotId(REWARD_CHEST_DEPOT); rewardChest->setMaxLockerItems(1); rewardChest->internalAddThing(getDepotChest(REWARD_CHEST_DEPOT, true)); depotLockerMap[REWARD_CHEST_DEPOT] = rewardChest; return rewardChest; }
    On player.cpp, container.cpp, inbox.cpp Mude: if (!item->isPickupable()) { Para:
    if (item->getID() != 21518 && !item->isPickupable()) {
    Adicione @ data/actions/actions.xml <!-- Reward Chest System --> <action itemid="21584" script="reward_chest.lua"/> <action actionid="21584" script="reward_chest.lua"/> Crie @ data/actions/scripts/reward_chest.lua function onUse(player, item, fromPosition, target, toPosition, isHotkey) --Reward Chest if item:getId() == 21584 then if player:getExhaustion(REWARD_CHEST.STORAGE) > 0 then return player:sendCancelMessage('You need to wait ' .. string.diff(player:getStorageValue(REWARD_CHEST.STORAGE)-os.time()) .. ' before using this chest again.') end player:updateRewardChest() --Boss Corpse elseif item:getActionId() == 21584 then local reward = REWARD_CHEST.LOOT[tonumber(item:getAttribute('text'))][player:getGuid()] if reward ~= nil then local rewardBag = Container(doCreateItemEx(REWARD_CHEST.CONTAINER, 1)) addContainerItems(rewardBag, reward) if player:getCapacity() < rewardBag:getCapacity() then return player:sendCancelMessage(RETURNVALUE_NOTENOUGHCAPACITY) end if player:addItemEx(rewardBag, false) == RETURNVALUE_NOERROR then REWARD_CHEST.LOOT[tonumber(item:getAttribute('text'))][player:getGuid()] = nil player:sendCancelMessage('You have picked a reward container.') else player:sendCancelMessage(RETURNVALUE_NOTENOUGHROOM) return true end end end return false end Adicione @ data/creaturescripts/creaturescripts.xml <event type="kill" name="RewardChest" script="reward_chest.lua"/> Register @data/creaturescripts/scripts/login.lua player:registerEvent("RewardChest") Crie @ data/creaturescripts/scripts/reward_chest.lua
    REWARD_CHEST = { BOSSES = {"Bibby Bloodbath", "Chizzoron the Distorter", "Ferumbras", "Furyosa", "Gaz'haragoth", "Ghazbaran", "Hirintror", "Jaul", "Mad Mage", "Mawhawk", "Morgaroth", "Obujos", "Ocyakao", "Omrafir", "Orshabaal", "Raging Mage", "Tanjis", "The Mutated Pumpkin", "The Pale Count", "The Welter", "Tyrn", "White Pale", "Zulazza the Corruptor", "Zushuka"}, LOOT = {}, DECAY = {}, DEPOT_ID = 99, CONTAINER = 21518, EXPIRE = 7*24*60*60, --days to erase stored rewards STORAGE = 18394, --player storage for chest exhaustion EXHAUST = 5*60, --time allowed to use again the chest } function table.find(t, value, sensitive) local sensitive = sensitive or true if(not sensitive and type(value) == 'string') then for i, v in pairs(t) do if(type(v) == 'string') then if(v:lower() == value:lower()) then return i end end end return nil end for i, v in pairs(t) do if(v == value) then return i end end return nil end function table.serialize(x, recur) local t = type(x) recur = recur or {} if(t == nil) then return "nil" elseif(t == "string") then return string.format("%q", x) elseif(t == "number") then return tostring(x) elseif(t == "boolean") then return x and "true" or "false" elseif(getmetatable(x)) then error("Can not serialize a table that has a metatable associated with it.") elseif(t == "table") then if(table.find(recur, x)) then error("Can not serialize recursive tables.") end table.insert(recur, x) local s = "{" for k, v in pairs(x) do s = s .. "[" .. table.serialize(k, recur) .. "]" .. " = " .. table.serialize(v, recur) .. ", " end return s:sub(0, s:len() - 2) .. "}" end error("Can not serialize value of type '" .. t .. "'.") end function table.unserialize(str) return loadstring('return ' .. str)() end function addContainerItems(container, items) for k, v in pairs(items) do if ItemType(k):isContainer() then local newBag = Container(doCreateItemEx(k, 1)) addContainerItems(newBag, v) container:addItemEx(newBag) else container:addItem(v[1], v[2]) end end end function MonsterType.createLootItem(self, lootBlock, chance) local lootTable, itemCount = {}, 0 local randvalue = math.random(0, 100000) / (getConfigInfo("rateLoot") * chance) if randvalue < lootBlock.chance then if (ItemType(lootBlock.itemId):isStackable()) then itemCount = randvalue % lootBlock.maxCount + 1 else itemCount = 1 end end while itemCount > 0 do local n = math.min(itemCount, 100) itemCount = itemCount - n table.insert(lootTable, {lootBlock.itemId, n}) end return lootTable end function MonsterType.getBossReward(self, chance) local result = {} if getConfigInfo("rateLoot") > 0 then for _, loot in pairs(self:getLoot()) do local itemList = self:createLootItem(loot, chance) if itemList then for _, item in ipairs(itemList) do table.insert(result, item) end end end end return result end function getDecayTime(id) local decayTime = 0 do local o = io.open('data/items/items.xml','r') file = o:read('*a') o:close() end local function sumDecayTime(corpse) for attr in file:gmatch('<item.-id="' .. corpse ..'"(.-)</item>') do local decayTo = attr:match('<attribute.-key="decayTo".-value="(.-)".-/>') local duration = attr:match('<attribute.-key="duration".-value="(.-)".-/>') decayTime = decayTime + duration if tonumber(decayTo) > 0 then sumDecayTime(decayTo) end break end end sumDecayTime(id) return decayTime end function loadCorpses() for _, name in ipairs(REWARD_CHEST.BOSSES) do if MonsterType(name) ~= nil then REWARD_CHEST.DECAY[name] = getDecayTime(MonsterType(name):getCorpseId()) end end end addEvent(loadCorpses, 0) function getPlayerByGUID(guid) for _, player in ipairs(Game.getPlayers()) do if guid == player:getGuid() then return player end end return nil end function Player.addReward(self, reward, time, id) local LootBag = Container(doCreateItemEx(REWARD_CHEST.CONTAINER, 1)) LootBag:setAttribute('text', time) addContainerItems(LootBag, reward) if id then db.query('DELETE FROM player_rewardchest WHERE id = ' .. id .. ';') end return self:getDepotChest(REWARD_CHEST.DEPOT_ID, true):addItemEx(LootBag) end function doSaveReward(uid, name) for GUID, items in pairs(REWARD_CHEST.LOOT[uid]) do local player = getPlayerByGUID(GUID) if player ~= nil then player:addReward(items, os.time()) player:sendTextMessage(MESSAGE_INFO_DESCR, 'Your reward container from ' .. name .. ' was moved to your reward chest.') else db.query('INSERT INTO player_rewardchest VALUES (NULL, ' .. GUID ..', "' .. table.serialize(items) ..'", ' .. os.time() ..');') end end REWARD_CHEST.LOOT[uid] = nil end function Player.updateRewardChest(self) db.query('DELETE FROM player_rewardchest WHERE TIME_TO_SEC(TIMEDIFF(NOW(), FROM_UNIXTIME(date))) >= '.. REWARD_CHEST.EXPIRE ..';') local Query = db.storeQuery('SELECT id, reward, date FROM player_rewardchest WHERE player_id = '.. self:getGuid() ..';') if Query ~= false then repeat local rewardBag = table.unserialize(result.getDataString(Query, 'reward')) self:addReward(rewardBag, result.getDataInt(Query, 'date'), result.getDataInt(Query, 'id')) until not result.next(Query) result.free(Query) end local depotChest = self:getDepotChest(REWARD_CHEST.DEPOT_ID, true) for index = (depotChest:getSize() - 1), 0, -1 do local container = depotChest:getItem(index) if (container:getAttribute('text') ~= nil) and (tonumber(container:getAttribute('text')) + REWARD_CHEST.EXPIRE < os.time()) then container:remove() end end return self:setExhaustion(REWARD_CHEST.STORAGE, REWARD_CHEST.EXHAUST) end function string.diff(self) local format = { {'day', self / 60 / 60 / 24}, {'hour', self / 60 / 60 % 24}, {'minute', self / 60 % 60}, {'second', self % 60} } local out = {} for k, t in ipairs(format) do local v = math.floor(t[2]) if(v > 0) then table.insert(out, (k < #format and (#out > 0 and ', ' or '') or ' and ') .. v .. ' ' .. t[1] .. (v ~= 1 and 's' or '')) end end local ret = table.concat(out) if ret:len() < 16 and ret:find('second') then local a, b = ret:find(' and ') ret = ret:sub(b+1) end return ret end function doBossReward(monster, corpse) REWARD_CHEST.LOOT[corpse:getUniqueId()] = {} corpse:setAttribute('aid', 21584) corpse:setAttribute('text', corpse:getUniqueId()) for killer, damage in pairs(monster:getDamageMap()) do local player, str = Player(killer), 'Loot of ' .. MonsterType(monster:getName()):getNameDescription() .. ': ' if player ~= nil then local rewardBag = doCreateItemEx(REWARD_CHEST.CONTAINER) if player:getStamina() > 840 then local loot = MonsterType(monster:getName()):getBossReward(damage.total/monster:getMaxHealth()) if #loot > 0 then addContainerItems(Container(rewardBag), loot) REWARD_CHEST.LOOT[corpse:getUniqueId()][player:getGuid()] = loot str = str .. Container(rewardBag):getContentDescription() else str = str .. 'nothing' end else str = str .. 'nothing (due to low stamina)' end player:sendTextMessage(MESSAGE_INFO_DESCR, str .. '.') end end addEvent(doSaveReward, REWARD_CHEST.DECAY[monster:getName()]*1000, corpse:getUniqueId(), MonsterType(monster:getName()):getNameDescription()) end function onKill(creature, target) if (Monster(target) ~= nil) and isInArray(REWARD_CHEST.BOSSES, target:getName()) then local corpse = Item(doCreateItem(MonsterType(target:getName()):getCorpseId(), 1, target:getPosition())) corpse:decay() target:setDropLoot(false) doBossReward(target, corpse) end end Adicione @ data/items/items.xml
    <item id="21518" article="a" name="reward container"> <attribute key="weight" value="1800" /> <attribute key="containersize" value="24" /> <attribute key="slotType" value="backpack" /> </item> <item id="21584" article="a" name="reward chest"> <attribute key="type" value="depot" /> <attribute key="containerSize" value="1" /> <attribute key="description" value="This chest contains your rewards earned in battles." /> </item> Adicione @ data/lib/core/player.lua
    function Player.setExhaustion(self, value, time) return self:setStorageValue(value, time + os.time()) end function Player.getExhaustion(self, value) local storage = self:getStorageValue(value) if storage <= 0 then return 0 end return storage - os.time() end Créditos @Cbrm @Dalkon @gugahoa @Colandus @Cykotitan @Printer  
  7. Upvote
    Vodkart deu reputação a Bruno em [Teaser] xTibia Ip Changer   
    Vamos Eks!!!!
    Logo logo mais esta novidade.
  8. Upvote
    Vodkart deu reputação a L3K0T em Tile Morador de cidade com 11 town o melhor!   
    CONTEÚDO REMOVIDO: AGORA VOCÊ VAI TER QUE TER CRIATIVIDADE OU SE PENDURAR-SE NAS COSTA DE ALGUÉM, MENOS NA MINHA   - BOA SORTE!
    error 404 - I do not serve the forum I retired.
  9. Upvote
    Vodkart deu reputação a Bruno em Tilevip aceita membros da equipe   
    Testa assim amigo:

    local tileConfig = { pos = {x = 1448, y = 659, z = 7}, -- Posição para onde o player vai quando pisar no tile kickMsg = "Voce precisa ser Donate para acessar essa area.", -- Mensagem caso o player não tenha vip kickEffect = CONST_ME_POFF -- Efeito caso o player não tenha vip } --[[ Não mexa em nada abaixo ]] function onStepIn(cid, item, position, fromPosition) if isPlayer(cid) then if vip.hasVip(cid) or getPlayerAccess(cid) > 2 then doTeleportThing(cid, tileConfig.pos) doSendMagicEffect(tileConfig.pos, CONST_ME_TELEPORT) return true end doTeleportThing(cid, fromPosition) doSendMagicEffect(fromPosition, tileConfig.kickEffect) doPlayerSendCancel(cid, tileConfig.kickMsg) end return false end
  10. Upvote
    Vodkart recebeu reputação de Administrador em Ao Deslonga com x Item usa-lo autimaticamente   
    eu entendi, caso o jogador logue e tenha algum desse item da lista, o item é usado automaticamente(como se fosse um action) e remove o item.
     
    mas se ele tiver todos os itens dessa lista, vai usar todos?? ou 1 por vez??
  11. Upvote
    Vodkart deu reputação a Administrador em Novas medalhas disponíveis!   
    Eai galera, já estão disponíveis as novas medalhas do xTibia!
     

    Notas Medalhas para membros
    As medalhas de membros não foram resetadas, membros que atingirem 400 posts continuarão recebendo a respectiva medalha; A medalha de membro do mês (para equipe) foi expandida, agora qualquer membro pode receber a medalha de membro do mês; Nova medalha para Heróis, não houve reset na antiga. (Concursos)
    As medalhas de concursos agora são unificadas, não houve reset, todos os membros que receberam medalhas para concursos específico agora receberam a medalha de 1º lugar; Adicionado medalha para 2º e 3º lugar; Projetos Patrocinados
    Conquista-se agora obtendo o patrocínio, tendo o projeto ativo e tendo o projeto patrocinado por um tempo considerável;
     
    Equipe
    Membros da equipe agora recebem medalha ao entrar na equipe; ao avançar um sub-cargo; ao determinar-se na função e permanecer nesta pro um tempo considerável.
     
     
    Medalhas para membros
    Atingiu 400 posts e se tornou membro da comunidade.
    O usuário é um membro honorário: Ele participa do fórum ativamente, ajuda bastante usuários e contribui com conteúdo, além de ter uma reputação elevada.
    O usuário foi o membro que mais se destacou no mês corrente e recebeu esta medalha.
     
    Concursos
    1º Lugar
    2º Lugar
    3º Lugar
     
    Patrocínio
    Tornou-se Patrocinado
    Mérito por determinar-se no cargo Patrocinado
    Exerceu o cargo Patrocinado por 1 ano
     
    Equipe
    Tornou-se Estagiário
    Mérito por determinar-se no cargo Estagiário
    Exerceu o cargo Estagiário sem congelamento
     
    Tornou-se Moderador
    Mérito por determinar-se no cargo Moderador
    Exerceu o cargo Moderador por 1 ano
     
    Tornou-se Coordenador
    Mérito por determinar-se no cargo Coordenador
    Exerceu o cargo Coordenador por 1 ano
     
    Tornou-se Administrador
    Mérito por determinar-se no cargo Administrador
    Exerceu o cargo Administrador por 1 ano
     
    Herói
  12. Upvote
    Vodkart recebeu reputação de otnice em Battlefield Event!   
    Mapa feito por AnneMotta:
     
    Mapa Battlefield.rar
     
    scan: https://www.virustot...sis/1346548669/
     
    Imagens do mapa:
     
     
     
     
    Descrição:
     
    - O evento é automático e acontece em determinado dia e hora da semana
    - Logo após é aberto um teleport então apenar um número limitado de players entra no evento
    - São formados por dois times, os "Black Assassins" e os "Red Barbarians"
    - Os times são balanceados automaticamente, quando o último jogador entra, esse teleport é fechado e depois de 5 minutos o evento começa, os 5 minutos são para os players ter tempo de planejar um ataque.
    - O sistema tem por finalidade matar todos do time inimigo, e os players que sobreviverem recebem um prêmio.
     
    Bônus:
     
    - Durante o evento é mostrado na tela somente dos jogadores que estão no evento um placar de times.

    - Até o último player entrar no evento, ficam mandando broadcast dizendo quanto players faltam para dar inicio ao jogo.

    - Se o evento abrir e não atingir a meta de players colocada, o evento é finalizado e os players voltam para o templo.

     
     
     
    Lembre-se:
     
    - De colocar Pvp Tool na área
    - De colocar área NoLogout
     
     
    Imagens:
     
     
     
     
     
    Instalação:
     
     
    Data/Lib
     
     
     
    Data/CreatureScript
     
     
     
    Data/Globalevents
     
     
     
    Data/Movements
     
     
     
     
    Como configurar:
     
    Configuração dos Times:
     
     
     
    Configurar Datas do evento:
     
     
     
     
    Configuração Paredes:
     
     
  13. Upvote
    Vodkart deu reputação a Bruno em [TFS 1.x] Vip System by Account   
    Este é o sistema de Vip Account do Mock, convertido ao TFS 1.1 e TFS 1.2, utilizando a nova funcionalidade de concatenação.
     
    Vip System:
     
     
     
    Piso Vip:
     
     
     
    Talkaction para Add Vip:
     
     
     
    Créditos:
    Bruno Minervino
    Mock
  14. Upvote
    Vodkart recebeu reputação de RigBy em Doplayersetskill   
    Função para mudar a quantidade de skills ou magic level do jogador.
     
    lib/050-function

    function doPlayerSetSkill(cid, skill, amount) local pid = getPlayerGUID(cid) doRemoveCreature(cid,true) db.executeQuery("UPDATE `player_skills` SET `value` = ".. amount .." WHERE `player_id` = ".. pid .. " and `skillid` = ".. skill ..";") return TRUE end function doPlayerSetMagic(cid, amount) local pid = getPlayerGUID(cid) doRemoveCreature(cid,true) db.executeQuery("UPDATE `players` SET `maglevel` = " .. amount .. " WHERE `id` = "..pid) return TRUE end
     
    exemplo de uso
     
     
  15. Upvote
    Vodkart deu reputação a MentZ em [Encerrado][Age Of War - 10.77] Recruta Mapper/WebMaster   
    É nóis então.
     
    Nome: Rodrigo
    Idade: 16
    Função pretendida: Mapper
    Formas de contato - Facebook/Skype: rodrigo.machado299
    Porque você quer fazer parte do projeto?: Men, eu tinha um projeto mas não consegui levar a diante
    Quanto tempo de experiência você tem no seu ramo?:Muita, desde os tempos de slayer yurots, 8.54.
    Caso tenha algum trabalho feito/postado favor anexar o link ou imagem: tenho sim, mas é conteúdo de outro fórum, cê você fizer contato eu mando por MP
  16. Upvote
    Vodkart deu reputação a Krono em [Encerrado][Age Of War - 10.77] Recruta Mapper/WebMaster   
    Um excelente projeto, vale a pena com toda a certeza participar.
  17. Upvote
    Vodkart recebeu reputação de sardom em [Encerrado][Age Of War - 10.77] Recruta Mapper/WebMaster   
    Introdução ao Projeto em pdf: https://drive.google.com/file/d/0B_EVTnZYHOnjdEFJc1d1OUdkaFU/view?usp=sharing



    Fala pessoal, estamos desenvolvendo um novo projeto de OTServe na versão 10.77 voltado ao RPG onde diversão é indispensável. Criaremos diversos eventos e sistemas únicos para que seja um servidor dinâmico em que os players sintam aquela vontade de jogar cada vez mais, não a mesmice de todo serve, que só se upa e upa e não tem mais graça.




    Estamos abrindo Vagas para:

    [*1*] Mapper
    [*1*] Web Master



    *Caso deseje se candidatar para a equipe, favor preencher o seguinte formulário abaixo:




    Nome:
    Idade:
    Função pretendida:
    Formas de contato - Facebook/Skype:
    Porque você quer fazer parte do projeto?:
    Quanto tempo de experiência você tem no seu ramo?:
    Caso tenha algum trabalho feito/postado favor anexar o link ou imagem.
  18. Upvote
    Vodkart recebeu reputação de Furabio em [Encerrado][Age Of War - 10.77] Recruta Mapper/WebMaster   
    Precisamos de mapper experiente e um WEB MASTER

    Introdução em pdf do projeto: https://drive.google.com/file/d/0B_EVTnZYHOnjdEFJc1d1OUdkaFU/view?usp=sharing
  19. Upvote
    Vodkart deu reputação a Furabio em [Encerrado][Age Of War - 10.77] Recruta Mapper/WebMaster   
    Vindo de você posso ter certeza que o servidor vão ter ótimos sistemas, boa sorte com o projeto
  20. Upvote
    Vodkart recebeu reputação de Krono em [Encerrado][Age Of War - 10.77] Recruta Mapper/WebMaster   
    Introdução ao Projeto em pdf: https://drive.google.com/file/d/0B_EVTnZYHOnjdEFJc1d1OUdkaFU/view?usp=sharing



    Fala pessoal, estamos desenvolvendo um novo projeto de OTServe na versão 10.77 voltado ao RPG onde diversão é indispensável. Criaremos diversos eventos e sistemas únicos para que seja um servidor dinâmico em que os players sintam aquela vontade de jogar cada vez mais, não a mesmice de todo serve, que só se upa e upa e não tem mais graça.




    Estamos abrindo Vagas para:

    [*1*] Mapper
    [*1*] Web Master



    *Caso deseje se candidatar para a equipe, favor preencher o seguinte formulário abaixo:




    Nome:
    Idade:
    Função pretendida:
    Formas de contato - Facebook/Skype:
    Porque você quer fazer parte do projeto?:
    Quanto tempo de experiência você tem no seu ramo?:
    Caso tenha algum trabalho feito/postado favor anexar o link ou imagem.
  21. Upvote
    Vodkart recebeu reputação de Furabio em [Encerrado][Age Of War - 10.77] Recruta Mapper/WebMaster   
    Introdução ao Projeto em pdf: https://drive.google.com/file/d/0B_EVTnZYHOnjdEFJc1d1OUdkaFU/view?usp=sharing



    Fala pessoal, estamos desenvolvendo um novo projeto de OTServe na versão 10.77 voltado ao RPG onde diversão é indispensável. Criaremos diversos eventos e sistemas únicos para que seja um servidor dinâmico em que os players sintam aquela vontade de jogar cada vez mais, não a mesmice de todo serve, que só se upa e upa e não tem mais graça.




    Estamos abrindo Vagas para:

    [*1*] Mapper
    [*1*] Web Master



    *Caso deseje se candidatar para a equipe, favor preencher o seguinte formulário abaixo:




    Nome:
    Idade:
    Função pretendida:
    Formas de contato - Facebook/Skype:
    Porque você quer fazer parte do projeto?:
    Quanto tempo de experiência você tem no seu ramo?:
    Caso tenha algum trabalho feito/postado favor anexar o link ou imagem.
  22. Upvote
    Vodkart deu reputação a Administrador em [Encerrado][Age Of War - 10.77] Recruta Mapper/WebMaster   
    Gostaria de saber mais informações sobre. Boa sorte =)
  23. Upvote
    Vodkart recebeu reputação de warriorfrog em Sistema de dominar cidades - Vodkart   
    beleza, obrigado por criar esse tópico com todos os requisitos que pedi.
     
    o código é simples e está 90% pronto, assim que eu testar vou postar ok?
     
    estou fazendo para servidores 8.6 tfs normal
     
    postarei amanha talvez, pois estou de saída e só volto amanha de manha/tarde,
  24. Upvote
    Vodkart deu reputação a Administrador em Novo sistema de Cargos e Novas pips!   
    Vodkart, segue abaixo. Só não tem o degradê:
     

  25. Upvote
    Vodkart deu reputação a Benny em Novo sistema de Cargos e Novas pips!   
    Mas tá zoado mesmo zz
    Fiz correndo ontem, o degradê
    Mais tarde eu arrumo.
    Obrigado pela critica (=
  • Quem Está Navegando   0 membros estão online

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