Tudo que Fir3element postou
- [Request] Como escolher cidade via Account Manager
-
Reset System with sources
Volta o player pro level 8, o resto mantém.
-
Erro na hora de Compilar, AJUDA Porfavor
protocolgame.cpp, troca isso: case 0xCB: parseBrowseField(msg); break; case 0xCC: parseSeekInContainer(msg); break; por isso: case 0xCB: break; case 0xCC: break; protocolgame.cpp, remove essa parte: void ProtocolGame::parseBrowseField(NetworkMessage& msg) { //const Position& pos = msg.GetPosition(); // addGameTask(&Game::playerBrowseField, player->getID(), pos); } void ProtocolGame::parseSeekInContainer(NetworkMessage& msg) { //uint8_t containerId = msg.get<char>(); //uint16_t index = get<uint16_t>(); // addGameTask(&Game::playerSeekInContainer, player->getID(), containerId, index); } protocolgame.h, remove essa parte: void parseBrowseField(NetworkMessage& msg); void parseSeekInContainer(NetworkMessage& msg); Recompile.
-
(Resolvido)Sumonar uma criatura caso o teleport não esteja no local
local tpId = 1387 local tps = { ["RB Goku SSJ4"] = {pos = {x=389, y=250, z=15}, toPos = {x=400, y=250, z=15}, time = 60}, -- Onde o Teleport irá aparecer e onde ele levará o Player. Em 'Time', configurar tempo em segundos para o TP desapecer. ["RB Vegeta SSJ4"] = {pos = {x=412, y=250, z=15}, toPos = {x=426, y=250, z=15}, time = 60}, ["RB Gohan SSJ4"] = {pos = {x=438, y=250, z=15}, toPos = {x=449, y=250, z=15}, time = 60}, ["RB Trunks SSJ4"] = {pos = {x=461, y=250, z=15}, toPos = {x=377, y=271, z=15}, time = 60}, ["RB Raditz SSJ4"] = {pos = {x=389, y=271, z=15}, toPos = {x=400, y=271, z=15}, time = 60}, ["RB Broly SSJ4"] = {pos = {x=412, y=271, z=15}, toPos = {x=426, y=271, z=15}, time = 60}, ["RB Turles SSJ4"] = {pos = {x=438, y=271, z=15}, toPos = {x=449, y=271, z=15}, time = 60}, ["RB Bardock SSJ4"] = {pos = {x=461, y=271, z=15}, toPos = {x=419, y=232, z=15}, time = 60}, ["RB Gogeta SSJ4"] = {pos = {x=419, y=220, z=15}, toPos = {x=419, y=316, z=15}, time = 60}, ["Porunga"] = {pos = {x=419, y=295, z=15}, toPos = {x=419, y=400, z=13}, time = 60}, ["Fire Guardian1"] = {pos = {x=661, y=703, z=8}, toPos = {x=662, y=706, z=8}, time = 60}, ["Fire Guardian2"] = {pos = {x=657, y=753, z=8}, toPos = {x=657, y=755, z=8}, time = 60}, ["Fire Guardian3"] = {pos = {x=640, y=720, z=6}, toPos = {x=638, y=720, z=6}, time = 60}, ["Fire Guardian4"] = {pos = {x=640, y=717, z=6}, toPos = {x=638, y=716, z=6}, time = 60}, ["Fire Guardian5"] = {pos = {x=636, y=730, z=5}, toPos = {x=636, y=732, z=5}, time = 60}, ["Fire Guardian6"] = {pos = {x=636, y=707, z=5}, toPos = {x=636, y=705, z=5}, time = 60}, ["Hawk"] = {pos = {x=648, y=841, z=3}, toPos = {x=646, y=841, z=3}, time = 60}, ["Warlock"] = {pos = {x=637, y=837, z=3}, toPos = {x=641, y=831, z=1}, time = 60}, } function removeTp(tp) local t = getTileItemById(tp.pos, tpId) if t then doRemoveItem(t.uid, 1) doSendMagicEffect(tp.pos, CONST_ME_POFF) end end function onDeath(cid) local tp = tps[getCreatureName(cid)] if tp then doCreateTeleport(tpId, tp.toPos, tp.pos) doCreatureSay(cid, "O teleport irá sumir em "..tp.time.." segundos.", TALKTYPE_ORANGE_1) addEvent(removeTp, tp.time*1000, tp) addEvent(doCreateMonster, tp.time*1001, getCreatureName(cid), tp.pos) end return TRUE end
- Player passando por cima do outro no dp
- Cast SYSTEM me ajudem pessoal?
- [Request] Como escolher cidade via Account Manager
-
Conexão
Liberou no firewall também?
-
[AJUDA] Compilar usando o MSVC 2012-2013
http://www.tibiaking.com/forum/topic/30906-tutorial-compilando-tfs-v10-com-msvc-2013/ Falta umas libs mas o esquema é o mesmo.
- C:\TFS10.53\theforgottenserver.exe is not a valid Win32 application
-
[PEDIDO] Editar Level Max na Source
Você pode aumentar o limite de exp na função AddPlayerStats (protocolgame.cpp), não sei se dá certo... Ou pode criar um creaturescripts pra quando o player chegar no limite, adicionar +1 level +- isso aqui (dependendo da rate do servidor, pode causar lagg/crash) function onAdvance(cid, skill, oldLevel, newLevel) local pid = getPlayerGUID(cid) local maxLevel = 717217 if(newlevel >= maxLevel) then db.executeQuery("UPDATE `players` SET `level` = `level` + 1 WHERE `id` = ".. pid) end return true end
-
[AJUDA] Editando as soucers do servidor
1- Já fiz isso algumas vezes (10.x -> 8.x), se chama downgrade. Sim é possível, mas tem que saber quais códigos deve tirar ou acrescentar (na maioria dos casos, é só remover alguns). 2- combat.cpp: getCombatDamage (TFS 1.0) e getMinMaxValues (TFS 0.3.7), não tenho certeza... 3- Creaturescripts. 4- Creaturescripts.
-
Como entrar na soucer do servidor?
config.lua skipItemsVersionCheck = true
-
Problemas com NUKER
Com net caseira qualquer um derruba mesmo, anti-nuker é só pra barrar atk de noobs. Antes de vc ter um anti-ddos vc tem q ter uma conexão boa, geralmente 10gb segura 99% dos atks...
-
Problemas com NUKER
DDoS ou bugs? No caso de DDoS recomendo usar a OVH, tem uma boa proteção...
-
Versão/Estilo preferido para se montar um GRANDE server nos tempos atuais?
se a empresa é tão grande assim, pq abrir um otserv? HSUAHSAU enfim, acho a opção 2 melhor: 8.6 voltado pro PVP/War com rates médias e NENHUM item vip/editado
- distro
-
Como consigo mexer em soure?
aprende c/c++ se quiser só adicionar códigos prontos, aprende a compilar
-
New PlayerSave
doSaveHouse(getHouseByPlayerGUID(getPlayerGUID(cid))) Acho q é muito mais fácil otimizar o mysql do que pensar num jeito de fazer um script, mas valeu a tentativa xD rep+
- Dê sua opinião de como seria o OT que atrairia maior número de player
-
theforgottenserver.exe não compativel
se o mapa tiver mais de 95mb não vai conseguir rodar ele num SO x32 (se tiver uns 90mb pode até rodar mas vai ficar com um desempenho péssimo)
-
(Resolvido)Como editar account manager?
Os players criados são clones do account manager, logo se você trocar a outfit dele, vai mudar a roupa que os players vão nascer tbm (mesma coisa com a posição).
-
[Pedido] Script Tranform
posta o script da segunda pergunta
-
Mostrar lvl
flags, data/xml/groups.xml dá uma pesquisada ai, n entendo muita coisa disso xD
-
[ARRUMAR] Areá da script
testa ai local combat1 = createCombatObject() setCombatParam(combat1, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatParam(combat1, COMBAT_PARAM_EFFECT, 41) local combat2 = createCombatObject() setCombatParam(combat2, COMBAT_PARAM_TYPE, COMBAT_ICEDAMAGE) setCombatParam(combat2, COMBAT_PARAM_EFFECT, 41) local condition = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition, CONDITION_PARAM_TICKS, 20000) setConditionFormula(condition, -0.7, 0, -0.7, 0) setCombatCondition(combat1, condition) local condition = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition, CONDITION_PARAM_TICKS, 20000) setConditionFormula(condition, -0.7, 0, -0.7, 0) setCombatCondition(combat2, condition) local glacier = AREA_SQUARE1X1 local glacier2 = AREA_SQUARE1X1 local area = createCombatArea(glacier) setCombatArea(combat1, area) local area2 = createCombatArea(glacier2) setCombatArea(combat2, area2) function onGetFormulaValues() return -200, -200, -200, -200 end function onGetFormulaValues1() return -200, -200, -200, -200 end setCombatCallback(combat2, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues") setCombatCallback(combat1, CALLBACK_PARAM_SKILLVALUE, "onGetFormulaValues1") function onStatsChange(cid, attacker, type, combat, value) local chance = 90 if value >= 5 and type == 1 then if getPlayerSlotItem(cid, CONST_SLOT_ARMOR).itemid == 7897 then local random = math.random(100) if random >= chance then doCombat(cid, combat2, numberToVariant(cid)) doCombat(cid, combat1, numberToVariant(cid)) return true end end end return true end