// Change Experience. bool Game_Interpreter::CommandChangeLevel(RPG::EventCommand const& com) { // Code 10420 std::vector<Game_Actor*> actors = GetActors(com.parameters[0], com.parameters[1]); int value = OperateValue( com.parameters[2], com.parameters[3], com.parameters[4] ); for (std::vector<Game_Actor*>::iterator i = actors.begin(); i != actors.end(); i++) { Game_Actor* actor = *i; actor->ChangeLevel(actor->GetLevel() + value); } if (com.parameters[5] != 0) { // TODO // Show message increase level } else { // Don't show message increase level } // Continue return true; }
// Change Gold. bool Game_Interpreter::CommandChangeGold(RPG::EventCommand const& com) { // Code 10310 int value; value = OperateValue( com.parameters[0], com.parameters[1], com.parameters[2] ); Game_Party::GainGold(value); // Continue return true; }
// Change Experience. bool Game_Interpreter::CommandChangeLevel(RPG::EventCommand const& com) { // Code 10420 std::vector<Game_Actor*> actors = GetActors(com.parameters[0], com.parameters[1]); int value = OperateValue( com.parameters[2], com.parameters[3], com.parameters[4] ); for (std::vector<Game_Actor*>::iterator i = actors.begin(); i != actors.end(); i++) { Game_Actor* actor = *i; actor->ChangeLevel(actor->GetLevel() + value, com.parameters[5] != 0); } return true; }
// Change Items. bool Game_Interpreter::CommandChangeItems(RPG::EventCommand const& com) { // Code 10320 int value; value = OperateValue( com.parameters[0], com.parameters[3], com.parameters[4] ); if (com.parameters[1] == 0) { // Item by const number Game_Party::GainItem(com.parameters[2], value); } else { // Item by variable Game_Party::GainItem( Game_Variables[com.parameters[2]], value ); } Game_Map::SetNeedRefresh(true); // Continue return true; }
// Change Items. bool Game_Interpreter::CommandChangeItems(RPG::EventCommand const& com) { // Code 10320 int value; value = OperateValue( com.parameters[0], com.parameters[3], com.parameters[4] ); // Add item can't be used to remove an item and // remove item can't be used to add one if (com.parameters[0] == 1) { // Substract if (value > 0) { return true; } } else { // Add if (value < 0) { return true; } } if (com.parameters[1] == 0) { // Item by const number Game_Party::GainItem(com.parameters[2], value); } else { // Item by variable Game_Party::GainItem( Game_Variables[com.parameters[2]], value ); } Game_Map::SetNeedRefresh(true); // Continue return true; }