From 32357ba81231ed7c6e72492adee36852157890e6 Mon Sep 17 00:00:00 2001 From: amibu Date: Thu, 10 Aug 2017 16:31:48 +0200 Subject: [PATCH] Return implemented --- bin/scripts/chai/skill/skillDef_6.chai | 18 ++++++++++++++++++ src/servers/Server_Zone/GameCommandHandler.cpp | 4 +--- src/servers/Server_Zone/PacketHandlers.cpp | 3 +-- src/servers/Server_Zone/Player.cpp | 6 ++++++ src/servers/Server_Zone/Player.h | 2 ++ src/servers/Server_Zone/ScriptManagerInit.cpp | 1 + 6 files changed, 29 insertions(+), 5 deletions(-) create mode 100644 bin/scripts/chai/skill/skillDef_6.chai diff --git a/bin/scripts/chai/skill/skillDef_6.chai b/bin/scripts/chai/skill/skillDef_6.chai new file mode 100644 index 00000000..4f39b99b --- /dev/null +++ b/bin/scripts/chai/skill/skillDef_6.chai @@ -0,0 +1,18 @@ +// Skill Name: Sprint +// Skill ID: 3 + +class skillDef_6Def +{ + def skillDef_6Def() + { + + } + + def onFinish( player, target ) + { + player.returnToHomepoint(); + } + +}; + +GLOBAL skillDef_6 = skillDef_6Def(); diff --git a/src/servers/Server_Zone/GameCommandHandler.cpp b/src/servers/Server_Zone/GameCommandHandler.cpp index 1a567b95..f8d77348 100644 --- a/src/servers/Server_Zone/GameCommandHandler.cpp +++ b/src/servers/Server_Zone/GameCommandHandler.cpp @@ -84,7 +84,7 @@ void Core::GameCommandHandler::execCommand( char * data, Core::Entity::PlayerPtr if( it == m_commandMap.end() ) // no command found, do something... or not - g_log.error( "[" + std::to_string( pPlayer->getId() ) + "] " + "Command not found" ); + pPlayer->sendUrgent( "Command not found." ); // TODO Notify the client of the failed command else { @@ -249,8 +249,6 @@ void Core::GameCommandHandler::set( char * data, Core::Entity::PlayerPtr pPlayer sscanf( params.c_str(), "%d", &id ); - g_log.debug( std::to_string( pPlayer->getLevelForClass( static_cast ( id ) ) ) ); - if( pPlayer->getLevelForClass( static_cast ( id ) ) == 0 ) { pPlayer->setLevelForClass( 1, static_cast ( id ) ); diff --git a/src/servers/Server_Zone/PacketHandlers.cpp b/src/servers/Server_Zone/PacketHandlers.cpp index db3d27b9..95d23962 100644 --- a/src/servers/Server_Zone/PacketHandlers.cpp +++ b/src/servers/Server_Zone/PacketHandlers.cpp @@ -842,8 +842,7 @@ void Core::Network::GameConnection::actionHandler( Core::Network::Packets::GameP } case 0xC8: // return dead { - pPlayer->setZoningType( Common::ZoneingType::Return ); - pPlayer->teleport( pPlayer->getHomepoint(), 3 ); + pPlayer->returnToHomepoint(); break; } case 0xC9: // Finish zoning diff --git a/src/servers/Server_Zone/Player.cpp b/src/servers/Server_Zone/Player.cpp index 185ea137..6a45489d 100644 --- a/src/servers/Server_Zone/Player.cpp +++ b/src/servers/Server_Zone/Player.cpp @@ -341,6 +341,12 @@ void Core::Entity::Player::forceZoneing( uint32_t zoneId ) //performZoning( zoneId, Common::ZoneingType::None, getPos() ); } +void Core::Entity::Player::returnToHomepoint() +{ + setZoningType( Common::ZoneingType::Return ); + teleport( getHomepoint(), 3 ); +} + void Core::Entity::Player::setZone( uint32_t zoneId ) { auto pPlayer = getAsPlayer(); diff --git a/src/servers/Server_Zone/Player.h b/src/servers/Server_Zone/Player.h index 1d7b8d22..fd8f53e1 100644 --- a/src/servers/Server_Zone/Player.h +++ b/src/servers/Server_Zone/Player.h @@ -302,6 +302,8 @@ public: void setZone( uint32_t zoneId ); void forceZoneing( uint32_t zoneId ); + /*! return player to preset homepoint */ + void returnToHomepoint(); /*! change position, sends update too */ void changePosition( float x, float y, float z, float o ); /*! return the contentId */ diff --git a/src/servers/Server_Zone/ScriptManagerInit.cpp b/src/servers/Server_Zone/ScriptManagerInit.cpp index 07d705f5..f4e56ba9 100644 --- a/src/servers/Server_Zone/ScriptManagerInit.cpp +++ b/src/servers/Server_Zone/ScriptManagerInit.cpp @@ -48,6 +48,7 @@ int Core::Scripting::ScriptManager::init() m_pChaiHandler->add( chaiscript::fun( &Entity::Player::learnAction ), "learnAction" ); m_pChaiHandler->add( chaiscript::fun( &Entity::Player::getHomepoint ), "getHomepoint" ); m_pChaiHandler->add( chaiscript::fun( &Entity::Player::setHomepoint ), "setHomepoint" ); + m_pChaiHandler->add( chaiscript::fun( &Entity::Player::returnToHomepoint ), "returnToHomepoint" ); m_pChaiHandler->add( chaiscript::fun( &Entity::Player::teleport ), "teleport" ); m_pChaiHandler->add( chaiscript::fun( &Entity::Player::prepareZoning ), "prepareZoning" );