Approved script EZ-Snipe

tcamps

Non-stop Poster
This is a snipe script I wrote since most of the ones I've seen are crap... seriously, including Scouts as a snipe option?



Screenshots:

Script:
javascript:
window.ezsSettings = { minimumSnipeDefense: { infantry: 2000, cavalry: 2000, archer: 0 }, offensiveSnipes: false, maximumTimeUntilLaunch: 4 }
$.getScript('https://tylercamp.me/tw/ez-snipe.js')

This script requires Premium. Internet explorer is unsupported. Only tested on the latest version of Google Chrome. This script will NOT WORK if you don't have translations set for your server. Translation packs can be found at the end of this post.

EZ-Snipe can be used (and ONLY be used) to snipe trains to your own villas. It has the usual features:

- Gets target villa and landing time
- Gets list of villas and units
- Calculates launch times
What it does differently:
- Select trains to snipe directly from your Incomings page
- Ignores empty villas ("minimumSnipeDefense" setting)
- Autodetects sigils/support movement buffs
- Links are provided to make it faster to set up a snipe
- Multiple BB code table formats
- Provide your own translations for the script without needing to change the script. (See instructions below.)
And when ran on your Notebook with snipe info it will:
- Auto-remove snipes that have passed their launch time
- Change the color of snipes that will be launching soon
- Display launch times in local time
- (Ran in your Player Notebook, not in Village Notes!)

Revolutio w97 said:
I'm fighting for life - especially with that snipe script - I'm unstoppable - LOL - literally - anyone who knows how to use that sh** - is a god - u should charge

bro I was on my friends acc - on casual - helping him - sniped like 9 trains with that sh** LOL
blue banana w96 said:
that sh** is f***ing glorifiable
Pretty funny How Tribal wars exists for 100 worlds and nobody can get a better snipe script than you
Pretty impressive if you think it like that

EZ-Snipe can generate a ridiculous amount of snipe opportunities - missing a snipe isn't a problem when you have over 50 options for a single incoming.

Instructions:
Main Script Usage
Run the script and it should direct you to your Incomings Overview page. This is not necessary if you're there already.

Select incomings using the checkboxes, as though you were attempting to label the incomings. The script will snipe only the incomings you've selected.

Run the script - A "loading..." message should appear above the list of incomings, replaced shortly with BB code regarding possible snipes - source village, launch time, and unit types to send. Paste this into the forums or in your Notebook for later reference.

Options
Change the script text to change various default options.

The settings format is: { settingName: value, otherName: value, ... }.
Be sure not to delete any braces '{ }', colons ':', or commas ','!

The settings available are:
- minimumSnipeDefense - A snipe won't be listed if there aren't enough troops to meet this minimum
- minimumRemainingPopulation - A snipe won't be listed if sending the snipe would leave the village with less population than this minimum
- maximumTimeUntilLaunch - Snipes with a landing time larger than this won't be listed. Value is in hours.


Enhancer Usage
1. Run EZ-Snipe on some incomings
2. Copy and paste the BB-code output into your Player Notebook (will NOT work on notes for a village!)
3. Run EZ-Snipe again on your Notebook page to load EZ-Snipe Enhancer

Translations
Built-in translations are provided for .net, .us, and .com.br servers. Custom translations can be written and submitted as described below.
Providing translations requires modifying the script saved in your quickbar. If you're making your own translation, your quickbar link should look something like this:

javascript:
var translationFormat = `
server = en

T_COMPACT_MODE = Compact Mode
T_LANDS_AT = Landing Time
T_LAUNCH_TIME = Launch Time
... etc.
`;
$.getScript('https://tylercamp.me/tw/ez-snipe.js')

Note the part: 'var translationFormat = `...`'. The contents of your translation goes between the two BACKTICKS ``. They MUST be backticks. (On a US keyboard, this is the key to the left of the '1' key at the top of your keyboard.)

The contents of translationFormat follow a strict format.

Setting the Server for your Translation
The server for the translation is defined at the top, 'en' in this case. This is determined by the FIRST PART OF THE URL WHEN IN-GAME. For example, I play w96 on the tribalwars.net server. When I log into w96, the URL starts with: 'en96.tribalwars.net'. 'en' is the name of the server.

Text Keys and Providing Translations
The actual translations are entered in the format T_TEXT_KEY=TRANSLATED TEXT. You can see a full list of text keys and their english versions in the sample translation below.

Special Text Keys
Some text keys require 'parameters'. These text keys are described in the reference translation below.

Minimum Requirements
Translation is required for EZ-Snipe to work on other servers. However, only some text needs to be translated to get it working. Other text is optional. The required translations are listed in the reference translation below, in the section REQUIRED TRANSLATIONS.

Sample Translations

# Anything starting with a '#' will be ignored
# This translation for tribalwars.net

# Change the value after the '=' for each text entry code

# Any errors or missing codes will be shown in the JAVASCRIPT CONSOLE (open with Ctrl+Shift+J on Chrome)

# THIS MUST COME BEFORE ANYTHING ELSE. For tribalwars.net, worlds are labeled 'en90', 'en91', etc. so the server is 'en'.
server = en

# Optional - These are text shown in the script
# These must be defined but don't need to be translated
T_ALL = All
T_ALL_SNIPES = All Snipes
T_BB_CODE = BB-code
T_BY_DST_VILLA = By Target Village
T_BY_SRC_VILLA = By Source Village
T_COMPACT_MODE = Compact Mode
T_LANDS_AT = Landing Time
T_LAUNCH_TIME = Launch Time
T_LOADING_ENHANCER = Loading notebook enhancer...
T_LOADING_SCRIPT = Loading EZ-Snipe...
T_MAKE_SNIPES_CHECK_SIGILS = Making snipes and checking for sigils...
T_NO_INCS_SELECTED = No incomings were selected for sniping!
T_RUN_ON_INCOMINGS = This script needs to be ran on the Incomings page, I'll bring you there now.
T_TARGET = Target
T_TARGET_VILLA = Target Village
T_SOURCE = Source
T_SOURCE_VILLA = Source Village
T_TROOP_REQ = Troop Req.
T_TROOPS = Troops
T_USE_TROOP_ICONS = Use Troop Icons
T_OPTIONS = Options
T_OPTIONS_SNIPE = Snipe Options
T_DISPLAY = Display:
T_SNIPE = Snipe
T_REFRESH_1 = This script will not update when you check/uncheck incomings below!
T_REFRESH_2 = Run the script again to update with those changes.
T_MINIMUM_SNIPE_DEF = Minimum Snipe Def.
T_ANTI_INFANTRY = anti-infantry
T_ANTI_CAVALRY = anti-cavalry
T_ANTI_ARCHER = anti-archer
T_USE_OFFENSIVE_SNIPES = Offensive Snipes
T_MAX_LAUNCH_TIME = Max Hours Until Launch

# Parts in '{{}}' should be left UNTRANSLATED!
T_SNIPE_TIME_RANGE = Snipes between {{currentTime}} and {{endTime}}
T_SNIPES_FROM_SRC = Snipes from {{source}}
T_SNIPES_TO_DST = Snipes to {{target}}
T_NUM_SNIPES_MADE = {{count}} snipes made

# These are multi-text values
# These require 12 entries separated by a comma ','
M_TROOP_COMMON_NAMES = Spear, Sword, Axe, Archer, Scout, Light Cav., Mounted Ar., Heavy Cav., Ram, Catapult, Paladin, Nobleman
M_TROOP_SHORTHAND_NAMES = sp, sw, axe, ar, sc, lc, ma, hc, ram, cat, pally, noble

###### TRANSLATION REQUIRED
# These are in-game text - they must match EXACTLY!

## Text shown when a village has a support buff active
T_INCOMING_SUPPORT_BUFF = Incoming support sent while this is active will travel {{perc}}% faster
## Text shown on the "incomings" page when an attack is arriving today
T_TODAY_AT = today at {{time}}
## Text shown on the "incomings" page when an attack is arriving tomorrow
T_TOMORROW_AT = tomorrow at {{time}}
## Text shown on the "incomings" page when an attack is arriving on a specific date
T_ON_AT = on {{date}} at {{time}}

# Note - this is an old translation and is missing some text...

# tribalwars.com.br
server = br
T_ALL = Tudo
T_ALL_SNIPES = Todos os snips
T_BB_CODE = Código BB
T_BY_DST_VILLA = Por aldeia alvo
T_BY_SRC_VILLA = Por aldeia fonte
T_COMPACT_MODE = Modo compacto
T_LANDS_AT = Hora de chegada
T_LAUNCH_TIME = Hora de envio
T_LOADING_ENHANCER = Carregando potenciador de bloco de notas...
T_LOADING_SCRIPT = Carregando EZ-Snipe...
T_MAKE_SNIPES_CHECK_SIGILS = Fazendo snips e procurando por sigilos...
T_NO_INCS_SELECTED = Nenhum ataque foi selecionado para snip!
T_RUN_ON_INCOMINGS = Este script precisa ser executado na página Chegando, vou trazer à você agora
T_SNIPE_TIME_RANGE = Snips entre {{currentTime}} e {{endTime}}
T_SNIPES_FROM_SRC = Snips a partir de {{source}}
T_SNIPES_TO_DST = Snips para {{target}}
T_TARGET = Alvo
T_TARGET_VILLA = Aldeia alvo
T_SOURCE = Fonte
T_SOURCE_VILLA = Aldeia fonte
T_TROOP_REQ = Tropa necessária
T_TROOPS = Tropas
T_USE_TROOP_ICONS = Usar ícones de tropas
T_OPTIONS = Opções
T_INCOMING_SUPPORT_BUFF = Apoio recebido enquanto isso estiver ativo vai viajar {{perc}}% mais rápido
T_TODAY_AT = Hoje às {{time}}
T_TOMORROW_AT = Amanhã às {{time}}
T_ON_AT = Em {{date}} às {{time}}
T_SNIPE = Snips
T_DISPLAY = Mostrar
T_NUM_SNIPES_MADE = {{count}} snips gerados
T_REFRESH_1 = Este script não será atualizado quando você marcar/desmascar as entradas abaixo.
T_REFRESH_2 = Rode o script novamente para atualizar com aquelas mudanças.
M_TROOP_COMMON_NAMES = Lanceiro,Espadachim,Bárbaro,Arqueiro,Explorador,Cavalaria Leve,Arqueiro à cavalo,Cavalaria Pesada,Aríete,Catapulta,Paladino,Nobre
M_TROOP_SHORTHAND_NAMES = lança,esp,bb,arc,expl,cl,arc cav,cp,aríete,cata,pala,nobre

Translation Template
This is a barebones example to be modified.
javascript:
var translationFormat = `
server =

# These are text shown in the script
T_ALL =
T_ALL_SNIPES =
T_BB_CODE =
T_BY_DST_VILLA =
T_BY_SRC_VILLA =
T_COMPACT_MODE =
T_LANDS_AT =
T_LAUNCH_TIME =
T_LOADING_ENHANCER =
T_LOADING_SCRIPT =
T_MAKE_SNIPES_CHECK_SIGILS =
T_NO_INCS_SELECTED =
T_RUN_ON_INCOMINGS =
T_SNIPE_TIME_RANGE = {{currentTime}} {{endTime}}
T_SNIPES_FROM_SRC = {{source}}
T_SNIPES_TO_DST = {{target}}
T_TARGET =
T_TARGET_VILLA =
T_SOURCE =
T_SOURCE_VILLA =
T_TROOP_REQ =
T_TROOPS =
T_USE_TROOP_ICONS =
T_OPTIONS =
T_OPTIONS_SNIPE =
T_DISPLAY =
T_SNIPE =
T_NUM_SNIPES_MADE = {{count}}
T_REFRESH_1 =
T_REFRESH_2 =
T_MINIMUM_SNIPE_DEF =
T_ANTI_INFANTRY =
T_ANTI_CAVALRY =
T_ANTI_ARCHER =
T_USE_OFFENSIVE_SNIPES =
T_MAX_LAUNCH_TIME =

# These are multi-text values
# These require 12 entries separated by a comma ','
M_TROOP_COMMON_NAMES = , , , , , , , , , , ,
M_TROOP_SHORTHAND_NAMES = , , , , , , , , , , ,

# These are in-game text - they must match EXACTLY!
T_INCOMING_SUPPORT_BUFF = {{perc}}
T_TODAY_AT = {{time}}
T_TOMORROW_AT = {{time}}
T_ON_AT = {{date}} {{time}}
`;
$.getScript('https://tylercamp.me/tw/ez-snipe.js')

