Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // ==UserScript==
- // @name Kolizje na agresywnych mobach
- // @namespace http://tampermonkey.net/
- // @description dodaje kolizje wokół mobów z przewagą lvlową na wybranych mapach.
- // @author Czogi
- // @match http://*.margonem.pl/
- // ==/UserScript==
- const config = {
- radius: 4,
- //Tu zmieniamy radius jaki mają mieć kolizje wokół moba
- lvl: 1,
- /*
- Tu zmieniamy przewagę lvlową jaką ma mie mob aby wygenerowa kolizje.
- Kolizję będzzie posiadać kazdy mob spelniający warunki,
- niezaleznie czy jest agresywny czy też nie.
- */
- maps: [180, 1262]
- //Tu dodajemy po przecinku id mapy na któej mają działać kolizje
- }
- var originalMap = 0;
- function pushIndex(index, array) {
- index = eval(index);
- const mapCols = originalMap.split("");
- if (!index || mapCols[index] == "1") {
- return false;
- }
- if (!array.includes(index)) {
- array.push(index);
- return true;
- }
- return false;
- }
- function getCols(npc) {
- const radius = config.radius,
- cols = [],
- symbols = ["++", "--", "+-", "-+"];
- for (let i = 0; i <= radius; i++) {
- for (const set of symbols) {
- pushIndex(
- `(${npc.x} ${set[0]} ${i}) +
- (${npc.y} ${set[1]} ${radius}) * ${map.x}`,
- cols
- );
- pushIndex(
- `(${npc.x} ${set[0]} ${radius}) +
- (${npc.y} ${set[1]} ${i}) * ${map.x}`,
- cols
- );
- }
- }
- return cols;
- }
- function setNpcCol(npc) {
- const mapCols = map.col.split(""),
- npcCols = getCols(npc);
- for (const col of npcCols) {
- mapCols[col] = 1;
- }
- map.col = mapCols.join("");
- npc.cols = npcCols;
- return true;
- }
- function removeNpcCol(npc) {
- if (!npc || !npc.cols) return;
- const prohCols = [];
- for (const fNpc of Object.values(g.npc)) {
- if (npc.id == fNpc.id || fNpc.cols) continue;
- prohCols.push(fNpc.cols);
- }
- const mapCols = map.col.split(""),
- npcCols = npc.cols;
- for (const col of npcCols) {
- if (prohCols.includes(col)) {
- continue;
- }
- mapCols[col] = 0;
- }
- map.col = mapCols.join("");
- return true;
- }
- const oldNewNpc = newNpc
- newNpc = function (npcs = {}) {
- if (!config.maps.includes(map.id)) {
- return oldNewNpc(npcs);
- }
- if (!originalMap) {
- originalMap = map.col;
- }
- for (const index in npcs) {
- const npc = npcs[index]
- if (npc.del) {
- removeNpcCol(g.npc[index]);
- }
- if (npc.lvl >= (hero.lvl - config.lvl)) {
- setNpcCol(npc);
- }
- }
- return oldNewNpc(npcs);
- }
- //Kod pokazujący kolizje z dodatku "Ustawiacz kolizji" by Martin Master.
- /*
- //## POKAZYWANIE KOLIZJI
- var wid = map.x;
- var hei = map.y;
- var w = 0;
- var h = 0;
- for(i = 1;i <= (wid*hei);i++){
- if(w > wid-1){
- w = 0;
- h++;
- }
- if((map.col).charAt(w+(h*wid)) == "1"){
- $("#ground").append('<div class="blokady"></div>');
- $(".blokady:last-child").css({top: h*32, left: w*32});
- }
- w++;
- }
- for(var i in g.npc){
- $("#ground").append('<div class="box blokady"></div>');
- $(".blokady:last-child").css({top: g.npc[i].y*32, left: g.npc[i].x*32});
- }
- var on = false;
- $(document).keyup(function(event) {
- if(event.which == 27){
- if (on==false) {
- $(".blokady").css({position: 'absolute', backgroundColor: 'black', width: '32px', height: '32px', zIndex: 1, opacity: 0.4});
- on = true;
- } else{
- $(".blokady").css({opacity: 0.0});
- on = false;
- }
- }
- });
- //## KONIEC KODU POKAZYWANIA KOLIZJI
- */
Add Comment
Please, Sign In to add comment