Ir para conteúdo
  • Cadastre-se

Programa%C3%A7%C3%A3o [Função] doPlayerSetExtraAttackSpeed


Posts Recomendados

Função testada no TFS 0.3.5pl1.

* player.cpp

Procure:



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

Troque por isso


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

Procure:


return vocation->getAttackSpeed()

Troque por isso:


return vocation->getAttackSpeed() - getPlayer()->getExtraAttackSpeed();

No fim do arquivo coloque isto:


void Player::setPlayerExtraAttackSpeed(uint32_t speed)

{

    extraAttackSpeed = speed;

}

* player.h Depois de:


uint64_t getSpentMana() const {return manaSpent;}

Coloque isto:


uint32_t getExtraAttackSpeed() const {return extraAttackSpeed;}

void setPlayerExtraAttackSpeed(uint32_t speed);

Depois de:


uint32_t idleTime;

Coloque isto:


uint32_t extraAttackSpeed;

* luascript.cpp Depois de:


    //doPlayerAddSoul(cid, soul)

    lua_register(m_luaState, "doPlayerAddSoul", LuaScriptInterface::luaDoPlayerAddSoul);

Coloque isto:


    //doPlayerSetExtraAttackSpeed(cid, speed)

    lua_register(m_luaState, "doPlayerSetExtraAttackSpeed", LuaScriptInterface::luaDoPlayerSetExtraAttackSpeed);

Depois de:


int32_t LuaScriptInterface::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;

}

Coloque isto:


int32_t LuaScriptInterface::luaDoPlayerSetExtraAttackSpeed(lua_State *L)

{    

    uint32_t speed = popNumber(L);			   

    ScriptEnviroment* env = getScriptEnv();

	   if(Player* player = env->getPlayerByUID(popNumber(L))){    

		    player->setPlayerExtraAttackSpeed(speed);

		    lua_pushnumber(L, true);

	   }    

	   else{	  

		   reportErrorFunc(getErrorDesc(LUA_ERROR_PLAYER_NOT_FOUND));

		   lua_pushnumber(L, false);

	   }	  

    return 1;

}

* luacript.h Depois de:


	    static int32_t luaDoPlayerAddSoul(lua_State* L);

Coloque isto:


	    static int32_t luaDoPlayerSetExtraAttackSpeed(lua_State* L);

Como usar:


doPlayerSetExtraAttackSpeed(cid, 2000) <- irá atacar 2 segundos mais rápido

Para voltar ao normal use isto:


doPlayerSetExtraAttackSpeed(cid, 0)

Créditos:

darkhaos

Ae ajudei? Rep+ :D
 

Link para o post
Compartilhar em outros sites
  • 4 weeks later...
  • Administrador

na onde eu acho * player.cpp explica melhor

Amigo, você acha isso nas sources do seu distro.

---

Bela função cara, valeu por trazer ao TK. ;)

TibiaKing Team- KingTópicos
www.tibiaking.com

Link para o post
Compartilhar em outros sites

De nada oque eu achar eu trago e ate script que eu fazer sou iniciante ^^

preciso de ajuda pra aperfeiçoar-me esse codigo todos devem saber que não foi eu que feis foi um amigo!

Ae ajudei? Rep+ :D
 

Link para o post
Compartilhar em outros sites
  • 9 months later...

Apresentou este erro...OT server DEV.04...8.6


luascript.cpp: In member function ‘virtual void LuaInterface::registerFunctions()’:

luascript.cpp:1686: error: ‘LuaScriptInterface’ has not been declared

luascript.cpp: At global scope:

luascript.cpp:5086: error: ‘LuaScriptInterface’ has not been declared

luascript.cpp: In function ‘int32_t luaDoPlayerSetExtraAttackSpeed(lua_State*)’:

luascript.cpp:5088: error: ‘popNumber’ was not declared in this scope

luascript.cpp:5089: error: ‘getEnv’ was not declared in this scope

luascript.cpp:5096: error: ‘getError’ was not declared in this scope

luascript.cpp:5096: error: ‘error’ was not declared in this scope

make[1]: ** [luascript.o] Erro 1

Assinatura retirada pela direção!

Link para o post
Compartilhar em outros sites
  • 1 year later...

Apresentou este erro...OT server DEV.04...8.6

 

luascript.cpp: In member function ‘virtual void LuaInterface::registerFunctions()’:
luascript.cpp:1686: error: ‘LuaScriptInterface’ has not been declared
luascript.cpp: At global scope:
luascript.cpp:5086: error: ‘LuaScriptInterface’ has not been declared
luascript.cpp: In function ‘int32_t luaDoPlayerSetExtraAttackSpeed(lua_State*)’:
luascript.cpp:5088: error: ‘popNumber’ was not declared in this scope
luascript.cpp:5089: error: ‘getEnv’ was not declared in this scope
luascript.cpp:5096: error: ‘getError’ was not declared in this scope
luascript.cpp:5096: error: ‘error’ was not declared in this scope
make[1]: ** [luascript.o] Erro 1

La no começo do tópico tem avisando que foi testado no 0.3.5pl1

 

 

 

nao teno  player.cpp :,( meu ot server e 8.6 

Todos servidores tem. Você que não deve ter as sourcers 

Tony Araújo  ;D 

 

Link para o post
Compartilhar em outros sites
  • 2 years later...

Alguma ideia de como fazer isso funcionar no TFS 3.7? Estou tentando adaptar o código mas as paradas estão todas programadas orientadas a objeto no TFS 3.7, o que torna mais fácil de fazer algumas coisas e extremamente mais difícil de fazer outras...

Link para o post
Compartilhar em outros sites
2 horas atrás, Israel Paterno disse:

Alguma ideia de como fazer isso funcionar no TFS 3.7? Estou tentando adaptar o código mas as paradas estão todas programadas orientadas a objeto no TFS 3.7, o que torna mais fácil de fazer algumas coisas e extremamente mais difícil de fazer outras...

contacteme o voy diponibilizar os souces and modifications

Link para o post
Compartilhar em outros sites

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.

Visitante
Responder

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emojis são permitidos.

×   Seu link foi automaticamente incorporado.   Mostrar como link

×   Seu conteúdo anterior foi restaurado.   Limpar o editor

×   Não é possível colar imagens diretamente. Carregar ou inserir imagens do URL.

×
×
  • Criar Novo...

Informação Importante

Confirmação de Termo