Ir para conteúdo

DukeeH

Membro
  • Registro em

  • Última visita

Tudo que DukeeH postou

  1. Não da nenhum erro no console? Que erro da quando os players tentam reconectar após o kick?
  2. DukeeH postou uma resposta no tópico em Suporte Tibia OTServer
    Como assim? Não entendi o pedido. O que adiciona a vip é a talkaction que mandou la no topico acredito que é só você dar: /addvip nome, 1 para adicionar um dia, ai reloga o char que ganhou a vip para ver se ele ganha a promotion, então dê /removevip nome, 1 para remover o dia de vip e relogue para ver se ele vai pro templo e perde a promotion.
  3. DukeeH postou uma resposta no tópico em Suporte Tibia OTServer
    Tem sim, só me mandar a talkaction e quais vocações podem ou não ultiliza-la.
  4. Precio saber qual vip system você usa e precisaria dos dois scripts que quer que só vip use. Se não lembra onde pegou o vip system me manda o script que compra a vip ou que adiciona a vip no jogador.
  5. Você usa as moedas em mod ou em actions? (O gold nugget) Só procurar pelo id do gold nugget em actions.xml Ai me manda o script que adicionou dele que coloco pra você.
  6. DukeeH postou uma resposta no tópico em Suporte Tibia OTServer
    data/creaturescripts/globalevents.xml <event type="login" name="VipPromo" event="script" value="vippromo.lua"/> data/creaturescripts/scripts/login.lua Lá no final, junto com os outros. registerCreatureEvent(cid, "VipPromo") data/creaturescripts/scripts/vippromo.lua function onLogin(cid) if getPlayerVipDays(cid) > 0 then setPlayerStorageValue(cid, 20500, 1) setPlayerPromotionLevel(cid, 2) elseif getPlayerVipDays(cid) == 0 and getPlayerStorageValue(cid, 20500) == 1 then doTeleportThing(cid, getPlayerMasterPos(cid)) setPlayerStorageValue(cid, 20500, -1) setPlayerPromotionLevel(cid, 1) end return true end Vai dar promotion quando o cara entrar e tiver mais de 0 dias de vip, vai tirar a promotion e mandar pro templo quando o cara era vip e ela acabou.
  7. DukeeH postou uma resposta no tópico em Suporte Tibia OTServer
    Pode me mandar as partes da lib que fala da vip? Provavelmente data/lib/050-function.xml ou o link do vip system que você usa.
  8. Crie um arquivo na pasta movements/scripts com o nome: questitem.lua Segue o script: function onStepIn(cid, item, pos, slot) local item = 1234 -- ID do item que o player não pode ter if getPlayerItemCount(cid,item) >= 1 then doTeleportThing(cid,fromPosition) doSendMagicEffect(getPlayerPosition(cid), 2) doPlayerSendTextMessage(cid, 19, "Você não pode passar por possuir o item.") else doPlayerSendTextMessage(cid, 19, "Bem vindo.") end end Altere 1234 para o id do item. Registre ele no movements.xml <movevent type="StepIn" actionid="ACTIONID DO PISO" event="script" value="questitem.lua"/> Altere ACTIONID DO PISO para o action id que você colocar no piso pelo mapeditor.
  9. DukeeH postou uma resposta no tópico em Suporte Tibia OTServer
    Primeiramente você deve criar as vocações em data/xml/vocations.xml Assim que tiver as vocações criadas eu posso editar esse script da vip ai para adicionar uma promotion na pessoa, e criar outro que cheque quando a vip acaba para tirar a promotion.
  10. DukeeH postou uma resposta no tópico em Suporte Tibia OTServer
    O script acima não vai funcionar por eles checarem a vip de forma diferente. No lugar de vipexp.lua coloque: function onLogin(cid) local rate = 2.0 -- 2x a exp normal local config = { welvip = "Você tem 2x exp por ser vip!", not_vip = "Torne-se VIP e ganhe o dobro de exp!", vip = isPremium(cid) } if getPlayerStorageValue(cid, 55489) - os.time() > 0 then doPlayerSetExperienceRate(cid, rate) doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.welvip) else doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_BLUE, config.not_vip) end return true end Usei o script do amigo acima, só configurei para ele usar storage (do sistema que você usa) em vez de checar se o player é premium como no script postado.
  11. Actions.xml procure pelos ids: 2148, 2152 e 2160. apague a linha dos três.
  12. DukeeH postou uma resposta no tópico em Suporte Tibia OTServer
    Se você redirecionou um ip para a porta 8090 (porta do site) ele não vai poder ser adicionado na otservlist. Porque ele esta direcionando para a 8090 e o otserv usaria a 7171. Você tem duas possiveis soluções, uma delas é tentar colocar o site na 80 (padrão, não vai precisar por :nada no final do site) A outra seria criar um ip para o site e outro para o jogo, e um redirecionar para a 8090 como você fez e o outro não.
  13. Muda onde esta mysql pra sqlite e onde está sqlfile você tem que apontar para um s3db válido e compativel com seu distro.
  14. Olá, a minha duvida é a seguinte: Achei o seguinte código para bloquear exp do mesmo ip if(attackerPlayer->getIP() == getIP()) return 0; Ele vai dentro da função Player::getGainedExperience nas sources, mas não ta funcionando. Gostaria de saber se tem algo errado ou outro que possa funcionar no lugar. Sei que não da pra dar deny em exp por lua, então teria que ser nas sources mesmo. O meu servidor é pvp normal, mas tem exp de player. Ultilizo OTX 2, mas essa parte nas sources é igual a do 0.4 ou semelhante. Obrigado desde já.
  15. pode me mandar a original? eu falo exatamente onde modificar, ai você faz você mesmo. to sem sources nesse computador.
  16. Espero que funcione pra você. Junto da alteração no creatures.h faz isso ai: player.cpp procura por: void Player::doAttacking(uint32_t) seleciona a função inteira e troca por: void Player::doAttacking(uint32_t) { if(!lastAttack) lastAttack = OTSYS_TIME() - getAttackSpeed() - 1; else if((OTSYS_TIME() - lastAttack) < getAttackSpeed()) return; if(hasCondition(CONDITION_PACIFIED) && !hasCustomFlag(PlayerCustomFlag_IgnorePacification)) { lastAttack = OTSYS_TIME(); return; } Item* item = getWeapon(false); if(const Weapon* _weapon = g_weapons->getWeapon(item)) { if(_weapon->interruptSwing() && !canDoAction()) { SchedulerTask* task = createSchedulerTask(getNextActionTime(), boost::bind(&Game::checkCreatureAttack, &g_game, getID())); setNextActionTask(task); } else { if(!_weapon->hasExhaustion() /* || !hasCondition(CONDITION_EXHAUST, EXHAUST_COMBAT))*/ && _weapon->useWeapon(this, item, attackedCreature)) { lastAttack = OTSYS_TIME(); SchedulerTask* task = createSchedulerTask(getAttackSpeed(), boost::bind(&Game::checkCreatureAttack, &g_game, getID())); } updateWeapon(); } } else if(Weapon::useFist(this, attackedCreature)) { lastAttack = OTSYS_TIME(); SchedulerTask* task = createSchedulerTask(getAttackSpeed(), boost::bind(&Game::checkCreatureAttack, &g_game, getID())); } }
  17. não acho que seja no arquivo, testei outro gesior na mesma database e funcionou. peguei todos os arquivos relacionados de la e subsitui no meu, e não deu. acho que a saída vai ser trocar de versão do site mesmo
  18. http://baiakafast.com
  19. $config['site']['item_images_extension'] = '.gif'; foi o unico que achei, e o logo (pelo menos o default) está em gif. /var/www/guild_image.php <?php // if we set ONLY_PAGE, then it will not login / connect to MySQL until we use SQL query in our script define('ONLY_PAGE', true); $_GET['subtopic'] = 'guild_image'; $_REQUEST['subtopic'] = 'guild_image'; include('index.php'); /var/www/pages/guild_image.php <?php if(!defined('INITIALIZED')) exit; $guild_id = (int) $_REQUEST['id']; $guild = new Guild($guild_id); $guildLogo = $guild->getGuildLogo(); $guildLogoInfo = explode(';', $guildLogo, 3); $image = array(); $image['content_mtime'] = $guildLogoInfo[0]; if(isset($_SERVER['HTTP_IF_MODIFIED_SINCE']) && strtotime(preg_replace('/;.*$/','',$_SERVER["HTTP_IF_MODIFIED_SINCE"])) == $image['content_mtime']) { header('HTTP/1.0 304 Not Modified'); /* PHP/webserver by default can return 'no-cache', so we must modify it */ header('Cache-Control: public'); header('Pragma: cache'); header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $image['content_mtime']) . ' GMT'); } else { $image['content_type'] = substr($guildLogoInfo[1], 5); $image['content'] = base64_decode(substr($guildLogoInfo[2], 7)); header('Content-Type: ' . $image['content_type']); header('Cache-Control: public'); header('Pragma: cache'); header('Last-Modified: ' . gmdate('D, d M Y H:i:s', $image['content_mtime']) . ' GMT'); echo $image['content']; }
  20. Spells.xml Porcura pelo nome que colocou... Onde esta exhaustion "1000" você coloca exhaustion "60000", é o tempo de exhaust de um minuto entre um uso e outro.
  21. Estou com um problema em meu site onde os logos das guilds não aparecem, nem o padrão e nem os que são enviados pelos líderes. Foto: Por conta desse erro o most powerfull guilds não aparece também: Já tentei baixar outras versões do mesmo gesior e trocar os arquivos relacionados. O otserv está hosteado em vps linux, já foi dado chmod para a pasta guilds, os arquivos guild_images, guilds, config.php... Se eu vou em copiar link da imagem ele pega um link do tipo: meuip/guild_image.php?id=41, onde mesmo assim a imagem não aparece. A pasta guilds esta limpa (tem só o default_logo.gif) e na database tem os logos: Obrigado desde já.
  22. Se souber mexer em sources (pode ser possivel fazer através de creaturescripts, mas ficaria ruim acredito eu...) Existem vários tutoriais de como compilar e boas sources para download. monster.cpp trocar: void Monster::drainHealth(Creature* attacker, CombatType_t combatType, int32_t damage) { Creature::drainHealth(attacker, combatType, damage); if(isInvisible()) removeCondition(CONDITION_INVISIBLE); } por: void Monster::drainHealth(Creature* attacker, CombatType_t combatType, int32_t damage) { bool effect = true; if(g_config.getBool(ConfigManager::MONSTER_DAMAGED_BY_PLAYER_ONLY)) { if(!isPlayerSummon()) //Player summons can be damaged by players and monsters { if(attacker->getPlayer() || attacker->isPlayerSummon()) //Make sure it is a player making damage effect = true; else effect = false; } else effect = true; } else effect = true; if(effect) { Creature::drainHealth(attacker, combatType, damage); if(isInvisible()) removeCondition(CONDITION_INVISIBLE); } else Creature::drainHealth(attacker, combatType, 0); } configmanager.cpp Embaixo de: m_confBool[SHOW_HEALING_DAMAGE_MONSTER] = getGlobalBool("showHealingDamageForMonsters", false); Adicionar: m_confBool[MONSTER_DAMAGED_BY_PLAYER_ONLY] = getGlobalBool("monsterDamagedByPlayerOnly", false); configmanager.h Embaixo de: SHOW_HEALING_DAMAGE_MONSTER, Adicionar: MONSTER_DAMAGED_BY_PLAYER_ONLY, então compilar.... config.lua Embaixo de: showHealingDamageForMonsters = false Adicionar: monsterDamagedByPlayerOnly = true
  23. Provavelmente apenas nas sources. Isso é algo normal.
  24. Ele ta tentando remover um item que não existe, esse item pode ser uma parede ou um teleporte (segundo o script).
  25. ta faltando a pasta mods na pasta do ot.

Informação Importante

Confirmação de Termo