Skip to content

Instantly share code, notes, and snippets.

@paradoxxxzero
Created September 21, 2012 14:06
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save paradoxxxzero/3761652 to your computer and use it in GitHub Desktop.
Save paradoxxxzero/3761652 to your computer and use it in GitHub Desktop.
Greclaim
var _rc_ = {};
$('#memo_icon').remove();
$('<a>').attr('id', '_rc_claim').addClass('town_control').css({left: '322px', backgroundPosition: "-323px 9px"}).text('+').on('click', _rc_start).insertBefore($('#city_overview'));
function _rc_start () {
if (webkitNotifications && webkitNotifications.checkPermission() != 0) {
webkitNotifications.requestPermission();
}
if(!_rc_.hasOwnProperty(Game.townId)) {
$('#_rc_claim').text('-').off('click', _rc_start).on('click', _rc_stop);
var farms = $('.farmtown_owned_on_same_island a').map(function () { return JSON.parse(atob($(this).attr('href')).split(String.fromCharCode(0))[0]).id;});
_rc_[Game.townId] = farms;
console && console.log('Starting for town', Game.townId, 'with farms', farms);
farms.each(function (i, e) {
$('#farm_town_flag_' + e).css({backgroundColor: 'orangered'});
});
_rc_claim(Game.townId, farms.get());
}
}
function _rc_stop () {
if(_rc_.hasOwnProperty(Game.townId)) {
$('#_rc_claim').text('+').off('click', _rc_stop).on('click', _rc_start);
_rc_[Game.townId].each(function (i, e) {
$('#farm_town_flag_' + e).css({backgroundColor: 'purple'});
});
delete _rc_[Game.townId];
}
}
function _rc_claim(town_id, farms_queue) {
var farm = farms_queue.shift();
$('#farm_town_flag_' + farm).css({backgroundColor: 'black'});
$.ajax({
url: location.origin + '/game/farm_town_info?action=claim_load&town_id=' + town_id + '&h=' + Game.csrfToken,
type: 'POST',
data: {
json: '{"target_id":"' + farm + '","claim_type":"normal","time":300,"town_id":' + town_id + ',"nlreq_id":0}'
}
}).done(function () {
$('#farm_town_flag_' + farm).css({backgroundColor: 'blue'});
if (farms_queue.length > 0) {
setTimeout(function() {
_rc_claim(town_id, farms_queue);
}, parseInt(1000 * 10 * Math.random()));
} else {
var delay = 1000 * 60 * 5.2 + parseInt(1000 * 13 * Math.random()),
next = new Date((new Date().getTime() + delay)).toLocaleTimeString();
console && console.log('Next: ' + next);
setTimeout(function() {
if(_rc_.hasOwnProperty(Game.townId)) {
_rc_claim(town_id, _rc_[town_id].get());
} else {
console && console.log('Aborted');
}
}, delay);
}
}).fail(function () {
$('#farm_town_flag_' + farm).css({backgroundColor: 'pink'});
});
}
// Auto jump
$('#prev_city, #next_city').on('click', function (e) {
setTimeout(function () {
if (!e.shiftKey) {
WMap.mapJump({'id': +Game.townId,'ix': WMap.islandPosition.x,'iy': WMap.islandPosition.y}, true);
}
if(_rc_.hasOwnProperty(Game.townId)) {
$('#_rc_claim').text('-').off('click', _rc_start).on('click', _rc_stop);
} else {
$('#_rc_claim').text('+').off('click', _rc_stop).on('click', _rc_start);
}
}, 50);
});
// Desktop notification
var notif_label = {
alliance_invitation: 'Alliance Invitation',
all_building_finished: 'All Buildings Finished',
awmessage: 'Message',
backbone: 'Backbone',
building_finished: 'Building Finished',
incoming_attack: 'Incoming Attack!',
incoming_support: 'Incoming Support',
mass_notification: 'Mass Notification',
newalliancepost: 'New Alliance Post',
newaward: 'New Award',
newmessage: 'New Message',
newreport: 'New Report',
newtempreport: 'New Temp Report',
notassigned: 'Not Assigned',
phoenician_salesman_arrived: 'Phoenician Salesman Arrived',
planed_attack: 'Planed Attack',
resourcetransport: 'Resource Transport',
show_captcha: 'Show Captcha',
systemmessage: 'System Message'
};
var old_notif = NotificationLoader.recvNotifyData;
NotificationLoader.recvNotifyData = function (retdata, game_initialization) {
try {
if (!game_initialization) {
if (webkitNotifications && webkitNotifications.checkPermission() == 0) {
if (retdata.notifications.length) {
for (var i = 0; i < retdata.notifications.length; i++) {
var notif = retdata.notifications[i],
title = notif_label[notif.type],
message = '';
if(notif.subject) {
message = $('<i>' + notif.subject +'</i>').text();
} else if (notif.type == 'building_finished') {
try {
var param = JSON.parse(notif.param_str);
message = param.building_name + ' at level ' + param.new_level + ' on ' + param.town_name;
} catch(e) {
message = 'Error in param_string';
}
}
if(notif.type != 'systemmessage') {
var popup = webkitNotifications.createNotification('http://cdn.grepolis.com/images/game/start/favicon.ico', 'Grepolis - ' + title, message);
popup.show();
console && console.log(notif.type, ' -> ', notif.subject, __ = $.extend({}, notif));
function cancel(pop) {
setTimeout(function(){
console && console.log('Cancelling', pop);
pop.cancel();
}, 15000);
}
cancel(popup);
}
}
}
}
}
} catch(e) {}
old_notif(retdata, game_initialization);
};
@paradoxxxzero
Copy link
Author

Bookmarklet:

javascript:(function(){_my_script=document.createElement('SCRIPT');_my_script.type='text/javascript';_my_script.src='http://raw.github.com/gist/3761652/gistfile1.js';document.getElementsByTagName('head')[0].appendChild(_my_script);})();

@govindlahoti
Copy link

can you please explain what this script do?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment