From 954213f1ff9ed7a38abcd6f21649ab01d0c2f30a Mon Sep 17 00:00:00 2001 From: Kayne Ruse Date: Fri, 13 Mar 2015 19:36:03 +1100 Subject: [PATCH] Minor tweak to hCharacterMovement() --- rsc/scripts/setup_server.lua | 2 +- server/characters/character_api.cpp | 5 +++-- server/server_character_methods.cpp | 5 +++++ 3 files changed, 9 insertions(+), 3 deletions(-) diff --git a/rsc/scripts/setup_server.lua b/rsc/scripts/setup_server.lua index 2d86a22..2c4f31c 100644 --- a/rsc/scripts/setup_server.lua +++ b/rsc/scripts/setup_server.lua @@ -59,7 +59,7 @@ createTrigger("door 1", overworld, 128, -128, function(entity) end local x, y = characterAPI.GetOrigin(entity) - characterAPI.SetRoomIndex(entity, uidTwo) --TODO: (0) take exit coordinates as a parameter + characterAPI.SetRoomIndex(entity, uidTwo) characterAPI.SetOrigin(entity, 0, 0) networkAPI.PumpCharacterUpdate(entity) end) diff --git a/server/characters/character_api.cpp b/server/characters/character_api.cpp index 0e858d1..632285a 100644 --- a/server/characters/character_api.cpp +++ b/server/characters/character_api.cpp @@ -49,9 +49,10 @@ static int setRoomIndex(lua_State* L) { //TODO: (1) take the room userdata as a //error checking if (characterIndex == -1) { - throw(std::runtime_error("Failed to find character index by reference")); + throw(std::runtime_error("Lua Error: Failed to find character index by reference")); } + //send the delete & create messages pumpAndChangeRooms(character, lua_tointeger(L, 2), characterIndex); return 0; } @@ -75,8 +76,8 @@ static int getAvatar(lua_State* L) { } static const luaL_Reg characterLib[] = { -// {"GetOwner", getOwner}, //unusable without account API {"SetRoomIndex", setRoomIndex}, +// {"GetOwner", getOwner}, //unusable without account API {"GetHandle", getHandle}, {"GetAvatar", getAvatar}, {nullptr, nullptr} diff --git a/server/server_character_methods.cpp b/server/server_character_methods.cpp index 5e370d7..36839ac 100644 --- a/server/server_character_methods.cpp +++ b/server/server_character_methods.cpp @@ -212,6 +212,11 @@ void ServerApplication::hCharacterMovement(CharacterPacket* const argPacket) { //check if moving rooms if (characterData->GetRoomIndex() != argPacket->roomIndex) { + //set the character's origin and motion + characterData->SetOrigin(argPacket->origin); + characterData->SetMotion(argPacket->motion); + + //send the delete & create messages pumpAndChangeRooms(characterData, argPacket->roomIndex, argPacket->characterIndex); } //if not moving between rooms