Tools and Troubleshooting
Sometimes you mis-spell a text key, or forget/delete a key, or make some other mistake. For most problems, the script will tell you what's missing and what's incorrect so that you can fix it.
To view this troubleshooting information, you must open the JavaScript console in your browser to see the messages. On Google Chrome, you can open this by pressing 'Ctrl+Shift+J'.

Problems with your translation will be shown as WARNINGS, for example:

Your custom translation will not be loaded until all warnings are gone.

You can test your translation without being on the server it's intended for. For example, you may write a translation for 'br' and force the script to use it on 'en'. This is done by changing the URL on your page and running the script again. Change your URL by adding #lang={SERVER} at the end. For example:

https://en96.tribalwars.net/game.php?screen=overview_villages&mode=incomings#lang=br

This will force the script to load the 'br' translation even though it's ran on the 'en' server.

Sharing Translations
If you've modified your quickbar to include a 'translationFormat', you can share that directly with other players so they can use your translation.

Submitting Your Translation
Send me a PM with the translation that you have been using. I will inspect the translation and include it in the official script.

Copy and paste the whole text into your quickbar, no further editing required.

.net, .us, and .co.uk servers do not require a translation pack.

javascript:
var translationFormat = `
server = br

# This is missing 7 translations but the script will still work.

# tribalwars.com.br

T_ALL = Tudo
T_ALL_SNIPES = Todos os snips
T_BB_CODE = Código BB
T_BY_DST_VILLA = Por aldeia alvo
T_BY_SRC_VILLA = Por aldeia fonte
T_COMPACT_MODE = Modo compacto
T_LANDS_AT = Hora de chegada
T_LAUNCH_TIME = Hora de envio
T_LOADING_ENHANCER = Carregando potenciador de bloco de notas...
T_LOADING_SCRIPT = Carregando EZ-Snipe...
T_MAKE_SNIPES_CHECK_SIGILS = Fazendo snips e procurando por sigilos...
T_NO_INCS_SELECTED = Nenhum ataque foi selecionado para snip!
T_RUN_ON_INCOMINGS = Este script precisa ser executado na página Chegando, vou trazer à você agora
T_SNIPE_TIME_RANGE = Snips entre {{currentTime}} e {{endTime}}
T_SNIPES_FROM_SRC = Snips a partir de {{source}}
T_SNIPES_TO_DST = Snips para {{target}}
T_TARGET = Alvo
T_TARGET_VILLA = Aldeia alvo
T_SOURCE = Fonte
T_SOURCE_VILLA = Aldeia fonte
T_TROOP_REQ = Tropa necessária
T_TROOPS = Tropas
T_USE_TROOP_ICONS = Usar ícones de tropas
T_OPTIONS = Opções
T_INCOMING_SUPPORT_BUFF = Apoio recebido enquanto isso estiver ativo vai viajar {{perc}}% mais rápido
T_TODAY_AT = Hoje às {{time}}
T_TOMORROW_AT = Amanhã às {{time}}
T_ON_AT = Em {{date}} às {{time}}
T_SNIPE = Snips
T_DISPLAY = Mostrar
T_NUM_SNIPES_MADE = {{count}} snips gerados
T_REFRESH_1 = Este script não será atualizado quando você marcar/desmascar as entradas abaixo.
T_REFRESH_2 = Rode o script novamente para atualizar com aquelas mudanças.
M_TROOP_COMMON_NAMES = Lanceiro,Espadachim,Bárbaro,Arqueiro,Explorador,Cavalaria Leve,Arqueiro à cavalo,Cavalaria Pesada,Aríete,Catapulta,Paladino,Nobre
M_TROOP_SHORTHAND_NAMES = lança,esp,bb,arc,expl,cl,arc cav,cp,aríete,cata,pala,nobre
`;
$.getScript('https://tylercamp.me/tw/ez-snipe.js');

