Ir para conteúdo

moleza

Membro
  • Registro em

  • Última visita

Tudo que moleza postou

  1. @L3K0T Muito obrigado, funcionando 100%
  2. Olá, procurei aqui no fórum alguns posts em relação a esse problema mas gostaria de algo relacionado a source. Versão: 8.60 TFS: 0.4 Minhas sources estão assim, player.cpp bool Player::canWalkthrough(const Creature* creature) const { if(creature == this || hasCustomFlag(PlayerCustomFlag_CanWalkthrough) || creature->isWalkable() || (creature->getMaster() && creature->getMaster() != this && canWalkthrough(creature->getMaster()))) return true; const Player* player = creature->getPlayer(); if(!player) return false; if((((g_game.getWorldType() == WORLDTYPE_OPTIONAL && !player->isEnemy(this, true) && player->getVocation()->isAttackable()) || player->getTile()->hasFlag(TILESTATE_PROTECTIONZONE) || (player->getVocation()->isAttackable() && player->getLevel() < (uint32_t)g_config.getNumber(ConfigManager::PROTECTION_LEVEL))) && player->getTile()->ground && Item::items[player->getTile()->ground->getID()].walkStack) && (!player->hasCustomFlag(PlayerCustomFlag_GamemasterPrivileges) || player->getAccess() <= getAccess())) return true; return (player->isGhost() && getGhostAccess() < player->getGhostAccess()) || (isGhost() && getGhostAccess() > player->getGhostAccess()); } e const.h enum PlayerCustomFlags { PlayerCustomFlag_AllowIdle = 0, //2^0 = 1 PlayerCustomFlag_CanSeePosition, //2^1 = 2 PlayerCustomFlag_CanSeeItemDetails, //2^2 = 4 PlayerCustomFlag_CanSeeCreatureDetails, //2^3 = 8 PlayerCustomFlag_NotSearchable, //2^4 = 16 PlayerCustomFlag_GamemasterPrivileges, //2^5 = 32 PlayerCustomFlag_CanThrowAnywhere, //2^6 = 64 PlayerCustomFlag_CanPushAllItems, //2^7 = 128 PlayerCustomFlag_CanMoveAnywhere, //2^8 = 256 PlayerCustomFlag_CanMoveFromFar, //2^9 = 512 PlayerCustomFlag_CanLoginMultipleCharacters, //2^10 = 1024 (account flag) PlayerCustomFlag_HasFullLight, //2^11 = 2048 PlayerCustomFlag_CanLogoutAnytime, //2^12 = 4096 (account flag) PlayerCustomFlag_HideLevel, //2^13 = 8192 PlayerCustomFlag_IsProtected, //2^14 = 16384 PlayerCustomFlag_IsImmune, //2^15 = 32768 PlayerCustomFlag_NotGainSkull, //2^16 = 65536 PlayerCustomFlag_NotGainUnjustified, //2^17 = 131072 PlayerCustomFlag_IgnorePacification, //2^18 = 262144 PlayerCustomFlag_IgnoreLoginDelay, //2^19 = 524288 PlayerCustomFlag_CanStairhop, //2^20 = 1048576 PlayerCustomFlag_CanTurnhop, //2^21 = 2097152 PlayerCustomFlag_IgnoreHouseRent, //2^22 = 4194304 PlayerCustomFlag_CanWearAllAddons, //2^23 = 8388608 PlayerCustomFlag_IsWalkable, //2^24 = 16777216 PlayerCustomFlag_CanWalkthrough, //2^25 = 33554432 PlayerCustomFlag_LastFlag }; acredito que essa parte é onde está deixando os players passar por dentro de outro, consigo mudar para que os players não passem um por dentro do outro em area pz? Obrigado desde já
  3. @sverkoaeu utilizo cpanel, o xampp só foi um exemplo que o site está funcionando corretamente no meu computador e no cpanel está com esse problema, como meu site é um pouco antigo ele pede essa versão do php5, o resto está tudo certo, tirando esses 2 problemas na criação
  4. Olá, tudo bem? Estou utilizando o cPanel para abrir um site ModernACC de um servidor de DBO 8.60 TFS 0.4, um projeto antigo Atualmente abro ele local para testar e tudo mais e utilizo o XAMPP 1.7.3 e funciona perfeitamente. Problemas encontrados: 1 - Primeiro problema eu encontrei uma solução, gostaria de saber se tem problema isso para o site. Quando logava na minha conta no site e clica no meu personagem para ver as informações aparecia o seguinte erro: URI you submitted has disallowed characters A solução foi mudar no config.php $config['engine']['enable_query_strings'] = FALSE; para $config['engine']['enable_query_strings'] = TRUE; 2 - Segundo problema foi que quando eu vou criar e o personagem, que ambos são juntos após preencher tudo e clicar em registrar a tela fica branca e não cria a conta e nem o personagem ou quando eu entro em uma conta já criada na database e vou em criar personagem e preencho e clico em criar, acontece a mesma coisa alguém sabe o que pode ser? ** EDIT ** Caso alguém encontre problemas com servidores antigos e hospedagem, estava tentando instalar o servidor no ubuntu 20 porém o servidor era configurado nas versões inferiores do ubuntu por conta do php5, caso tenham esse problema é só pegar versão 12 ou 14 do ubuntu que vai funcionar
  5. @L3K0T sempre coloco xD mas como foi erro meu achei que não precisaria, mas é simples local rewarditems = { {id = 13684, chance = 663, count = 1}, {id = 8760, chance = 150, count = 1}, {id = 8300, chance = 20, count = 1}, {id = 13613, chance = 40, count = 1}, {id = 13617, chance = 70, count = 2}, {id = 13975, chance = 50, count = 2}, {id = 13549, chance = 1, count = 1}, {id = 13550, chance = 1, count = 1}, {id = 13551, chance = 1, count = 1}, {id = 13552, chance = 1, count = 1}, {id = 13553, chance = 1, count = 1}, {id = 13554, chance = 1, count = 1}, {id = 13555, chance = 1, count = 1} } {id = 13975, chance = 50, count = 2}, esse id não existe no servidor, então quando ia receber a recompensa dava esse erro
  6. moleza postou uma resposta no tópico em Suporte Websites
    Para quem quer abrir um servidor antigo que roda em php5 e está com dificuldade com a configuração do linux, pode contratar um cpanel que contenha o php5 que facilita a configuração do site!! essa foi a minha solução! Resolvido !!
  7. solucionado.
  8. moleza postou uma resposta no tópico em Suporte Tibia OTServer
    Estou usando esse script para invocar monstro e está funcionando, porém gostaria que o player ou outra pessoal só pudesse invocar quando o monstro atual estivesse morto, tendo 1 monstro por vez na sala, alguém? local items = { {pos = {x = 102, y = 184, z = 7}, itemid = 7382}, } local monsters = { {pos = {x = 102, y = 182, z = 7}, name = "Ancestral Guardian"}, } local config = { onSpawnMonster = CONST_ME_TELEPORT, -- efeito lançado quando monstro é criado onRemoveItem = CONST_ME_BLOCKHIT, -- efeito lançado quando item é removido missingItem = CONST_ME_POFF, -- efeito lançado quando não encontrou o item para remover } -- 255 faz com que não lance efeito algum function onUse(cid, item, frompos, item2, topos) local missing_items, remove_items = false, {} for _, itemcheck in pairs (items) do local i = getTileItemById(itemcheck.pos, itemcheck.itemid).uid if i < 1 then missing_items = true if tonumber(config.missingItem) and config.missingItem ~= 255 then doSendMagicEffect(itemcheck.pos, config.missingItem) end else table.insert(remove_items, i) end end if missing_items then return doPlayerSendCancel(cid, "Está faltando algum item.") else for _, iuid in pairs (remove_items) do if tonumber(config.onRemoveItem) and config.onRemoveItem ~= 255 then doSendMagicEffect(getThingPos(iuid), config.onRemoveItem) end doRemoveItem(iuid) end for _, monsterinfo in pairs (monsters) do local m = doCreateMonster(monsterinfo.name, monsterinfo.pos, false) if isCreature(m) and tonumber(config.onSpawnMonster) and config.onSpawnMonster ~= 255 then doSendMagicEffect(getThingPos(m), config.onSpawnMonster) end end end return true end
  9. moleza postou uma resposta no tópico em Suporte Tibia OTServer
    Já vi em alguns lugares falando que o limite do cliente 8.60 é 65k e não tem como mudar ou envolve muito conhecimento para mudar. Uma solução que pode fazer é mudar a vida e mana para %, ficando 100%HP/100%MP se tiver as sources seguindo os tutoriais é basicamente ctrl+c e ctrl+v, só prestar atenção que consegue fazer tranquilo. Eu encontrei para tfs 0.4 aqui no forum mas pesquisando no google encontrei para TFS 1.2, só testar e ver se funciona
  10. Fala @matheuzinPXT bom vou tentar te ajudar no que eu sei, talvez possa te ajudar, 1 - Os efeitos iguais as versões 12+ acho que é por conta de ser OTClient e consegue mudar isso mesmo na versão mais baixa, porém cliente mais antigo não tem como ou tem que manjar muito para fazer 2 - Varias sprites, entendo como adicionar sprite no client? se for isso é bem simples, aqui no forum encontra muitos tutoriais de como fazer, então não se preocupe com isso 3 - sistema de asas não entendi muito bem por que nunca vi nada parecido ;( Se foi isso que entendi das perguntas está ai as respostas, tmj
  11. Estou com um script, teleport falante 8.60-TFS 0.4 e gostaria de saber se é normal o texto passar de um piso para outro do mapa, por exemplo: O teleport falante está no primeiro andar eu consigo ver do terceiro andar do dp, testei um outro script, feito por outra pessoa de outra forma e continua a mesma coisa, mas está ai meu script: function onThink(interval, lastExecution) pos = {x = 90, y = 185, z = 7} -- Coordenada de onde sairá o texto pos1 = {x = 105, y = 172, z = 5} -- Coordenada de onde sairá o texto pos2 = {x = 94, y = 185, z = 6} -- Coordenada de onde sairá o texto pos3 = {x = 98, y = 172, z = 7} -- Coordenada de onde sairá o texto pos4 = {x = 102, y = 172, z = 5} -- Coordenada de onde sairá o texto pos5 = {x = 92, y = 185, z = 6} -- Coordenada de onde sairá o texto pos6 = {x = 90, y = 185, z = 6} -- Coordenada de onde sairá o texto pos7 = {x = 98, y = 185, z = 7} -- Coordenada de onde sairá o texto pos8 = {x = 96, y = 185, z = 6} -- Coordenada de onde sairá o texto pos9 = {x = 98, y = 185, z = 6} -- Coordenada de onde sairá o texto doSendAnimatedText(pos, 'Yama', 180) doSendAnimatedText(pos1, 'Forja', 192) doSendAnimatedText(pos2, 'Shop', 18) doSendAnimatedText(pos3, 'Arena', 180) doSendAnimatedText(pos4, 'Task', 18) doSendAnimatedText(pos5, 'Quests', 180) doSendAnimatedText(pos6, 'Cassino', 210) doSendAnimatedText(pos7, 'VIP', 66) doSendAnimatedText(pos8, 'MVP', 215) doSendAnimatedText(pos9, 'MVP', 215) return true end Só uma duvida e capricho, obrigado
  12. então, eu fiz o que o cara citou para remover todo a duvida, ele realmente tirou o atk speed, removeu a formula que diminui o atk speed, o dano continua alto, porém sem o attack speed seguindo o que ele passou, tentei limitar o level do fist como 20, mesmo assim o dano é muito alto.. pensei em algum script, mas vi em outros posts que é algo complicado, e eu estava testando novamente o que você passou e e fala que não está declaro no player vi em um forum que o cara falou que é no weapon::useFist mas ele não mostrou mais nada, vou fuçar para ver Encontrei a solução, vi em outro forum um cara falando que era no Weapon::useFist, fui averiguar em outro tutorial aqui do tibiaking de um cara ensinando a balancear a formula que varia o dano e fiz isso em Sources abre o weapon.cpp e procure por: bool Weapon::useFist(Player* player, Creature* target) { const Position& playerPos = player->getPosition(); const Position& targetPos = target->getPosition(); if(!Position::areInRange<1,1>(playerPos, targetPos)) return false; float attackFactor = player->getAttackFactor(); int32_t attackSkill = player->getSkill(SKILL_FIST, SKILL_LEVEL), attackValue = g_config.getNumber(ConfigManager::FIST_BASE_ATTACK); double maxDamage = Weapons::getMaxWeaponDamage(player->getLevel(), attackSkill, attackValue, attackFactor); if(random_range(1, 100) < g_config.getNumber(ConfigManager::CRITICAL_HIT_CHANCE)) { maxDamage = std::pow(maxDamage, g_config.getDouble(ConfigManager::CRITICAL_HIT_MUL)); player->sendCritical(); } Vocation* vocation = player->getVocation(); if(vocation && vocation->getMultiplier(MULTIPLIER_MELEE) != 1.0) maxDamage *= vocation->getMultiplier(MULTIPLIER_MELEE); maxDamage = std::floor(maxDamage); int32_t damage = -random_range(0, (int32_t)maxDamage, DISTRO_NORMAL); CombatParams fist; fist.blockedByArmor = true; fist.blockedByShield = true; fist.combatType = COMBAT_PHYSICALDAMAGE; Combat::doCombatHealth(player, target, damage, damage, fist); if(!player->hasFlag(PlayerFlag_NotGainSkill) && player->getAddAttackSkill()) player->addSkillAdvance(SKILL_FIST, 1); return true; } altere está linha: int32_t damage = -random_range(0, (int32_t)maxDamage, DISTRO_NORMAL); por: int32_t damage = -random_range(0, (int32_t)maxDamage/100, DISTRO_NORMAL); como no meu servidor o fist estava batendo 100k-400k tive que dividir o valor por 100 para ficar baixo, mas dependendo do dano por diminuir ou aumentar o valor de /100 dependendo do que seu otserv precisa. Obrigado a todos pela ajuda <3, humilde de + @L3K0T @Doidodepeda
  13. Boa tarde @Doidodepeda problema não é o fast attack, o problema é o alto dano sem usar arma
  14. procurei na source, unico lugar que encontra getFist ou getFistDamage() foi no player.cpp que eu adicionei, não tem em outro lugar da source
  15. ** EDIT ** @L3K0T Deu erro na hora da compilação: 4428 C:\Users\moleza\Desktop\OT\Source\player.cpp no 'int32_t Player::getFistDamage() const' member function declared in class 'Player' 4428 C:\Users\moleza\Desktop\OT\Source\player.cpp *** [obj//player.o] Error 1 tentei também mudar para unit32 e com return unit32 igual na formula de cima e mesmo assim continua com o mesmo erro
  16. Explicando a minha situação: Estou com um servidor de DBO e as sources padrão que veio junto com o servidor estavam bugadas e eu alterei para uma padrão TFS 0.4 que encontrei aqui no fórum na época, talvez possa ser esse o motivo, ou não. Problema: No meu servidor a skill fist está upando o atk speed do personagem, então quando removo a espada ou a luva para treinar o atk speed, estou hitando muito sem arma somente no fist, as vezes até mais do que com a arma ("Arma testada com média de 50 de ATK"), não encontrei a solução para diminuir o dano do fist, já pensei em algumas maneiras e nada Source do Atk Speed: uint32_t Player::getAttackSpeed() const { int32_t SpeedAttack; SpeedAttack = vocation->getAttackSpeed() - (getSkill(SKILL_FIST, SKILL_LEVEL) * 9); if (SpeedAttack < 350) { return 350; } else { return (uint32_t) SpeedAttack; } } XML Voc: <vocation id="509" name="Goku Super" description="Goku Super" needpremium="0" gaincap="100" gainhp="300" gainmana="300" gainhpticks="2" gainhpamount="100" gainmanaticks="2" gainmanaamount="100" manamultiplier="1.1" attackspeed="1200" soulmax="200" gainsoulticks="15" fromvoc="509" lessloss="50" manager="0"> <formula meleeDamage="300.0" distDamage="1.0" wandDamage="1.0" magDamage="4.0" magHealingDamage="1.0" defense="1.0" magDefense="1.0" armor="1.0"/> <skill fist="1.1" club="1.5" sword="1.5" axe="1.1" distance="1.5" shielding="1.1" fishing="1.0" experience="1.0"/> </vocation> Alguma solução para diminuir dano do fist? se tiver algum lugar nas sources para diminuir o dano do fist posso comparar com a source que veio junto com o servidor e ir alterando e testando
  17. [23:7:54.227] [Error - Action Interface] [23:7:54.230] data/actions/scripts/heal/senzu_bean.lua:onUse [23:7:54.233] Description: [23:7:54.235] data/actions/scripts/heal/senzu_bean.lua:25: attempt to call global 'getPlayerMaxHealth' (a nil value) [23:7:54.237] stack traceback: [23:7:54.239] data/actions/scripts/heal/senzu_bean.lua:25: in function <data/actions/scripts/heal/senzu_bean.lua:1> EDIT** tinha feito um negocio errado quand fui colocar o script, está funcionando esse aqui, muito obg
  18. Boa noite tudo bem? então a ideia era healar % da vida maxima, por exemplo encher 20% da mana e da vida, esse script continua enchendo 200k
  19. @ernaix69 quando uso a senzu, nada acontece, sem erros também aparece isso no serverlog 17:01 Using the last Senzu Bean... mas não usa ** edit ** não sei se interfere em algo mas meu servidor a vida e a mana estão em % então fica 100/100
  20. Estou voltando com um projeto old de 2017 de wodbo, infelizmente perdi um script da senzu healando % de vida e mana. Alguém da um help? não encontrei no forum Versão TFS 0.4 - 8.60 actions/script/senzu bean.lua function onUse(cid, item, fromPosition, itemEx, toPosition) ITEM = 12780 local storage = 50000 local wait = 1.0 local pos1 = {x = getPlayerPosition(cid).x + 1, y = getPlayerPosition(cid).y + 0, z = getPlayerPosition(cid).z} if fromPosition.x ~= CONTAINER_POSITION and exhaustion.get(cid, storage) == FALSE then REG_HEALTH = 200000 REG_MANA = 200000 doPlayerAddMana(cid, REG_MANA) doCreatureAddHealth(cid, REG_HEALTH) doCreatureSay(cid, 'Aaahhh! Bem Melhor!', TALKTYPE_ORANGE_1) doSendMagicEffect(pos1, 80) doRemoveItem(item.uid, 0) exhaustion.set(cid, storage, wait) elseif item.itemid == ITEM and exhaustion.get(cid, storage) == FALSE then REG_HEALTH = 200000 REG_MANA = 200000 doPlayerAddMana(cid, REG_MANA) doCreatureAddHealth(cid, REG_HEALTH) doCreatureSay(cid, 'Aaahhh! Bem Melhor!', TALKTYPE_ORANGE_1) doSendMagicEffect(pos1, 80) doRemoveItem(item.uid, 0) exhaustion.set(cid, storage, wait) else doPlayerSendCancel(cid, "You are exhausted.") end return TRUE end

Informação Importante

Confirmação de Termo