Ir para conteúdo
  • 0

Função doPlayerSetExtraAttackSpeed


gabriel28

Pergunta

Olá, alguém poderia me passar a função doPlayerSetExtraAttackSpeed para TFS 0.4 rev 3884? Essa,http://www.xtibia.com/forum/topic/181206-funcao-doplayersetextraattackspeed/, feita pelo Snowsz não serve pro TFS 0.4.

Desde já, agradeço.

Link para o comentário
Compartilhar em outros sites

3 respostass a esta questão

Posts Recomendados

  • 0
  • Diretor

Em player.cpp

 

Procure:

lastAttack = idleTime = marriage = blessings = balance = premiumDays = mana = manaMax = manaSpent = 0;

E substitue por isso:

lastAttack = idleTime = marriage = blessings = balance = premiumDays = mana = manaMax = manaSpent = extraAttackSpeed = 0;

Continuando no player.cpp procure por:

return ((weapon && weapon->getAttackSpeed() != 0) ? weapon->getAttackSpeed() : (vocation->getAttackSpeed() / std::max((size_t)1, getWeapons().size())));

E substitua por isso:

return ((weapon && weapon->getAttackSpeed() != 0) ? weapon->getAttackSpeed() : (vocation->getAttackSpeed() - getPlayer()->getExtraAttackSpeed() / std::max((size_t)1, getWeapons().size())));

No final do arquivo coloque isto:

void Player::setPlayerExtraAttackSpeed(uint32_t speed)
{
	extraAttackSpeed = speed;
}

Em player.h

 

Depois de:

uint64_t getSpentMana() const {return manaSpent;}

Coloque isso:

uint32_t getExtraAttackSpeed() const {return extraAttackSpeed;}
void setPlayerExtraAttackSpeed(uint32_t speed);

Depois de:

uint32_t idleTime;

Coloque isso:

uint32_t extraAttackSpeed;

Em luascript.cpp

 

Procure por:

//doPlayerAddSoul(cid, amount)
lua_register(m_luaState, "doPlayerAddSoul", LuaInterface::luaDoPlayerAddSoul);

Em baixo coloque isto:

//doPlayerSetExtraAttackSpeed(cid, speed)
lua_register(m_luaState, "doPlayerSetExtraAttackSpeed", LuaInterface::luaDoPlayerSetExtraAttackSpeed);

Procure por:

int32_t LuaInterface::luaDoPlayerAddSoul(lua_State* L)
{
	//doPlayerAddSoul(cid, soul)
	int32_t soul = popNumber(L);

	ScriptEnviroment* env = getScriptEnv();
	if(Player* player = env->getPlayerByUID(popNumber(L)))
	{
		player->changeSoul(soul);
		lua_pushboolean(L, true);
	}
	else
	{
		reportErrorFunc(getErrorDesc(LUA_ERROR_PLAYER_NOT_FOUND));
		lua_pushboolean(L, false);
	}
	return 1;
}

E em baixo cole isto:

int32_t LuaInterface::luaDoPlayerSetExtraAttackSpeed(lua_State *L)
{	
	uint32_t speed = popNumber(L);						
	ScriptEnviroment* env = getEnv();
		   if(Player* player = env->getPlayerByUID(popNumber(L))){	
					player->setPlayerExtraAttackSpeed(speed);
					lua_pushnumber(L, true);
		   }	
		   else
		   {		  
		errorEx(getError(LUA_ERROR_PLAYER_NOT_FOUND));
				   lua_pushnumber(L, false);
		   }	  
	return 1;
}

Agora para finalizar... Em luascript.h

 

Depois de:

static int32_t luaDoPlayerAddSoul(lua_State* L);

Coloque isto:

static int32_t luaDoPlayerSetExtraAttackSpeed(lua_State* L);

Créditos:

darkhaos por fazer a função

E a mim por ter adaptado para TFS 0.4 xD

Editado por nedroesdoksdja
Link para o comentário
Compartilhar em outros sites

×
×
  • Criar Novo...