javascript:
var translationFormat = `
server = sv

# These are text shown in the script
T_ALL = Alla
T_ALL_SNIPES = Alla Snipes
T_BB_CODE = BB-Kod
T_BY_DST_VILLA = Destination
T_BY_SRC_VILLA = Ursprung
T_COMPACT_MODE = Kompaktläge
T_LANDS_AT = Ankomst
T_LAUNCH_TIME = Skicka vid
T_LOADING_ENHANCER = Laddar…
T_LOADING_SCRIPT = Laddar EZ-Snipe …
T_MAKE_SNIPES_CHECK_SIGILS = Gör iordning snipes
T_NO_INCS_SELECTED = Inga Attacker Valda För Snipe
T_RUN_ON_INCOMINGS = Kör På Inkommande
T_SNIPE_TIME_RANGE = Snipes Mellan {{currentTime}} Och {{endTime}}
T_SNIPES_FROM_SRC = Snipes Från {{source}}
T_SNIPES_TO_DST = Snipes Till {{target}}
T_TARGET = Destination
T_TARGET_VILLA = Destinationsby
T_SOURCE = Ursprung
T_SOURCE_VILLA = Ursprungsby
T_TROOP_REQ = Långsammaste enheten
T_TROOPS = Enheter
T_USE_TROOP_ICONS = Använd Enhetsikoner
T_OPTIONS = Alternativ
T_OPTIONS_SNIPE= Snipe Alternativ
T_MINIMUM_SNIPE_DEF= Minsta Möjliga Snipeförsvar
T_USE_OFFENSIVE_SNIPES= Offensiva Snipes
T_MAX_LAUNCH_TIME= Max Timmar till Attack
T_ANTI_INFANTRY= Anti Infantri
T_ANTI_CAVALRY= Anti Kavalleri
T_ANTI_ARCHER= Anti Bågskytt
T_DISPLAY = Visa
T_SNIPE = Snipe
T_NUM_SNIPES_MADE = {{count}} Snipes Gjorda
T_REFRESH_1 = This script will not update when you check/uncheck incomings below!
T_REFRESH_2 = Run the script again to update with those changes.

# These are multi-text values
# These require 12 entries separated by a comma ','
M_TROOP_COMMON_NAMES =Spjutman, Svärdsman,Yxman ,Bågskytt ,Spejare ,Lätt Kavallerist ,Beriden Bågskytt ,Tung Kavallerist ,Murbräcka ,Katapult ,Paladin ,Adelsman
M_TROOP_SHORTHAND_NAMES =Spjut ,Svärd ,Yx ,Båg ,Spej ,LK ,BB ,TK ,RAM ,Kata ,Pala ,Adel

# These are in-game text - they must match EXACTLY!
T_INCOMING_SUPPORT_BUFF = Inkommande assistans skickat medans detta är aktivt kommer färdas {{perc}} snabbare
T_TODAY_AT = idag kl {{time}}
T_TOMORROW_AT = imorgon kl {{time}}
T_ON_AT = den {{date}} kl {{time}}
`;
$.getScript('https://tylercamp.me/tw/ez-snipe.js')

javascript:
var translationFormat = `
server = pt

# tribalwars.com.pt

T_ALL = Tudo
T_ALL_SNIPES = Todos os snipes
T_BB_CODE = Códigos BB's
T_BY_DST_VILLA = Por aldeia alvo
T_BY_SRC_VILLA = Por aldeia origem
T_COMPACT_MODE = Modo compacto
T_LANDS_AT = Hode de chegada
T_LAUNCH_TIME = Hora de envio
T_LOADING_ENHANCER = A carregar bloco de notas...
T_LOADING_SCRIPT = A caregar EZ-SNIPE
T_MAKE_SNIPES_CHECK_SIGILS = A fazer snipes e procurando por sigilos.
T_NO_INCS_SELECTED = Nenhum ataque selecionado para snipar!
T_RUN_ON_INCOMINGS = Tem de ser executado na página A chegar
T_SNIPE_TIME_RANGE = Snipes entre {{currentTime}} e {{endTime}}
T_SNIPES_FROM_SRC = Snipes a partir de {{source}}
T_SNIPES_TO_DST = Snipes para {{target}}
T_TARGET = Alvo
T_TARGET_VILLA = Aldeia alvo
T_SOURCE = Origem
T_SOURCE_VILLA = Aldeia origem
T_TROOP_REQ = Tipo de tropa
T_TROOPS = Tropas
T_USE_TROOP_ICONS = Usar ícones de tropas
T_OPTIONS = Opções
T_OPTIONS_SNIPE = Opções de snipe
T_DISPLAY = Mostrar
T_SNIPE = Snipes
T_NUM_SNIPES_MADE = {{count}} snipes gerados
T_REFRESH_1 = Este script será atualizado após marcares/desmascares as entradas acima.
T_REFRESH_2 = Usa o script novamente para atualizar as novas mudanças.
T_MINIMUM_SNIPE_DEF = Mínimo de defesa para snipe
T_ANTI_INFANTRY = Anti-Infataria
T_ANTI_CAVALRY = Anti-Cavalaria
T_ANTI_ARCHER = Anti-Arqueiro
T_USE_OFFENSIVE_SNIPES = Usar tropas ofensivas nos snipes
T_MAX_LAUNCH_TIME = Horas máximas de envio

# These are multi-text values
# These require 12 entries separated by a comma ','
M_TROOP_COMMON_NAMES = Lanceiro,Espadachim,Bárbaro,Arqueiro,Explorador,Cavalaria Leve,Arqueiro à cavalo,Cavalaria Pesada,Aríete,Catapulta,Paladino,Nobre
M_TROOP_SHORTHAND_NAMES = lança,espada,barb,arco,explora,cl,arc cav,cp,aríete,cata,pala,nobre

# These are in-game text - they must match EXACTLY!
T_INCOMING_SUPPORT_BUFF = Apoio recebido enquanto estiver ativo vai viajar {{perc}}% mais rápido
T_TODAY_AT = Hoje às {{time}}
T_TOMORROW_AT = Amanhã às {{time}}
T_ON_AT = Em {{date}} às {{time}}
`;
$.getScript('https://tylercamp.me/tw/ez-snipe.js')

This script is approved by Tribal Wars as of 27/01/2018, ticket t12168060.
 
Last edited:

wellcome

New Member
Hello,my friend. Im from TribalWars BR, i tried to use your script but keep "Loading EZ-snipe...", i see your video but i can't do this work. Can u help ?
 

tcamps

Non-stop Poster
This script was built on and for the .net server, I can’t guarantee that it’ll work on other servers and adding that support isn’t a priority right now, sorry.

Can you send a screenshot of the incomings page that you’re running on? I might be able to work it out quickly from there. PM me.
 

tcamps

Non-stop Poster
Support for Portuguese on the BR servers has been added. This fixes script behavior and translates text within the script itself. For further language requests, post here and PM me to receive instructions on how to provide translations.
 

Mintyfresh

Skilled Soldier 2018
Tribal Wars Team
Just to clarify, is it not possible to show offensive troop snipe opportunities?
 

tcamps

Non-stop Poster
Just to clarify, is it not possible to show offensive troop snipe opportunities?
Yes, snipes containing only offensive troops are ignored. It will only include an offensive troop if it's necessary for the snipe, ie if a snipe can be made at ram speed. Snipes are shown if a minimum number of defensive troops are available from that village.
 

Mintyfresh

Skilled Soldier 2018
Tribal Wars Team
Would it be possible to add that as an option or not on the table? I snipe quite a lot with off troops, its really underrated so would be really good if thats something that could be done, would definitely use it all the time
 

Ibra Gonza II

Non-stop Poster
Gotto agree with that. If sniping with a bunch of axes saves me a village, I would do it.
Perhaps you can use a flag like var useOff = true; that users can set in the script to check whether or not they want off troops involved or not? :)
@tcamps
 

tcamps

Non-stop Poster
I agree, thanks for the suggestion. I'm juggling a few things around right now and should get to it soon.

Such a feature would include an option for "minimum defense power" when making a snipe. ie, any snipe option must have a minimum of 5,000 total defense. This would work out to ~11HC, ~60 sp, or ~200 axemen. The current filter of "minimum population" is really only effective for defensive troops, ie 1k archers is nowhere near equivalent to 1k axes (95k def vs 25k def). The "minimum snipe population" may be replaced with this entirely.
 
Last edited:

Ibra Gonza II

Non-stop Poster
I agree, thanks for the suggestion. I'm juggling a few things around right now and should get to it soon.

Such a feature would include an option for "minimum defense power" when making a snipe. ie, any snipe option must have a minimum of 5,000 total defense. This would work out to ~11HC, ~60 sp, or ~200 axemen. The current filter of "minimum population" is really only effective for defensive troops, ie 1k archers is nowhere near equivalent to 1k axes (95k def vs 25k def). The "minimum snipe population" may be replaced with this entirely.
Or to save you the math you just make a troop object containing the minimum of troops the users want to be considered as valid snipe?
HTML:
var mins = {"spear" : 100,"sword":100,"axe":200", ......}
It allows players to modify it according to their needs, and saves you a lot of development time :)
 

tcamps

Non-stop Poster
Army stat calculations are already being done, just not being used as I described. It's part of the calculation for determining the amount of population in a candidate snipe (but not being used)

Funnily enough, "minimum troop stats" is actually the easier option in this case

I think using a minimum defense requirement would be more flexible than a specific minimum troop requirement. If a villa has 30sp, 40sw, and 100 axe, that would be picked up by a minimum defense requirement but not a minimum troop requirement

Here's my reference data if you'd like to do something similar: http://tylercamp.me/tw/twstats.js
 

Ibra Gonza II

Non-stop Poster
Yeah, I guess it depends on how you look at it. :D
Defensive values surely is the more efficient / better option. But I'm not sure if the gain would be worth the development effort :x
(I'm the kind of developer that weighs the pro's vs the effort :p)
 

tcamps

Non-stop Poster
The unit stats were already made for a previous project (https://tylercamp.me/tw) and the population data also includes offensive/defensive data, so the work’s already there

It’ll take more code to add the settings option or offensive snipes option (just the option interface, not implementing the feature) than it will to change from “minimum population” to “minimum defense power” ;)

Edit: I just need to change:
if (defensiveStats.totalPop - ezsSettings.minimumSnipePopulation < 0 || ...) { ... }
to:
if (defensiveStats.totalDef - ezsSettings.miniimumSnipeDefense < 0 || ...) { ... }
 
Last edited:

tcamps

Non-stop Poster
Further updates will be delayed. I'm modifying the script so that anyone can provide translations without needing to change the script directly. Due to personal responsibilities and organizational changes in the script, I expect these suggestions won't be started until friday of next week (hopefully friday of this week.)
 

Zalinor

Non-stop Poster
Had my first opportunity to test the script today.

First use I clicked all 4 of the train incomings (I didn't read or watch the instructions so for anyone like me you just have to click one or you get 4 of each snipe in the table).

Amazing features; I really like the link set up, using the old school snipe script I change to the village, return to notebook and then click the destination village. This link system chooses the correct village and preloads the destination which saves a good amount of time when you have just grabbed your phone or pc seconds before an attempt. I also really like being able to use the script on the notepad to remove the snipes which would already have needed to be sent. I also liked how quick it was to use with not having to copy and paste land time and train destination etc by using the incomings screen.

Improvements I've noticed this is really only for self sniping is there a way you could include an alternative input ( maybe drawing from the forums if people use the standard SOS post).
Also in the output from the script I'd appreciate if somewhere it said the snipe arrival time ( otherwise you need to go to the village or forum again for the timings using those clicks you saved earlier)

All in all a very nice script which I have already recommended. (Thus hopefully you see this is constructive feedback and not nitpicking)

Z-
 

tcamps

Non-stop Poster
Thanks for the feedback, the interface was designed to be as "click-and-go" as possible and remove the more repetitive steps.

Sniping other players villages is something that's implemented but only available for those I whitelist, at the moment. Alternate input is planned but would likely be whitelisted.

Snipe arrival time is being added and will be available in the basic version of the script.

I'm also planning another feature regarding BB-code output:
- When clicking the link to a rally point, it would auto-fill the troops for snipes
--- Required troops would have their count set to "1"
--- Unusable troops would have their count set to "0"
--- Usable troops would have their count unset, so you can enter them manually

This removes the annoyance of having to go back to your notebook to double-check what troops are available and what troop is required.
 

tcamps

Non-stop Poster
Support for adding your own translations has been added. The interface has been improved. Translation instructions will be added to the main post shortly.

@Zalinor - The missing "snipe arrival time" was a bug that has been fixed.

Translations are a new feature that will have some growing pains. I've tested it the best I can, but please post bugs here.
 
Last edited: