mirror of
https://gitlab.com/2009scape/2009scape.git
synced 2025-12-09 16:45:44 -07:00
Added initial version
This commit is contained in:
commit
b452bd670c
13290 changed files with 1178433 additions and 0 deletions
334
Tools/Drop Table Tool.html
Normal file
334
Tools/Drop Table Tool.html
Normal file
|
|
@ -0,0 +1,334 @@
|
|||
<html>
|
||||
<head>
|
||||
<title>💀 Drop Table Tool</title>
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
<meta charset="UTF-8">
|
||||
<script src="https://cdn.jsdelivr.net/npm/vue@2.6.12/dist/vue.js"></script>
|
||||
<link rel="stylesheet" href="https://jenil.github.io/bulmaswatch/darkly/bulmaswatch.min.css">
|
||||
</head>
|
||||
|
||||
<body>
|
||||
<div id="app">
|
||||
<div class="block container">
|
||||
<div class="box">
|
||||
<h1 class="title is-5">Import Files</h1>
|
||||
|
||||
<div class="field is-grouped">
|
||||
<div class="file control has-name">
|
||||
<label class="file-label">
|
||||
<input id="files" class="file-input" type="file" name="files" accept=".json" multiple @change="readFiles">
|
||||
<span class="file-cta">
|
||||
<span class="file-label">
|
||||
Select all the JSON config files
|
||||
</span>
|
||||
</span>
|
||||
<span class="file-name">
|
||||
{{ files ? `${files.length} files selected` : 'No files selected' }}
|
||||
</span>
|
||||
</label>
|
||||
</div>
|
||||
|
||||
<div class="control">
|
||||
<button class="button is-info" @click="readFiles">Reload JSON</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="field is-grouped is-grouped-multiline">
|
||||
<div class="control">
|
||||
<div class="tags has-addons">
|
||||
<span class="tag">drop_tables.json</span>
|
||||
<span v-if="drop_tables" class="tag is-success">YES</span>
|
||||
<span v-else class="tag is-danger">NO</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="control">
|
||||
<div class="tags has-addons">
|
||||
<span class="tag">item_configs.json </span>
|
||||
<span v-if="item_configs" class="tag is-success">YES</span>
|
||||
<span v-else class="tag is-danger">NO</span>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="control">
|
||||
<div class="tags has-addons">
|
||||
<span class="tag">npc_configs.json</span>
|
||||
<span v-if="npc_configs" class="tag is-success">YES</span>
|
||||
<span v-else class="tag is-danger">NO</span>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-if="jsonLoaded" id="functionality">
|
||||
<div class="block container">
|
||||
<div class="columns">
|
||||
<div class="column">
|
||||
<div class="box">
|
||||
<h1 class="title is-5">Functions</h1>
|
||||
|
||||
<div class="field has-addons">
|
||||
<div class="control select">
|
||||
<select v-model="selectedNPC">
|
||||
<option v-for="npc in npc_configs" :value="npc.id">{{ npc.id }} - {{ npc.name }}</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="control">
|
||||
<button class="button is-info" @click="viewDropTable">
|
||||
View Drop Table
|
||||
</button>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="field is-grouped is-grouped-multiline">
|
||||
<div class="control">
|
||||
<button class="button is-primary" @click="findMissingDropTables">Find Missing Drop Tables</button>
|
||||
</div>
|
||||
<div class="control">
|
||||
<button class="button is-primary" @click="findDupes">Find Duplicate NPC drops</button>
|
||||
</div>
|
||||
<div class="control">
|
||||
<button class="button is-primary" @click="findUnknownItems">Find Unknown Items</button>
|
||||
</div>
|
||||
<div class="control">
|
||||
<button class="button is-primary" @click="findUnknownNPCs">Find Unknown NPCs</button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="box">
|
||||
<h1 class="title is-5">NPCs</h1>
|
||||
<textarea class="textarea" :value="npcList"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
<div class="column">
|
||||
<div class="box">
|
||||
<h1 class="title is-5">Items</h1>
|
||||
<textarea class="textarea" :value="itemList"></textarea>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div v-if="results" class="block container">
|
||||
<div class="box">
|
||||
<h1 class="title is-4">Results
|
||||
<a class="subtitle is-6" @click="inspectModal = results">View JSON</a>
|
||||
</h1>
|
||||
<pre v-if="resultsType == 'plain'">{{ results }}</pre>
|
||||
<div v-else-if="resultsType == 'droptable'">
|
||||
<p><strong>Table Description:</strong> {{ results.description }}</p>
|
||||
<br>
|
||||
<template v-for="section in ['main', 'charms', 'default']">
|
||||
<h1 class="subtitle">{{ section.toUpperCase() }}</h1>
|
||||
Total Weight: {{ results.weights[section] }}
|
||||
<table class="table">
|
||||
<thead>
|
||||
<tr>
|
||||
<td>Item ID</td>
|
||||
<td>Name</td>
|
||||
<td>Min Amount</td>
|
||||
<td>Max Amount</td>
|
||||
<td>Weight</td>
|
||||
<td>Odds</td>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr v-for="row in results[section]">
|
||||
<td>{{ row.id }}</td>
|
||||
<td>
|
||||
<span v-if="row.id == 31">Rare Drop Table</span>
|
||||
<a v-else-if="item_configs.find(x => x.id == row.id)" @click="inspectModal = item_configs.find(x => x.id == row.id)">{{ item_configs.find(x => x.id == row.id).name }}</a>
|
||||
<span v-else>UNKNOWN ITEM</span>
|
||||
</td>
|
||||
<td>{{ row.minAmount }}</td>
|
||||
<td>{{ row.maxAmount }}</td>
|
||||
<td>{{ row.weight }}</td>
|
||||
<td>{{ Number(row.weight/results.weights[section]*100).toPrecision(3) }}%</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
</template>
|
||||
<p><strong>NPCs using this droptable:</strong>
|
||||
<div class="content is-small">
|
||||
<ul>
|
||||
<li v-for="id in results.ids.split(',')">
|
||||
<a @click="inspectModal = npc_configs.find(x => x.id == id)">
|
||||
{{ id }} - {{ npc_configs.find(x => x.id == id)?.name || 'UNKNOWN NAME' }}
|
||||
</a>
|
||||
</li>
|
||||
</ul>
|
||||
</div>
|
||||
</p>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<div class="modal" :class="{'is-active': inspectModal}">
|
||||
<div class="modal-background" @click="inspectModal = undefined"></div>
|
||||
<div class="modal-content">
|
||||
<pre>{{ JSON.stringify(inspectModal, null, 4) }}</pre>
|
||||
</div>
|
||||
<button class="modal-close is-large" aria-label="close" @click="inspectModal = undefined"></button>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
<script>
|
||||
new Vue({
|
||||
el: '#app',
|
||||
data: {
|
||||
files: undefined,
|
||||
drop_tables: undefined,
|
||||
item_configs: undefined,
|
||||
npc_configs: undefined,
|
||||
selectedNPC: '',
|
||||
results: '',
|
||||
resultsType: 'plain',
|
||||
inspectModal: ''
|
||||
},
|
||||
computed: {
|
||||
jsonLoaded() {
|
||||
return this.drop_tables && this.item_configs && this.npc_configs
|
||||
},
|
||||
itemList() {
|
||||
result = ''
|
||||
for (item of this.item_configs) {
|
||||
result += `${item.id} - ${item.name}\n`
|
||||
}
|
||||
return result
|
||||
},
|
||||
npcList() {
|
||||
result = ''
|
||||
for (npc of this.npc_configs) {
|
||||
result += `${npc.id} - ${npc.name}\n`
|
||||
}
|
||||
return result
|
||||
}
|
||||
},
|
||||
methods: {
|
||||
readFiles() {
|
||||
this.results = ''
|
||||
this.resultsType = ''
|
||||
this.files = document.getElementById('files').files
|
||||
for (file of this.files) {
|
||||
if (file.name == 'drop_tables.json') {
|
||||
this.injestFile(file, 'drop_tables', 'status_drop')
|
||||
}
|
||||
if (file.name == 'item_configs.json') {
|
||||
this.injestFile(file, 'item_configs', 'status_item')
|
||||
}
|
||||
if (file.name == 'npc_configs.json') {
|
||||
this.injestFile(file, 'npc_configs', 'status_npc')
|
||||
}
|
||||
}
|
||||
},
|
||||
injestFile(file, variable, status) {
|
||||
var fr = new FileReader()
|
||||
fr.onload = () => {
|
||||
this.$set(this, variable, JSON.parse(fr.result))
|
||||
}
|
||||
fr.readAsText(file)
|
||||
document.getElementById('app').style = ''
|
||||
},
|
||||
viewDropTable() {
|
||||
try {
|
||||
result = ''
|
||||
table = this.drop_tables.find(x => x.ids.split(',').includes(this.selectedNPC))
|
||||
if (!table) {
|
||||
this.results = 'MISSING DROP TABLE!'
|
||||
this.resultsType = 'plain'
|
||||
return
|
||||
}
|
||||
table.weights = {}
|
||||
for (section of ['main', 'charm', 'default']) {
|
||||
weight = 0
|
||||
for (item of table[section]) {
|
||||
weight += Number(item.weight)
|
||||
}
|
||||
table.weights[section] = weight
|
||||
}
|
||||
this.results = table
|
||||
this.resultsType = 'droptable'
|
||||
} catch (e) {
|
||||
this.results = result + '\n' + e
|
||||
this.resultsType = 'plain'
|
||||
}
|
||||
},
|
||||
findDupes() {
|
||||
found_ids = []
|
||||
result = ''
|
||||
for (table of this.drop_tables) {
|
||||
ids = table.ids.split(',')
|
||||
for (id of ids) {
|
||||
if (id in found_ids) result += (`DUPLICATE NPC ID: ${id}\n`)
|
||||
else found_ids.push(id)
|
||||
}
|
||||
}
|
||||
this.results = result
|
||||
this.resultsType = 'plain'
|
||||
},
|
||||
findMissingDropTables() {
|
||||
// Check for empty drop tables.
|
||||
result = ''
|
||||
ignore_npcs = ['Splatter', 'Shifter', 'Ravager', 'Spinner', 'Torcher', 'Defiler', 'Brawler', 'Void Knight', 'Portal']
|
||||
for (npc of this.npc_configs) {
|
||||
if ((npc.attack_level >= 5 || npc.range_level >= 5 || npc.magic_level >= 5)
|
||||
&& npc.lifepoints >= 20
|
||||
&& (npc.id < 895 || npc.id > 900) // Witch's Experiment
|
||||
&& (npc.id < 2025 || npc.id > 2030) // Barrows
|
||||
&& (npc.id < 2631 || npc.id > 2745) // Fight Caves
|
||||
&& (npc.id < 3727 || npc.id > 3772) // Pest Control
|
||||
&& (npc.id < 3840 || npc.id > 4284) // Animated Armors & Swan Song
|
||||
&& (npc.id < 5561 || npc.id > 5906) // Dream Mentor
|
||||
&& (npc.id < 6872 || npc.id > 6888) // Summoning NPC's
|
||||
&& (npc.id < 6972 || npc.id > 6987) // Druids in Taverly
|
||||
&& (npc.id < 6795 || npc.id > 7823) // Summoning NPC's
|
||||
&& !ignore_npcs.includes(npc.name)
|
||||
&& !this.drop_tables.some(x => x.ids.split(',').includes(npc.id)))
|
||||
{
|
||||
result += `Missing droptable for NPC #${npc.id} ${npc.name}\n`
|
||||
}
|
||||
}
|
||||
this.results = result
|
||||
this.resultsType = 'plain'
|
||||
},
|
||||
findUnknownItems() {
|
||||
result = ''
|
||||
for (table of this.drop_tables) {
|
||||
for (section of ['main', 'charm', 'default']) {
|
||||
for (item of table[section]) {
|
||||
if (item.id == 31) continue
|
||||
if (!this.item_configs.find(x => x.id == item.id)) result += (`UNKNOWN ITEM ID: ${item.id}\n`)
|
||||
}
|
||||
}
|
||||
}
|
||||
this.results = result
|
||||
this.resultsType = 'plain'
|
||||
},
|
||||
findUnknownNPCs() {
|
||||
result = ''
|
||||
for (table of this.drop_tables) {
|
||||
npcs = table.ids.split(',')
|
||||
for (npc of npcs) {
|
||||
if (!this.npc_configs.find(x => x.id == npc)) result += (`UNKNOWN NPC ID: ${npc}\n`)
|
||||
}
|
||||
}
|
||||
this.results = result
|
||||
this.resultsType = 'plain'
|
||||
}
|
||||
}
|
||||
})
|
||||
</script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
||||
<style>
|
||||
.input, .select select, .textarea {
|
||||
background-color: #262b2b;
|
||||
color: #fff;
|
||||
}
|
||||
</style>
|
||||
6
Tools/Frostys Cache Editor/.classpath
Normal file
6
Tools/Frostys Cache Editor/.classpath
Normal file
|
|
@ -0,0 +1,6 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<classpath>
|
||||
<classpathentry kind="src" path="src"/>
|
||||
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
|
||||
<classpathentry kind="output" path="bin"/>
|
||||
</classpath>
|
||||
17
Tools/Frostys Cache Editor/.project
Normal file
17
Tools/Frostys Cache Editor/.project
Normal file
|
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<projectDescription>
|
||||
<name>Frosty</name>
|
||||
<comment></comment>
|
||||
<projects>
|
||||
</projects>
|
||||
<buildSpec>
|
||||
<buildCommand>
|
||||
<name>org.eclipse.jdt.core.javabuilder</name>
|
||||
<arguments>
|
||||
</arguments>
|
||||
</buildCommand>
|
||||
</buildSpec>
|
||||
<natures>
|
||||
<nature>org.eclipse.jdt.core.javanature</nature>
|
||||
</natures>
|
||||
</projectDescription>
|
||||
BIN
Tools/Frostys Cache Editor/Run - genväg.lnk
Normal file
BIN
Tools/Frostys Cache Editor/Run - genväg.lnk
Normal file
Binary file not shown.
4
Tools/Frostys Cache Editor/Run.bat
Normal file
4
Tools/Frostys Cache Editor/Run.bat
Normal file
|
|
@ -0,0 +1,4 @@
|
|||
@echo off
|
||||
title Cache editor
|
||||
java -client -Xmx512m -cp bin;lib/* com.editor.Main
|
||||
pause
|
||||
BIN
Tools/Frostys Cache Editor/bin/com/alex/io/InputStream.class
Normal file
BIN
Tools/Frostys Cache Editor/bin/com/alex/io/InputStream.class
Normal file
Binary file not shown.
BIN
Tools/Frostys Cache Editor/bin/com/alex/io/OutputStream.class
Normal file
BIN
Tools/Frostys Cache Editor/bin/com/alex/io/OutputStream.class
Normal file
Binary file not shown.
BIN
Tools/Frostys Cache Editor/bin/com/alex/io/Stream.class
Normal file
BIN
Tools/Frostys Cache Editor/bin/com/alex/io/Stream.class
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Tools/Frostys Cache Editor/bin/com/alex/store/Archive.class
Normal file
BIN
Tools/Frostys Cache Editor/bin/com/alex/store/Archive.class
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Tools/Frostys Cache Editor/bin/com/alex/store/Index.class
Normal file
BIN
Tools/Frostys Cache Editor/bin/com/alex/store/Index.class
Normal file
Binary file not shown.
BIN
Tools/Frostys Cache Editor/bin/com/alex/store/MainFile.class
Normal file
BIN
Tools/Frostys Cache Editor/bin/com/alex/store/MainFile.class
Normal file
Binary file not shown.
Binary file not shown.
BIN
Tools/Frostys Cache Editor/bin/com/alex/store/Store.class
Normal file
BIN
Tools/Frostys Cache Editor/bin/com/alex/store/Store.class
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Tools/Frostys Cache Editor/bin/com/alex/utils/Constants.class
Normal file
BIN
Tools/Frostys Cache Editor/bin/com/alex/utils/Constants.class
Normal file
Binary file not shown.
BIN
Tools/Frostys Cache Editor/bin/com/alex/utils/Utils.class
Normal file
BIN
Tools/Frostys Cache Editor/bin/com/alex/utils/Utils.class
Normal file
Binary file not shown.
BIN
Tools/Frostys Cache Editor/bin/com/editor/Console$1.class
Normal file
BIN
Tools/Frostys Cache Editor/bin/com/editor/Console$1.class
Normal file
Binary file not shown.
BIN
Tools/Frostys Cache Editor/bin/com/editor/Console$2.class
Normal file
BIN
Tools/Frostys Cache Editor/bin/com/editor/Console$2.class
Normal file
Binary file not shown.
BIN
Tools/Frostys Cache Editor/bin/com/editor/Console$3.class
Normal file
BIN
Tools/Frostys Cache Editor/bin/com/editor/Console$3.class
Normal file
Binary file not shown.
BIN
Tools/Frostys Cache Editor/bin/com/editor/Console$4.class
Normal file
BIN
Tools/Frostys Cache Editor/bin/com/editor/Console$4.class
Normal file
Binary file not shown.
BIN
Tools/Frostys Cache Editor/bin/com/editor/Console$5.class
Normal file
BIN
Tools/Frostys Cache Editor/bin/com/editor/Console$5.class
Normal file
Binary file not shown.
BIN
Tools/Frostys Cache Editor/bin/com/editor/Console.class
Normal file
BIN
Tools/Frostys Cache Editor/bin/com/editor/Console.class
Normal file
Binary file not shown.
BIN
Tools/Frostys Cache Editor/bin/com/editor/Main.class
Normal file
BIN
Tools/Frostys Cache Editor/bin/com/editor/Main.class
Normal file
Binary file not shown.
BIN
Tools/Frostys Cache Editor/bin/com/editor/ToolSelection$1.class
Normal file
BIN
Tools/Frostys Cache Editor/bin/com/editor/ToolSelection$1.class
Normal file
Binary file not shown.
BIN
Tools/Frostys Cache Editor/bin/com/editor/ToolSelection$2.class
Normal file
BIN
Tools/Frostys Cache Editor/bin/com/editor/ToolSelection$2.class
Normal file
Binary file not shown.
BIN
Tools/Frostys Cache Editor/bin/com/editor/ToolSelection$3.class
Normal file
BIN
Tools/Frostys Cache Editor/bin/com/editor/ToolSelection$3.class
Normal file
Binary file not shown.
BIN
Tools/Frostys Cache Editor/bin/com/editor/ToolSelection$4.class
Normal file
BIN
Tools/Frostys Cache Editor/bin/com/editor/ToolSelection$4.class
Normal file
Binary file not shown.
BIN
Tools/Frostys Cache Editor/bin/com/editor/ToolSelection$5.class
Normal file
BIN
Tools/Frostys Cache Editor/bin/com/editor/ToolSelection$5.class
Normal file
Binary file not shown.
BIN
Tools/Frostys Cache Editor/bin/com/editor/ToolSelection$6.class
Normal file
BIN
Tools/Frostys Cache Editor/bin/com/editor/ToolSelection$6.class
Normal file
Binary file not shown.
BIN
Tools/Frostys Cache Editor/bin/com/editor/ToolSelection$7.class
Normal file
BIN
Tools/Frostys Cache Editor/bin/com/editor/ToolSelection$7.class
Normal file
Binary file not shown.
BIN
Tools/Frostys Cache Editor/bin/com/editor/ToolSelection$8.class
Normal file
BIN
Tools/Frostys Cache Editor/bin/com/editor/ToolSelection$8.class
Normal file
Binary file not shown.
BIN
Tools/Frostys Cache Editor/bin/com/editor/ToolSelection.class
Normal file
BIN
Tools/Frostys Cache Editor/bin/com/editor/ToolSelection.class
Normal file
Binary file not shown.
BIN
Tools/Frostys Cache Editor/bin/com/editor/Utils.class
Normal file
BIN
Tools/Frostys Cache Editor/bin/com/editor/Utils.class
Normal file
Binary file not shown.
BIN
Tools/Frostys Cache Editor/bin/com/editor/item/ItemDefDump.class
Normal file
BIN
Tools/Frostys Cache Editor/bin/com/editor/item/ItemDefDump.class
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
BIN
Tools/Frostys Cache Editor/bin/com/editor/item/ItemEditor.class
Normal file
BIN
Tools/Frostys Cache Editor/bin/com/editor/item/ItemEditor.class
Normal file
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Binary file not shown.
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue