
Histórico de Curtidas
-
Brum deu reputação a L3K0T em (Resolvido)Shop não entrega itensvolta o script que estava caindo o crystal coin e teste
-
Brum deu reputação a L3K0T em (Resolvido)Shop não entrega itensimporte isso pro seu mysql "banco de dados"
DROP TABLE IF EXISTS `z_shop_history_item`; CREATE TABLE IF NOT EXISTS `z_shop_history_item` ( `id` int(11) NOT NULL AUTO_INCREMENT, `to_name` varchar(255) NOT NULL DEFAULT '0', `to_account` int(11) NOT NULL DEFAULT '0', `from_nick` varchar(255) NOT NULL, `from_account` int(11) NOT NULL DEFAULT '0', `price` int(11) NOT NULL DEFAULT '0', `offer_id` varchar(255) NOT NULL DEFAULT '', `trans_state` varchar(255) NOT NULL, `trans_start` int(11) NOT NULL DEFAULT '0', `trans_real` int(11) NOT NULL DEFAULT '0', PRIMARY KEY (`id`) ) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=1 ;
-
Brum deu reputação a L3K0T em (Resolvido)Shop não entrega itens-- ### CONFIG ### -- message send to player by script "type" (types you can check in "global.lua") SHOP_MSG_TYPE = 18 -- time (in seconds) between connections to SQL database by shop script SQL_interval = 30 -- ### END OF CONFIG ### function onThink(interval, lastExecution) local result_plr = db.storeQuery("SELECT * FROM z_ots_comunication") if(result_plr ~= false) then repeat local id = tonumber(result.getDataInt(result_plr, "id")) local action = tostring(result.getDataString(result_plr, "action")) local delete = tonumber(result.getDataInt(result_plr, "delete_it")) local cid = getPlayerByName(tostring(result.getDataString(result_plr, "name"))) if(cid) then local itemtogive_id = tonumber(result.getDataInt(result_plr, "param1")) local itemtogive_count = tonumber(result.getDataInt(result_plr, "param2")) local container_id = tonumber(result.getDataInt(result_plr, "param3")) local container_count = tonumber(result.getDataInt(result_plr, "param4")) local add_item_type = tostring(result.getDataString(result_plr, "param5")) local add_item_name = tostring(result.getDataString(result_plr, "param6")) local received_item = 0 local full_weight = 0 if(add_item_type == 'container') then container_weight = getItemWeight(container_id, 1) if(isItemRune(itemtogive_id)) then items_weight = container_count * getItemWeight(itemtogive_id, 1) else items_weight = container_count * getItemWeight(itemtogive_id, itemtogive_count) end full_weight = items_weight + container_weight else full_weight = getItemWeight(itemtogive_id, itemtogive_count) if(isItemRune(itemtogive_id)) then full_weight = getItemWeight(itemtogive_id, 1) else full_weight = getItemWeight(itemtogive_id, itemtogive_count) end end local free_cap = getPlayerFreeCap(cid) if(full_weight <= free_cap) then if(add_item_type == 'container') then local new_container = doCreateItemEx(container_id, 1) local iter = 0 while(iter ~= container_count) do doAddContainerItem(new_container, itemtogive_id, itemtogive_count) iter = iter + 1 end received_item = doPlayerAddItemEx(cid, new_container) else local new_item = doCreateItemEx(itemtogive_id, itemtogive_count) received_item = doPlayerAddItemEx(cid, new_item) end if(type(received_item) == "number" and received_item == RETURNVALUE_NOERROR) then doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, 'You received >> '.. add_item_name ..' << from OTS shop.') db.query("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";") db.query("UPDATE `z_shop_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";") else doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. Please make place for this item in your backpack/hands and wait about '.. SQL_interval ..' seconds to get it.') end else doPlayerSendTextMessage(cid, SHOP_MSG_TYPE, '>> '.. add_item_name ..' << from OTS shop is waiting for you. It weight is '.. full_weight ..' oz., you have only '.. free_cap ..' oz. free capacity. Put some items in depot and wait about '.. SQL_interval ..' seconds to get it.') end end until not result.next(result_plr) result.free(result_plr) end return true end
<globalevent name="Shop" interval="600" script="shop.lua" />
-
Brum deu reputação a L3K0T em (Resolvido)Shop não entrega itenslocal messageType = MESSAGE_EVENT_ORANGE local displayExecutionTime = true if(displayExecutionTime) then function doSecondsFormat(i) local str, found = string.gsub(i, "(%d)(%d%d%d)$", "%1.%2", 1), 0 repeat str, found = string.gsub(str, "(%d)(%d%d%d),", "%1.%2,", 1) until found == 0 return str end end if(not messageType) then messageType = MESSAGE_STATUS_CONSOLE_ORANGE if(not messageType) then messageType = MESSAGE_INFO_DESCR end end if(not getPlayerByName) then function getPlayerByName(name) local p = Player(name) return p ~= nil and p:getId() or false end end if(not isPlayer) then function isPlayer(cid) return Player(cid) ~= nil end end if(not doPlayerSave) then function doPlayerSave(cid) if(Player and type(Player) == "table" and Player.save and type(Player.save) == "function") then local player = Player(cid) if(player) then player:save() end end return true end end function getResults() if(db.storeQuery ~= nil and result.free ~= nil) then -- TFS 1.0+ local resultId = db.storeQuery("SELECT * FROM z_ots_comunication;") if(resultId == false) then return false end local results = {} repeat local tmp = {} tmp.name = result.getDataString(resultId, "name") tmp.exist = false tmp.cid = getPlayerByName(tmp.name) if(tmp.cid and isPlayer(tmp.cid)) then tmp.exist = true tmp.id = result.getDataInt(resultId, "id") tmp.action = result.getDataString(resultId, "action") tmp.delete_it = result.getDataInt(resultId, "delete_it") tmp.param1 = result.getDataInt(resultId, "param1") tmp.param2 = result.getDataInt(resultId, "param2") tmp.param3 = result.getDataInt(resultId, "param3") tmp.param4 = result.getDataInt(resultId, "param4") tmp.param5 = result.getDataString(resultId, "param5") tmp.param6 = result.getDataString(resultId, "param6") end table.insert(results, tmp) until not result.next(resultId) result.free(resultId) return results else if(db.getResult ~= nil) then local result_plr = db.getResult("SELECT * FROM z_ots_comunication;") if(result_plr:getID() == -1) then return false end local results = {} repeat local tmp = {} tmp.name = tostring(result_plr:getDataString("name")) tmp.exist = false tmp.cid = getPlayerByName(tmp.name) if(tmp.cid and isPlayer(tmp.cid)) then tmp.exist = true tmp.id = tonumber(result_plr:getDataInt("id")) tmp.action = tostring(result_plr:getDataString("action")) tmp.delete_it = tonumber(result_plr:getDataInt("delete_it")) tmp.param1 = tonumber(result_plr:getDataInt("param1")) tmp.param2 = tonumber(result_plr:getDataInt("param2")) tmp.param3 = tonumber(result_plr:getDataInt("param3")) tmp.param4 = tonumber(result_plr:getDataInt("param4")) tmp.param5 = tostring(result_plr:getDataString("param5")) tmp.param6 = tostring(result_plr:getDataString("param6")) end table.insert(results, tmp) until not(result_plr:next()) result_plr:free() return results else print('[ERROR - gesior-shop-system.lua] Your distribution is not supported') end end return false end function doQuery(query) if(db.asyncQuery ~= nil) then db.asyncQuery(query) elseif(db.query ~= nil) then db.query(query) elseif(db.executeQuery ~= nil) then db.executeQuery(query) else return false end return true end if(not getItemWeightById) then getItemWeightById = getItemWeight end if(not doCreateItemEx) then function doCreateItemEx(itemid, count) if(Game and type(Game) == "table" and Game.createItem and type(Game.createItem) == "function") then local item = Game.createItem(itemid, count) if item then return item:getUniqueId() end return false else print("[ERROR - gesior-shop-system] Error code: 1. Please contact slawkens at www.otland.net") end end end local gesiorShopSystem = GlobalEvent("GesiorShopSystem") function gesiorShopSystem.onThink(interval) if(interval > 100) then interval = interval / 100 end local started = os.mtime and os.mtime() or os.time() local addedItems, waitingItems = 0, 0 local added = false local results = getResults() if(not results) then return true end for i, v in ipairs(results) do added = false local id = v.id local action = v.action local delete = v.delete_it if(v.exist) then local cid = v.cid local param1, param2, param3, param4 = v.param1, v.param2, v.param3, v.param4 local add_item_type = v.param5 local add_item_name = v.param6 local received_item, full_weight, items_weight, item_weigth = 0, 0, 0, 0 local item_doesnt_exist = false if(add_item_type == 'container' or add_item_type == 'item') then local item_weigth = getItemWeightById(param1, 1) if(type(item_weigth) == 'boolean') then -- item doesn't exist print("[ERROR - gesior-shop-system] Invalid item id: " .. param1 .. ". Change/Fix `itemid1` in `z_shop_offers` then delete it from `z_ots_comunication`") item_doesnt_exist = true else if(add_item_type == 'container') then container_weight = getItemWeightById(param3, 1) if(type(container_weight) == 'boolean') then -- container item doesn't exist print("[ERROR - gesior-shop-system] Invalid container id: " .. param3 .. ". Change/Fix `itemid2` in `z_shop_offers` then delete it from `z_ots_comunication`") item_doesnt_exist = true else if(isItemRune(param1)) then items_weight = param4 * item_weigth else items_weight = param4 * getItemWeightById(param1, param2) end full_weight = items_weight + container_weight end elseif(add_item_type == 'item') then full_weight = getItemWeightById(param1, param2) if(isItemRune(param1)) then full_weight = getItemWeightById(param1, 1) end end end if(not item_doesnt_exist) then local free_cap = getPlayerFreeCap(cid) if(full_weight <= free_cap) then if(add_item_type == 'container') then local new_container = doCreateItemEx(param3, 1) for x = 1, param4 do doAddContainerItem(new_container, param1, param2) end received_item = doPlayerAddItemEx(cid, new_container) else local new_item = doCreateItemEx(param1, param2) received_item = doPlayerAddItemEx(cid, new_item) end if(received_item == RETURNVALUE_NOERROR) then doPlayerSendTextMessage(cid, messageType, "You received >> ".. add_item_name .." << from OTS shop.") doQuery("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";") doQuery("UPDATE `z_shop_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";") doPlayerSave(cid) added = true else doPlayerSendTextMessage(cid, messageType, '>> '.. add_item_name ..' << from OTS shop is waiting for you. Please make place for this item in your backpack/hands and wait about '.. interval ..' seconds to get it.') end else doPlayerSendTextMessage(cid, messageType, '>> '.. add_item_name ..' << from OTS shop is waiting for you. It weight is '.. full_weight ..' oz., you have only '.. free_cap ..' oz. free capacity. Put some items in depot and wait about '.. interval ..' seconds to get it.') end end elseif(add_item_type == 'addon') then doPlayerSendTextMessage(cid, messageType, "You received >> ".. add_item_name .." << from OTS shop.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_GIFT_WRAPS) doPlayerAddOutfit(cid, param1, param3) doPlayerAddOutfit(cid, param2, param4) doQuery("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";") doQuery("UPDATE `z_shop_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";") doPlayerSave(cid) added = true elseif(add_item_type == 'mount') then if(not doPlayerAddMount) then print("[ERROR - gesior-shop-system] Your server doesn't support mounts. Remove all items in database from your `z_shop_offers` table where `offer_type` = mount and also in `z_ots_comunication` where `param5` = mount.") else doPlayerAddMount(cid, param1) doPlayerSendTextMessage(cid, messageType, "You received >> ".. add_item_name .." << from OTS shop.") doSendMagicEffect(getCreaturePosition(cid), CONST_ME_GIFT_WRAPS) doQuery("DELETE FROM `z_ots_comunication` WHERE `id` = " .. id .. ";") doQuery("UPDATE `z_shop_history_item` SET `trans_state`='realized', `trans_real`=" .. os.time() .. " WHERE id = " .. id .. ";") doPlayerSave(cid) added = true end end end if(added) then addedItems = addedItems + 1 else waitingItems = waitingItems + 1 end end local message = ">> Shopsystem, added " .. addedItems .. " items. Still waiting with " .. waitingItems .. " items." if(displayExecutionTime) then local done, str = os.time() - started, "" if(os.mtime) then done = os.mtime() - started if(done < 100) then str = "0.0" .. done elseif(done < 1000) then str = "0." .. done else str = doSecondsFormat(done) if(str:len() == 0) then str = "0.0" end end end message = message .. " Done in: " .. str .. "s." end print(message) return true end gesiorShopSystem:interval(3000) gesiorShopSystem:register()
-
Brum deu reputação a 1xeuzinho1 em (Resolvido)erro na databasevlw rep+
-
Brum deu reputação a oclipper em [SOURCE] BOT OTClient (Free - COM CAVEBOT)Acho valido outras pessoas testarem e dar o feedback. Mas pelo meu historico e pagina do facebook (old tibia) qual a necessidade eu teria de hackiar sua conta de ot 7.x que fecha em 1 mes?
E outra: Estou disponibilizando a SOURCE do bot, qualquer programador pode dar continuidade, o codigo é todo aberto. Nem precisaria de ter SCAN
-
Brum deu reputação a Tricoder em [TFS 1.0/1.1/1.2] Summon teleportando mesmo que você tenha subidoInstalando
globalevents.xml
<globalevent name="SummonTeleport" interval="1000" script="summon_teleport.lua"/> globalevents/scripts/summon_teleport.lua
local distFromMaster = 7 ------ DISTANCIA QUE O SUMMON FICARÁ DO PLAYER function onThink(interval) for _, player in ipairs(Game.getPlayers()) do local playerPos = player:getPosition() if not Tile(playerPos):hasFlag(TILESTATE_PROTECTIONZONE) then local summons = player:getSummons() if #summons ~= 0 then for i = 1, #summons do local summon = summons[i] local summonPos = summon:getPosition() if summonPos.z ~= playerPos.z or summonPos:getDistance(playerPos) > distFromMaster then summon:teleportTo(playerPos) summon:getPosition():sendMagicEffect(CONST_ME_TELEPORT) end end end end end return true end
Créditos
Printer, luanluciano93
-
Brum deu reputação a Nysman em Ajuda criar uma QuestNão sei se vai ser do seu gosto, segue:
NPC/crie um arquivo chamado james.xml ou como preferir e adicione:
Agora em NPC/Script crie um arquivo chamado james.lua e adicione:
Agora em CreatureScript/Script/ crie um arquivo chamado count_quest e adicone:
Agora em creatureScript.xml add:
<event type="kill" name="quest_count" script="count_quest.lua"/>
ainda em creaturescript/script/login.lua procure por algum
registerCreatureEvent e embaixo adiciona:
registerCreatureEvent(cid, "quest_count")
Ai você pode cria um local que o player vai poder ter acesso só quando falar com esse NPC terminando a missão, basta adicionar um local com uma porta e adicionar essa action id: 4151
depois adicione em Action/Script/Quests/ nomedaquest.lua:
Por ultimo em Actions.xml add a tang:
<action actionid="4151" event="script" value="quests/nomedaquest.lua"/>
-
Brum deu reputação a Johncore em DRAGONSOULS DATAPACK 7.92DRAGONSOULS DATAPACK FULL 7.92
Encontrei essa DATAPACK e resolvi postar, tendo em vista que muita gente gosta e não encontra em lugar nenhum a disposição para iniciar um projeto com mapa menor, é uma excelente base.
Especificações :
- Mapa 100%
- Npcs 100%
- Monstros 100%
- Sistemas 100%
Imagens :
Em breve estarei postando fotos do servidor
Downloads :
SERVIDOR + DATABASE : Download // Scann
Projeto no GITLAB
Grupo no WHATSAPP voltado a esse tema de OTSERV: LINK
Créditos :
TFScontribuidores
Dragonsouls Team
Johncore
-
-
-
Brum deu reputação a Nysman em (Resolvido)Config.LuaDúvida sanada!
-
Brum deu reputação a Nysman em (Resolvido)Config.LuaAli em rateSpawnMax = 5 você trocou e mesmo assim demora nascer?
Acho que da pra fazer essa alteração abrindo o seguinte arquvi: seu mapa/spawn, dentro você encontra a seguinte linha:
<monster name="Electrode" x="1" y="-1" z="2" spawntime="60" />
spawntime="60" 60 é o time do resp (que ele demora nascer após morte) = 1m
Edita ai pra ver
-
Brum deu reputação a Mask Ghoul em [8.60][OLD Client] Narutibia (NTO HARD) - Servidor Completohttps://github.com/mattyx14/otxserver/wiki/Compilling-on-Windows
-
Brum deu reputação a Mask Ghoul em (Resolvido)Preciso de Ajuda com Esse SiteBoa sorte eu curti demais que seu ot projeto old tibia amei
-
Brum deu reputação a Mask Ghoul em (Resolvido)Preciso de Ajuda com Esse SiteEdite o seu config.php
procure por:
'character_samples' => array( // vocations, format: ID_of_vocation => 'Name of Character to copy' //0 => 'Rook Sample', 1 => 'Sorcerer Sample', 2 => 'Druid Sample', 3 => 'Paladin Sample', 4 => 'Knight Sample' ), mude para:
'character_samples' => array( // vocations, format: ID_of_vocation => 'Name of Character to copy' 0 => 'Rook Sample' ),
procure por:
// lista de cidades usada ao criar personagem // não será exibido se houver apenas um item (rookgaard, por exemplo) 'character_towns' => array(1), // list of towns 'towns' => array( 0 => 'No town', 1 => 'Sample town' ), você edite o seu mapa nasce em templo rockgaard coloque nele.