Histórico de Curtidas
-
Adilson Hacker deu reputação a grafit em [C++] Alterando BaseSpeedAlterações nas sources para editar a BaseSpeed dos players.
Vá em player.h e procure:
void updateBaseSpeed() { if (!hasFlag(PlayerFlag_SetMaxSpeed)) { baseSpeed = vocation->getBaseSpeed() + (2 * (level - 1)); } else { baseSpeed = PLAYER_MAX_SPEED; } } A fórmula é (2 * (level - 1)
2 * level do player - 1 = velocidade do player
-
Adilson Hacker deu reputação a grafit em Correção Clonar items NPC usando ElfBotBem legal Gabriel =)
Esse bug eu ACHO que realmente como o Matheus falou é até o 0.3.6, até porque no meu servidor eu uso o 0.4 REV 3884 e não encontrei esse bug..
Mas mesmo assim é sempre bom ter um FIX =P
-
Adilson Hacker deu reputação a grafit em [Função] getPlayersInAreaFunção que retorna os players que estão numa área específica
function getPlayersInArea(fromPos, toPos) -- function by amoeba13 playersInArea = {} for x = fromPos.x, toPos.x do for y = fromPos.y, toPos.y do for z = fromPos.z, toPos.z do totalArea = {x=x, y=y, z=z} playerz = getTopCreature(totalArea) if isPlayer(playerz.uid) then table.insert(playersInArea, playerz.uid) end end end end return playersInArea end Exemplo de uso:
function onSay(cid, words, param, channel) local area = getPlayersInArea({x = 153, y = 50, z = 7}, {x = 156, y = 53, z = 7}) if area then for i = 1, (#area) do doTeleportThing(area[i], {x = 160, y = 51, z = 7}, false) end end return true end Créditos: Killua
-
Adilson Hacker deu reputação a grafit em [7.4, 7.6, 7.72] Tibia Classic BotTibia Classic Bot
Versões 7.4 , 7.6 e 7.72
Esse é um dos poucos bots e o mais completo para estas versões mais antigas... Eu tenho acompanhado desde a versão 1.6.4 dele (atual 1.6.8). Segue abaixo algumas das hotkeys que podem ser usadas nele:
Para que a hotkey fique "automática" ela deve ser adicionada na parte persistent , caso contrário a hotkey só será ativada uma vez.
Download:
https://mega.co.nz/#!x41jxAqa!sqL7cfy3_p-4wjfOrPB1qpUq_UrHuUd46G1wBJVn9nI
Scan:
https://www.virustotal.com/pt/file/b86169815eeddbaef3808be3d60e523b8a73a18113056ee516f10efd61105207/analysis/1400633901/
Créditos: Xavious
O BOT também pode ser encontrado no seguinte link: http://tpforums.org/forum/threads/3889-7-4-7-6-7-72-ClassicBotter-1-6-8
-
Adilson Hacker deu reputação a grafit em [Gesior Aac] Warots LayoutDownload
Scan
Testado no Gesior
https://github.com/gesior/Gesior2012/tree/TFS-1.0
Créditos: emil1174
-
Adilson Hacker deu reputação a grafit em [C++] doStartTrade(cid, target, item)Bom dia!
Há um certo tempo eu tive um servidor de Tibia que possuía um sistema bem interessante de tradevip. Funcionava da seguinte maneira, o player que possuísse premdays(ou VIP) usava o comando !tradevip [DIAS], [Nome do Jogador] e automaticamente gerava uma janela de trade com um item e assim poderiam ser vendidos dias de premium sem o perigo de ninguém ser roubado.
Por padrão isso não é possível no Tibia, mas um usuário chamado Oneshot fez modificações nas sources para tornar isso possível.
Segue agora as modificações que permitem funcionar esse sistema:
Em luascript.h, adicione essa linha, abaixo das linhas parecidas. static int32_t luaDoStartTrade(lua_State* L); Em luascript.cpp, adicione isso perto das linhas parecidas. //doStartTrade(cid, target, item) lua_register(m_luaState, "doStartTrade", LuaInterface::luaDoStartTrade); Ainda em luascript.cpp, adicione isso logo abaixo de alguma estrutura parecida. int32_t LuaInterface::luaDoStartTrade(lua_State* L) { ScriptEnviroment* env = getEnv(); Item* item = env->getItemByUID(popNumber(L)); if(!item) { errorEx(getError(LUA_ERROR_ITEM_NOT_FOUND)); lua_pushboolean(L, false); return 1; } Player* target = env->getPlayerByUID(popNumber(L)); Player* player = env->getPlayerByUID(popNumber(L)); if(!player || !target) { errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND)); lua_pushboolean(L, false); return 1; } if(g_game.internalStartTrade(player, target, item)) { lua_pushboolean(L, true); return 1; } return 1; } Agora use sua imaginação para criar seus scripts.
Créditos: Oneshot
-
Adilson Hacker deu reputação a grafit em [C++] onDropLoot(cid, item)Event droploot acontece quando um monstro ou player dropa 1 item.
Em creatureevent.cpp procure:
bool CreatureEvents::playerLogin(Player* player) { //fire global event if is registered bool result = true; for(CreatureEventList::iterator it = m_creatureEvents.begin(); it != m_creatureEvents.end(); ++it) { if(it->second->getEventType() == CREATURE_EVENT_LOGIN && !it->second->executeLogin(player) && result) result = false; } return result; Adicione abaixo:
bool CreatureEvents::dropLoot(Creature* creature, Item* item) { bool result = true; for(CreatureEventList::iterator it = m_creatureEvents.begin(); it != m_creatureEvents.end(); ++it) { if(it->second->getEventType() == CREATURE_EVENT_DROPLOOT && !it->second->executeDropLoot(creature, item)) result = false; } return result; } Ainda em creatureevents.cpp procure:
else if(tmpStr == "preparedeath") m_type = CREATURE_EVENT_PREPAREDEATH; Adicione abaixo:
else if(tmpStr == "droploot") m_type = CREATURE_EVENT_DROPLOOT; Procure:
case CREATURE_EVENT_PREPAREDEATH: return "onPrepareDeath"; Adicione abaixo:
case CREATURE_EVENT_DROPLOOT: return "onDropLoot"; Procure:
case CREATURE_EVENT_PREPAREDEATH: return "cid, deathList"; Adicione abaixo:
case CREATURE_EVENT_DROPLOOT: return "cid, item"; Procure:
uint32_t CreatureEvent::executeLogout(Player* player, bool forceLogout) { //onLogout(cid, forceLogout) if(m_interface->reserveEnv()) { ScriptEnviroment* env = m_interface->getEnv(); if(m_scripted == EVENT_SCRIPT_BUFFER) { env->setRealPos(player->getPosition()); std::stringstream scriptstream; scriptstream << "local cid = " << env->addThing(player) << std::endl; scriptstream << "local forceLogout = " << (forceLogout ? "true" : "false") << std::endl; scriptstream << m_scriptData; bool result = true; if(m_interface->loadBuffer(scriptstream.str())) { lua_State* L = m_interface->getState(); result = m_interface->getGlobalBool(L, "_result", true); } m_interface->releaseEnv(); return result; } else { #ifdef __DEBUG_LUASCRIPTS__ char desc[35]; sprintf(desc, "%s", player->getName().c_str()); env->setEventDesc(desc); #endif env->setScriptId(m_scriptId, m_interface); env->setRealPos(player->getPosition()); lua_State* L = m_interface->getState(); m_interface->pushFunction(m_scriptId); lua_pushnumber(L, env->addThing(player)); lua_pushboolean(L, forceLogout); bool result = m_interface->callFunction(2); m_interface->releaseEnv(); return result; } } else { std::cout << "[Error - CreatureEvent::executeLogout] Call stack overflow." << std::endl; return 0; } } Adicione abaixo:
uint32_t CreatureEvent::executeDropLoot(Creature* creature, Item* item) { //onDropLoot(cid, item) if(m_interface->reserveEnv()) { ScriptEnviroment* env = m_interface->getEnv(); if(m_scripted == EVENT_SCRIPT_BUFFER) { env->setRealPos(creature->getPosition()); std::stringstream scriptstream; scriptstream << "local cid = " << env->addThing(creature) << std::endl; env->streamThing(scriptstream, "item", item, env->addThing(item)); scriptstream << m_scriptData; bool result = true; if(m_interface->loadBuffer(scriptstream.str())) { lua_State* L = m_interface->getState(); result = m_interface->getGlobalBool(L, "_result", true); } m_interface->releaseEnv(); return result; } else { #ifdef __DEBUG_LUASCRIPTS__ char desc[35]; sprintf(desc, "%s", player->getName().c_str()); env->setEventDesc(desc); #endif env->setScriptId(m_scriptId, m_interface); env->setRealPos(creature->getPosition()); lua_State* L = m_interface->getState(); m_interface->pushFunction(m_scriptId); lua_pushnumber(L, env->addThing(creature)); LuaScriptInterface::pushThing(L, item, env->addThing(item)); bool result = m_interface->callFunction(2); m_interface->releaseEnv(); return result; } } else { std::cout << "[Error - CreatureEvent::executeDropLoot] Call stack overflow." << std::endl; return 0; } } Em creatureevent.h procure:
CREATURE_EVENT_PREPAREDEATH, Adicione abaixo:
CREATURE_EVENT_DROPLOOT Procure:
uint32_t executeTarget(Creature* creature, Creature* target); Adicione abaixo:
uint32_t executeDropLoot(Creature* creature, Item* item); Agora em player.h procure a função:
void Player::dropLoot(Container* corpse) Troque por:
void Player::dropLoot(Container* corpse) { if(!corpse || lootDrop != LOOT_DROP_FULL) return; uint32_t start = g_config.getNumber(ConfigManager::BLESS_REDUCTION_BASE), loss = lossPercent[LOSS_CONTAINERS], bless = getBlessings(); while(bless > 0 && loss > 0) { loss -= start; start -= g_config.getNumber(ConfigManager::BLESS_REDUCTION_DECREAMENT); bless--; } uint32_t itemLoss = (uint32_t)std::floor((5. + loss) * lossPercent[LOSS_ITEMS] / 1000.); for(int32_t i = SLOT_FIRST; i < SLOT_LAST; ++i) { Item* item = inventory[i]; if(!item) continue; Creature* creature = NULL; bool deny = false;item creature = g_game.getCreatureByID(getID()); CreatureEventList droploot = getCreatureEvents(CREATURE_EVENT_DROPLOOT); for(CreatureEventList::iterator it = droploot.begin(); it != droploot.end(); ++it) { if(!(*it)->executeDropLoot(this, item)) deny = true; } if(!deny) { uint32_t rand = random_range(1, 100); if(skull > SKULL_WHITE || (item->getContainer() && rand < loss) || (!item->getContainer() && rand < itemLoss)) { g_game.internalMoveItem(NULL, this, corpse, INDEX_WHEREEVER, item, item->getItemCount(), 0); sendRemoveInventoryItem((slots_t)i, inventory[(slots_t)i]); } } } } Em monster.cpp procure:
void MonsterType::dropLoot(Container* corpse) { if(corpse && lootDrop == LOOT_DROP_FULL) mType->dropLoot(corpse); } Troque por:
void MonsterType::dropLoot(Container* corpse) { Item* tmpItem = NULL; for(LootItems::const_iterator it = lootItems.begin(); it != lootItems.end() && !corpse->full(); ++it) { uint32_t owner = corpse->getCorpseOwner(); Creature* creature = g_game.getCreatureByID(owner); if((tmpItem = createLoot(*it)) && g_creatureEvents->dropLoot(creature, tmpItem)) { if(Container* container = tmpItem->getContainer()) { if(createChildLoot(container, (*it))) corpse->__internalAddThing(tmpItem); else delete container; } else corpse->__internalAddThing(tmpItem); } } corpse->__startDecaying(); uint32_t ownerId = corpse->getCorpseOwner(); if(!ownerId) return; Player* owner = g_game.getPlayerByID(ownerId); if(!owner) return; LootMessage_t message = lootMessage; if(message == LOOTMSG_IGNORE) message = (LootMessage_t)g_config.getNumber(ConfigManager::LOOT_MESSAGE); if(message < LOOTMSG_PLAYER) return; std::stringstream ss; ss << "Loot of " << nameDescription << ": " << corpse->getContentDescription() << "."; if(owner->getParty() && message > LOOTMSG_PLAYER) owner->getParty()->broadcastMessage((MessageClasses)g_config.getNumber(ConfigManager::LOOT_MESSAGE_TYPE), ss.str()); else if(message == LOOTMSG_PLAYER || message == LOOTMSG_BOTH) owner->sendTextMessage((MessageClasses)g_config.getNumber(ConfigManager::LOOT_MESSAGE_TYPE), ss.str()); } Exemplo de uso da função:
function onDropLoot(cid, item) local block = {2221, 1221, 2922} for i=1, #block do if item.itemid == block[i] then return false end end return true end Créditos: Caotic
-
Adilson Hacker deu reputação a Vodkart em [PEDIDO] Low level protectlevelprotection.lua
function onPrepareDeath(cid, lastHitKiller, mostDamageKiller) local level = 50 if isPlayer(cid) and getPlayerLevel(cid) < level then doTeleportThing(cid, getTownTemplePosition(getPlayerTown(cid))) doCreatureAddHealth(cid, getCreatureMaxHealth(cid), 65535, 256, true) doCreatureAddMana(cid, getCreatureMaxMana(cid)) doRemoveConditions(cid, false) return false end return true end TAG <event type="preparedeath" name="ProtectLevel" event="script" value="levelprotection.lua"/> caso não tenha registrado no login.lua adc registerCreatureEvent(cid, "ProtectLevel")
-
Adilson Hacker deu reputação a Viny 13 em Topico Fechado !É Poketibia 8.54
Se alguem puder ajudar, Ainda vou dar os REP+
UP !! Ajuda ae
UP !!!
UP -_- Ninguem pra ajudar?
Gente, se não for possivel esse sistema, pelo menos um que seja assim :
2 Players Vão ao Tal npc, ou um comando por talckaction ex : !casar "nome do player que quer casar',
e apos falar esse comando e a outra pessoa que você quer casar também vai ter que executar o mesmo comando para se aceito...
E Apos ser aceito os 2 Players, que acabaram de ser casar ganha Informação adicional, ao qualquer outro Players dar Look nele,
Ex : You see SkyFrozer (level 101). He is treinador. Casado com JulinhaaSZ
Se Puderem me Ajudar dou 5 REP+
-
Adilson Hacker deu reputação a Danihcv em [TUTORIAL] Resolvendo qualquer erro na data baseOpa, galerinha do TK, pro meu primeiro tutorial resolvi fazer uma solução de um problema que desde que cheguei no TK, vejo que ocorre com uma certa frequência. Os erros da data base.
Neste tutorial vou ensinar a resolver os erros do tipo No such table, Insert into, No such column, ... has no column named... etc.
1°) NO SUCH TABLE
Bom, para o erro No such table, basta vc visualizar qual table está faltando. Para isso basta ler o erro na distro:
No caso da imagem, está faltando a table: player_statements
Para resolver este e qualquer outro problema deste tipo, caso sua data base seja sqlite,
basta abrir sua data base pelo Sqlite Studio(download: http://sqlitestudio.pl/?act=download) e clicar em Open SQL query editor:
Mas caso sua data base seja Mysql abra pelo phpMyadmin, ou por outro editor de sua preferencia.
1.1°) EXECUTANDO OS COMANDOS PARA RESOLVER O PROBLEMA
Bom, dependendo da table que estiver faltando, vc irá colocar seu respectivo comando, segue abaixo TODOS os comandos básicos necessários para que sua data base fique Ok! : (VC VAI PEGAR O COMANDO REFERENTE À TABLE QUE VC QUER!!!)
account_viplist
Sqlite
accounts
Sqlite
bans
Sqlite
environment_killers
Sqlite
global_storage
Sqlite
guild_invites
Sqlite
guild_kills
Sqlite
guild_ranks
Sqlite
guild_wars
Sqlite
guilds
Sqlite
house_auctions
Sqlite
house_data
Sqlite
house_lists
Sqlite
houses
Sqlite
killers
Sqlite
market_history
Sqlite
market_offers
Sqlite
player_deaths
Sqlite
player_depotitems
Sqlite
player_inboxitems
Sqlite
player_items
Sqlite
player_killers
Sqlite
player_namelocks
Sqlite
player_skills
Sqlite
player_spells
Sqlite
player_statements
Sqlite
player_storage
Sqlite
player_viplist
Sqlite
players
Sqlite
server_config
Sqlite
server_motd
Sqlite
server_record
Sqlite
server_reports
Sqlite
tile_items
Sqlite
tile_store
Sqlite
tiles
Sqlite
announcements
Sqlite
pagsegurotransacoes
Sqlite
player_advances
Sqlite
reports
Sqlite
thanks
Sqlite
z_bug_logs
Sqlite
z_featured_article
Sqlite
z_forum
Sqlite
z_helpdesk
Sqlite
z_monsters
Sqlite
z_network_box
Sqlite
z_news_tickers
Sqlite
z_ots_comunication
Sqlite
z_polls
Sqlite
z_polls_answers
Sqlite
z_poll_votes
Sqlite
z_shop_history_item
Sqlite
z_shop_history_pacc
Sqlite
z_shop_offer
Sqlite
z_spells
Sqlite
z_news_big
Sqlite
2°) No such column / "NOME DA TABLE" has no column named "NOME DA COLUMN QUE FALTA" / Insert into
Bom, para resolver esse problema vc deve identificar em qual TABLE está essa coluna que falta. Para isso, basta ler o erro como na imagem:
No caso da imagem, está faltando a column WORLD_ID dentro da table MARKET_OFFERS. Para resolver, vc deve executar excluir a sua table MARKET_OFFERS existante em sua data base, e em seguida, executar o domando da da market_offers, encontrado acima, logicamente isso só se aplica ao caso da imagem, depende do seu caso, vc deve excutar o comando da table que estiver sendo referida no erro. Mas antes de executá-lo vc deve excluir a sua table EXISTENTE, para então executar o comando.
ESTA FORMA DE RESOLUÇÃO SE APLICA AOS TRÊS CASOS: NO SUCH COLUMN, ...HAS NO COLUMN NAMED... e INSERT INTO.
Bom galera, é isso.
SE ENCONTRAREM, OU SE DEPARAREM COM ALGUM ERRO, BASTA ME PEDIR AJUDA QUE EU DAREI TOTAL SUPORTE PARA VOCÊS!
SE ESTIVR FALTANDO MAIS ALGUMA TABLE QUE EU NÃO COLOQUEI AQUI, PF ME INFORMEM E EU ATUALIZAREI O TÓPICO!!!
Lembrem-se, se eu te ajudei, por favor, deem REP++ pois foi meio trabolhoso fazer este tutorial todo...
ESTOU A DISPOSIÇÃO DE TODOS! Tanto por PM quanto por SKYPE, e até mesmo por aqui, pois vou checar este tópico regularmente!!
Espero ter ajudado!!
Abraços.
-
Adilson Hacker recebeu reputação de leotibia em Bronson ServerAqui amigo eu tinha esse projeto em outro fórum , sou novo aqui é já postei ele aqui :
http://tibiaking.com/forum/topic/25932-bronson-server-by-adilsonhacker/
Abraços!
-
Adilson Hacker recebeu reputação de 157kolosso em [Ajuda com o COnfig.lua]Amigo o site não consegue ler essas parte exemplo :
-- Database -- NOTE: sqlFile is used only by sqlite database, and sqlKeepAlive by mysql database. -- To disable sqlKeepAlive such as mysqlReadTimeout use 0 value. Arrumei ela pra você tenta ai :
ownerName = "" ownerEmail = "" url = "" location = "" motd = "Welcome to the Global Server!" serverName = "Global" loginMessage = "Welcome to The Global Server by NvSo!" displayGamemastersWithOnlineCommand = false sqlType = "sqlite" sqlHost = "" sqlPort = 3306 sqlUser = "root" sqlPass = "" sqlDatabase = "" sqlFile = "schemas/otxserver.s3db" sqlKeepAlive = 0 mysqlReadTimeout = 10 mysqlWriteTimeout = 10 mysqlReconnectionAttempts = 3 encryptionType = "sha1" worldId = 0 ip = "kox.no-ip.biz" worldType = "open" bindOnlyGlobalAddress = false loginPort = 7171 gamePort = "7172" statusPort = 7171 loginOnlyWithLoginServer = false accountManager = true namelockManager = true newPlayerChooseVoc = true newPlayerSpawnPosX = 32369 newPlayerSpawnPosY = 32241 newPlayerSpawnPosZ = 7 newPlayerTownId = 3 newPlayerLevel = 8 newPlayerMagicLevel = 0 generateAccountNumber = false generateAccountSalt = true fragsLimit = 24 * 60 * 60 fragsSecondLimit = 7 * 24 * 60 * 60 fragsThirdLimit = 30 * 24 * 60 * 60 fragsToRedSkull = 3 fragsSecondToRedSkull = 5 fragsThirdToRedSkull = 10 redSkullLength = 3 * 24 * 60 * 60 fragsToBlackSkull = 6 fragsSecondToBlackSkull = 10 fragsThirdToBlackSkull = 20 blackSkulledDeathHealth = 40 blackSkulledDeathMana = 0 blackSkullLength = 6 * 24 * 60 * 60 useBlackSkull = true notationsToBan = 3 warningsToFinalBan = 4 warningsToDeletion = 5 banLength = 7 * 24 * 60 * 60 killsBanLength = 7 * 24 * 60 * 60 finalBanLength = 30 * 24 * 60 * 60 ipBanLength = 1 * 24 * 60 * 60 fragsToBanishment = 7 fragsSecondToBanishment = 21 fragsThirdToBanishment = 41 protectionLevel = 1 pvpTileIgnoreLevelAndVocationProtection = true allowFightback = true pzLocked = 60 * 1000 huntingDuration = 60 * 1000 criticalHitMultiplier = 1 displayCriticalHitNotify = true removeWeaponAmmunition = true removeWeaponCharges = true removeRuneCharges = true whiteSkullTime = 15 * 60 * 1000 advancedFragList = true useFragHandler = true noDamageToSameLookfeet = false showHealthChange = true showManaChange = true showHealthChangeForMonsters = true showManaChangeForMonsters = true fieldOwnershipDuration = 5 * 1000 stopAttackingAtExit = true loginProtectionPeriod = 10 * 1000 deathLostPercent = 10 stairhopDelay = 2 * 1000 pushCreatureDelay = 2 * 1000 deathContainerId = 1987 gainExperienceColor = 215 addManaSpentInPvPZone = true recoverManaAfterDeathInPvPZone = true squareColor = 0 rsaPrime1 = "14299623962416399520070177382898895550795403345466153217470516082934737582776038882967213386204600674145392845853859217990626450972452084065728686565928113" rsaPrime2 = "7630979195970404721891201847792002125535401292779123937207447574596692788513647179235335529307251350570728407373705564708871762033017096809910315212884101" rsaPublic = "65537" rsaModulus = "109120132967399429278860960508995541528237502902798129123468757937266291492576446330739696001110603907230888610072655818825358503429057592827629436413108566029093628212635953836686562675849720620786279431090218017681061521755056710823876476444260558147179707119674283982419152118103759076030616683978566631413" rsaPrivate = "46730330223584118622160180015036832148732986808519344675210555262940258739805766860224610646919605860206328024326703361630109888417839241959507572247284807035235569619173792292786907845791904955103601652822519121908367187885509270025388641700821735345222087940578381210879116823013776808975766851829020659073" optionalWarAttackableAlly = true fistBaseAttack = 7 criticalHitChance = 7 noDamageToGuildMates = false noDamageToPartyMembers = false rookLevelTo = 5 rookLevelToLeaveRook = 8 rookTownId = 1 useRookSystem = true paralyzeDelay = 1500 premiumDaysToAddByGui = 10 useCapacity = true defaultDepotSize = 500 defaultDepotSizePremium = 1000 enableProtectionQuestForGM = true cleanItemsInMap = false playerFollowExhaust = 2000 tibiaClassicSlots = true monsterSpawnWalkback = true allowBlockSpawn = true NoShareExpSummonMonster = false enableLootBagDisplay = false loginTries = 20 retryTimeout = 5 * 1000 loginTimeout = 60 * 1000 maxPlayers = 200 displayOnOrOffAtCharlist = false onePlayerOnlinePerAccount = true allowClones = 0 statusTimeout = 1000 replaceKickOnLogin = true forceSlowConnectionsToDisconnect = false premiumPlayerSkipWaitList = true packetsPerSecond = 50 deathListEnabled = true deathListRequiredTime = 1 * 60 * 1000 deathAssistCount = 20 maxDeathRecords = 5 multipleNames = false externalGuildWarsManagement = false ingameGuildManagement = true levelToFormGuild = 20 premiumDaysToFormGuild = 0 guildNameMinLength = 4 guildNameMaxLength = 20 buyableAndSellableHouses = true houseNeedPremium = true bedsRequirePremium = true levelToBuyHouse = 20 housesPerAccount = 1 houseRentAsPrice = false housePriceAsRent = false housePriceEachSquare = 1000 houseRentPeriod = "weekly" houseCleanOld = 8 * 24 * 60 * 60 guildHalls = true houseSkipInitialRent = true houseProtection = true timeBetweenActions = 200 timeBetweenExActions = 1000 timeBetweenCustomActions = 500 checkCorpseOwner = true hotkeyAimbotEnabled = true maximumDoorLevel = 999 tradeLimit = 100 canOnlyRopePlayers = false mapAuthor = "Komic" randomizeTiles = true houseDataStorage = "binary-tilebased" storeTrash = true cleanProtectedZones = true mapName = "nvsoreal.otbm" mailMaxAttempts = 5 mailBlockPeriod = 30 * 60 * 1000 mailAttemptsFadeTime = 5 * 60 * 1000 mailboxDisabledTowns = "" -- Example disable rook depot (temple) "4" -- mailboxDisabledTowns = "4" daemonize = false defaultPriority = "higher" niceLevel = 5 serviceThreads = 1 coresUsed = "-1" startupDatabaseOptimization = true removePremiumOnInit = true confirmOutdatedVersion = false skipItemsVersionCheck = false maxMessageBuffer = 4 dataDirectory = "data/" logsDirectory = "data/logs/" disableOutfitsForPrivilegedPlayers = false bankSystem = true spellNameInsteadOfWords = false emoteSpells = true unifiedSpells = true promptExceptionTracerErrorBox = true storePlayerDirection = false savePlayerData = true monsterLootMessage = 3 monsterLootMessageType = 25 separateViplistPerCharacter = false vipListDefaultLimit = 20 vipListDefaultPremiumLimit = 100 allowChangeOutfit = true allowChangeColors = true allowChangeAddons = true addonsOnlyPremium = true ghostModeInvisibleEffect = false ghostModeSpellEffects = true idleWarningTime = 14 * 60 * 1000 idleKickTime = 15 * 60 * 1000 expireReportsAfterReads = 1 playerQueryDeepness = -1 protectionTileLimit = 10 houseTileLimit = 10 tileLimit = 7 freePremium = false premiumForPromotion = true updatePremiumStateAtStartup = true blessings = true blessingOnlyPremium = true blessingReductionBase = 30 blessingReductionDecrement = 5 eachBlessReduction = 8 useFairfightReduction = true pvpBlessingThreshold = 40 fairFightTimeRange = 60 experienceStages = false rateExperience = 5.0 rateExperienceFromPlayers = 0 rateSkill = 3.0 rateMagic = 3.0 rateLoot = 2.0 rateSpawnMin = 1 rateSpawnMax = 1 formulaLevel = 5.0 formulaMagic = 1.0 -- Monster rates rateMonsterHealth = 1.0 rateMonsterMana = 1.0 rateMonsterAttack = 1.0 rateMonsterDefense = 1.0 minLevelThresholdForKilledPlayer = 0.9 maxLevelThresholdForKilledPlayer = 1.1 rateStaminaLoss = 1 rateStaminaGain = 3 rateStaminaThresholdGain = 12 staminaRatingLimitTop = 40 * 60 staminaRatingLimitBottom = 14 * 60 staminaLootLimit = 14 * 60 rateStaminaAboveNormal = 1.5 rateStaminaUnderNormal = 0.5 staminaThresholdOnlyPremium = true experienceShareRadiusX = 30 experienceShareRadiusY = 30 experienceShareRadiusZ = 1 experienceShareLevelDifference = 2 / 3 extraPartyExperienceLimit = 20 extraPartyExperiencePercent = 5 experienceShareActivity = 2 * 60 * 1000 globalSaveEnabled = false globalSaveHour = 8 globalSaveMinute = 0 shutdownAtGlobalSave = true cleanMapAtGlobalSave = false closeInstanceOnShutdown = true -- Spawns minRateSpawn = 1 maxRateSpawn = 3 deSpawnRange = 2 deSpawnRadius = 50 maxPlayerSummons = 2 teleportAllSummons = false teleportPlayerSummons = true disableLuaErrors = false adminLogs = true displayPlayersLogging = true prefixChannelLogs = "" runFile = "server/run.log" outputLog = "server/out.log" truncateLogOnStartup = false logPlayersStatements = true managerPort = 7171 managerLogs = true managerPassword = "" managerLocalhostOnly = true managerConnectionsLimit = 1 adminPort = 7171 adminPassword = "" adminLocalhostOnly = true adminConnectionsLimit = 1 adminRequireLogin = true adminEncryption = "" adminEncryptionData = "" saveGlobalStorage = false bufferMutedOnSpellFailure = false -
Adilson Hacker deu reputação a Sammy em Duvida Sobre Domínio !Sim você pode normalmente criar o ot e site em sua casa e pagar um dominio e colocar para redirecionar ao dns do seu IP.
(:
-
Adilson Hacker deu reputação a Sammy em Teleporte abre por comandoSegue o script:
Na pasta talkactions/scripts/ crie um arquivo chamado eventoteleport.lua
function onSay(cid, words, param) if words=="/eventoopen" then local create_pos = {x=1050 , y=1045 , z=6, stackpos=255} local tp_pos = {x=1028 , y=1040 , z=4} doCreateTeleport(1387, tp_pos , create_pos) doSendMagicEffect(create_pos , 10) doPlayerSendTextMessage(cid, 28 , "Portal para o Evento está aberto!") return TRUE end if words=="/eventoclose" then doRemoveItem(getTileItemById(create_pos,1387)) doPlayerSendTextMessage(cid, 28 , "Portal para o Evento fechou!") end return TRUE end Agora em talkactions.xml adicione
<talkaction log="no" words="/eventoclose;/eventoopen" access="4" event="script" value="eventoteleport.lua"/> Abraços boa sorte.
-
Adilson Hacker recebeu reputação de kaiinho em Bronson ServerAqui amigo eu tinha esse projeto em outro fórum , sou novo aqui é já postei ele aqui :
http://tibiaking.com/forum/topic/25932-bronson-server-by-adilsonhacker/
Abraços!