int STDCALL handleServerUpdate(Unit* ptChar, WORD param) { log_msg("Received custom message: %X\n", param); switch(param & 0xFF) { case US_UNASSIGN_STR_POINT : UnassignStrPoint( ptChar ); return 1; case US_UNASSIGN_ENE_POINT : UnassignEnePoint( ptChar ); return 1; case US_UNASSIGN_DEX_POINT : UnassignDexPoint( ptChar ); return 1; case US_UNASSIGN_VIT_POINT : UnassignVitPoint( ptChar ); return 1; case US_UNASSIGN_STR_POINTS : UnassignStrPoints( ptChar ); return 1; case US_UNASSIGN_ENE_POINTS : UnassignEnePoints( ptChar ); return 1; case US_UNASSIGN_DEX_POINTS : UnassignDexPoints( ptChar ); return 1; case US_UNASSIGN_VIT_POINTS : UnassignVitPoints( ptChar ); return 1; case US_UNASSIGN_SKILLS : UnassignAllSkillsPoints( ptChar ); return 1; case US_SELECT_PREVIOUS : selectPreviousStash( ptChar ); return 1; case US_SELECT_NEXT : selectNextStash( ptChar ); return 1; case US_SELECT_SELF : if (active_sharedStash) toggleToSelfStash( ptChar ); return 1; case US_SELECT_SHARED : if (active_sharedStash) toggleToSharedStash( ptChar ); return 1; case US_SELECT_PREVIOUS_INDEX : selectPreviousIndexStash( ptChar ); return 1; case US_SELECT_NEXT_INDEX : selectNextIndexStash( ptChar ); return 1; case US_SELECT_PREVIOUS2 : selectPrevious2Stash( ptChar ); return 1; case US_SELECT_NEXT2 : selectNext2Stash( ptChar ); return 1; case US_SELECT_PREVIOUS_INDEX2: selectPreviousIndex2Stash( ptChar ); return 1; case US_SELECT_NEXT_INDEX2 : selectNextIndex2Stash( ptChar ); return 1; case US_STARTSAVE : savePlayers( ptChar ); return 1; case US_MAXGOLD : maxGold(ptChar); return 1; case US_PUTGOLD : putGold(ptChar, 0); return 1; case US_TAKEGOLD : takeGold(ptChar, 0); return 1; default : return 0; } }
static short saveOneTeam(FILE *const pFileHandleDataBase, const TTeam pTeamToSave) { if(fprintf(pFileHandleDataBase, " <Team>\n")) { if(fprintf(pFileHandleDataBase, " <Name>%s</Name>\n", pTeamToSave.nameOfTeam) == 0) return 0; if(fprintf(pFileHandleDataBase, " <Trainer>%s</Trainer>\n", pTeamToSave.nameOfCoach) == 0) return 0; if(savePlayers(pFileHandleDataBase, pTeamToSave.players, pTeamToSave.playerCount) == 0) return 0; if(fprintf(pFileHandleDataBase, " <Win>%hu</Win>\n", pTeamToSave.numberOfMatchesWon) == 0) return 0; if(fprintf(pFileHandleDataBase, " <Tie>%hu</Tie>\n", pTeamToSave.numberOfMatchesTied) == 0) return 0; if(fprintf(pFileHandleDataBase, " <Defeat>%hu</Defeat>\n", pTeamToSave.numberOfMatchesLost) == 0) return 0; if(fprintf(pFileHandleDataBase, " <Goals>%hu</Goals>\n", pTeamToSave.numberOfGoalsScored) == 0) return 0; if(fprintf(pFileHandleDataBase, " <GuestGoals>%hu</GuestGoals>\n", pTeamToSave.numberOfGoalsLetIn) == 0) return 0; if(fprintf(pFileHandleDataBase, " <Points>%hu</Points>\n", pTeamToSave.numberOfPoints) == 0) return 0; } else { return 0; } if(fprintf(pFileHandleDataBase, " </Team>\n") == 0) return 0; return 1; }
void DBManager::save() { char command[MAX_STR_LENGTH]; sprintf(command, "mkdir .\\%s", DATA_PATH); if (system(NULL)) system(command); savePlayers(); saveEnemies(); saveNPCs(); saveTools(); saveItems(); savePowUps(); saveBosses(); saveBlocks(); savePigeon(); saveKeyObj(); saveFinalElem(), savePuzzleElems(); // Creamos el archivo de Log char file_path[MAX_STR_LENGTH]; sprintf(file_path, ".\\%sLog", DATA_PATH); FILE* file =fopen(file_path, "wb"); fclose(file); // Estos métodos además se encargan de copiar los respectivos archivos a la carpeta del juego saveGfx(); saveEssentialElems(); saveTileSets(); saveSfx(); saveDoors(); sprintf(command, "del \".\\%sLog\"", DATA_PATH); if (system(NULL)) system(command); }
int STDCALL handleServerUpdate(Unit* ptChar, WORD param) { int type = param & 0xFF; DWORD arg = (param & 0xFF00) >> 8; log_msg("Received custom message: type=%i, arg=%i\n", type, arg); switch(type) { case US_UNASSIGN_STR_POINT : UnassignStrPoint( ptChar ); return 1; case US_UNASSIGN_ENE_POINT : UnassignEnePoint( ptChar ); return 1; case US_UNASSIGN_DEX_POINT : UnassignDexPoint( ptChar ); return 1; case US_UNASSIGN_VIT_POINT : UnassignVitPoint( ptChar ); return 1; case US_UNASSIGN_STR_POINTS : UnassignStrPoints( ptChar ); return 1; case US_UNASSIGN_ENE_POINTS : UnassignEnePoints( ptChar ); return 1; case US_UNASSIGN_DEX_POINTS : UnassignDexPoints( ptChar ); return 1; case US_UNASSIGN_VIT_POINTS : UnassignVitPoints( ptChar ); return 1; case US_UNASSIGN_SKILLS : UnassignAllSkillsPoints( ptChar ); return 1; case US_SET_INDEX: setCurrentStashIndex(ptChar, 1); return 1; case US_SET_MAIN_INDEX: setCurrentStashIndex(ptChar, 2); return 1; case US_RESET_INDEX: setCurrentStashIndex(ptChar, 0); return 1; case US_SELECT_PREVIOUS : selectPreviousStash( ptChar ); return 1; case US_SELECT_NEXT : selectNextStash( ptChar ); return 1; case US_SELECT_SELF : if (active_sharedStash) toggleToSelfStash( ptChar ); return 1; case US_SELECT_SHARED : if (active_sharedStash) toggleToSharedStash( ptChar ); return 1; case US_SELECT_PREVIOUS_INDEX : selectPreviousIndexStash( ptChar ); return 1; case US_SELECT_NEXT_INDEX : selectNextIndexStash( ptChar ); return 1; case US_SELECT_PREVIOUS2 : selectPrevious2Stash( ptChar ); return 1; case US_SELECT_NEXT2 : selectNext2Stash( ptChar ); return 1; case US_SELECT_PREVIOUS_INDEX2: selectPreviousIndex2Stash( ptChar ); return 1; case US_SELECT_NEXT_INDEX2 : selectNextIndex2Stash( ptChar ); return 1; case US_INSERT_PAGE: insertStash(ptChar); selectNextStash(ptChar); return 1; case US_DELETE_PAGE: deleteStash(ptChar, false); return 1; case US_SAVE : savePlayers( ptChar ); return 1; case US_MAXGOLD : maxGold(ptChar); return 1; case US_PUTGOLD : putGold(ptChar, 0); return 1; case US_TAKEGOLD : takeGold(ptChar, 0); return 1; case US_SWAP3 : PageSwap = arg << 24; return 1; case US_SWAP2 : PageSwap |= arg << 16; return 1; case US_SWAP1 : PageSwap |= arg << 8; return 1; case US_SWAP0: swapStash(ptChar, PageSwap | arg, false); PageSwap = 0; return 1; case US_SWAP0_TOGGLE : swapStash(ptChar, PageSwap | arg, true); PageSwap = 0; return 1; case US_RENAME : if (renameIndex == 0) for (int i = 0; i < 16; i++) renameString[i] = 0; renameString[renameIndex++] = (char)arg; if (arg == 0) { renameIndex = 0; log_msg("Rename on Server : %s -> %s\n", ptChar->ptPlayerData->name, renameString); strcpy(ptChar->ptPlayerData->name, renameString); strcpy(ptChar->ptPlayerData->ptNetClient->name, renameString); } return 1; case US_PAGENAME: if (renameIndex == 0) for (int i = 0; i < 16; i++) renameString[i] = 0; renameString[renameIndex++] = (char)arg; if (arg == 0) { renameIndex = 0; log_msg("Rename current page on Server : %s -> %s\n", PCPY->currentStash->name, renameString); renameCurrentStash(ptChar, renameString); } return 1; default : return 0; } }