Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- enum ITEM {
- QTY
- }
- public function onSaveCharacter(temp.toon) {
- // if (this.isLoading == true) return;
- //temp.toon = this.clientr.character.slot;
- echo(this.account SPC "Saving Character for" SPC temp.toon);
- //Property WhiteList (Properties we don't want to save)
- temp.property_whitelist = {
- "toons",
- };
- //Save Properties
- for (temp.w: getstringkeys("this.clientr.property.")) {
- if (temp.w in temp.property_whitelist) continue;
- temp.tosave.(@"clientr.property." @ temp.w) = makevar("this.clientr.property." @ temp.w);
- }
- temp.tosave.clientr.base_properties = this.clientr.base_properties;
- temp.tosave.player.property_sources = this.property_sources;
- //Save Quest Progression
- for (temp.w: getstringkeys("this.clientr.quest_state_")) {
- temp.tosave.(@"clientr.quest_state_" @ temp.w) = makevar("this.clientr.quest_state_" @ temp.w);
- }
- temp.tosave.clientr.display_quest = this.clientr.display_quest;
- temp.tosave.clientr.completed_quests = this.clientr.completed_quests;
- temp.tosave.clientr.questcompleted = this.clientr.questcompleted;
- //Save Items
- for (temp.w: getstringkeys("this.clientr.item_")) {
- temp.getItem = makevar("this.clientr.item_" @ temp.w);
- if (temp.getItem[ITEM.QTY] == NULL) continue;
- temp.tosave.(@"clientr.item_" @ temp.w) = temp.getItem[0];
- }
- //Save HotKeys
- for (temp.w: getstringkeys("this.client.hotkeys.")) {
- temp.tosave.(@"client.hotkeys." @ temp.w) = makevar("this.client.hotkeys." @ temp.w);
- }
- temp.tosave.client.hotkeys = this.client.hotkeys;
- temp.tosave.client.hotkeys_quick = this.client.hotkeys_quick;
- //Save Player Attributes
- for (temp.i = 1; temp.i < 32; temp.i++) {
- if (this.attr[temp.i] == NULL || this.attr[temp.i] == "") continue;
- makevar("temp.tosave.player.attr"@temp.i) = this.attr[temp.i];
- }
- //Save Player Current Look
- temp.tosave.player.head = player.head;
- temp.tosave.player.body = player.body;
- temp.tosave.player.shield = player.shield;
- //Save Player Current Colors
- for(temp.i = 0; temp.i < 6; temp.i++) {
- makevar("temp.tosave.player.color"@temp.i) = this.colors[temp.i];
- }
- //Save Race
- temp.tosave.clientr.race = this.clientr.race;
- //Save Player Level + Expierence + Next Expierence
- temp.tosave.clientr.pve_level = this.clientr.pve_level;
- temp.tosave.clientr.pve_exp = this.clientr.pve_exp;
- temp.tosave.clientr.pve_nextlevelexp = this.clientr.pve_nextlevelexp;
- //Save Achievements
- temp.tosave.clientr.achievement_exp = this.clientr.achievement_exp;
- temp.tosave.clientr.achievement_level = this.clientr.achievement_level;
- temp.tosave.clientr.achievement_nextlevel = this.clientr.achievement_nextlevel;
- temp.tosave.clientr.achievements = this.clientr.achievements;
- //Achievement Progression
- for (temp.w: getstringkeys("this.clientr.progress_achievement_")) {
- temp.tosave.(@"clientr.progress_achievement_" @ temp.w) = makevar("this.clientr.progress_achievement_" @ temp.w);
- }
- //Save Player Metrics
- for (temp.w: getstringkeys("this.metric_")) {
- temp.tosave.(@"player.metric_" @ temp.w) = makevar("this.metric_" @ temp.w);
- }
- //Save Current Equipped
- temp.tosave.client.active_action = this.client.active_action;
- temp.tosave.clientr.equipped_items = this.clientr.equipped_items;
- temp.tosave.client.attackani = this.client.attackani;
- temp.tosave.client.idleani = this.client.idleani;
- temp.tosave.client.walkani = this.client.walkani;
- //Save Perks
- temp.tosave.clientr.perk_resets = this.clientr.perk_resets;
- temp.tosave.clientr.perks = this.clientr.perks;
- temp.tosave.clientr.perksearned = this.clientr.perksearned;
- //Save Delteria Version
- temp.tosave.player.delt_version = this.delt_version;
- //Save the File
- temp.tosave.savevars(GetLogPath(this.account @"_"@ temp.toon, "characterslots", "", 2), 0);
- //Update Client String
- temp.vars = new TStaticVar();
- temp.vars.loadvars(GetLogPath(this.account @ temp.toon, "characterslots", "", 2));
- temp.updateVars = {
- temp.vars.clientr.race,
- temp.vars.clientr.pve_level,
- temp.vars.clientr.property.max_hp,
- temp.vars.clientr.property.max_mp,
- temp.vars.player.head,
- temp.vars.attr5,
- };
- makevar("this.client.charactergui_"@temp.toon) = temp.updateVars;
- }
- public function onSetCharacter(toon) {
- if ( slot == this.clientr.character.toon ) return true; // Already loaded!
- this.isLoading = true; // Prevent saving while loading (mutli-threaded?)
- //Load Character File
- temp.vars = new TStaticVar();
- temp.vars.loadvars(GetLogPath(this.account @"_"@ toon, "characterslots", "", 2));
- //Load Properties
- for (temp.w: getstringkeys(temp.vars@".clientr.property.")) {
- makevar("this.clientr.property." @ temp.w) = temp.vars.clientr.("property." @ temp.w);
- }
- this.clientr.base_properties = temp.vars.clientr.base_properties;
- this.property_sources = temp.vars.player.property_sources;
- //Load Quest Progression
- for (temp.w: getstringkeys(temp.vars@".clientr.quest_state_")) {
- makevar("this.clientr.quest_state_" @ temp.w) = temp.vars.clientr.("quest_state_" @ temp.w);
- }
- this.clientr.display_quest = temp.vars.clientr.display_quest;
- this.clientr.completed_quests = temp.vars.clientr.completed_quests;
- this.clientr.questcompleted = temp.vars.clientr.questcompleted;
- //Load Items
- for (temp.w: getstringkeys(temp.vars@".clientr.item_")) {
- temp.getItemQTY = makevar(temp.vars@".clientr.item_" @ temp.w);
- temp.item = makevar("this.clientr.item_" @ temp.w);
- temp.item[ITEM.QTY] = temp.getItemQTY;
- }
- //Load HotKeys
- for (temp.w: getstringkeys(temp.vars@".client.hotkeys.")) {
- makevar("this.client.hotkeys." @ temp.w) = temp.vars.client.("hotkeys." @ temp.w);
- }
- this.client.hotkeys = temp.vars.client.hotkeys;
- this.client.hotkeys_quick = temp.vars.client.hotkeys_quick;
- //Load Player Attributes
- for (temp.w: getstringkeys(temp.vars@".player.attr")) {
- makevar("this.attr["@ temp.w @"]") = temp.vars.player.("attr" @ temp.w);
- }
- //Load Player Colors
- for (temp.w: getstringkeys(temp.vars@".player.color")) {
- makevar("this.colors["@ temp.w @"]") = temp.vars.player.("color" @ temp.w);
- }
- //Load Player Current Look
- this.head = temp.vars.player.head;
- this.body = temp.vars.player.body;
- this.shield = temp.vars.player.shield;
- //Load Race
- this.clientr.race = temp.vars.clientr.race;
- //Load Player Level + Expierence + Next Expierence
- this.clientr.pve_level = temp.vars.clientr.pve_level;
- this.clientr.pve_exp = temp.vars.clientr.pve_exp;
- this.clientr.pve_nextlevelexp = temp.vars.clientr.pve_nextlevelexp;
- //Load Achievements
- this.clientr.achievement_exp = temp.vars.clientr.achievement_exp;
- this.clientr.achievement_level = temp.vars.clientr.achievement_level;
- this.clientr.achievement_nextlevel = temp.vars.clientr.achievement_nextlevel;
- this.clientr.achievements = temp.vars.clientr.achievements;
- //Load Achievement Progression
- for (temp.w: getstringkeys(temp.vars@".clientr.progress_achievement_")) {
- makevar("this.clientr.progress_achievement_" @ temp.w) = temp.vars.clientr.("progress_achievement_" @ temp.w);
- }
- //Load Player Metrics
- for (temp.w: getstringkeys(temp.vars@".metric_")) {
- makevar("this.metric_" @ temp.w) = temp.vars.player.("metric_" @ temp.w);
- }
- //Load Current Equipped
- this.client.active_action = temp.vars.client.active_action;
- this.clientr.equipped_items = temp.vars.clientr.equipped_items;
- this.client.attackani = temp.vars.client.attackani;
- this.client.idleani = temp.vars.client.idleani;
- this.client.walkani = temp.vars.client.walkani;
- //Load Perks
- this.clientr.perk_resets = temp.vars.clientr.perk_resets;
- this.clientr.perks = temp.vars.clientr.perks;
- this.clientr.perksearned = temp.vars.clientr.perksearned;
- //Load Delteria Version
- this.delt_version = temp.vars.delt_version;
- }
- public function onClearCharacter(toon) {
- if (toon == clientr.character.toon) return true;
- if (this.isLoading == true) return;
- temp.toon = this.clientr.character.toon;
- //Property WhiteList (Properties we don't want to save)
- temp.property_whitelist = {
- "toons",
- };
- //Clear Properties
- for (temp.w: getstringkeys("this.clientr.property.")) {
- if (temp.w in temp.property_whitelist) continue;
- makevar("this.clientr.property." @ temp.w) = "";
- }
- this.clientr.base_properties = "";
- this.property_sources = "";
- //Clear Quest Progression
- for (temp.w: getstringkeys("this.clientr.quest_state_")) {
- makevar("this.clientr.quest_state_" @ temp.w) = "";
- }
- this.clientr.display_quest = "";
- this.clientr.completed_quests = "";
- this.clientr.questcompleted = "";
- //Clear Items
- for (temp.w: getstringkeys("this.clientr.item_")) {
- temp.getItem = makevar("this.clientr.item_" @ temp.w);
- if (temp.getItem[ITEM.QTY] == NULL) continue;
- temp.getItem[0] = NULL;
- }
- //Clear HotKeys
- for (temp.w: getstringkeys("this.client.hotkeys.")) {
- makevar("this.client.hotkeys." @ temp.w) = "";
- }
- this.client.hotkeys = "";
- this.client.hotkeys_quick = "";
- //Clear Player Attributes
- for (temp.i = 1; temp.i < 32; temp.i++) {
- if (this.attr[temp.i] == NULL || this.attr[temp.i] == "") continue;
- this.attr[temp.i] = "";
- }
- //Clear Race
- this.clientr.race = "";
- //Clear Player Level + Expierence + Next Expierence
- this.clientr.pve_level = "";
- this.clientr.pve_exp = "";
- this.clientr.pve_nextlevelexp = "";
- //Clear Achievements
- this.clientr.achievement_exp = "";
- this.clientr.achievement_level = "";
- this.clientr.achievement_nextlevel = "";
- this.clientr.achievements = "";
- //Clear Achievement Progression
- for (temp.w: getstringkeys("this.clientr.progress_achievement_")) {
- makevar("this.clientr.progress_achievement_" @ temp.w) = "";
- }
- //Clear Player Metrics
- for (temp.w: getstringkeys("this.metric_")) {
- makevar("this.metric_" @ temp.w) = "";
- }
- //Clear Current Equipped
- this.client.active_action = "";
- this.clientr.equipped_items = "";
- this.client.attackani = "";
- this.client.idleani = "";
- this.client.walkani = "";
- //Clear Perks
- this.clientr.perk_resets = "";
- this.clientr.perks = "";
- this.clientr.perksearned = "";
- //Clear Delteria Version
- this.delt_version = "";
- }
- function GetLogPath(acc,folder,prefix,strlength) {
- if (strlength == NULL) strlength = 1;
- acc = acc.lower();
- /*
- Special Case for pc: accounts
- */
- if (acc.starts("pc:")) {
- temp.accPrefix = "pc_";
- temp.accSuffix = temp.acc.substring(3);
- acc = temp.accPrefix@temp.accSuffix;
- }
- temp.l = acc.substring(0,strlength);
- if(getascii(temp.l) in |97,122| || getascii(temp.l) in |48,57| || getascii(temp.l) == 95)
- temp.subfolder = "/"@temp.l;
- return format("%s/%s.txt",folder@temp.subfolder,prefix@acc);
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement