-
Posts
842 -
Joined
-
Last visited
-
Days Won
7
Reputation Activity
-
AnneMotta reacted to RigBy in Passagem Secreta Diferente
Passagem Secreta
Gif de como funciona
Essa semana tava ajudando um cara chamado Farathor nesse topico, e foi uma ideia boa então decidi refazer e trazer pra cá
Ela funciona da seguinte maneira, vai ter 3 coal basin (Você pode configurar e coloca quantas você quiser), ai você vai ter que joga 3 itens diferente em cada coal basin (no meu caso eu usei os 3 fields) a estatua vai se move criando um teleport ou não (configurado), depois que você entrar no teleport ele ira fechar ou não (configurado).
Eu usei como exemplo os 3 field mas você pode alterar para algum item ou até adicionar ou remover mais locais onde tera que joga o item.
Testei na TFS 0.4 rev 3887
Então vamos instalar:
Crie um arquivo chamado Secret_Passage.lua na pasta movement/script e coloque isso dentro:
Agora adicione essa duas linha em movement.xml:
<movevent type="AddItem" tileitem="1" actionid="13501" event="script" value="Secret_Passage.lua.lua"/> <movevent type="StepIn" actionid="5555" event="script" value="Secret_Passage.lua.lua"/> Agora so basta você adicionar o actionid 13501 nos coal basin ou nos piso mesmo. Se você alterar o actionid "5555" você terar que alterar no Secret_Passage.lua também. Para adicionar mais locais so basta você adicionar outra linha com o id do item e o local onde terá que ruma o item e não esqueã de sempre coloca 1 a mais no inicio, exemplo: se tiver 3 ai você cria o outro um a mais ficando 4. [4] = {necessary_Item = 2160, tile = {x = 1062, y = 1027, z = 7, stackpos= 1}}, Isso ai, xau -
AnneMotta got a reaction from Matheus36000 in [Inquisition] Scripts Mapa Global! Plz,
Espero ter contribuido, vou mandar mover para pedidos atendidos.
-
AnneMotta got a reaction from Administrador in #4 Mudanças e Novidades
Incrível daniel, está dando uma nova cara ao ekz, fico feliz por ser implantada a sessão de bots!(até que fim \õ/)
-
AnneMotta reacted to Administrador in #4 Mudanças e Novidades
Eai galerinha, nessas últimas duas semanas passamos por algumas correções no fórum. Gostaria de dizer ao pessoal que está colaborando e reportando em Feedback que em breve tudo estará resolvido. Por enquanto, confiram algumas novidades para esta semana:
MUDANÇAS
Reformulação de conquistas Membro Honorário, Membro do Mês, 1º, 2º e 3º lugar;
Deletadas conquistas extras para equipe; Atualização em prefixos (); Reorganizadas as seções de Aprovação e Downloads; NOVIDADES
Adicionado ranks em reputações:
Seção de bots adicionada; Novas tags para seção de bots; Nova seção Assistência em Atendimento; Novas conquistas: Melhores respostas 50 Melhores Respostas
100 Melhores Respostas
200 Melhores Respostas
300 Melhores Respostas
500 Melhores Respostas
600 Melhores Respostas
700 Melhores Respostas
800 Melhores Respostas
1000 Melhores Respostas
Confira!!!
xTibia Global 10.79 full (Oramond, Cast System, Lion's Rock) v13
-
AnneMotta reacted to Administrador in xTibia - Shadowcores Website
Visualize o website
Downloads
Download Mega
Scan
Créditos:
Shadowcores
por disponibilizar
@Daniel por postar
-
AnneMotta got a reaction from Piabeta Kun in [Teaser] xTibia Ip Changer
Opa, ficou muito bom em... eu só trocaria esse "background" sei la, da pra melhorar.
-
AnneMotta reacted to Administrador in 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
-
AnneMotta reacted to larissaots in SimOne MapEditor 0.581 - (7.6 - 8.6)
Quem lembra do famoso SimOne? Há muitos anos atrás esse map editor era uma febre entre os donos de servidores.
Procurei o conteúdo pelo fórum e acabei não encontrando, então, estarei disponibilizando pra vocês!
Download: http://www.mediafire.com/download/mh3k7bcv8u1yb80/SimOne+MapEditor.rar
Senha: xTibia.com
Já coloquei o Tibia 8.60 na pasta do MapEditor.
-
AnneMotta reacted to Administrador in [Teaser] xTibia Ip Changer
Esse é um teaser do xTibia Ip Changer. Ele vem sido desenvolvido por mim e pelo . Em breve, estaremos disponibilizando à comunidade.
Suas funções repetem o objetivo de qualquer outro ip changer. Exceto por algumas exclusividades como o botão que leva o usuário até a maior lista de OtServers do Brasil; Você também pode selecionar um client para aplicar uma nova versão.
Aguardamos feedbacks da comunidade. Espero que tenham gostado =)
-
AnneMotta got a reaction from Administrador in [Teaser] xTibia Ip Changer
Opa, ficou muito bom em... eu só trocaria esse "background" sei la, da pra melhorar.
-
AnneMotta reacted to Qwizer in Global 10/11.5 + OtherWorld + Hearth of Destruction Quest+ Eventos
Global Full
[CLIENTS COMPATÍVEIS]
10 e 11.5.
[BUGS E DOWNLOAD]
BAIXEM E REPORTEM EM: OTXGlobal Full
[FEATURES]
NEW DEPOT, NEW SPAWN, NEW CAST SYSTEM, NEW NPC SYSTEM VIA BANK BALANCE, NEW CRITICAL BOOST SYSTEM, NEW POTIONS, REWARD SYSTEM, PREY ...
[MAPA]
FULL GLOBAL MAP WITH FEYRIST
TODAS CIDADES E NOVAS AREAS
TODAS QUESTS FUNCIONANDO!
[EVENTS]
WAR-ANTIENTROSA
[CONTATO]
SKYPE: onjogos WHATSAPP: (66) 998427-4493
[Créditos]Tfs 1.2 Developers -Zbizu - Pitis91 - MatheusMkalo - Gesior - Lundrial
- M4G0 -
Fish04k - Printer - Djarek - Ninjalulz - Slavidodo - Thexamx - Socket2810 - Ciroc -Absolute - Gordonbay - Mitsuig - Alissonfgp - Gunz - Bruno Minervino - Comedinha -Hirako - Maya - Mattyx14 – Darkjav - Viking Tibia
-
AnneMotta reacted to Bruno in [Resolvido] 8.60 para 76/77/78
Tópico movido para seção de dúvidas resolvidas.
-
AnneMotta reacted to Bruno in [Resolvido] 8.60 para 76/77/78
Que isso meu querido, disponha! Se precisar de ajuda, posta na seção
Dúvida resolvida ou tem mais alguma dúvida?
-
AnneMotta got a reaction from Administrador in [Resolvido] 8.60 para 76/77/78
aaah sim, entendo... acho que vai dar um bom trampo, vou pensar se vou ter coragem de refazer/arrumar tudo, obrigado pela resposta
-
AnneMotta reacted to Bruno in [Resolvido] 8.60 para 76/77/78
O mapa é fácil, basta converter usando o RME.
Agora em questão de scripts, muitas funções funcionam, basta algumas implementações...
Exemplo:
8.60:
function onSay(cid, words, param) return true end10.76
function onSay(player, words, param) local cid = player return true endAqueles efeitos coloridos não funcionam. -
AnneMotta reacted to Mudrock in [GESIOR] DarkSandOTS Layout
Download
Scan
Creditos:
Vecay (pelo layout)
Eu (so por trazer
-
AnneMotta reacted to jhon992 in [Poketibia] JhonBot
JhonBot - 1.4.0
Bot incrivel desenvolvido em Java que manipula funções do jogo utilizando apenas o teclado e o mouse, fazendo com que seja o bot mais seguro da atualidade. Atualmente, suas principais funções são:
- Fishing: capacidade de pescar sozinho.
- Love: !love periódicos ao seus pokemons.
- Food: alimenta seu pokemon automaticamente.
- Heal: utiliza potions no seu pokemon de acordo com o life atual do mesmo.
- Revive: revive seu pokemon utilizando potion caso morto.
- Attack: ataca qualquer pokemon que aparecer na tela.
- Moves: executa as spells de seu pokemon como configurado.
- Loot: recolhe itens de corpses ao redor de seu personagem.
- Atalhos: atalhos para ajudar na performance.
Você tem total liberdade de salvar as configurações para utilizar novamente, ou abrir configurações prontas já salvar.
Toda configuração utilizando segundos tem um sistema de "Random" onde sorteia um numero (exemplo: de 1 á 5), e adiciona esse numero sorteado na configuração no momento de usa-la, fazendo assim ficar mais imperceptível que é um bot executando as funções.
O bot trabalha de modo silencioso, porem só executa suas funções quando o cliente do poketibia esta a frente das outras telas abertas.
Clientes testados: PXG, PokeStorm, otPokemon e outros.
Site oficial: http://jhonbot.com/ Manual: http://jhonbot.com/j...ual-jhonbot.pdf Se o Bot apresentar algum problema ao abrir, faça download do Java através desse link: Java 32x - http://javadl.sun.co...BundleId=101467 Java 64x - http://javadl.sun.co...BundleId=101469 depois reinstale o Bot. Se o erro persistir, leia a página 1 do manual. Caso alguma dúvida, suporte@jhonbot.com Skype: jhonatan.scarvalho Facebook: https://www.facebook...groups/JhonBot/ -
-
AnneMotta reacted to Lumus in [Mapper] Fawz... voltando a mapear..
Pouco a falar, mais a demonstrar =)
Resolvi criar um novo estilo de cidade só que um pouco diferente... vejam as fotos
Loja de venda de utensílios mágicos.
Pracinha u.u
Umas das últimas fotos da cidade... após essas postarei de quests, hunts e etc.
Loja de utensílios de paladinos.
Loja de utensílios de guerreiros.
Uma nova hunt...
Continuação...
Atualizando...
Porto... Os portos terão duas embarcações, uma pirata e a outra correta.. a pirata aparecera em horários distintos
Caminho de uma quest...
O começo de uma quest...
Essa quest, será para jogadores inciantes, portanto será bem fácil, o personagem junto com mais 1 amigo terão que abrir a passagem para o outro lado da cave... mas chegando lá alguns outros mistérios acontecerão... não irei revelar tudo.. rs.
Mais tarde novas atualizações
PS: Fotos postadas no fórum do RadBR.
-
AnneMotta reacted to Tony in [Resultado] Sign of the Week |01|
[LIVRE]
01° COLOCADO
[COM 12 VOTOS PARA 01° COLOCADO]
The Danzing
02° COLOCADO
[COM 10 VOTOS PARA 02° COLOCADO]
Tony
03° COLOCADO
[COM 6 VOTOS PARA 03° COLOCADO]
moskitinho
Primeiro colocado: 4 REP+ MEDALHA
Segundo colocado: 3 REP+
Terceiro colocado: 1 REP+
OBRIGADO PELA PARTICIPAÇÃO DE TODOS, E PARABÉNS AOS VENCEDORES!
-
AnneMotta reacted to Mudrock in [TFS 1.0 / 0.4] xGesior 1.0.0
Sobre o xGesior
O xGesior, veio com a tarefa de ser um Gesior sem bugs e com uma aparência diferenciada,
esse gesior conta com 3 versões, 2 ainda estão em desenvolvimento,
esse conteúdo não deve ser de qualquer maneira comercializado!
https://github.com/xtibia/xgesior
VERSÕES
Versão 1.0.0 [ DISPONIVEL ]
Versão 1.1.1 [ IDISPONIVEL ]
Versão 1.2.2 [ IDISPONIVEL ]
COMPATIBILIDADES
TFS 1.1 [NÃO TESTADO] TFS 1.0 [FUNCIONAL] TFS 0.4 [NÃO TESTADO] TFS 0.2 [NÃO TESTADO]
Imagens XGesior
DOWNLOAD E SCAN
Senha para descompactar: www.xtibia.com
WebSite : http://www.mediafire.com/download/xq87wnpno9wdoa5/xGesior+1.0.0+ByMudrocK.rar
Xampp : http://sourceforge.net/projects/xampp/files/XAMPP%20Windows/1.7.3/
SCAN : https://www.virustotal.com/pt/file/803c43116009f63c38c589a5f3c49d90caf80d066c0cd95fb58eab9203b080c7/analysis/1430007560/
Database : [ JA NA PASTA DO GESIOR ]
GitHub: https://github.com/xtibia/xgesior
Créditos
Mudrock
Daniel
-
AnneMotta reacted to Mudrock in Plágio é CRIME! Proteja seu Site!
Eae pessoal bom eu aqui mais uma vez vou ensinar Protejer seu site seja o qual for contra listagem das suas pasta do Diretório,
é uma coisa muito simples mas nem todos sabem só os mais avançados em Web Designer já devem saber, agora é sua vez de aprender!
[Resumo]
Sabe quando você digita www.seusite.com/index.php/templates ou outra pasta sem proteção ? no caso vai listar todo seus arquivos da quela pasta e acessível para qualquer pessoa baixar correto ? Aqui vou ensinar como se prevenir disso para ninguém pegar seus arquivos de seu site.
*Primeiramente vamos criar um arquivo index.php dentro de uma pasta eu vou criar em Templates "c:/xampp/htdocs/templates" se quiser você também pode criar assim, copia um Arquivo Index.PHP ou index.HTM o que chama o seu site na página inicial, dentro da cópia Index.PHP ou Index.HTM coloca o seguinte HTML.
Pronto agora vamos acessar a pasta template www.seusite.com/index.php/templates se o erro foi igual da imagem abaixo está correto ai é só por nas d+ pasta do seu site, as que contém a Index você pode pular!
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR...l1-strict.dtd">
<text><strong><h1><center> Error 404 </center></h1><strong></text>
<br>
<title>Error by Alexy brocanello e Quilante Otserv</title>
<script type="text/javascript">
function click() {
if (event.button==2||event.button==3) {
oncontextmenu='return false';
}
}
document.onmousedown=click
document.oncontextmenu = new Function("return false;")
</script>
<script language='JavaScript'>
function clique() {if (event.button==2||event.button==3) {oncontextmenu='return false';}}
document.onmousedown=clique
document.oncontextmenu = new Function("return false;")
</script>
<html xmlns="http://www.w3.org/1999/xhtml"xml:lang="en" lang="en">
<head>
<meta name="Description" content="PokemonDBR o maior MMORPG de pokemon online do Brasil, chame seus amigos e venha nessa aventura." />
<meta name="Keywords" content="pokemon, pokemonbr, pokemon dbr, tibia, naruto, naruto online, otpokemon, pxg, pokemon online, poketibia, pokepro, pokemon rpg, poke on, otserv, tibia king, xtibia, facebook, jogos online, nintendo, rpg, mmorpg, jogar pokemon" />
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
<meta name="Distribution" content="Global" />
<meta name="author" content="Error by Alexy brocanello amd Quilante Otserv" />
<meta name="Robots" content="index,follow" />
</head>
<center><a href="http://www.planalto....leis/l9610.htm"target="_blank"><img src="http://hpobrasil.com/pokemondbr/error.png"/></a></center><center>Você está tentando acessar um lugar proibido, isso é plágio isso é crime!</center><center><br><a href="http://www.planalto.gov.br/ccivil_03/leis/l9610.htm" target="_blank"> lei 9.610 de 19 de fevereiro de 1998</center>
</body>
</html>
Todos que acessar seu diretório não atorizado www.seusite.com/index.php/templates um aviso será mostrado e serve pra todos os site!
até a próxima
Créditos : Alex
-
-
AnneMotta reacted to Maenilse in Scripter Lua
venda de scripts "AQUI NO XTIBIA" é proibido, n importa se o codigo é criado, o mesmo nao pode ser vendido, tanto servidores quanto scripts sao proibidos no xtibia.
-
AnneMotta got a reaction from Omega in NPC Dicer
Bom dia jovens, graças ao grande Omega eu consegui terminar o código do NPC Dicer, a função para checar o gold foi feita por ele então deem um beijo nele
O NPC é parecido com aqueles BOTS que ficam no tibia global em yalahar normalmente, você joga uma quantia em gold e fala L ou H também pode ser Low ou High e com sorte pode ganhar o dobro da quantia apostada, exemplo:
Eu vou lá jogo 20k na mesa e falo Low, caso caia nos números 1, 2 ou 3 eu irei ganhar o dobro da quantia que eu apostei que no foi 20k, mas se cair nos números 4, 5 ou 6 eu iria perder esses 20k.
O High é a mesma coisa porém ao contrario, se eu falo High e cair nos numero 4, 5 ou 6 eu ganho o dobro da quantia que eu apostei e se cair no 1, 2 ou 3 eu perderia tudo.
Crie um arquivo em data/npc com o nome dicer.xml e adicione isso dentro:
<?xml version="1.0"?> <npc name="Dicer" script="data/npc/scripts/dicer.lua" walkinterval="1000" floorchange="0"> <health now="100" max="100"/> <look type="132" head="114" body="0" legs="0" feet="114" addons="3"/> <parameters> <parameter key="message_greet" value="Ola {|PLAYERNAME|}, caso queria tentar a sorte diga {L} ou {Low} para apostar nos numeros {1}, {2} ou {3} ||| {H} ou {High} para apostar nos numeros {4}, {5} ou {6}!" /> </parameters> </npc> Agora vá até data/npc/scripts e crie um arquivo com o nome dicer.lua e adicione isso dentro:
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 coins = {[2148] = 1, [2152] = 100, [2160] = 10000} function countMoneyOnPos(pos) local money = 0 for stack = 1, 50 do pos.stackpos = stack local item = getThingFromPos(pos) if item and item.uid > 0 then if coins[item.itemid] then money = money + coins[item.itemid] * item.type end end end return money end local posCoal = {x = 169, y = 58, z = 7} -- POSIÇÃO DO COAL, ONDE O GOLD DEVE ESTAR local posNpc = {x = 193, y = 45, z = 7} -- POSIÇÃO DO NPC local pos = getPosByDir(getThingPos(cid), getCreatureLookDirection(cid), 1) -- NÃO ALTERAR if msgcontains(msg, 'l') or msgcontains(msg, 'L') or msgcontains(msg, 'low') or msgcontains(msg, 'Low') then if countMoneyOnPos(pos) > 0 then if math.random(1, 6) <= 3 then doPlayerAddMoney(cid, countMoneyOnPos(pos)*2) doRemoveItem(getTileItemById(pos, 2148).uid) repeat until not doRemoveItem(getTileItemById(pos, 2148).uid) doRemoveItem(getTileItemById(pos, 2152).uid) repeat until not doRemoveItem(getTileItemById(pos, 2152).uid) doRemoveItem(getTileItemById(pos, 2160).uid) repeat until not doRemoveItem(getTileItemById(pos, 2160).uid) doSendMagicEffect(posNpc, 26) doSendMagicEffect(posNpc, 28) doCreatureSay(getNpcId(), getCreatureName(cid)..' tirou o numero '..math.random(1, 3)..', parabéns!', TALKTYPE_ORANGE_1) else doRemoveItem(getTileItemById(pos, 2148).uid) repeat until not doRemoveItem(getTileItemById(pos, 2148).uid) doRemoveItem(getTileItemById(pos, 2152).uid) repeat until not doRemoveItem(getTileItemById(pos, 2152).uid) doRemoveItem(getTileItemById(pos, 2160).uid) repeat until not doRemoveItem(getTileItemById(pos, 2160).uid) doSendMagicEffect(posNpc, 2) doSendMagicEffect(posNpc, 26) doCreatureSay(getNpcId(), getCreatureName(cid)..' tirou o numero '..math.random(4, 6)..', tente novamente!', TALKTYPE_ORANGE_1) end else doCreatureSay(getNpcId(), getCreatureName(cid)..', coloque uma quantia de gold no recipiente para começar a apostar!', TALKTYPE_ORANGE_1) end elseif msgcontains(msg, 'h') or msgcontains(msg, 'H') or msgcontains(msg, 'high') or msgcontains(msg, 'High') then if countMoneyOnPos(pos) > 0 then if math.random(1, 6) <= 3 then doPlayerAddMoney(cid, countMoneyOnPos(pos)*2) doRemoveItem(getTileItemById(pos, 2148).uid) repeat until not doRemoveItem(getTileItemById(pos, 2148).uid) doRemoveItem(getTileItemById(pos, 2152).uid) repeat until not doRemoveItem(getTileItemById(pos, 2152).uid) doRemoveItem(getTileItemById(pos, 2160).uid) repeat until not doRemoveItem(getTileItemById(pos, 2160).uid) doSendMagicEffect(posNpc, 26) doSendMagicEffect(posNpc, 28) doCreatureSay(getNpcId(), getCreatureName(cid)..' tirou o numero '..math.random(4, 6)..', parabéns!', TALKTYPE_ORANGE_1) else doRemoveItem(getTileItemById(pos, 2148).uid) repeat until not doRemoveItem(getTileItemById(pos, 2148).uid) doRemoveItem(getTileItemById(pos, 2152).uid) repeat until not doRemoveItem(getTileItemById(pos, 2152).uid) doRemoveItem(getTileItemById(pos, 2160).uid) repeat until not doRemoveItem(getTileItemById(pos, 2160).uid) doSendMagicEffect(posNpc, 2) doSendMagicEffect(posNpc, 26) doCreatureSay(getNpcId(), getCreatureName(cid)..' tirou o numero '..math.random(1, 3)..', tente novamente!', TALKTYPE_ORANGE_1) end else doCreatureSay(getNpcId(), getCreatureName(cid)..', coloque uma quantia de gold no recipiente para começar a apostar!', TALKTYPE_ORANGE_1) end end return true end npcHandler:setCallback(CALLBACK_MESSAGE_DEFAULT, creatureSayCallback) npcHandler:addModule(FocusModule:new()) Você deve fazer alterações nesta parte:
local posCoal = {x = 169, y = 58, z = 7} -- POSIÇÃO DO COAL, ONDE O GOLD DEVE ESTAR local posNpc = {x = 193, y = 45, z = 7} -- POSIÇÃO DO NPC Aconselhável montar uma área pro npc ficar idêntica a da fotos para não bugar o código, o coal() deve sempre ficar na frente do player pois a função ira chegar o gold a frente do player.
Ao falar Hi
Npc verificando que não tem gold no coal
Vencendo uma aposta
Perdendo uma aposta
Créditos:
Markin(Anne)
Omega pela função de checar o gold
-
Recently Browsing 0 members
- No registered users viewing this page.