Postado Dezembro 15, 2015 9 anos Autor 17 horas atrás, Eduardo1478 disse: Bom Cara, Isso é Estranho Você Usa New Client? Se Você Por IPv4 Não Falha... Mesmo Com Internet Compartilhada. Desculpe Mais Eu Acho Sem Logica Isso Porque Aqui Vai Numa Boa! Eu USo OTClient (Client Com Musica)! 11 horas atrás, Gaant disse: Vc usa old ou new client? tenta criar uma host no noip Mostrar conteúdo oculto aí clica em add host, e põe esse nomedoserver.ddns.net lá no config.lua e no ip do client Eu Uso OtClient (Client Com Musíca) Mais Eu Mudei IP No Moduled - client_entergame - entergame.lua Coloquei Meu IP Do Hamachi (IPv4) Mais Continua Dando ERROR 10060. Eu Criei Portas Do Firewall (7171 -7172) Mais DA ERROR Do Mesmo Jeito. Porque Sera?
Postado Dezembro 15, 2015 9 anos 50 minutos atrás, dracofear disse: Eu USo OTClient (Client Com Musica)! Eu Uso OtClient (Client Com Musíca) Mais Eu Mudei IP No Moduled - client_entergame - entergame.lua Coloquei Meu IP Do Hamachi (IPv4) Mais Continua Dando ERROR 10060. Eu Criei Portas Do Firewall (7171 -7172) Mais DA ERROR Do Mesmo Jeito. Porque Sera? tem como postar seu config.lua + entergame.lua :?
Postado Dezembro 15, 2015 9 anos Autor Meu Config.lua Spoiler -- The Forgotten Server Config -- Account manager accountManager = true namelockManager = true newPlayerChooseVoc = false newPlayerSpawnPosX = 51 newPlayerSpawnPosY = 74 newPlayerSpawnPosZ = 7 newPlayerTownId = 1 newPlayerLevel = 10 newPlayerMagicLevel = 0 generateAccountNumber = false lightInterval = 7500 -- a cada "lightInterval" ms vai passar 1 minuto lightChange = 1 -- quanto de light ira alterar durante passagem de dia/noite startupTime = 351 -- quantas horas serão ao ligar o server (360 = 6:00 a.m, 1080 = 6:00 p.m, varia de 0 a 1440) startupLight = 40 -- quanto de light vai estar ao ligar o server limitPokeballs = 6 -- deprecated happyDropTime = 12 -- a cada "happyDropTime" segundos o pokemon vai perder HAPPINESS minHappinessEffectDelay = 25 -- a cada min de "happinessEffectDelay" segundos o pokemon vai mostrar a felicidade maxHappinessEffectDelay = 40 -- a cada min de "happinessEffectDelay" segundos o pokemon vai mostrar a felicidade PokemonStageVeryHappy = 215 -- com quanto de happy o poke precisa pra estar muito feliz PokemonStageHappy = 160 -- ... pra estar feliz PokemonStageOK = 110 -- ... pra estar normal PokemonStageSad = 50 -- ... pra estar triste PokemonStageMad = 0 -- ... pra estar bravo maximumHunger = 120 -- maior fome possivel stateHunger = 100 -- 19estagio que precisa estar pra ficar com fome increaseHunger = 7 -- a cada X segundos (xml do monstro) aumenta o hunger em "increaseHunger" decreaseHappy = 1 -- HAPPINESS que o pokemon vai perder a cada "happyDropTime" decreaseHungryHappy = 4 -- 3HAPPINESS a mais que o pokemon vai perder se estiver com fome useTeleportWithFly = false dropHappyDuringBattles = true -- HAPPINESS vai cair enquanto estiver batalhando ? true / false allowBlockSpawn = false -- Unjustified kills -- NOTE: *Banishment and *BlackSkull variables are >summed up< -- (dailyFragsToRedSkull + dailyFragsToBanishment) with their -- *RedSkull equivalents. -- Auto banishing works only if useBlackSkull set to negative. -- advancedFragList is not advised if you use huge frags -- requirements. redSkullLength = 30 * 24 * 60 * 60 blackSkullLength = 45 * 24 * 60 * 60 dailyFragsToRedSkull = 3 weeklyFragsToRedSkull = 5 monthlyFragsToRedSkull = 10 dailyFragsToBlackSkull = dailyFragsToRedSkull weeklyFragsToBlackSkull = weeklyFragsToRedSkull monthlyFragsToBlackSkull = monthlyFragsToRedSkull dailyFragsToBanishment = dailyFragsToRedSkull weeklyFragsToBanishment = weeklyFragsToRedSkull monthlyFragsToBanishment = monthlyFragsToRedSkull blackSkulledDeathHealth = 40 blackSkulledDeathMana = 0 useBlackSkull = true useFragHandler = true advancedFragList = false -- Banishments -- violationNameReportActionType 1 = just a report, 2 = name lock, 3 = player banishment -- killsBanLength works only if useBlackSkull option is disabled. notationsToBan = 3 warningsToFinalBan = 4 warningsToDeletion = 5 banLength = 7 * 24 * 60 * 60 killsBanLength = 7 * 24 * 60 * 60 finalBanLength = 30 * 24 * 60 * 60 ipBanishmentLength = 1 * 24 * 60 * 60 broadcastBanishments = true maxViolationCommentSize = 200 violationNameReportActionType = 2 autoBanishUnknownBytes = false -- Battle -- NOTE: showHealingDamageForMonsters inheritates from showHealingDamage. -- loginProtectionPeriod is the famous Tibia anti-magebomb system. -- deathLostPercent set to nil enables manual mode. worldType = "pvp" protectionLevel = 1000 pvpTileIgnoreLevelAndVocationProtection = true pzLocked = 18 * 1000 huntingDuration = 60 * 1000 criticalHitChance = 7 criticalHitMultiplier = 1 displayCriticalHitNotify = false removeWeaponAmmunition = true removeWeaponCharges = true removeRuneCharges = true whiteSkullTime = 15 * 60 * 1000 noDamageToSameLookfeet = false showHealingDamage = false showHealingDamageForMonsters = false fieldOwnershipDuration = 5 * 1000 stopAttackingAtExit = false oldConditionAccuracy = false loginProtectionPeriod = 10 * 1000 deathLostPercent = 1 stairhopDelay = 0 * 1000 pushCreatureDelay = 1 * 1000 deathContainerId = 0 gainExperienceColor = 215 addManaSpentInPvPZone = true squareColor = 0 allowFightback = true -- Connection config worldId = 0 ip = "25.123.53.128" bindOnlyConfiguredIpAddress = false loginPort = 7171 gamePort = 7172 adminPort = 7171 statusPort = 7171 loginTries = 10 retryTimeout = 5 * 1000 loginTimeout = 60 * 1000 maxPlayers = 100 -- codificado e limitado para 100 motd = "Welcome Poke Foz!" displayOnOrOffAtCharlist = false onePlayerOnlinePerAccount = false allowClones = true serverName = "Poke Foz" loginMessage = "Bem-Vindos e Poke Foz!" statusTimeout = 5 * 60 * 1000 replaceKickOnLogin = true forceSlowConnectionsToDisconnect = false loginOnlyWithLoginServer = false premiumPlayerSkipWaitList = true -- Database -- NOTE: sqlFile is used only by sqlite database, and sqlKeepAlive by mysql database. -- To disable sqlKeepAlive such as mysqlReadTimeout use 0 value. sqlType = "sqlite" sqlHost = "localhost" sqlPort = 3306 sqlUser = "root" sqlPass = "" sqlDatabase = "theforgottenserver" sqlFile = "forgottenserver.s3db" sqlKeepAlive = 0 mysqlReadTimeout = 10 mysqlWriteTimeout = 10 encryptionType = "plain" -- Deathlist deathListEnabled = true deathListRequiredTime = 1 * 60 * 1000 deathAssistCount = 19 maxDeathRecords = 10 -- Guilds ingameGuildManagement = true levelToFormGuild = 40 premiumDaysToFormGuild = 0 guildNameMinLength = 2 guildNameMaxLength = 25 -- Highscores highscoreDisplayPlayers = 15 updateHighscoresAfterMinutes = 60 -- Houses buyableAndSellableHouses = false houseNeedPremium = false bedsRequirePremium = false levelToBuyHouse = 1 housesPerAccount = 0 houseRentAsPrice = false housePriceAsRent = false housePriceEachSquare = 2975 houseRentPeriod = "never" houseCleanOld = 0 guildHalls = false -- Item usage timeBetweenActions = 500 timeBetweenExActions = 500 hotkeyAimbotEnabled = true -- Map -- NOTE: storeTrash costs more memory, but will perform alot faster cleaning. mapName = "mastermap" mapAuthor = "Bolz" randomizeTiles = true storeTrash = false cleanProtectedZones = true mailboxDisabledTowns = "1" -- Process -- NOTE: defaultPriority works only on Windows and niceLevel on *nix -- coresUsed are seperated by comma cores ids used by server process, -- default is -1, so it stays untouched (automaticaly assigned by OS). defaultPriority = "high" niceLevel = 5 coresUsed = "-1" -- Startup optimizeDatabaseAtStartup = true removePremiumOnInit = true confirmOutdatedVersion = false -- Spells formulaLevel = 5.0 formulaMagic = 1.0 bufferMutedOnSpellFailure = false spellNameInsteadOfWords = false emoteSpells = false -- Outfits allowChangeOutfit = true allowChangeColors = true allowChangeAddons = true disableOutfitsForPrivilegedPlayers = false addonsOnlyPremium = false -- Miscellaneous -- NOTE: promptExceptionTracerErrorBox works only with precompiled support feature, -- called "exception tracer" (__EXCEPTION_TRACER__ flag). dataDirectory = "data/" bankSystem = true displaySkillLevelOnAdvance = true promptExceptionTracerErrorBox = true separateViplistPerCharacter = false maximumDoorLevel = 500 maxMessageBuffer = 4 -- Saving-related -- useHouseDataStorage usage may be found at README. saveGlobalStorage = false useHouseDataStorage = false storePlayerDirection = false -- Loot -- monsterLootMessage 0 to disable, 1 - only party, 2 - only player, 3 - party or player (like Tibia's) checkCorpseOwner = true monsterLootMessage = 3 monsterLootMessageType = 22 -- Ghost mode ghostModeInvisibleEffect = false ghostModeSpellEffects = false -- Limits idleWarningTime = 14 * 60 * 1000 idleKickTime = 15 * 60 * 1000 expireReportsAfterReads = 1 playerQueryDeepness = 2 maxItemsPerPZTile = 0 maxItemsPerHouseTile = 0 -- Premium-related freePremium = false premiumForPromotion = true -- Blessings -- NOTE: blessingReduction* regards items/containers loss. -- eachBlessReduction is how much each bless reduces the experience/magic/skills loss. blessingOnlyPremium = true blessingReductionBase = 30 blessingReductionDecreament = 5 eachBlessReduction = 8 -- Rates -- NOTE: experienceStages configuration is located in data/XML/stages.xml. -- rateExperienceFromPlayers 0 to disable. experienceStages = false rateExperience = 900 rateExperienceFromPlayers = 100 rateSkill = 1 rateMagic = 1.0 rateLoot = 1 rateSpawn = 1 -- Monster rates rateMonsterHealth = 1.0 rateMonsterMana = 1.0 rateMonsterAttack = 1.0 rateMonsterDefense = 1.0 -- Experience from players -- NOTE: min~Threshold* set to 0 will disable the minimum threshold: -- player will gain experience from every lower leveled player. -- max~Threshold* set to 0 will disable the maximum threshold: -- player will gain experience from every higher leveled player. minLevelThresholdForKilledPlayer = 0.9 maxLevelThresholdForKilledPlayer = 1.1 -- Stamina -- NOTE: Stamina is stored in miliseconds, so seconds are multiplied by 1000. -- rateStaminaHits multiplies every hit done a creature, which are later -- multiplied by player attack speed. -- rateStaminaGain is divider of every logged out second, eg: -- 60000 / 3 = 20000 milliseconds, what gives 20 stamina seconds for 1 minute being logged off. -- rateStaminaThresholdGain is divider for the premium stamina. -- staminaRatingLimit* is in minutes. rateStaminaLoss = 1 rateStaminaGain = 3 rateStaminaThresholdGain = 12 staminaRatingLimitTop = 41 * 60 staminaRatingLimitBottom = 14 * 60 rateStaminaAboveNormal = 1.0 rateStaminaUnderNormal = 1.0 staminaThresholdOnlyPremium = true -- Party -- NOTE: experienceShareLevelDifference is float number. -- experienceShareLevelDifference is highestLevel * value experienceShareRadiusX = 30 experienceShareRadiusY = 30 experienceShareRadiusZ = 1 experienceShareLevelDifference = 200 * 200 extraPartyExperienceLimit = 20 extraPartyExperiencePercent = 20 experienceShareActivity = 2 * 60 * 1000 -- Global save -- NOTE: globalSaveHour means like 03:00, not that it will save every 3 hours, -- if you want such a system please check out data/globalevents/globalevents.xml. globalSaveEnabled = false globalSaveHour = 8 shutdownAtGlobalSave = true cleanMapAtGlobalSave = false -- Spawns deSpawnRange = 2 deSpawnRadius = 25 -- Summons maxPlayerSummons = 1 teleportAllSummons = true teleportPlayerSummons = true -- Status ownerName = "Pokemon Dash Online [By Bolz]" ownerEmail = "" url = "" location = "Brazil" displayGamemastersWithOnlineCommand = false -- Logs -- NOTE: This kind of logging does not work in GUI version. -- For such, please compile the software with __GUI_LOGS__ flag. adminLogsEnabled = false displayPlayersLogging = true prefixChannelLogs = "" runFile = "" outLogName = "" errorLogName = "" truncateLogsOnStartup = false AGR Meu Entergame.lua EnterGame = { } -- private variables local loadBox local enterGame local motdWindow local motdButton local enterGameButton local protocolBox local protocolLogin local motdEnabled = true -- private functions local function onError(protocol, message, errorCode) if loadBox then loadBox:destroy() loadBox = nil end if not errorCode then EnterGame.clearAccountFields() end local errorBox = displayErrorBox(tr('Login Error'), message) connect(errorBox, { onOk = EnterGame.show }) end local function onMotd(protocol, motd) G.motdNumber = tonumber(motd:sub(0, motd:find("\n"))) G.motdMessage = motd:sub(motd:find("\n") + 1, #motd) if motdEnabled then motdButton:show() end end local function onCharacterList(protocol, characters, account, otui) -- Try add server to the server list ServerList.add(G.host, G.port, g_game.getProtocolVersion()) if enterGame:getChildById('rememberPasswordBox'):isChecked() then local account = g_crypt.encrypt(G.account) local password = g_crypt.encrypt(G.password) g_settings.set('account', account) g_settings.set('password', password) ServerList.setServerAccount(G.host, account) ServerList.setServerPassword(G.host, password) g_settings.set('autologin', enterGame:getChildById('autoLoginBox'):isChecked()) else -- reset server list account/password ServerList.setServerAccount(G.host, '') ServerList.setServerPassword(G.host, '') EnterGame.clearAccountFields() end loadBox:destroy() loadBox = nil CharacterList.create(characters, account, otui) CharacterList.show() if motdEnabled then local lastMotdNumber = g_settings.getNumber("motd") if G.motdNumber and G.motdNumber ~= lastMotdNumber then g_settings.set("motd", motdNumber) motdWindow = displayInfoBox(tr('Message of the day'), G.motdMessage) connect(motdWindow, { onOk = function() CharacterList.show() motdWindow = nil end }) CharacterList.hide() end end end local function onChangeProtocol(combobox, option) local clients = g_game.getSupportedClients(option) protocolBox:setTooltip("Supports Client" .. (#clients > 1 and "s" or "") .. ": " .. table.tostring(clients)) end local function onUpdateNeeded(protocol, signature) loadBox:destroy() loadBox = nil if EnterGame.updateFunc then local continueFunc = EnterGame.show local cancelFunc = EnterGame.show EnterGame.updateFunc(signature, continueFunc, cancelFunc) else local errorBox = displayErrorBox(tr('Update needed'), tr('Your client needs update, try redownloading it.')) connect(errorBox, { onOk = EnterGame.show }) end end -- public functions function EnterGame.init() enterGame = g_ui.displayUI('entergame') enterGameButton = modules.client_topmenu.addCustomLeftButton('enterGameButton', tr('Login') .. ' (Ctrl + G)', '/images/ui/pxg/topMenu_icons/entrar_icon', EnterGame.openWindow, false) motdButton = modules.client_topmenu.addCustomLeftButton('motdButton', tr('Message of the day'), '/images/ui/pxg/topMenu_icons/news_icon', EnterGame.displayMotd, false) motdButton:hide() g_keyboard.bindKeyDown('Ctrl+G', EnterGame.openWindow) if motdEnabled and G.motdNumber then motdButton:show() end local account = g_settings.get('account') local password = g_settings.get('password') local host = g_settings.get('host') local port = g_settings.get('port') local autologin = g_settings.getBoolean('autologin') local protocolVersion = g_settings.getInteger('protocol-version') if port == nil or port == 0 then port = 7171 end EnterGame.setAccountName(account) EnterGame.setPassword(password) enterGame:getChildById('serverHostTextEdit'):setText(host) enterGame:getChildById('serverPortTextEdit'):setText(port) enterGame:getChildById('autoLoginBox'):setChecked(autologin) protocolBox = enterGame:getChildById('protocolComboBox') protocolBox.onOptionChange = onChangeProtocol if protocolVersion then protocolBox:setCurrentOption(protocolVersion) end enterGame:hide() if g_app.isRunning() and not g_game.isOnline() then enterGame:show() end --EnterGame.setUniqueServer(hostName, port, protocolVersion, windowWidth, windowHeight) EnterGame.setUniqueServer('25.123.53.128', 7171, 854, 270, 210) end function EnterGame.firstShow() EnterGame.show() local account = g_crypt.decrypt(g_settings.get('account')) local password = g_crypt.decrypt(g_settings.get('password')) local host = g_settings.get('host') local autologin = g_settings.getBoolean('autologin') if #host > 0 and #password > 0 and #account > 0 and autologin then addEvent(function() if not g_settings.getBoolean('autologin') then return end EnterGame.doLogin() end) end end function EnterGame.terminate() g_keyboard.unbindKeyDown('Ctrl+G') enterGame:destroy() enterGame = nil enterGameButton:destroy() enterGameButton = nil protocolBox = nil if motdWindow then motdWindow:destroy() motdWindow = nil end if motdButton then motdButton:destroy() motdButton = nil end if loadBox then loadBox:destroy() loadBox = nil end if protocolLogin then protocolLogin:cancelLogin() protocolLogin = nil end EnterGame = nil end function EnterGame.show() if loadBox then return end enterGame:show() enterGame:raise() enterGame:focus() end function EnterGame.hide() enterGame:hide() end function EnterGame.openWindow() if g_game.isOnline() then CharacterList.show() elseif not g_game.isLogging() and not CharacterList.isVisible() then EnterGame.show() end end function EnterGame.setAccountName(account) local account = g_crypt.decrypt(account) enterGame:getChildById('accountNameTextEdit'):setText(account) enterGame:getChildById('accountNameTextEdit'):setCursorPos(-1) enterGame:getChildById('rememberPasswordBox'):setChecked(#account > 0) end function EnterGame.setPassword(password) local password = g_crypt.decrypt(password) enterGame:getChildById('accountPasswordTextEdit'):setText(password) end function EnterGame.clearAccountFields() enterGame:getChildById('accountNameTextEdit'):clearText() enterGame:getChildById('accountPasswordTextEdit'):clearText() enterGame:getChildById('accountNameTextEdit'):focus() g_settings.remove('account') g_settings.remove('password') end function EnterGame.doLogin() G.account = enterGame:getChildById('accountNameTextEdit'):getText() G.password = enterGame:getChildById('accountPasswordTextEdit'):getText() G.host = enterGame:getChildById('serverHostTextEdit'):getText() G.port = tonumber(enterGame:getChildById('serverPortTextEdit'):getText()) local protocolVersion = tonumber(protocolBox:getText()) local clientVersions = g_game.getSupportedClients(protocolVersion) EnterGame.hide() if g_game.isOnline() then local errorBox = displayErrorBox(tr('Login Error'), tr('Cannot login while already in game.')) connect(errorBox, { onOk = EnterGame.show }) return end g_settings.set('host', G.host) g_settings.set('port', G.port) protocolLogin = ProtocolLogin.create() protocolLogin.onLoginError = onError protocolLogin.onMotd = onMotd protocolLogin.onCharacterList = onCharacterList protocolLogin.onUpdateNeeded = onUpdateNeeded loadBox = displayCancelBox(tr('Please wait'), tr('Connecting to login server...')) connect(loadBox, { onCancel = function(msgbox) loadBox = nil protocolLogin:cancelLogin() EnterGame.show() end }) g_game.chooseRsa(G.host) g_game.setProtocolVersion(protocolVersion) if #clientVersions > 0 then g_game.setClientVersion(clientVersions[#clientVersions]) end if modules.game_things.isLoaded() then protocolLogin:login(G.host, G.port, G.account, G.password) else loadBox:destroy() loadBox = nil EnterGame.show() end end function EnterGame.displayMotd() if not motdWindow then motdWindow = displayInfoBox(tr('Message of the day'), G.motdMessage) motdWindow.onOk = function() motdWindow = nil end end end function EnterGame.setDefaultServer(host, port, protocol) local hostTextEdit = enterGame:getChildById('serverHostTextEdit') local portTextEdit = enterGame:getChildById('serverPortTextEdit') local protocolLabel = enterGame:getChildById('protocolLabel') local accountTextEdit = enterGame:getChildById('accountNameTextEdit') local passwordTextEdit = enterGame:getChildById('accountPasswordTextEdit') if hostTextEdit:getText() ~= host then hostTextEdit:setText(host) portTextEdit:setText(port) protocolBox:setCurrentOption(protocol) accountTextEdit:setText('') passwordTextEdit:setText('') end end function EnterGame.setUniqueServer(host, port, protocol, windowWidth, windowHeight) local hostTextEdit = enterGame:getChildById('serverHostTextEdit') hostTextEdit:setText(host) hostTextEdit:setVisible(false) hostTextEdit:setHeight(0) local portTextEdit = enterGame:getChildById('serverPortTextEdit') portTextEdit:setText(port) portTextEdit:setVisible(false) portTextEdit:setHeight(0) protocolBox:setCurrentOption(protocol) protocolBox:setVisible(false) protocolBox:setHeight(0) local serverLabel = enterGame:getChildById('serverLabel') serverLabel:setVisible(false) serverLabel:setHeight(0) local portLabel = enterGame:getChildById('portLabel') portLabel:setVisible(false) portLabel:setHeight(0) local protocolLabel = enterGame:getChildById('protocolLabel') protocolLabel:setVisible(false) protocolLabel:setHeight(0) local serverListButton = enterGame:getChildById('serverListButton') serverListButton:setVisible(false) serverListButton:setHeight(0) serverListButton:setWidth(0) local rememberPasswordBox = enterGame:getChildById('rememberPasswordBox') rememberPasswordBox:setMarginTop(-5) if not windowWidth then windowWidth = 236 end enterGame:setWidth(windowWidth) if not windowHeight then windowHeight = 200 end enterGame:setHeight(windowHeight) end function EnterGame.setServerInfo(message) local label = enterGame:getChildById('serverInfoLabel') label:setText(message) end function EnterGame.disableMotd() motdEnabled = false motdButton:hide() end Editado Dezembro 17, 2015 9 anos por Azhaurn Editado. Próxima vez utilize SPOILER. (veja o histórico de edições)
Postado Dezembro 15, 2015 9 anos No config.lua, troque a parte worldId = 0 ip = "25.123.53.128" por worldId = 1 ip = "ip que você criou no noip" e no entergame troque essa --EnterGame.setUniqueServer(hostName, port, protocolVersion, windowWidth, windowHeight) EnterGame.setUniqueServer('25.123.53.128', 7171, 854, 270, 210) por server = "ipdohamachi" EnterGame.setUniqueServer('ipdonoip', 7171, 854, 270, 210)
Postado Dezembro 17, 2015 9 anos Autor Em 15/12/2015 20:58:31, Gaant disse: No config.lua, troque a parte worldId = 0 ip = "25.123.53.128" por worldId = 1 ip = "ip que você criou no noip" e no entergame troque essa --EnterGame.setUniqueServer(hostName, port, protocolVersion, windowWidth, windowHeight) EnterGame.setUniqueServer('25.123.53.128', 7171, 854, 270, 210) por server = "ipdohamachi" EnterGame.setUniqueServer('ipdonoip', 7171, 854, 270, 210) Não Entendi Uma Parte Essa Aqui: por server = "ipdohamachi" EnterGame.setUniqueServer('ipdonoip', 7171, 854, 270, 210) Esse Server Fica onde Esse Entergamer.set eu Ja Fiz Me Explique Direito
Participe da conversa
Você pode postar agora e se cadastrar mais tarde. Se você tem uma conta, faça o login para postar com sua conta.