Godkjent Markedsbalanse

X O C O X

Velkjent medlem
Reaksjonspoeng
230
Navn: Markedsbalanse
Dato: 30.05.2015
Link:
Forklaring: Kort fortalt balanserer scriptet ressursene dine ved å lage tilbud på markedet. Forskjellen på dette og tidligere script er at det gamle kun lagde ett tilbud med den ressurstypen med flest ressurser mot den som hadde minst slik at disse to ble like. Med andre ord fikk man kun to av ressurstypene balansert og ikke alle. Det vil man få med dette scriptet, haken er at det må kjøres gjennom max to ganger.

1. Trykk på scriptet og det vil ta deg til "Mine tilbud" siden.
2. Trykk på scriptet og antall ressurser, hvilken ressurstype og antall tilbud vil bli valgt.
3. Trykk på scriptet og tilbudet vil bli laget.
4. Trykk på scriptet enda en gang, hvis det kan balanseres mer vil ressursene bli satt inn, ressurstypen valgt og antall tilbud satt inn.
5. Gjenta steg 3. og 4.

Scriptet: [spoil]
Kode:
javascript:
(function(){
	function postErrorMessage(error_message){
		var parentElement = document.getElementById("content_value");
		var newFirstChild = document.createElement("DIV");
		newFirstChild.className = "error_box";
		newFirstChild.innerHTML = error_message;
		parentElement.insertBefore(newFirstChild, parentElement.firstChild);
	}
	function balanse(wood,stone,iron,merchant){
		var returnValue;
		if(merchant===0){
			postErrorMessage("Ingen handelsmenn tilgjengelige!")
			return;
		}
		var min,mid,max,minr,midr,maxr,amount1st,amount2nd;
		if(wood>=stone){
			if(stone>=iron){
				min = iron;
				minr = "iron";
				mid = stone;
				midr = "stone";
				max = wood;
				maxr = "wood";
			}else if(wood>=iron){
				min = stone;
				minr = "stone";
				mid = iron;
				midr = "iron";
				max = wood;
				maxr = "wood";
			}else{
				min = stone;
				minr = "stone";
				mid = wood;
				midr = "wood";
				max = iron;
				maxr = "iron";
			}
		}else{
			if(wood>=iron){
				min = iron;
				minr = "iron";
				mid = wood;
				maxr = "wood";
				max = stone;
				maxr = "stone";
			}else if(stone>=iron){
				min = wood;
				minr = "wood";
				mid = iron;
				midr = "iron";
				max = stone;
				maxr = "stone";
			}else{
				min = wood;
				minr = "wood";
				mid = stone;
				midr = "stone";
				max = iron;
				maxr = "iron";
			}
		}
		dmaxmid = max - mid;
		dmidmin = mid - min;
		if(dmaxmid === 0 && dmidmin <= 1 || dmaxmid <= 1 && dmidmin === 0){
			postErrorMessage("Byen kan ikke balanseres bedre!");
			return;
		}else if(dmaxmid === dmidmin){
			if(dmaxmid>merchant){
				dmaxmid = merchant;
			}
			amount1st = dmaxmid;
			returnValue = [maxr,minr,amount1st,0,0,0];
			return returnValue;
		}else if(dmaxmid>dmidmin){
			if(dmidmin>=merchant){
				dmidmin = merchant;
				dmaxmid = dmidmin;
			}else if(dmaxmid>=merchant){
				dmaxmid = Math.floor(merchant*1.5-dmidmin/2);
			}
			amount1st = Math.floor((dmaxmid-dmidmin)/3)+dmidmin;
			amount2nd = Math.floor((dmaxmid-dmidmin)/3);
			returnValue = [maxr,minr,amount1st,maxr,midr,amount2nd];
			return returnValue;
		}else if(dmaxmid<dmidmin){
			if(dmaxmid>=merchant){
				dmaxmid = merchant;
				dmidmin = dmaxmid;
			}else if(dmidmin>=merchant){
				dmidmin = Math.floor(merchant*1.5-dmaxmid/2);
			}
			amount1st = Math.round((dmidmin-dmaxmid)/3)+dmaxmid;
			amount2nd = Math.round((dmidmin-dmaxmid)/3);
			returnValue = [maxr,minr,amount1st,midr,minr,amount2nd];
			return returnValue;
		}else{
			postErrorMessage("error1");
		}
	}
	function first(){
		var wood = Math.floor(+game_data.village.wood/1000);
		var stone = Math.floor(+game_data.village.stone/1000);
		var iron = Math.floor(+game_data.village.iron/1000);
		var merchant = Data.Trader.amount;
		var offers = balanse(wood,stone,iron,merchant);
		if(offers === undefined){
			localStorage.mbV0v003_stage = "0";
			postErrorMessage("Byen kan ikke balanseres bedre!");
		}else{
			localStorage.mbV0v003_stage = "1";
			localStorage.mbV0v003_2ndOffer = "" + offers[3] + "|" + offers[4] + "|" + offers[5];
			placeOffer(offers[0],offers[1],offers[2]);
		}
	}
	function placeOffer(sell,buy,amount){
		document.getElementById("res_sell_amount").value = 1000;
		document.getElementById("res_buy_amount").value = 1000;
		document.getElementById("res_sell_" + sell).checked = true;
		document.getElementById("res_buy_" + buy).checked = true;
		document.getElementsByName("multi")[0].value = amount;
	}
	if(location.href.indexOf("mode=own_offer")==-1){
		location.href = "game.php?screen=market&mode=own_offer&village=" + game_data.village.id;
		return;
	}
	if(localStorage.mbV0v003_time===undefined){
		localStorage.mbV0v003_time = (new Date().getTime()) - 600000;
		localStorage.mbV0v003_lastVillage = game_data.village.id;
	}
	if(+localStorage.mbV0v003_lastVillage === game_data.village.id){
		if(Math.abs(+(new Date().getTime()) - +localStorage.mbV0v003_time)>60000){
			if(document.getElementsByClassName("offer_container").length){
				postErrorMessage("Du må fjerne tilbudene dine før du kan bruke scriptet!");
			}else{
				localStorage.mbV0v003_time = new Date().getTime();
				first();
			}
		}else if(localStorage.mbV0v003_stage === "1"){
			localStorage.mbV0v003_stage = 2;
			document.getElementsByClassName("btn")[0].click();
		}else if(localStorage.mbV0v003_stage === "2"){
			var offer = localStorage.mbV0v003_2ndOffer.split("|");
			if(offer[2] === "0"){
				localStorage.mbV0v003_stage = 0;
			}else{
				localStorage.mbV0v003_stage = 3;
				placeOffer(offer[0],offer[1],offer[2]);
			}
		}else if(localStorage.mbV0v003_stage === "3"){
			localStorage.mbV0v003_stage = 0;
			document.getElementsByClassName("btn")[0].click();
		}else{
			postErrorMessage("Byen er allerede balansert!");
		}
	}else{
		if(document.getElementsByClassName("offer_container").length){
			postErrorMessage("Du må fjerne tilbudene dine før du kan bruke scriptet!");
		}else{
			localStorage.mbV0v003_time = new Date().getTime();
			localStorage.mbV0v003_lastVillage = game_data.village.id;
			first();
		}
	}
})()
[/spoil]

Takk til Hophoolio som har skrevet scriptet!
 
Sist redigert:
Topp