Ir para conteúdo

Líderes

Conteúdo Popular

Exibindo conteúdo com a maior reputação em 12/10/21 em todas áreas

  1. [C++] Attack Speed

    koyotestark reagiu a Emersonssss por uma resposta no tópico

    1 ponto
    Salve Galera, olhando em minhas libs achei um script muito bom !! Em alguns servidores derivados o Skill Fist Fighting influencia no Attack Speed do Player, Então .... Segue a Formula na source que faz essa magica : Em Player.cpp Procure : uint32_t Player::getAttackSpeed() const Mude Atualize para esse função : uint32_t Player::getAttackSpeed() const { int32_t SpeedAttack; SpeedAttack = vocation->getAttackSpeed() - (getSkill(SKILL_FIST, SKILL_LEVEL) * 10); if (SpeedAttack < 500) { return 500; } else { return (uint32_t) SpeedAttack; } } Explicando : Ele irá verifica o Attack Speed padrão no Vocations.xml e irá verifica o Skill Fist do Player e retornará a velocidade, caso a velocidade retorne menor que 500 ele sempre limitará a 500ms para que não haja erros. Simples e Facil ! Creditos ? Emerson Henrique
  2. Algumas funções Lua

    Rodrigo94 reagiu a WooX por uma resposta no tópico

    1 ponto
    Biblioteca de funções Lua Eu me recordo que alguns anos atrás quando iniciei meus estudos em Lua, a biblioteca de funções postada pelo @xWhiteWolf me ajudou muito com a escrita de alguns scripts, me fez economizar tempo e algumas linhas de código. Ter uma biblioteca de funções uteis é uma mão na roda para qualquer desenvolvedor pois poupa tempo que teria de ser gasto desenvolvendo algo que algum outro programador provavelmente já fez. Pensando nisso, hoje eu decidi trazer algumas funções Lua, tenho certeza que poderá ser útil pra alguém algum dia. Algumas dessas funções foram feitas por mim, outras por amigos meus e algumas eu já nem lembro mais onde encontrei. Irei postar aqui o conteúdo desta biblioteca porem ela também estará no final do tópico como anexo. As funções que me recordo a origem estará com os créditos do autor. Lib Explicação das funções: Por enquanto é isso... pretendo atualizar este tópico sempre que achar necessidade de escrever algo novo ou encontrar algo que possa ser útil a biblioteca. 090-woox_functions.lua
  3. (Resolvido)[PEDIDO] PARALYZE MODIFICADO

    Gabrielx17 reagiu a Storm por uma resposta no tópico

    1 ponto
    @Baiak Furion local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_EFFECT, 27) setCombatParam(combat, COMBAT_PARAM_AGGRESSIVE, false) local condition = createConditionObject(CONDITION_HASTE) setConditionParam(condition, CONDITION_PARAM_TICKS, 60000) setConditionFormula(condition, 3.0, -24, 3.0, -24) setCombatCondition(combat, condition) function onCastSpell(cid, var) if getCreatureCondition(cid, CONDITION_PARALYZE) then doSendMagicEffect(getCreaturePosition(cid), 1) return doPlayerSendTextMessage(cid, 27, "Não pode usar essa magia enquanto estiver paralizado") else return doCombat(cid, combat, var) end end
  4. Rates/ Stages Skill

    Gabrielx17 reagiu a Thony D. Serv por uma resposta no tópico

    1 ponto
    vai no seu creaturescript.xml adicione isso <event type="login" name="SkillStagesLogin" event="script" value="skillstageslogin.lua"/> Crie Um Arquivo Chamado skillstageslogin.lua adicione isso dentro dele dofile(getDataDir() .. "creaturescripts/scripts/stagesconfig.lua") function onLogin(cid) for skill, skillStage in pairs(skillStages) do if(skill >= 0 and skill <= 6) then nowSkill = getPlayerSkillLevel(cid, skill) else nowSkill = getPlayerMagLevel(cid, true) end for i, skillRateInfo in pairs(skillStage) do if(nowSkill >= skillRateInfo[1]) then skillRate = skillRateInfo[2] else break end end doPlayerSetRate(cid, skill, skillRate) end if(showInfoOnLogin) then doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, getPlayerSkillRatesText(cid)) end registerCreatureEvent(cid, "SkillStagesAdvance") return TRUE end va no creaturescript.xml novamente adicione isso <event type="advance" name="SkillStagesAdvance" event="script" value="skillstagesadvance.lua"/> crie um arquivo chamado skillstagesadvance.lua dentro adicione isso dofile(getDataDir() .. "creaturescripts/scripts/stagesconfig.lua") function onAdvance(cid, skill, oldLevel, newLevel) if(skillStages[skill] ~= nil) then local skillRate = 1 local oldRates = getPlayerRates(cid) for i, skillRateInfo in pairs(skillStages[skill]) do if(newLevel >= skillRateInfo[1]) then skillRate = skillRateInfo[2] else break end end doPlayerSetRate(cid, skill, skillRate) if(showInfoOnAdvance and skillRate ~= oldRates[skill]) then if(skill >= 0 and skill <= 6) then configRate = skillConfig.skill else configRate = skillConfig.magiclevel end doPlayerSendTextMessage(cid, MESSAGE_STATUS_CONSOLE_ORANGE, SKILL_NAMES[skill] .. " rate alterado de " .. oldRates[skill] * configRate .. "x para " .. skillRate * configRate .. "x. " .. getPlayerSkillRatesText(cid)) end end return true end agora crie outro arquivo chamado stagesconfig.lua adicione isso skillConfig = {skill = getConfigValue('rateSkill'), magiclevel = getConfigValue('rateMagic')} skillStages = {} skillStages[SKILL_FIST] = {{0,10},{60,0}} skillStages[SKILL_CLUB] = {{0,10},{60,6},{80,0}} skillStages[SKILL_SWORD] = {{0,10},{60,6},{80,0}} skillStages[SKILL_AXE] = {{0,10},{60,6},{80,0}} skillStages[SKILL_DISTANCE] = {{0,10},{60,6},{80,0}} skillStages[SKILL_SHIELD] = {{0,10},{60,6},{80,0}} skillStages[SKILL_FISHING] = {{0,10},{60,6},{80,0}} -- voce pode retirar os -- desse script para ativar, por padrao esta desativado skillStages[SKILL__MAGLEVEL] = {{0,5},{100,4},{120,3},{135,2},{150,1},{155,0}} showInfoOnAdvance = true -- envia uma nova mensagem com a sua nova rate showInfoOnLogin = true -- envia mensagem da rate ao jogador ao logar function getPlayerSkillRatesText(cid) local skillInfo = getPlayerRates(cid) return "Rates Info: [ Magic Level: " .. skillInfo[SKILL__MAGLEVEL] * skillConfig.magiclevel .. "x || Attack Speed: " .. skillInfo[SKILL_FIST] * skillConfig.skill .. "x | Weapon: " .. skillInfo[SKILL_CLUB] * skillConfig.skill .. "x | Sword: " .. skillInfo[SKILL_SWORD] * skillConfig.skill .. "x | Strenght: " .. skillInfo[SKILL_AXE] * skillConfig.skill .. "x | Ki Blasting: " .. skillInfo[SKILL_DISTANCE] * skillConfig.skill .. " | Defense: " .. skillInfo[SKILL_SHIELD] * skillConfig.skill .. "x ]" end agora instalando tudo corretamente voce pode manusear as suas skills pelo stagesconfig Ajudei?? Rep+
  5. Função doPlayerOpenChannel para tfs 0.4

    JhonatanKing reagiu a L3K0T por uma resposta no tópico

    1 ponto
    Olá pessoal, estava atrás dessa função doPlayerOpenChannel para tfs 0.4. O que essa função faz ? é simples essa função eh inserida em seu login.lua assim fazendo abrir um Canal tipo Help auto open e configurado. Ó vamos precisar da source para versão 8.60 tfs 0.4. primeiramente vamos abrir o arquivo LuaScript.cpp. Procura: //getChannelUsers(channelId) lua_register(m_luaState, "getChannelUsers", LuaInterface::luaGetChannelUsers); add em baixo: //doPlayerOpenChannel(cid, channelId) lua_register(m_luaState, "doPlayerOpenChannel", LuaInterface::luaDoPlayerOpenChannel); procura: int32_t LuaInterface::internalGetPlayerInfo(lua_State* L, PlayerInfo_t info) add acima: int32_t LuaInterface::luaDoPlayerOpenChannel(lua_State* L) { //doPlayerOpenChannel(cid, channelId) uint32_t channelId = popNumber(L); uint32_t cid = popNumber(L); ScriptEnviroment* env = getEnv(); Player* player = env->getPlayerByUID(cid); if(player) lua_pushnumber(L, g_game.playerOpenChannel(cid, channelId) ? true : false); else { errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND)); lua_pushnumber(L, false); } return 1; } agora em LuaScript.h procura static int32_t luaGetChannelUsers(lua_State* L); add em baixo: static int32_t luaDoPlayerOpenChannel(lua_State* L); Agora eh só compilar há não esqueça de apagar tudo da pasta obg e o chache do linux caso não apague pode dar erro ao ligar o server... vlws pessoal tmj! Usando. doPlayerOpenChannel(cid, 9) 9 = ID do chat em Channels.xml em Data/XML boa sorte com seus scripts pegando essa função e colocar em login.lua ela abrirá o Chat Help senho o numero 9 ID do chat Vídeo:
  6. (Resolvido)[Dúvida] COMBAT_ENERGYDAMAGE

    Gabrielx17 reagiu a xADMx por uma resposta no tópico

    1 ponto
    Desculpa pelo flood. Mas se uns Amigos estiver atrás, vá na source do servidor em game.cpp tu aperta ctrl+f e procure por COMBAT_FIREDAMAGE até achar case COMBAT_FIREDAMAGE: { textColor = TEXTCOLOR_ORANGE; magicEffect = MAGIC_EFFECT_HITBY_FIRE; break; } em magicEffect = MAGIC_EFFECT_HITBY_FIRE; tu muda pro efeito que você quer no combat, pode usar numero também o numero do effect e tal se ajudei REP +
  7. Paralyze Sword

    Kramer reagiu a Garou por uma resposta no tópico

    1 ponto
    Este é um script criado pela Script Factory e pedido pelo membro underewarr. Se você tem um pedido a fazer ou uma ideia de script, não deixe de visitar: Script Factory Crie um arquivo chamado paralyze sword.lua em data/weapons/scripts/ e adicione o conteúdo abaixo: -- Paralyze Weapon -- Script Factory @ TibiaKing local duration = 3 * 1000 local combat = createCombatObject() setCombatParam(combat, COMBAT_PARAM_BLOCKARMOR, true) setCombatParam(combat, COMBAT_PARAM_TYPE, COMBAT_PHYSICALDAMAGE) setCombatParam(combat, COMBAT_FORMULA_SKILL, 1, 0, 1, 0) local condition = createConditionObject(CONDITION_PARALYZE) setConditionParam(condition, CONDITION_PARAM_TICKS, duration) setConditionFormula(condition, -0.9, 0, -0.9, 0) setCombatCondition(combat, condition) function onUseWeapon(cid, var) return doCombat(cid, combat, var) end Em weapons.xml, cole essa linha: <melee id="id_da_arma" level="100" unproperly="1" event="script" value="paralyze sword.lua"/> Se houver algum problema relacionado a duplicated item id, você precisará deletar a linha que estiver usando o id atribuido ao script.
Líderes está configurado para São Paulo/GMT-03:00

Informação Importante

Confirmação de Termo