// ==UserScript==
// @name TW Kick-o-Matic
// @namespace http://forum.the-west.ru/showthread.php?t=18398
// @description Helps to assign ranks to the players before a fort battle.
// @author Macabre2077 (updated by Tom Robert)
// @author tw81 (Italian translation)
// @author pepe100 (Spanish translation)
// @author Tanais (Dutch and English translations)
// @author jccwest (Portuguese localisation)
// @author Surge (Slovak localisation)
// @author Darius II (Polish localisation)
// @author Tom Robert (German translation)
// @include http*://*.the-west.*/game.php*
// @version 1.64
//
// @history 1.64 new itemIDs, links fixed, other corrections
// @history 1.63 Contact in westapi added
// @history 1.62 fix for the west beta
// @history 1.61 German translation, 2.16 version compatibility
// @history 1.6 2.03 version compatibility
// @history 1.5 Polish translation
// @history 1.44 Italian translation
// @history 1.43 Multiple forts support
// @history 1.40 The West 2.0 compatibility
// @history 1.39 Disabling script before fixing bugs caused by 2.0
// @history 1.38 Slovak translation
// @history 1.37 Portuguese localisation
// @history 1.36 1.36 version bugfix
// @history 1.32 Translations: Spanish and Italian
// @history 1.3 Translations: English, Dutch!
// @history 1.3 Bugfix: selected player stays highlighted
// @history 1.2 old popup redesign,added compact version of popup, weapon accordance, intro
// @history 1.18 bugfix
// @history 1.15 fixed bug when one player`s data can`t be shown
// @history 1.15 prevents too long loading
// @history 1.1 new design
// @history 1.1 force chat to show ranks
// @history 1.1 bug fixes
// @history 1.000 players` hp (without lists) and town name
// @history 0.995 lists without {}
// @history 0.995 update hp list button
// @history 0.992 small bugfix
// @history 0.99 players` hp
// @history 0.98 player`s position is being highlihted when popup is shown
// @history 0.97 ally`s name is shown
// @history 0.96 new script`s name,added namespace
// @history 0.95 new feature fully completed
// @history 0.94 testing new feature - showing name of sector instead of numeric fort position
// @history 0.93 fixed bug caused by empty fort weapon
// @history 0.92 fixed mulitply battles error
// @grant none
// @downloadURL none
// ==/UserScript==
(function (fn) {
var script = document.createElement('script');
script.setAttribute('type', 'application/javascript');
script.textContent = '(' + fn + ')();';
document.body.appendChild(script);
document.body.removeChild(script);
}) (function () {
Grander = {
version: '1.64',
name: 'TW Kick-o-Matic',
author: 'Macabre2077 (updated by Tom Robert)',
minGame: '2.0',
maxGame: Game.version.toString(),
website: 'https://greasyfork.org/scripts/7486',
updateUrl: 'https://raw.githubusercontent.com/TomRobert/TW-Updates/master/Granderdate',
loading: false,
fortsCapacity: [
[50,
42],
[
100,
84
],
[
140,
120
]
],
'betaFortsCapacity': [
[25,
21],
[
50,
42
],
[
70,
60
]
],
weapons: [
]
};
Grander.langs = {
ru_RU: {
language: 'Russian (ру́сский)',
contact: 'контакт',
success: 'Лычка дана!',
error: 'Произошла ошибка',
cancel: 'Отмена',
showPlayerOnMap: 'Показать игрока на карте',
showTown: 'Посмотреть город',
nodata: 'Информация о званиях не загружена для данного форта!',
getData: 'Пытаемся загрузить данные о званиях',
errorTimeout: 'Загрузка происходит слишком долго',
ascpt: 'Произвести в капитаны',
asprivate: 'Назначить рядовым',
asrecruit: 'Взять в рекруты',
asreservist: 'Записать в резерв',
astraitor: 'Обвинить в предательстве',
youcant: '
Ты не можешь понизить старшего
или равного по званию.',
position: 'Позиция:',
pos_undefined: 'не установлена',
noally: 'Без альянса',
flag: 'Флаг',
inside: 'Внутри форта',
classes: {
soldier: 'Солдат',
duelist: 'Дуэлянт',
adventurer: 'Авантюрист',
worker: 'Трудяга',
greenhorn: 'Чечако'
},
ranks: {
traitor: 'Предатель',
reservist: 'Резервист',
recruit: 'Рекрут',
private_: 'Рядовой',
captain: 'Капитан',
general: 'Генерал'
},
sectors: {
undefined: 'Не назначена',
0: 'Левый верхний сектор',
1: 'Левый нижний сектор',
2: 'Левый южный сектор',
3: 'Центральный южный сектор',
4: 'Правый южный сектор',
5: 'Правый нижний сектор',
6: 'Правый верхний сектор',
7: 'Башня авантов',
8: 'Башня дуэлянтов',
9: 'Башня солдат',
10: 'Башня трудяг',
11: 'Казарма',
12: 'Склад',
13: 'Штаб',
14: 'Северная стена',
15: 'Южная стена',
16: 'Западная стена',
17: 'Восточная стена',
18: 'Ворота',
19: 'Флаг',
20: 'Внутри форта'
},
damage: 'урон',
version: 'версия',
changelist: 'Список изменений',
update: 'обновление',
updateAvailable: 'Доступна новая версия скрипта',
},
nl_NL: {
language: 'Dutch (Nederlands)',
contact: 'Contact',
success: 'Rang wordt gegeven!',
error: 'Er is een fout opgetreden',
showPlayerOnMap: 'Laat speler zien op de map',
showTown: 'Bekijk stad',
nodata: 'Informatie over rangen is niet gegeven voor het fort!',
getData: 'Ranginformatie aan het laden',
errorTimeout: 'Het downloaden duurde te lang',
ascpt: 'Tot kapitein bevorderen',
asprivate: 'Tot soldaat benoemen',
asrecruit: 'Tot rekruut benoemen',
asreservist: 'Tot reservist benoemen',
astraitor: 'Markeren als verrader',
youcant: 'Je kan geen spelers met dezelfde of een hogere rang rekruteren.',
position: 'Positie:',
pos_undefined: 'Geen startpositie',
noally: 'Geen alliantie',
flag: 'Vlag',
inside: 'Binnen het fort',
classes: {
soldier: 'Soldaat',
duelist: 'Duellant',
adventurer: 'Avonturier',
worker: 'Arbeider',
greenhorn: 'Greenhorn'
},
ranks: {
traitor: 'Verrader',
reservist: 'Reservist',
recruit: 'Rekruut',
private_: 'Soldaat',
captain: 'Kapitein',
general: 'Generaal'
},
sectors: {
undefined: 'Geen startpositie',
0: 'De sector links boven',
1: 'De centraal linker sector',
2: 'De sector linksonder',
3: 'De sector midden onder',
4: 'De sector rechtsonder',
5: 'De centraal rechter sector',
6: 'De sector rechtsboven',
7: 'Avonturierstoren',
8: 'Duellantentoren',
9: 'Soldatentoren',
10: 'Arbeiderstoren',
11: 'Kazerne',
12: 'Opslagplaats',
13: 'Hoofdgebouw',
14: 'Bovenmuur',
15: 'Ondermuur',
16: 'Linkermuur',
17: 'Rechtermuur',
18: 'Poort',
19: 'Vlag',
20: 'In het fort'
},
damage: 'schade',
version: 'versie',
changelist: 'Lijst van wijzigingen',
update: 'Update',
updateAvailable: 'Een nieuwe versie van het script is beschikbaar',
},
en_US: {
language: 'None (English)',
contact: 'Contact',
success: 'Rank is given!',
error: 'An error has occured',
showPlayerOnMap: 'Show player on map',
showTown: 'View town',
nodata: 'Couldn\'t load rank information for the fort',
getData: 'Loading rank information',
errorTimeout: 'The loading took too much time',
ascpt: 'Promote to captain',
asprivate: 'Appoint as private',
asrecruit: 'Appoint as recruit',
asreservist: 'Appoint as reservist',
astraitor: 'Mark as traitor',
youcant: 'You can\'t demote fighters of the same or higher rank.',
position: 'Position:',
pos_undefined: 'No starting position',
noally: 'No alliance',
flag: 'Flag',
inside: 'Inside the fort',
classes: {
soldier: 'Soldier',
duelist: 'Dueller',
adventurer: 'Adventurer',
worker: 'Worker',
greenhorn: 'Greenhorn'
},
ranks: {
traitor: 'Traitor',
reservist: 'Reservist',
recruit: 'Recruit',
private_: 'Soldier',
captain: 'Captain',
general: 'General'
},
sectors: {
undefined: 'No starting position',
0: 'The upper-left sector',
1: 'The lower-left sector',
2: 'The central left sector',
3: 'The lower central sector',
4: 'The central right sector',
5: 'The lower-right sector',
6: 'The upper-right sector',
7: 'Adventurer\'s tower',
8: 'Dueller\'s tower',
9: 'Soldier\'s tower',
10: 'Worker\'s tower',
11: 'Barracks',
12: 'Resource stock',
13: 'Headquarters',
14: 'North wall',
15: 'South wall',
16: 'West wall',
17: 'East wall',
18: 'Gate',
19: 'Flag',
20: 'Inside the fort'
},
damage: 'damage',
version: 'version',
changelist: 'Changelog',
update: 'Update',
updateAvailable: 'A new version of the script is available',
},
es_ES: {
language: 'Spanish (español)',
contact: 'Contacto',
success: 'Rango asignado!',
error: 'Un error ha ocurrido',
showPlayerOnMap: 'Mostrar jugador en el mapa',
showTown: 'Ver ciudad',
nodata: 'No se puede cargar la información de rango para el fuerte',
getData: 'Información del rango cargada',
errorTimeout: 'La carga tomó demasiado tiempo',
ascpt: 'Promocionar a capitán',
asprivate: 'Designar como privado',
asrecruit: 'Designar como recluta',
asreservist: 'Designar como reservista',
astraitor: 'Marcar como traidor',
youcant: 'No se pueden disminuir los combatientes con igual o superior rango.',
position: 'Posición:',
pos_undefined: 'Sin posición de partida',
noally: 'Sin alianza',
flag: 'Bandera',
inside: 'Dentro del fuerte',
classes: {
soldier: 'Soldado',
duelist: 'Duelista',
adventurer: 'Aventurero',
worker: 'Trabajador',
greenhorn: 'Novato'
},
ranks: {
traitor: 'Traidor',
reservist: 'Reservista',
recruit: 'Recluta',
private_: 'Soldado',
captain: 'Capitán',
general: 'General'
},
sectors: {
undefined: 'Sin posición de partida',
0: 'El sector superior izquierdo',
1: 'El sector central izquierdo',
2: 'El sector inferior izquierdo',
3: 'El sector central inferior',
4: 'El sector inferior derecho',
5: 'El sector central derecho',
6: 'El sector superior derecho',
7: 'Torre Aventureros',
8: 'Torre Duelistas',
9: 'Torre Soldados',
10: 'Torre Trabajadores',
11: 'Barracas',
12: 'Almacén de recursos',
13: 'Cuartel general',
14: 'Muralla Norte',
15: 'Muralla Sur',
16: 'Muralla Oeste',
17: 'Muralla Este',
18: 'Puerta',
19: 'Bandera',
20: 'Dentro del fuerte'
},
damage: 'daño',
version: 'versión',
changelist: 'Historial de cambios',
update: 'Actualización',
updateAvailable: 'Una nueva versión está disponible',
},
it_IT: {
language: 'Italian (italiano)',
contact: 'Contatto',
success: 'Il rango è stato dato!',
error: 'Si e\' verificato un errore',
showPlayerOnMap: 'Centra nella mappa',
showTown: 'Visita città',
nodata: 'Impossibile caricare le informazioni di rango per la fortezza',
getData: 'Caricamento Informazioni rango',
errorTimeout: 'Il caricamento ha richiesto troppo tempo',
ascpt: 'Capitano',
asprivate: 'Soldato Semplice',
asrecruit: 'Recluta',
asreservist: 'Riservista',
astraitor: 'Traditore',
youcant: 'Non è possibile il reclutamento di giocatori con rango uguale o superiore.',
position: 'Posizione:',
pos_undefined: 'Nessuna posizione di partenza',
noally: 'Nessuna alleanza',
flag: 'Bandiera',
inside: 'All\'interno del forte',
classes: {
soldier: 'Soldato',
duelist: 'Duellante',
adventurer: 'Avventuriero',
worker: 'Lavoratore',
greenhorn: 'Novizio'
},
ranks: {
traitor: 'Traditore',
reservist: 'Riservista',
recruit: 'Recluta',
private_: 'Soldato semplice',
captain: 'Capitano',
general: 'Generale'
},
sectors: {
undefined: 'Nessuna posizione di partenza',
0: ' -O1- Il settore superiore sinistro',
1: ' -O2- Il settore centrale sinistro',
2: ' -S1- Il settore in basso a sinistra',
3: ' -S2- Il settore centrale',
4: ' -S3- Il settore in basso a destra',
5: ' -E2- Il settore centrale destro',
6: ' -E1- Il settore superiore destro',
7: 'Torre avventuriero',
8: 'Torre duellante',
9: 'Torre soldato',
10: 'Torre lavoratore',
11: 'Caserma',
12: 'Magazzino',
13: 'Quartier generale',
14: 'Muro nord',
15: 'Muro sud',
16: 'Muro ovest',
17: 'Muro est',
18: 'Cancello',
19: 'Bandiera',
20: 'All\'interno del forte'
},
damage: 'danno',
version: 'versione',
changelist: 'Elenco delle modifiche',
update: 'Aggiornare',
updateAvailable: 'Script aggiornamento disponibile',
},
pt_PT: {
language: 'Portuguese (português)',
contact: 'Contato',
success: 'Classificação é dada!',
error: 'Ocorreu um erro',
showPlayerOnMap: 'Mostra jogador no mapa',
showTown: 'Ver cidade',
nodata: 'Não é possível carregar as informações para a classificar o forte',
getData: 'A carregar informações de classificação',
errorTimeout: 'O carregamento demorou demasiado tempo',
ascpt: 'Capitão',
asprivate: 'Soldado Raso',
asrecruit: 'Recruta',
asreservist: 'Reservista',
astraitor: 'Traidor',
youcant: 'Não é possível dar patente a jogadores com patente igual ou superior.',
position: 'Posição:',
pos_undefined: 'Nenhuma posição',
noally: 'Nome da Aliança',
flag: 'Bandiera',
inside: 'Dentro da forte',
classes: {
soldier: 'Soldado',
duelist: 'Pistoleiro',
adventurer: 'Aventureiro',
worker: 'Trabalhador',
greenhorn: 'Novato'
},
ranks: {
traitor: 'Traidor',
reservist: 'Reservista',
recruit: 'Recruta',
private_: 'Soldado Raso',
captain: 'Capitão',
general: 'General'
},
sectors: {
undefined: 'Não há posição de partida',
0: 'sector superior esquerdo',
1: 'sector centro esquerda',
2: 'sector inferior esquerdo',
3: 'sector inferior central',
4: 'sector inferior direito',
5: 'sector centro direita',
6: 'sector superior direito',
7: 'torre dos Aventureiros',
8: 'torre dos Pistoleiros ',
9: 'torre dos soldados',
10: 'torre dos Trabalhadores',
11: 'Quartel ',
12: 'Armazém',
13: 'Quartel Geral ',
14: 'Muro norte',
15: 'Muro sul',
16: 'Muro esquerdo',
17: 'Muro direito',
18: 'Portão',
19: 'Bandeira',
20: 'Dentro do forte'
},
damage: 'concluído',
version: 'versão',
changelist: 'Lista de mudanças',
update: 'Atualizar',
updateAvailable: 'Uma nova versão do roteiro está disponível',
},
sk_SK: {
language: 'Slovak (slovenčina)',
contact: 'Kontakt',
success: 'Hodnosti boli udelené!',
error: 'Vyskytol sa problém',
showPlayerOnMap: 'Ukázať hráča na mape',
showTown: 'Ukázať mesto',
nodata: 'Informácie pre pevnosť sa nedali načítať',
getData: 'Načítavanie informácií',
errorTimeout: 'Načítavanie trvalo príliš dlho',
ascpt: 'Povýšiť na kapitána',
asprivate: 'Vymenovať za slobodníka',
asrecruit: 'Vymenovať za nováčika',
asreservist: 'Vymenovať za záložnika',
astraitor: 'Označiť ako zradcu',
youcant: 'Nemôžeš degradovať bojovníkov s rovnakou alebo vyššou hodnosťou.',
position: 'Pozícia:',
pos_undefined: 'nemá zadanú pozíciu',
noally: 'Bez aliancie',
flag: 'Vlajka',
inside: 'V pevnosti',
classes: {
soldier: 'Vojak',
duelist: 'Duelant',
adventurer: 'Dobrodruh',
worker: 'Pracovník',
greenhorn: 'Zelenáč'
},
ranks: {
traitor: 'Zradca',
reservist: 'Záložník',
recruit: 'Nováčik',
private_: 'Slobodník',
captain: 'Kapitán',
general: 'Generál'
},
sectors: {
undefined: 'nemá zadanú pozíciu',
0: 'Horný ľavý sektor',
1: 'Stredný ľavý sektor',
2: 'Spodný ľavý sektor',
3: 'Spodný stredný sektor',
4: 'Spodný pravý sektor',
5: 'Stredný pravý sektor',
6: 'Horný pravý sektor',
7: 'Veža dobrodruhov',
8: 'Veža duelantov',
9: 'Veža vojakov',
10: 'Veža pracovníkov',
11: 'Kasárne',
12: 'Sklad',
13: 'Hlavná budova',
14: 'Severná hradba',
15: 'Južná hradba',
16: 'Západná hradba',
17: 'Východná hradba',
18: 'Brána',
19: 'Vlajka',
20: 'V pevnosti'
},
damage: 'poškodenie',
version: 'verzia',
changelist: 'Zmeny',
update: 'Aktualizovať',
updateAvailable: 'Aktualizácie skriptu je k dispozícii',
},
pl_PL: {
language: 'Polish (polski)',
contact: 'Kontakt',
success: 'Ranga została zmieniona!',
error: 'Wystąpił błąd',
showPlayerOnMap: 'Pokaż gracza na mapie',
showTown: 'Pokaż miasto',
nodata: 'Nie można załadować danych fortu',
getData: 'Pobieranie danych o rangach',
errorTimeout: 'Zbyt długie ładowanie danych',
ascpt: 'Awansuj na kapitana',
asprivate: 'Mianowanie na rezerwistę',
asrecruit: 'Mianowanie na rekruta',
asreservist: 'Mianowanie na rezerwistę',
astraitor: 'Nadaj zdrejcę',
youcant: 'Nie można zmienić ragi, posiadasz niższą lub taką samą rangę.',
position: 'Pozycja:',
pos_undefined: 'Źle ustawiony',
noally: 'Bez sojuszu',
flag: 'Flaga',
inside: 'W forcie',
classes: {
soldier: 'Żołnierz',
duelist: 'Zawadiaka',
adventurer: 'Poszukiwacz',
worker: 'Budowniczy',
greenhorn: 'Nowicjusz'
},
ranks: {
traitor: 'Zdrajca',
reservist: 'Rezerwista',
recruit: 'Rekrut',
private_: 'Szeregowiec',
captain: 'Kapitan',
general: 'Generał'
},
sectors: {
undefined: 'Źle ustawiony',
0: 'Lewy górny - 7',
1: 'Lewy dolny - 6',
2: 'Dolny lewy - 5',
3: 'Dolny środkowy - 4',
4: 'Dolny Prawy - 3',
5: 'Prawy dolny - 2',
6: 'Prawy górny - 1',
7: 'Baszta poszukiwaczy',
8: 'Baszta zawadiaków',
9: 'Baszta żołnierzy',
10: 'Baszta budowniczych',
11: 'Koszary',
12: 'Magazyn',
13: 'Budynek główny',
14: 'Górny mur',
15: 'Dolny mur',
16: 'Lewy mur',
17: 'Prawy mur',
18: 'Brama',
19: 'Flaga',
20: 'W środku fortu'
},
damage: 'obrażenia',
version: 'wersja',
changelist: 'Zmiany',
update: 'Aktualizacja',
updateAvailable: 'Nowa wersja skryptu jest dostępna',
},
de_DE: {
language: 'German (Deutsch)',
contact: 'Kontakt',
success: 'Mustererung erfolgreich!',
error: 'Ein Fehler ist aufgetreten',
showPlayerOnMap: 'Spieler auf Karte zeigen',
showTown: 'Stadt ansehen',
nodata: 'Rang-Informationen für das Fort konnten nicht geladen werden',
etData: 'Loading rank information',
errorTimeout: 'Zeitüberschreitung',
ascpt: 'Zum Captain befördern',
asprivate: 'Zum Private ernennen',
asrecruit: 'Zum Rekruten ernennen',
asreservist: 'Zum Reservisten ernennen',
astraitor: 'Als Verräter markieren',
youcant: 'Du kannst Kämpfer von gleichem oder höherem Rang nicht degradieren.',
position: 'Position:',
pos_undefined: 'Keine Startposition',
noally: 'Keine Allianz',
flag: 'Flagge',
inside: 'Innerhalb des Forts',
classes: {
soldier: 'Soldat',
duelist: 'Duellant',
adventurer: 'Abenteurer',
worker: 'Arbeiter',
greenhorn: 'Greenhorn'
},
ranks: {
traitor: 'Verräter',
reservist: 'Reservist',
recruit: 'Rekrut',
private_: 'Soldat',
captain: 'Captain',
general: 'General'
},
sectors: {
undefined: 'Keine Startposition',
0: 'Sektor oben-links',
1: 'Sektor unten-links',
2: 'Sektor mitte-links',
3: 'Sektor unten-mitte',
4: 'Sektor mitte-rechts',
5: 'Sektor unten-rechts',
6: 'Sektor oben-rechts',
7: 'Abenteurerturm',
8: 'Duellantentrum',
9: 'Soldatenturm',
10: 'Arbeiterturm',
11: 'Kaserne',
12: 'Rohstofflager',
13: 'Hauptgebäude',
14: 'Nordwall',
15: 'Südwall',
16: 'Westwall',
17: 'Ostwall',
18: 'Tor',
19: 'Flagge',
20: 'Innerhalb des Forts'
},
damage: 'Schaden',
version: 'Version',
changelist: 'Changelog',
update: 'Update',
updateAvailable: 'Für das Script ist eine neue Version erhältlich',
},
};
//Grander.langs.pt_BR = Grander.langs.pt_PT;
Grander.getLang = function () {
return Grander.langs.hasOwnProperty(Game.locale) ? Game.locale : 'en_US';
};
var GameLang = Grander.getLang();
KoMlang = Grander.langs[GameLang];
Grander.sectors = Grander.langs[GameLang].sectors;
var KickoMaticApi = TheWestApi.register('kickomatic', Grander.name, Grander.minGame, Grander.maxGame, Grander.author, Grander.website);
+
KickoMaticApi.setGui('
Language detected: ' + KoMlang.language + '
This script helps to assign ranks to the players before a fort battle.
Just click on the nicknames in the chat, to see more details.
' + Grander.name + ' v' + Grander.version +
'
' + KoMlang.contact + ':
' + capacityDiv + '
' + KoMlang.position + playerPositionName + '