Advertisement
Guest User

Untitled

a guest
Jul 24th, 2015
223
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 10.93 KB | None | 0 0
  1. enum ITEM {
  2. QTY
  3. }
  4.  
  5. public function onSaveCharacter(temp.toon) {
  6. // if (this.isLoading == true) return;
  7. //temp.toon = this.clientr.character.slot;
  8. echo(this.account SPC "Saving Character for" SPC temp.toon);
  9. //Property WhiteList (Properties we don't want to save)
  10. temp.property_whitelist = {
  11. "toons",
  12. };
  13. //Save Properties
  14. for (temp.w: getstringkeys("this.clientr.property.")) {
  15. if (temp.w in temp.property_whitelist) continue;
  16. temp.tosave.(@"clientr.property." @ temp.w) = makevar("this.clientr.property." @ temp.w);
  17. }
  18. temp.tosave.clientr.base_properties = this.clientr.base_properties;
  19. temp.tosave.player.property_sources = this.property_sources;
  20.  
  21.  
  22. //Save Quest Progression
  23. for (temp.w: getstringkeys("this.clientr.quest_state_")) {
  24. temp.tosave.(@"clientr.quest_state_" @ temp.w) = makevar("this.clientr.quest_state_" @ temp.w);
  25. }
  26. temp.tosave.clientr.display_quest = this.clientr.display_quest;
  27. temp.tosave.clientr.completed_quests = this.clientr.completed_quests;
  28. temp.tosave.clientr.questcompleted = this.clientr.questcompleted;
  29.  
  30. //Save Items
  31. for (temp.w: getstringkeys("this.clientr.item_")) {
  32. temp.getItem = makevar("this.clientr.item_" @ temp.w);
  33. if (temp.getItem[ITEM.QTY] == NULL) continue;
  34. temp.tosave.(@"clientr.item_" @ temp.w) = temp.getItem[0];
  35. }
  36.  
  37. //Save HotKeys
  38. for (temp.w: getstringkeys("this.client.hotkeys.")) {
  39. temp.tosave.(@"client.hotkeys." @ temp.w) = makevar("this.client.hotkeys." @ temp.w);
  40. }
  41. temp.tosave.client.hotkeys = this.client.hotkeys;
  42. temp.tosave.client.hotkeys_quick = this.client.hotkeys_quick;
  43.  
  44. //Save Player Attributes
  45. for (temp.i = 1; temp.i < 32; temp.i++) {
  46. if (this.attr[temp.i] == NULL || this.attr[temp.i] == "") continue;
  47. makevar("temp.tosave.player.attr"@temp.i) = this.attr[temp.i];
  48. }
  49.  
  50. //Save Player Current Look
  51. temp.tosave.player.head = player.head;
  52. temp.tosave.player.body = player.body;
  53. temp.tosave.player.shield = player.shield;
  54.  
  55. //Save Player Current Colors
  56. for(temp.i = 0; temp.i < 6; temp.i++) {
  57. makevar("temp.tosave.player.color"@temp.i) = this.colors[temp.i];
  58. }
  59.  
  60. //Save Race
  61. temp.tosave.clientr.race = this.clientr.race;
  62.  
  63. //Save Player Level + Expierence + Next Expierence
  64. temp.tosave.clientr.pve_level = this.clientr.pve_level;
  65. temp.tosave.clientr.pve_exp = this.clientr.pve_exp;
  66. temp.tosave.clientr.pve_nextlevelexp = this.clientr.pve_nextlevelexp;
  67.  
  68. //Save Achievements
  69. temp.tosave.clientr.achievement_exp = this.clientr.achievement_exp;
  70. temp.tosave.clientr.achievement_level = this.clientr.achievement_level;
  71. temp.tosave.clientr.achievement_nextlevel = this.clientr.achievement_nextlevel;
  72. temp.tosave.clientr.achievements = this.clientr.achievements;
  73. //Achievement Progression
  74. for (temp.w: getstringkeys("this.clientr.progress_achievement_")) {
  75. temp.tosave.(@"clientr.progress_achievement_" @ temp.w) = makevar("this.clientr.progress_achievement_" @ temp.w);
  76. }
  77.  
  78. //Save Player Metrics
  79. for (temp.w: getstringkeys("this.metric_")) {
  80. temp.tosave.(@"player.metric_" @ temp.w) = makevar("this.metric_" @ temp.w);
  81. }
  82.  
  83. //Save Current Equipped
  84. temp.tosave.client.active_action = this.client.active_action;
  85. temp.tosave.clientr.equipped_items = this.clientr.equipped_items;
  86. temp.tosave.client.attackani = this.client.attackani;
  87. temp.tosave.client.idleani = this.client.idleani;
  88. temp.tosave.client.walkani = this.client.walkani;
  89.  
  90. //Save Perks
  91. temp.tosave.clientr.perk_resets = this.clientr.perk_resets;
  92. temp.tosave.clientr.perks = this.clientr.perks;
  93. temp.tosave.clientr.perksearned = this.clientr.perksearned;
  94.  
  95. //Save Delteria Version
  96. temp.tosave.player.delt_version = this.delt_version;
  97.  
  98. //Save the File
  99. temp.tosave.savevars(GetLogPath(this.account @"_"@ temp.toon, "characterslots", "", 2), 0);
  100.  
  101. //Update Client String
  102. temp.vars = new TStaticVar();
  103. temp.vars.loadvars(GetLogPath(this.account @ temp.toon, "characterslots", "", 2));
  104. temp.updateVars = {
  105. temp.vars.clientr.race,
  106. temp.vars.clientr.pve_level,
  107. temp.vars.clientr.property.max_hp,
  108. temp.vars.clientr.property.max_mp,
  109. temp.vars.player.head,
  110. temp.vars.attr5,
  111. };
  112. makevar("this.client.charactergui_"@temp.toon) = temp.updateVars;
  113. }
  114.  
  115. public function onSetCharacter(toon) {
  116. if ( slot == this.clientr.character.toon ) return true; // Already loaded!
  117. this.isLoading = true; // Prevent saving while loading (mutli-threaded?)
  118.  
  119. //Load Character File
  120. temp.vars = new TStaticVar();
  121. temp.vars.loadvars(GetLogPath(this.account @"_"@ toon, "characterslots", "", 2));
  122.  
  123. //Load Properties
  124. for (temp.w: getstringkeys(temp.vars@".clientr.property.")) {
  125. makevar("this.clientr.property." @ temp.w) = temp.vars.clientr.("property." @ temp.w);
  126. }
  127. this.clientr.base_properties = temp.vars.clientr.base_properties;
  128. this.property_sources = temp.vars.player.property_sources;
  129.  
  130. //Load Quest Progression
  131. for (temp.w: getstringkeys(temp.vars@".clientr.quest_state_")) {
  132. makevar("this.clientr.quest_state_" @ temp.w) = temp.vars.clientr.("quest_state_" @ temp.w);
  133. }
  134. this.clientr.display_quest = temp.vars.clientr.display_quest;
  135. this.clientr.completed_quests = temp.vars.clientr.completed_quests;
  136. this.clientr.questcompleted = temp.vars.clientr.questcompleted;
  137.  
  138. //Load Items
  139. for (temp.w: getstringkeys(temp.vars@".clientr.item_")) {
  140. temp.getItemQTY = makevar(temp.vars@".clientr.item_" @ temp.w);
  141. temp.item = makevar("this.clientr.item_" @ temp.w);
  142. temp.item[ITEM.QTY] = temp.getItemQTY;
  143. }
  144.  
  145. //Load HotKeys
  146. for (temp.w: getstringkeys(temp.vars@".client.hotkeys.")) {
  147. makevar("this.client.hotkeys." @ temp.w) = temp.vars.client.("hotkeys." @ temp.w);
  148. }
  149. this.client.hotkeys = temp.vars.client.hotkeys;
  150. this.client.hotkeys_quick = temp.vars.client.hotkeys_quick;
  151.  
  152. //Load Player Attributes
  153. for (temp.w: getstringkeys(temp.vars@".player.attr")) {
  154. makevar("this.attr["@ temp.w @"]") = temp.vars.player.("attr" @ temp.w);
  155. }
  156.  
  157. //Load Player Colors
  158. for (temp.w: getstringkeys(temp.vars@".player.color")) {
  159. makevar("this.colors["@ temp.w @"]") = temp.vars.player.("color" @ temp.w);
  160. }
  161.  
  162. //Load Player Current Look
  163. this.head = temp.vars.player.head;
  164. this.body = temp.vars.player.body;
  165. this.shield = temp.vars.player.shield;
  166.  
  167. //Load Race
  168. this.clientr.race = temp.vars.clientr.race;
  169.  
  170. //Load Player Level + Expierence + Next Expierence
  171. this.clientr.pve_level = temp.vars.clientr.pve_level;
  172. this.clientr.pve_exp = temp.vars.clientr.pve_exp;
  173. this.clientr.pve_nextlevelexp = temp.vars.clientr.pve_nextlevelexp;
  174.  
  175. //Load Achievements
  176. this.clientr.achievement_exp = temp.vars.clientr.achievement_exp;
  177. this.clientr.achievement_level = temp.vars.clientr.achievement_level;
  178. this.clientr.achievement_nextlevel = temp.vars.clientr.achievement_nextlevel;
  179. this.clientr.achievements = temp.vars.clientr.achievements;
  180. //Load Achievement Progression
  181. for (temp.w: getstringkeys(temp.vars@".clientr.progress_achievement_")) {
  182. makevar("this.clientr.progress_achievement_" @ temp.w) = temp.vars.clientr.("progress_achievement_" @ temp.w);
  183. }
  184.  
  185. //Load Player Metrics
  186. for (temp.w: getstringkeys(temp.vars@".metric_")) {
  187. makevar("this.metric_" @ temp.w) = temp.vars.player.("metric_" @ temp.w);
  188. }
  189.  
  190. //Load Current Equipped
  191. this.client.active_action = temp.vars.client.active_action;
  192. this.clientr.equipped_items = temp.vars.clientr.equipped_items;
  193. this.client.attackani = temp.vars.client.attackani;
  194. this.client.idleani = temp.vars.client.idleani;
  195. this.client.walkani = temp.vars.client.walkani;
  196.  
  197. //Load Perks
  198. this.clientr.perk_resets = temp.vars.clientr.perk_resets;
  199. this.clientr.perks = temp.vars.clientr.perks;
  200. this.clientr.perksearned = temp.vars.clientr.perksearned;
  201.  
  202. //Load Delteria Version
  203. this.delt_version = temp.vars.delt_version;
  204. }
  205.  
  206. public function onClearCharacter(toon) {
  207. if (toon == clientr.character.toon) return true;
  208. if (this.isLoading == true) return;
  209. temp.toon = this.clientr.character.toon;
  210.  
  211. //Property WhiteList (Properties we don't want to save)
  212. temp.property_whitelist = {
  213. "toons",
  214. };
  215.  
  216. //Clear Properties
  217. for (temp.w: getstringkeys("this.clientr.property.")) {
  218. if (temp.w in temp.property_whitelist) continue;
  219. makevar("this.clientr.property." @ temp.w) = "";
  220. }
  221. this.clientr.base_properties = "";
  222. this.property_sources = "";
  223.  
  224.  
  225. //Clear Quest Progression
  226. for (temp.w: getstringkeys("this.clientr.quest_state_")) {
  227. makevar("this.clientr.quest_state_" @ temp.w) = "";
  228. }
  229. this.clientr.display_quest = "";
  230. this.clientr.completed_quests = "";
  231. this.clientr.questcompleted = "";
  232.  
  233. //Clear Items
  234. for (temp.w: getstringkeys("this.clientr.item_")) {
  235. temp.getItem = makevar("this.clientr.item_" @ temp.w);
  236. if (temp.getItem[ITEM.QTY] == NULL) continue;
  237. temp.getItem[0] = NULL;
  238. }
  239.  
  240. //Clear HotKeys
  241. for (temp.w: getstringkeys("this.client.hotkeys.")) {
  242. makevar("this.client.hotkeys." @ temp.w) = "";
  243. }
  244. this.client.hotkeys = "";
  245. this.client.hotkeys_quick = "";
  246.  
  247. //Clear Player Attributes
  248. for (temp.i = 1; temp.i < 32; temp.i++) {
  249. if (this.attr[temp.i] == NULL || this.attr[temp.i] == "") continue;
  250. this.attr[temp.i] = "";
  251. }
  252.  
  253. //Clear Race
  254. this.clientr.race = "";
  255.  
  256. //Clear Player Level + Expierence + Next Expierence
  257. this.clientr.pve_level = "";
  258. this.clientr.pve_exp = "";
  259. this.clientr.pve_nextlevelexp = "";
  260.  
  261. //Clear Achievements
  262. this.clientr.achievement_exp = "";
  263. this.clientr.achievement_level = "";
  264. this.clientr.achievement_nextlevel = "";
  265. this.clientr.achievements = "";
  266. //Clear Achievement Progression
  267. for (temp.w: getstringkeys("this.clientr.progress_achievement_")) {
  268. makevar("this.clientr.progress_achievement_" @ temp.w) = "";
  269. }
  270.  
  271. //Clear Player Metrics
  272. for (temp.w: getstringkeys("this.metric_")) {
  273. makevar("this.metric_" @ temp.w) = "";
  274. }
  275.  
  276. //Clear Current Equipped
  277. this.client.active_action = "";
  278. this.clientr.equipped_items = "";
  279. this.client.attackani = "";
  280. this.client.idleani = "";
  281. this.client.walkani = "";
  282.  
  283. //Clear Perks
  284. this.clientr.perk_resets = "";
  285. this.clientr.perks = "";
  286. this.clientr.perksearned = "";
  287.  
  288. //Clear Delteria Version
  289. this.delt_version = "";
  290. }
  291.  
  292.  
  293.  
  294.  
  295. function GetLogPath(acc,folder,prefix,strlength) {
  296. if (strlength == NULL) strlength = 1;
  297. acc = acc.lower();
  298. /*
  299. Special Case for pc: accounts
  300. */
  301. if (acc.starts("pc:")) {
  302. temp.accPrefix = "pc_";
  303. temp.accSuffix = temp.acc.substring(3);
  304. acc = temp.accPrefix@temp.accSuffix;
  305. }
  306. temp.l = acc.substring(0,strlength);
  307. if(getascii(temp.l) in |97,122| || getascii(temp.l) in |48,57| || getascii(temp.l) == 95)
  308. temp.subfolder = "/"@temp.l;
  309. return format("%s/%s.txt",folder@temp.subfolder,prefix@acc);
  310. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement