// ==UserScript== // @name DinoRPG Fast Discussions, Merguez + Charms Automation // @namespace DinoRPG // @description Making DinoRPG faster // @include http://en.dinorpg.com/* // @include http://www.dinorpg.com/* // @include http://es.dinorpg.com/* // @include http://www.dinorpg.de/* // @version 1.8 // @author LazyBastard (based on sunn0's script) // @downloadURL none // ==/UserScript== // Create array contains function Array.prototype.contains = function(obj) { var i = this.length; while (i--) { if (this[i] === obj) { return true; } } return false; } /* Show answers directly */ if(document.getElementById("answers")){ document.getElementById("answers").style.display = 'block'; } /* Hide View Image */ var views = document.getElementsByClassName("view"); if(views.length){ views[0].style.display = "none"; } /* Hide notifications */ var notification = document.getElementById( "notification" ); if ( notification ) { document.body.removeChild( notification ); } /* Water charm script */ var baofanaction = document.getElementById("act_dialog_wcharm"); if(baofanaction && baofanaction.id) { var wnode=baofanaction.cloneNode(true); wnode.id = "act_dialog_wcharm2"; wnode.children[0].children[0].children[1].childNodes[0].nodeValue = "\n Water charm\n "; var btr = wnode.children[0].children[0]; var onclick = btr.getAttribute("onClick"); var re = /\/(\d+)\/act\/dialog\/wcharm/.exec(onclick); if(re){ dinoId = re[1]; userId = onclick.substr(-7,5); btr.setAttribute("onClick", ""); btr.addEventListener("click", function(){ if(document.getElementById("tooltip")){ document.getElementById("tooltip").style.display = "none"; } btr.style.cursor = "wait"; var tds = btr.getElementsByTagName("td"); for(var k = 0; k < tds.length; k++){ var td = tds[k]; td.style.cursor = "wait"; td.style.color = "#ffffff"; td.style.backgroundColor = "transparent"; } var label = btr.getElementsByClassName("label")[0]; label.innerHTML = "Clicked!"; var res = performAction(dinoId, 'act/dialog/wcharm?sk=' + userId, 'dino/' + dinoId); label.innerHTML = "Uh... Yes, I suppose!"; res = performAction(dinoId, 'act/dialog/wcharm?goto=ok;sk=' + userId, 'dino/' + dinoId + '/act/dialog/wcharm'); label.innerHTML = "Wow, that is impressive!"; res = performAction(dinoId, 'act/dialog/wcharm?goto=wah;sk=' + userId, 'dino/' + dinoId + '/act/dialog/wcharm'); label.innerHTML = "Ok!"; res = performAction(dinoId, 'act/dialog/wcharm?goto=yes;sk=' + userId, 'dino/' + dinoId + '/act/dialog/wcharm'); label.innerHTML = "Did you mean spiritual?"; res = performAction(dinoId, 'act/dialog/wcharm?goto=spirit;sk=' + userId, 'dino/' + dinoId + '/act/dialog/wcharm'); label.innerHTML = "Have to go!"; res = performAction(dinoId, 'act/dialog/wcharm?goto=thanks;sk=' + userId, 'dino/' + dinoId + '/act/dialog/wcharm'); res = performAction(dinoId, 'dialogCancel', 'dino/' + dinoId + '/'); document.location = '/dino/' + dinoId + '/setTab?t=map'; }, false ); btr.children[0].children[0].setAttribute("src","/img/icons/elem_2.gif"); } baofanaction.parentNode.appendChild(wnode); var focusaction = document.getElementById("act_dialog_bob"); var cnode=focusaction.cloneNode(true); cnode.id = "act_dialog_bob2"; cnode.children[0].children[0].children[1].childNodes[0].nodeValue = "\n Focus!\n "; var ctr = cnode.children[0].children[0]; var onclick = ctr.getAttribute("onClick"); var re = /\/(\d+)\/act\/dialog\/bob/.exec(onclick); if(re){ dinoId = re[1]; userId = onclick.substr(-7,5); ctr.setAttribute("onClick", ""); ctr.addEventListener("click", function(){ if(document.getElementById("tooltip")){ document.getElementById("tooltip").style.display = "none"; } ctr.style.cursor = "wait"; var tds = ctr.getElementsByTagName("td"); for(var k = 0; k < tds.length; k++){ var td = tds[k]; td.style.cursor = "wait"; td.style.color = "#ffffff"; td.style.backgroundColor = "transparent"; } var label = ctr.getElementsByClassName("label")[0]; label.innerHTML = "Clicked!"; var res = performAction(dinoId, 'act/dialog/bob?sk=' + userId, 'dino/' + dinoId); label.innerHTML = "I've got a question for you"; res = performAction(dinoId, 'act/dialog/bob?goto=question;sk=' + userId, 'dino/' + dinoId + '/act/dialog/bob'); label.innerHTML = "What about my question?"; res = performAction(dinoId, 'act/dialog/bob?goto=quest3;sk=' + userId, 'dino/' + dinoId + '/act/dialog/bob'); label.innerHTML = "Where?"; res = performAction(dinoId, 'act/dialog/bob?goto=where;sk=' + userId, 'dino/' + dinoId + '/act/dialog/bob'); label.innerHTML = "What do I need to do?"; res = performAction(dinoId, 'act/dialog/bob?goto=how;sk=' + userId, 'dino/' + dinoId + '/act/dialog/bob'); label.innerHTML = "I want my dinoz to focus!"; res = performAction(dinoId, 'act/dialog/bob?goto=concen;sk=' + userId, 'dino/' + dinoId + '/act/dialog/bob'); label.innerHTML = "Ok"; res = performAction(dinoId, 'act/dialog/bob?goto=ok;sk=' + userId, 'dino/' + dinoId + '/act/dialog/bob'); label.innerHTML = "Focusing"; //res = performAction(dinoId, 'dialogCancel', 'dino/' + dinoId + '/'); document.location = '/dino/' + dinoId; }, false ); ctr.children[0].children[0].setAttribute("src","/img/icons/act_default.gif"); } focusaction.parentNode.appendChild(cnode); } /* Fire charm script */ // Won't give you charm unless you unlocked it at the Venerable var shamanaction = document.getElementById("act_dialog_shaman"); if(shamanaction && shamanaction.id) { var fnode=shamanaction.cloneNode(true); fnode.id = "act_dialog_shaman2"; fnode.children[0].children[0].children[1].childNodes[0].nodeValue = "\n Fire charm\n "; var htr = fnode.children[0].children[0]; var onclick = htr.getAttribute("onClick"); var re = /\/(\d+)\/act\/dialog\/shaman/.exec(onclick); if(re){ dinoId = re[1]; userId = onclick.substr(-7,5); htr.setAttribute("onClick", ""); htr.addEventListener("click", function(){ if(document.getElementById("tooltip")){ document.getElementById("tooltip").style.display = "none"; } htr.style.cursor = "wait"; var tds = htr.getElementsByTagName("td"); for(var k = 0; k < tds.length; k++){ var td = tds[k]; td.style.cursor = "wait"; td.style.color = "#ffffff"; td.style.backgroundColor = "transparent"; } var label = htr.getElementsByClassName("label")[0]; label.innerHTML = "Clicked!"; var res = performAction(dinoId, 'act/dialog/shaman?sk=' + userId, 'dino/' + dinoId); label.innerHTML = "Someone told me..."; res = performAction(dinoId, 'act/dialog/shaman?goto=charm;sk=' + userId, 'dino/' + dinoId + '/act/dialog/shaman'); label.innerHTML = "Accept the charm"; res = performAction(dinoId, 'act/dialog/shaman?goto=boost;sk=' + userId, 'dino/' + dinoId + '/act/dialog/shaman'); res = performAction(dinoId, 'dialogCancel', 'dino/' + dinoId + '/'); document.location = '/dino/' + dinoId + '/setTab?t=map'; }, false ); htr.children[0].children[0].setAttribute("src","/img/icons/elem_0.gif"); } shamanaction.parentNode.appendChild(fnode); } /* Shovel automation */ var mineaction = document.getElementById("act_dialog_mine"); if(mineaction && mineaction.id) { var mnode=mineaction.cloneNode(true); mnode.id = "act_dialog_mine2"; mnode.children[0].children[0].children[1].childNodes[0].nodeValue = "\n Get/Repair Shovel\n "; var itr = mnode.children[0].children[0]; var onclick = itr.getAttribute("onClick"); var re = /\/(\d+)\/act\/dialog\/mine/.exec(onclick); if(re){ dinoId = re[1]; userId = onclick.substr(-7,5); itr.setAttribute("onClick", ""); itr.addEventListener("click", function(){ if(document.getElementById("tooltip")){ document.getElementById("tooltip").style.display = "none"; } itr.style.cursor = "wait"; var tds = itr.getElementsByTagName("td"); for(var k = 0; k < tds.length; k++){ var td = tds[k]; td.style.cursor = "wait"; td.style.color = "#ffffff"; td.style.backgroundColor = "transparent"; } var label = itr.getElementsByClassName("label")[0]; label.innerHTML = "Clicked!"; var res = performAction(dinoId, 'act/dialog/mine?sk=' + userId, 'dino/' + dinoId); label.innerHTML = "Yes"; res = performAction(dinoId, 'act/dialog/mine?goto=repair;sk=' + userId, 'dino/' + dinoId + '/act/dialog/mine'); res = performAction(dinoId, 'act/dialog/mine?goto=yes;sk=' + userId, 'dino/' + dinoId + '/act/dialog/mine'); label.innerHTML = "Thanks"; res = performAction(dinoId, 'act/dialog/mine?goto=thanks;sk=' + userId, 'dino/' + dinoId + '/act/dialog/mine'); res = performAction(dinoId, 'dialogCancel', 'dino/' + dinoId + '/'); document.location = '/dino/' + dinoId + '/setTab?t=map'; }, false ); itr.children[0].children[0].setAttribute("src","/img/icons/act_dig.gif"); } mineaction.parentNode.appendChild(mnode); } /* Merguez automation */ var merguezaction = document.getElementById("act_dialog_merguez"); if(merguezaction && merguezaction.id) { var gnode=merguezaction.cloneNode(true); gnode.id = "act_dialog_merguez2"; gnode.children[0].children[0].children[1].childNodes[0].nodeValue = "\n Get Merquez\n "; //var trs = merguezaction.getElementsByTagName("tr"); var mtr = gnode.children[0].children[0]; var onclick = mtr.getAttribute("onClick"); var re = /\/(\d+)\/act\/dialog\/merguez/.exec(onclick); if(re){ dinoId = re[1]; userId = onclick.substr(-7,5); mtr.setAttribute("onClick", ""); mtr.addEventListener("click", function(){ if(document.getElementById("tooltip")){ document.getElementById("tooltip").style.display = "none"; } mtr.style.cursor = "wait"; var tds = mtr.getElementsByTagName("td"); for(var k = 0; k < tds.length; k++){ var td = tds[k]; td.style.cursor = "wait"; td.style.color = "#ffffff"; td.style.backgroundColor = "transparent"; } var label = mtr.getElementsByClassName("label")[0]; label.innerHTML = "Clicked!"; var res = performAction(dinoId, 'act/dialog/merguez', 'dino/' + dinoId); label.innerHTML = "Ah!"; res = performAction(dinoId, 'act/dialog/merguez?goto=ah;sk=' + userId, 'dino/' + dinoId + '/act/dialog/merguez'); label.innerHTML = "Ok!"; res = performAction(dinoId, 'act/dialog/merguez?goto=ok;sk=' + userId, 'dino/' + dinoId + '/act/dialog/merguez'); label.innerHTML = "Thanks!"; res = performAction(dinoId, 'act/dialog/merguez?goto=thanks;sk=' + userId, 'dino/' + dinoId + '/act/dialog/merguez'); res = performAction(dinoId, 'dialogCancel', 'dino/' + dinoId + '/'); document.location = '/dino/' + dinoId + '/setTab?t=inv'; }, false ); mtr.children[0].children[0].setAttribute("src","/img/icons/obj_mergz.gif"); } merguezaction.parentNode.appendChild(gnode); } /* Double skill script */ // Won't give you double skill unless you've actually unlocked it var madamxaction = document.getElementById("act_dialog_mmex"); if(madamxaction && madamxaction.id) { var xnode=madamxaction.cloneNode(true); xnode.id = "act_dialog_mmex2"; xnode.children[0].children[0].children[1].childNodes[0].nodeValue = "\n Double skill\n "; var xtr = xnode.children[0].children[0]; var onclick = xtr.getAttribute("onClick"); var re = /\/(\d+)\/act\/dialog\/mmex/.exec(onclick); if(re){ dinoId = re[1]; userId = onclick.substr(-7,5); xtr.setAttribute("onClick", ""); xtr.addEventListener("click", function(){ if(document.getElementById("tooltip")){ document.getElementById("tooltip").style.display = "none"; } xtr.style.cursor = "wait"; var tds = xtr.getElementsByTagName("td"); for(var k = 0; k < tds.length; k++){ var td = tds[k]; td.style.cursor = "wait"; td.style.color = "#ffffff"; td.style.backgroundColor = "transparent"; } var label = xtr.getElementsByClassName("label")[0]; label.innerHTML = "Clicked!"; var res = performAction(dinoId, 'act/dialog/mmex?sk=' + userId, 'dino/' + dinoId); label.innerHTML = "Talk to her"; res = performAction(dinoId, 'act/dialog/mmex?goto=talk;sk=' + userId, 'dino/' + dinoId + '/act/dialog/mmex'); label.innerHTML = "..."; res = performAction(dinoId, 'act/dialog/mmex?goto=talk2;sk=' + userId, 'dino/' + dinoId + '/act/dialog/mmex'); label.innerHTML = "But who are you?"; res = performAction(dinoId, 'act/dialog/mmex?goto=question;sk=' + userId, 'dino/' + dinoId + '/act/dialog/mmex'); label.innerHTML = "So who are you?"; res = performAction(dinoId, 'act/dialog/mmex?goto=question2;sk=' + userId, 'dino/' + dinoId + '/act/dialog/mmex'); label.innerHTML = "Oh?"; res = performAction(dinoId, 'act/dialog/mmex?goto=double;sk=' + userId, 'dino/' + dinoId + '/act/dialog/mmex'); label.innerHTML = "Yes!"; res = performAction(dinoId, 'act/dialog/mmex?goto=double2;sk=' + userId, 'dino/' + dinoId + '/act/dialog/mmex'); label.innerHTML = "!!!"; res = performAction(dinoId, 'act/dialog/mmex?goto=double3;sk=' + userId, 'dino/' + dinoId + '/act/dialog/mmex'); label.innerHTML = "How do I learn it?"; res = performAction(dinoId, 'act/dialog/mmex?goto=learn;sk=' + userId, 'dino/' + dinoId + '/act/dialog/mmex'); label.innerHTML = "Huh???"; res = performAction(dinoId, 'act/dialog/mmex?goto=learn1;sk=' + userId, 'dino/' + dinoId + '/act/dialog/mmex'); res = performAction(dinoId, 'dialogCancel', 'dino/' + dinoId + '/'); document.location = '/dino/' + dinoId + '/setTab?t=details'; }, false ); xtr.children[0].children[0].setAttribute("src","/img/icons/elem_5.gif"); } madamxaction.parentNode.appendChild(xnode); } /* To Nimbao script */ // Will get you to Nimboa from Klutz's workshop without fail var klutzaction = document.getElementById("act_dialog_broc__2"); if(klutzaction && klutzaction.id) { var knode=klutzaction.cloneNode(true); knode.id = "act_dialog_broc__3"; knode.children[0].children[0].children[1].childNodes[0].nodeValue = "\n Go to Nimbao!\n "; var ktr = knode.children[0].children[0]; var onclick = ktr.getAttribute("onClick"); var re = /\/(\d+)\/act\/dialog\/broc__2/.exec(onclick); if(re){ dinoId = re[1]; userId = onclick.substr(-7,5); ktr.setAttribute("onClick", ""); ktr.addEventListener("click", function(){ if(document.getElementById("tooltip")){ document.getElementById("tooltip").style.display = "none"; } ktr.style.cursor = "wait"; var tds = ktr.getElementsByTagName("td"); for(var k = 0; k < tds.length; k++){ var td = tds[k]; td.style.cursor = "wait"; td.style.color = "#ffffff"; td.style.backgroundColor = "transparent"; } var label = ktr.getElementsByClassName("label")[0]; label.innerHTML = "Clicked!" ; var res = performAction(dinoId, 'act/dialog/broc__2?sk=' + userId, 'dino/' + dinoId); label.innerHTML = "Could you take us to Nimbao?"; res = performAction(dinoId, 'act/dialog/broc__2?goto=voyage2;sk=' + userId, 'dino/' + dinoId + '/act/dialog/broc__2'); label.innerHTML = "Nimbao here we come!"; // res = performAction(dinoId, 'act/dialog/broc__2?goto=depart_5;sk=' + userId, 'dino/' + dinoId + '/act/dialog/broc__2'); //document.location = '/dino/' + dinoId + '/setTab?t=map'; document.location = '/dino/' + dinoId + '/act/dialog/broc__2?goto=depart_5;sk=' + userId; }, false ); ktr.children[0].children[0].setAttribute("src","/img/icons/elem_4.gif"); } klutzaction.parentNode.appendChild(knode); } /* To Skully missionslist */ // Will open Skully's missionlist without you misclicking 3 times... var skullyaction = document.getElementById("act_dialog_skull"); if(skullyaction && skullyaction.id) { var ynode=skullyaction.cloneNode(true); ynode.id = "act_dialog_skull2"; ynode.children[0].children[0].children[1].childNodes[0].nodeValue = "\n Missions list\n "; var ytr = ynode.children[0].children[0]; var onclick = ytr.getAttribute("onClick"); var re = /\/(\d+)\/act\/dialog\/skull/.exec(onclick); if(re){ dinoId = re[1]; userId = onclick.substr(-7,5); ytr.setAttribute("onClick", ""); ytr.addEventListener("click", function(){ if(document.getElementById("tooltip")){ document.getElementById("tooltip").style.display = "none"; } ytr.style.cursor = "wait"; var tds = ytr.getElementsByTagName("td"); for(var k = 0; k < tds.length; k++){ var td = tds[k]; td.style.cursor = "wait"; td.style.color = "#ffffff"; td.style.backgroundColor = "transparent"; } var label = ytr.getElementsByClassName("label")[0]; label.innerHTML = "Clicked!" ; var res = performAction(dinoId, 'act/dialog/skull?sk=' + userId, 'dino/' + dinoId); label.innerHTML = "Argh! Ah ghost!"; res = performAction(dinoId, 'act/dialog/skull?goto=arg;sk=' + userId, 'dino/' + dinoId + '/act/dialog/skull'); label.innerHTML = "You!"; res = performAction(dinoId, 'act/dialog/skull?goto=arg2;sk=' + userId, 'dino/' + dinoId + '/act/dialog/skull'); label.innerHTML = "What's the difference?"; res = performAction(dinoId, 'act/dialog/skull?goto=diff;sk=' + userId, 'dino/' + dinoId + '/act/dialog/skull'); label.innerHTML = "Almost free?"; res = performAction(dinoId, 'act/dialog/skull?goto=free;sk=' + userId, 'dino/' + dinoId + '/act/dialog/skull'); label.innerHTML = "So you do haunt this place?"; res = performAction(dinoId, 'act/dialog/skull?goto=haunt;sk=' + userId, 'dino/' + dinoId + '/act/dialog/skull'); label.innerHTML = "Like what?"; res = performAction(dinoId, 'act/dialog/skull?goto=do;sk=' + userId, 'dino/' + dinoId + '/act/dialog/skull'); label.innerHTML = "Mmmm..."; res = performAction(dinoId, 'act/dialog/skull?goto=uhm;sk=' + userId, 'dino/' + dinoId + '/act/dialog/skull'); label.innerHTML = "A curse?"; res = performAction(dinoId, 'act/dialog/skull?goto=bonne;sk=' + userId, 'dino/' + dinoId + '/act/dialog/skull'); label.innerHTML = "It's not very helpfull is it?"; res = performAction(dinoId, 'act/dialog/skull?goto=next;sk=' + userId, 'dino/' + dinoId + '/act/dialog/skull'); label.innerHTML = "Maybe I can help you."; res = performAction(dinoId, 'act/dialog/skull?goto=help;sk=' + userId, 'dino/' + dinoId + '/act/dialog/skull'); label.innerHTML = "Yes! definitely!"; res = performAction(dinoId, 'act/dialog/skull?goto=accept;sk=' + userId, 'dino/' + dinoId + '/act/dialog/skull'); label.innerHTML = "What should I do now?"; res = performAction(dinoId, 'act/dialog/skull?goto=missions;sk=' + userId, 'dino/' + dinoId + '/act/dialog/skull'); document.location = '/dino/' + dinoId + '/act/mission/list?sk=' + userId; }, false ); } skullyaction.parentNode.appendChild(ynode); } /* Check if double skill is needed */ var skillstable = document.getElementById("dinozDetails"); if(skillstable && skillstable.id) { var trs = skillstable.children[0].getElementsByTagName("tr"); var skill = ''; var skillsarray = []; var getDouble = 0; for(var j = 0; j < trs.length; j++){ var tr = trs[j]; if (tr.children[1].className == 'type') { skill = tr.children[0].childNodes[1].childNodes[2].nodeValue.replace(/\s/g,''); skillsarray.push(skill); } } if(skillsarray.indexOf("Double-Skill") == -1) { if(skillsarray.indexOf("Marsh") != -1 && skillsarray.indexOf("Lightning") != -1) { getDouble = 1; } if(skillsarray.indexOf("AbsoluteZero") != -1 && skillsarray.indexOf("Combustion") != -1) { getDouble = 1; } if(skillsarray.indexOf("Elasticity") != -1 && skillsarray.indexOf("Adrenaline") != -1) { getDouble = 1; } if(skillsarray.indexOf("EjectorPalms") != -1 && skillsarray.indexOf("WildInstinct") != -1) { getDouble = 1; } if(skillsarray.indexOf("PrimalState") != -1 && skillsarray.indexOf("GaïaPath") != -1) { getDouble = 1; } if(skillsarray.indexOf("Cocoon") != -1 && skillsarray.indexOf("Waïkikidô") != -1) { getDouble = 1; } if(skillsarray.indexOf("KaosPath") != -1 && skillsarray.indexOf("Kamikaze") != -1) { getDouble = 1; } if(skillsarray.indexOf("Sapper") != -1 && skillsarray.indexOf("VaporousForm") != -1) { getDouble = 1; } if(skillsarray.indexOf("Vengeance") != -1 && skillsarray.indexOf("Achilles'Heel") != -1) { getDouble = 1; } if(skillsarray.indexOf("AqueousClone") != -1 && skillsarray.indexOf("MagicResistance") != -1) { getDouble = 1; } if (getDouble == 1){ var node=trs[trs.length-1].cloneNode(true); node.children[0].childNodes[1].childNodes[2].nodeValue = " !!! Get Double Skill !!!"; node.children[2].childNodes[1].children[0].attributes[0].nodeValue=''; node.children[2].childNodes[1].attributes[0].nodeValue = ''; node.children[2].childNodes[1].attributes[1].nodeValue = ''; //node.setAttribute("class","off"); trs[1].parentNode.insertBefore(node,trs[1]); //node.setAttribute("class","off"); //trs[1].parentNode.appendChild(node); } } /* Check for Invocator */ if(skillsarray.indexOf("Invocator") == -1) { var avatarobj = document.getElementsByClassName("avatar"); var avatarMO = "" + avatarobj[0].onmouseover; var dinozRace = avatarMO.substring(avatarMO.indexOf("