Skip to content

Instantly share code, notes, and snippets.

@paradoxxxzero
Created September 21, 2012 14:06
Show Gist options
  • Select an option

  • Save paradoxxxzero/3761652 to your computer and use it in GitHub Desktop.

Select an option

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);
};
@govindlahoti
Copy link
Copy Markdown

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