Add files via upload

This commit is contained in:
VJ ROLMASTERS
2025-11-26 12:33:44 +01:00
committed by GitHub
parent a8ae04251e
commit 0c04fa25ce
+505
View File
@@ -0,0 +1,505 @@
<!-- BLACK SWORD HACK - BY THE MERRY MUSHMEN -->
<!-- Character sheet for Roll20 by VJ Rolmasters -->
<div class="sheet-contenedorvj">
<div class="sheet-BSHpergamino">
<div class="sheet-columnA">
<div class="sheet-columndata">
<div class="sheet-width100">
<div class="sheet-BSHtitles">
<span data-i18n="name-u">Name</span>:
</div><!-- end .sheet-BSHtitles -->
<input class="sheet-characterinfo" type="text" name="attr_character_name" title="" value="" />
</div><!-- end .sheet-width100 -->
<div class="sheet-width100">
<div class="sheet-BSHtitles">
<span data-i18n="player-u">Player</span>:
</div><!-- end .sheet-BSHtitles -->
<input class="sheet-characterinfo" type="text" name="attr_player_name" title="" value="" />
</div><!-- end .sheet-width100 -->
<div class="sheet-width100">
<div class="sheet-BSHtitles">
<span data-i18n="origin-u">Origin</span>:
</div><!-- end .sheet-BSHtitles -->
<input class="sheet-characterinfo" type="text" name="attr_origin" title="" value="" />
</div><!-- end .sheet-width100 -->
</div><!-- end .sheet-columndata -->
<div class="sheet-columnpjbackground">
<div class="sheet-espai-30"></div><!-- end .sheet-espai-30 -->
<div class="sheet-width100">
<div class="sheet-BSHtitles2">
<span data-i18n="background-u">Background</span>
</div><!-- end .sheet-BSHtitles2 -->
<textarea class="sheet-textarea-esquerra" style=" height:160px; " name="attr_background"></textarea>
</div><!-- end .sheet-width100 -->
<div class="sheet-espai-20"></div><!-- end .sheet-espai-20 -->
<div class="sheet-width100">
<div class="sheet-BSHtitles2">
<span data-i18n="equipment-u">Equipment</span>
</div><!-- end .sheet-BSHtitles2 -->
<textarea class="sheet-textarea-esquerra" style="height:280px;" name="attr_equipment"></textarea>
</div><!-- end .sheet-width100 -->
<div class="sheet-espai-30"></div><!-- end .sheet-espai-30 -->
<div class="sheet-width100">
<div class="sheet-BSHtitles2">
<span data-i18n="armor-u">Armor</span>
</div><!-- end .sheet-BSHtitles2 -->
<input class="sheet-item1Armor" type="text" name="attr_armadura" title="" value="Armadura"/>
<select class="sheet-armaselect-A" name="attr_tipoparada" title="Choose the type of defense of your character." style=" ">
<option value="@{fue}"><span data-i18n="defense-type-str-u">STR : Block the attack</span></option>
<option value="@{des}" selected><span data-i18n="defense-type-dex-u">DEX : Dodge the attack</span></option>
</select>
<button type="roll" style="margin:6px 0px 0px 3px;" class="sheet-VJBTN2" name="roll_armadura" value="@{tirada_secreta} &{template:bsh} {{title= @{labeldefender} : @{paradatemplate}}} {{subtitle=@{character_name}}} {{caracteristica=[[@{tipoparada}]]}} {{rollResult=[[?{Difficulty?|Normal,1d20|Advantage,2d20kl1|Disadvantage,2d20kh1}cs<1cf>20+?{Modifier|0}]]}}"/>
<input class="sheet-item2B" type="text" name="attr_paradatemplate" title="Campo oculto para definir template" value="0" readonly hidden/>
<input class="sheet-item2Armor" type="text" name="attr_armadurapa" data-i18n-title="armor-resistance-points-u" value="0"/>
</div><!-- end .sheet-width100 -->
<div class="sheet-espai-30"></div><!-- end .sheet-espai-30 -->
<div class="sheet-width100">
<div class="sheet-BSHtitles2">
<span data-i18n="weapons-u">Weapons</span>
</div><!-- end .sheet-BSHtitles2 -->
</div><!-- end .sheet-width100 -->
</div><!-- end .sheet-columnpjbackground -->
<div class="sheet-columnsword">
<div class="sheet-columnroundsL">
<div class="sheet-roundbox">
<div class="sheet-atributename">
<span data-i18n="strenght-u">STR</span>
</div><!-- end .sheet-atributename -->
<div class="sheet-atributevalue">
<input class="sheet-valorcaracteristicas1" type="number" max="50" min="0" name="attr_fue" data-i18n-title="strenght-ability-u" value="0" style="margin: 0px 0px 0px 0px; " />
</div><!-- end .sheet-atributevalue -->
<button type="roll" style="margin:2px 0px 0px 30px;" class="sheet-VJBTN" name="roll_fuerza" value="@{tirada_secreta} &{template:bsh} {{title=@{labelpruebadefuerza}}} {{subtitle=@{character_name}}} {{caracteristica=[[@{fue}]]}} {{rollResult=[[?{Difficulty?|Normal,1d20|Advantage,2d20kl1|Disadvantage,2d20kh1}cs<1cf>20+?{Modifier|0}]]}}"/>
</div><!-- end .sheet-roundbox -->
<div class="sheet-roundbox">
<div class="sheet-atributename">
<span data-i18n="dexterity-u">DEX</span>
</div><!-- end .sheet-atributename -->
<div class="sheet-atributevalue">
<input class="sheet-valorcaracteristicas1" type="number" max="50" min="0" name="attr_des" data-i18n-title="dexterity-ability-u" value="0" style="margin: 0px 0px 0px 0px;" />
</div><!-- end .sheet-atributevalue -->
<button type="roll" style="margin:2px 0px 0px 30px;" class="sheet-VJBTN" name="roll_destreza" value="@{tirada_secreta} &{template:bsh} {{title=@{labelpruebadedestreza}}} {{subtitle=@{character_name}}} {{caracteristica=[[@{des}]]}} {{rollResult=[[?{Difficulty?|Normal,1d20|Advantage,2d20kl1|Disadvantage,2d20kh1}cs<1cf>20+?{Modifier|0}]]}}"/>
</div><!-- end .sheet-roundbox -->
<div class="sheet-roundbox">
<div class="sheet-atributename">
<span data-i18n="constitution-u">CON</span>
</div><!-- end .sheet-atributename -->
<div class="sheet-atributevalue">
<input class="sheet-valorcaracteristicas1" type="number" max="50" min="0" name="attr_con" data-i18n-title="constitution-ability-u" value="0" style="margin: 0px 0px 0px 0px; " />
</div><!-- end .sheet-atributevalue -->
<button type="roll" style="margin:2px 0px 0px 30px;" class="sheet-VJBTN" name="roll_constitucion" value="@{tirada_secreta} &{template:bsh} {{title=@{labelpruebadeconstitucion}}} {{subtitle=@{character_name}}} {{caracteristica=[[@{con}]]}} {{rollResult=[[?{Difficulty?|Normal,1d20|Advantage,2d20kl1|Disadvantage,2d20kh1}cs<1cf>20+?{Modifier|0}]]}}"/>
</div><!-- end .sheet-roundbox -->
</div><!-- end .sheet-columnroundsL -->
<div class="sheet-columnroundsR">
<div class="sheet-roundbox">
<div class="sheet-atributename">
<span data-i18n="intelligence-u">INT</span>
</div><!-- end .sheet-atributename -->
<div class="sheet-atributevalue">
<input class="sheet-valorcaracteristicas1" type="number" max="50" min="0" name="attr_int" data-i18n-title="intelligence-ability-u" value="0" style="margin: 0px 0px 0px 0px; " />
</div><!-- end .sheet-atributevalue -->
<button type="roll" style="margin:2px 0px 0px 30px;" class="sheet-VJBTN" name="roll_inteligencia" value="@{tirada_secreta} &{template:bsh} {{title=@{labelpruebadeinteligencia}}} {{subtitle=@{character_name}}} {{caracteristica=[[@{int}]]}} {{rollResult=[[?{Difficulty?|Normal,1d20|Advantage,2d20kl1|Disadvantage,2d20kh1}cs<1cf>20+?{Modifier|0}]]}}"/>
</div><!-- end .sheet-roundbox -->
<div class="sheet-roundbox">
<div class="sheet-atributename">
<span data-i18n="wisdom-u">WIS</span>
</div><!-- end .sheet-atributename -->
<div class="sheet-atributevalue">
<input class="sheet-valorcaracteristicas1" type="number" max="50" min="0" name="attr_wis" data-i18n-title="wisdom-ability-u" value="0" style="margin: 0px 0px 0px 0px; " />
</div><!-- end .sheet-atributevalue -->
<button type="roll" style="margin:2px 0px 0px 30px;" class="sheet-VJBTN" name="roll_wisdom" value="@{tirada_secreta} &{template:bsh} {{title=@{labelpruebadesabiduria}}} {{subtitle=@{character_name}}} {{caracteristica=[[@{wis}]]}} {{rollResult=[[?{Difficulty?|Normal,1d20|Advantage,2d20kl1|Disadvantage,2d20kh1}cs<1cf>20+?{Modifier|0}]]}}"/>
</div><!-- end .sheet-roundbox -->
<div class="sheet-roundbox">
<div class="sheet-atributename">
<span data-i18n="charisma-u">CHA</span>
</div><!-- end .sheet-atributename -->
<div class="sheet-atributevalue">
<input class="sheet-valorcaracteristicas1" type="number" max="50" min="0" name="attr_car" data-i18n-title="charisma-ability-u" value="0" style="margin: 0px 0px 0px 0px; " />
</div><!-- end .sheet-atributevalue -->
<button type="roll" style="margin:2px 0px 0px 30px;" class="sheet-VJBTN" name="roll_carisma" value="@{tirada_secreta} &{template:bsh} {{title=@{labelpruebadecarisma}}} {{subtitle=@{character_name}}} {{caracteristica=[[@{car}]]}} {{rollResult=[[?{Difficulty?|Normal,1d20|Advantage,2d20kl1|Disadvantage,2d20kh1}cs<1cf>20+?{Modifier|0}]]}}"/>
</div><!-- end .sheet-roundbox -->
</div><!-- end .sheet-columnroundsR -->
</div><!-- end .sheet-columnsword -->
<div class="sheet-columnweapons">
<fieldset class="repeating_armas">
<input class="sheet-item2A" type="text" name="attr_arma" title="" value="Weapon"/>
<select class="sheet-armaselect-A" name="attr_tipoarma" data-i18n-title="combat-type-u" style=" ">
<option value="@{fue}"><span data-i18n="combat-type-str-u">STR : Hand to hand</span></option>
<option value="@{des}" selected><span data-i18n="combat-type-dex-u">DEX : Distance</span></option>
</select>
<button type="roll" style="margin:6px 0px 0px 3px;" class="sheet-VJBTN2" name="roll_arma" value="@{tirada_secreta} &{template:bsh} {{title= @{arma}}} {{subtitle=@{character_name}}} {{caracteristica=[[@{tipoarma}]]}} {{rollResult=[[?{Difficulty?|Normal,1d20|Advantage,2d20kl1|Disadvantage,2d20kh1}cs<1cf>20+?{Modifier|0}]]}}"/>
<input class="sheet-item2B" type="text" name="attr_armadu" data-i18n-title="weapon-du-u" value="Du"/>
<input class="sheet-item2B" type="text" name="attr_armacarga" data-i18n-title="weapon-charges-u" value="0"/>
<details>
<div class="sheet-item2detalles">
<textarea name="attr_armadetalles"></textarea>
</div><!-- end .sheet-armadetalls -->
</details>
</fieldset>
</div><!-- end .sheet-columnweapons -->
</div><!-- end .sheet-columnA -->
<div class="sheet-level">
<div class="sheet-levelname">
<span data-i18n="level-u">LEVEL</span>
</div><!-- end .sheet-levelname -->
<input class="sheet-valorlevel" type="number" max="50" min="0" name="attr_level" data-i18n-title="character-level-u" value="0" style="margin: 0px 0px 0px 25px;" />
<div class="sheet-espai-20"></div><!-- end .sheet-espai-20 -->
<div class="sheet-levelname">
<span data-i18n="roll-u">ROLL</span>
</div><!-- end .sheet-levelname -->
<button type="roll" style="margin:8px 0px 0px 0px; float: right!important;" name="roll_instinto" value="@{tirada_secreta} &{template:bshdice} {{title=@{labellanzaeldado}}} {{subtitle= @{character_name} }} {{tiradados= @{lanzardados} }} {{rollResult= [[@{lanzardados}]]}}" class="sheet-VJBTN" ></button>
<select name="attr_lanzardados" class="sheet-barralanzadados">
<option value="1d4" selected>1D4</option>
<option value="1d6">1D6</option>
<option value="1d8">1D8</option>
<option value="1d10">1D10</option>
<option value="1d12">1D12</option>
<option value="1d20">1D20</option>
</select>
</div><!-- end .sheet-level -->
<div class="sheet-marcavatar"> </div><!-- end .sheet-marcavatar -->
<div class="sheet-avatarbox">
<img name="attr_character_avatar" alt="">
</div><!-- end .sheet-avatar-box -->
<div class="sheet-columnB">
<div class="sheet-espai-30"></div><!-- end .sheet-espai-30 -->
<div class="sheet-width100">
<div class="sheet-tiradasecreta">
<input type="checkbox" class="sheet-check-morat" style="margin: 0px 3px 0px 15px; " value="/w gm" name="attr_tirada_secreta"><span data-i18n="secret-roll-u">Perform your secret rolls, just for the GM.</span>
</div><!-- end .sheet-tiradasecreta -->
</div><!-- end .sheet-width100 -->
<div class="sheet-espai-10"></div><!-- end .sheet-espai-10 -->
<div class="sheet-darksecrets">
<div class="sheet-BSHtitles2">
<span data-i18n="gifts-u">Gifts</span>
</div><!-- end .sheet-BSHtitles2 -->
<textarea style="height:180px;" name="attr_gifts"></textarea>
</div><!-- end .sheet-darksecrets -->
<div class="sheet-espai-20"></div><!-- end .sheet-espai-20 -->
<div class="sheet-darksecrets">
<div class="sheet-BSHtitles2">
<span data-i18n="stories-u">Stories</span>
</div><!-- end .sheet-BSHtitles2 -->
<div class="sheet-BSHtitles2">
<span data-i18n="dark-secrets-u">& Dark Secrets</span>
</div><!-- end .sheet-BSHtitles2 -->
<textarea style="height:240px;" name="attr_stories"></textarea>
</div><!-- end .sheet-darksecrets -->
<div class="sheet-espai-40"></div><!-- end .sheet-espai-40 -->
</div><!-- end .sheet-columnB -->
<div class="sheet-columnvida">
<div class="sheet-damage">
<div class="sheet-vidaname1">
<span data-i18n="character-u">CHARACTER</span>
</div><!-- end .sheet-vidaname1 -->
<div class="sheet-vidaname1">
<span data-i18n="damage-u">DAMAGE</span>
</div><!-- end .sheet-vidaname1 -->
<input class="sheet-valorvida" type="text" max="40" min="0" name="attr_dano" title="" value="d4" style="margin: 5px 0px 0px 5px;" />
<input class="sheet-valorvida" type="text" max="40" min="0" name="attr_danodesarmado" title="" value="d2" style="margin: 5px 0px 0px 5px;" />
<div class="sheet-vidaname2">
<span data-i18n="normal-unarmed-u">Normal/Unarmed</span>
</div><!-- end .sheet-vidaname2 -->
<button type="roll" style="margin: 5px 0px 0px 20px !important; float: left !important;" name="roll_instinto" value="@{tirada_secreta} &{template:bshdice} {{title= @{labelarmeddamage}}} {{subtitle= @{character_name} }} {{tiradados= @{dano} }} {{rollResult=[[?{Difficulty?|Normal,@{dano}|Advantage,2@{dano}kh1|Disadvantage,2@{dano}kl1}+?{Modifier|0}]]}}" class="sheet-VJBTN" ></button>
<button type="roll" style="margin:5px 20px 0px 0px !important; float: right !important;" name="roll_instinto" value="@{tirada_secreta} &{template:bshdice} {{title= @{labeldisarmeddamage}}} {{subtitle= @{character_name} }} {{tiradados= @{danodesarmado} }} {{rollResult=[[?{Difficulty?|Normal,@{danodesarmado}|Advantage,2@{danodesarmado}kh1|Disadvantage,2@{danodesarmado}kl1}+?{Modifier|0}]]}}" class="sheet-VJBTN" ></button>
</div><!-- end .sheet-damage -->
<div class="sheet-doomdie">
<div class="sheet-vidaname1">
<span data-i18n="doom-u">DOOM</span>
</div><!-- end .sheet-vidaname1 -->
<div class="sheet-vidaname1">
<span data-i18n="die-u">DIE</span>
</div><!-- end .sheet-vidaname1 -->
<input class="sheet-valorvida" type="number" max="40" min="0" name="attr_doomdie" title="" value="0" style="margin: 5px 0px 0px 15px;" />
</div><!-- end .sheet-damage -->
<div class="sheet-damage">
<div class="sheet-vidaname1">
<span data-i18n="hit-u">HIT</span>
</div><!-- end .sheet-vidaname1 -->
<div class="sheet-vidaname1">
<span data-i18n="points-u">POINTS</span>
</div><!-- end .sheet-vidaname1 -->
<input class="sheet-valorvida" type="number" max="40" min="0" name="attr_currenthitpoints" title="" value="0" style="margin: 5px 0px 0px 5px;" />
<input class="sheet-valorvida" type="number" max="40" min="0" name="attr_maxhitpoints" title="" value="0" style="margin: 5px 5px 0px 5px;" />
<div class="sheet-vidaname2">
<span data-i18n="actual-total-u">Actual/Total </span>
</div><!-- end .sheet-vidaname2 -->
</div><!-- end .sheet-damage -->
</div><!-- end .sheet-columnvida -->
</div><!-- end .sheet-BSHpergamino -->
<div class="sheet-firma-foot">
BLACK SWORD HACK - Roll20 Character Sheet by VJ Rolmasters
</div><!-- end .sheet-firma-foot -->
<div class="sheet-logoeditorial"></div><!-- end .sheet-logoeditorial -->
<div class="sheet-espai-10"></div><!-- end .sheet-espai-10 -->
<div class="clearfloat"></div>
<input type="hidden" name="attr_labeldefender" />
<input type="hidden" name="attr_labelpruebadefuerza" />
<input type="hidden" name="attr_labelpruebadedestreza" />
<input type="hidden" name="attr_labelpruebadeconstitucion" />
<input type="hidden" name="attr_labelpruebadeinteligencia" />
<input type="hidden" name="attr_labelpruebadesabiduria" />
<input type="hidden" name="attr_labelpruebadecarisma" />
<input type="hidden" name="attr_labellanzaeldado" />
<input type="hidden" name="attr_labelarmeddamage" />
<input type="hidden" name="attr_labeldisarmeddamage" />
<input type="hidden" name="attr_labelparada" />
<input type="hidden" name="attr_labelesquivar" />
<div class="sheet-invisible">
<span data-i18n="labeldefender">DEFENDER</span>
<span data-i18n="labelpruebadefuerza">PRUEBA DE FUERZA</span>
<span data-i18n="labelpruebadedestreza">PRUEBA DE DESTREZA</span>
<span data-i18n="labelpruebadeconstitucion">PRUEBA DE CONSTITUCIÓN</span>
<span data-i18n="labelpruebadeinteligencia">PRUEBA DE INTELIGENCIA</span>
<span data-i18n="labelpruebadesabiduria">PRUEBA DE SABIDURÍA</span>
<span data-i18n="labelpruebadecarisma">PRUEBA DE CARISMA</span>
<span data-i18n="labellanzaeldado">LANZA EL DADO</span>
<span data-i18n="labelarmeddamage">DAÑO ARMADO</span>
<span data-i18n="labeldisarmeddamage">DAÑO DESARMADO</span>
<span data-i18n="labelparada">PARADA</span>
<span data-i18n="labelesquivar">ESQUIVAR</span>
</div><!-- end .sheet-invisible -->
</div><!-- end .sheet-contenedorvj -->
<!-- BLACK SWORD HACK ROLLTEMPLATE -->
<rolltemplate class="sheet-rolltemplate-bsh">
<div class="sheet-fotofondo">
<div class="sheet-header">
{{#subtitle}}<div class="sheet-subtitle">{{subtitle}}</div>{{/subtitle}}
{{#title}}<div class="sheet-title">{{title}}</div>{{/title}}
</div><!-- end .sheet-header -->
<div class="sheet-contento">
{{#caracteristica}}
<div class="sheet-filatemplate1">
<span data-i18n="attribute-u">Attribute</span>: {{caracteristica}}
</div>
{{/caracteristica}}
{{#rollResult}}
<div class="sheet-filatemplate1">
<span data-i18n="result-u">Result</span>: {{rollResult}}
</div>
{{/rollResult}}
<div class="sheet-filatemplate2">
{{#rollLess() rollResult caracteristica}}
<span style="color: green; font-weight: bold;"><span data-i18n="success-u">SUCCESS!</span></span>
{{/rollLess() rollResult caracteristica}}
{{#rollGreater() rollResult caracteristica}}
<span style="color: red; font-weight: bold;"><span data-i18n="faliure-u">YOU HAVE FAILED!</span></span>
{{/rollGreater() rollResult caracteristica}}
{{#rollTotal() rollResult caracteristica}}
<span style="color: orange; font-weight: bold;"><span data-i18n="failed-u">FAILED! SO CLOSE!</span></span>
{{/rollTotal() rollResult caracteristica}}
</div><!-- end .sheet-filatemplate2 -->
</div><!-- end .sheet-contento -->
</div><!-- end .sheet-fotofondo -->
</rolltemplate>
<!-- BLACK SWORD HACK DICE ROLLTEMPLATE -->
<rolltemplate class="sheet-rolltemplate-bshdice">
<div class="sheet-fotofondo">
<div class="sheet-header">
{{#subtitle}}<div class="sheet-subtitle">{{subtitle}}</div>{{/subtitle}}
{{#title}}<div class="sheet-title">{{title}}</div>{{/title}}
</div><!-- end .sheet-header -->
<div class="sheet-contento">
{{#tiradados}}<div class="sheet-filatemplate1"><span data-i18n="roll-u">Roll</span>: {{tiradados}}</div>{{/tiradados}}
{{#rollResult}}<div class="sheet-filatemplate2"><span data-i18n="result-u">Result</span>: {{rollResult}}</div>{{/rollResult}}
</div><!-- end .sheet-contento -->
</div><!-- end .sheet-fotofondo -->
</rolltemplate>
<script type="text/worker">
/* ===== ACTUALIZAR PARADA TEMPLATE SEGÚN EL TIPO DE PARADA ===== */
on("change:tipoparada", function() {
getAttrs(["tipoparada", "labelparada", "labelesquivar"], function(values) {
const tipo = values["tipoparada"];
let nuevoValor = "";
// Traducciones leídas de los spans ocultos (según idioma del usuario)
const paradaTXT = values["labelparada"];
const esquivarTXT = values["labelesquivar"];
switch (tipo) {
case "@{fue}":
nuevoValor = paradaTXT; // Texto traducido
break;
case "@{des}":
nuevoValor = esquivarTXT; // Texto traducido
break;
default:
nuevoValor = "";
}
setAttrs({
paradatemplate: nuevoValor
});
console.log(`Tipo: ${tipo} → plantilla = ${nuevoValor}`);
});
});
on('sheet:opened', function () {
setAttrs({
['labeldefender']: getTranslationByKey('labeldefender'),
['labelpruebadefuerza']: getTranslationByKey('labelpruebadefuerza'),
['labelpruebadedestreza']: getTranslationByKey('labelpruebadedestreza'),
['labelpruebadeconstitucion']: getTranslationByKey('labelpruebadeconstitucion'),
['labelpruebadeinteligencia']: getTranslationByKey('labelpruebadeinteligencia'),
['labelpruebadesabiduria']: getTranslationByKey('labelpruebadesabiduria'),
['labelpruebadecarisma']: getTranslationByKey('labelpruebadecarisma'),
['labellanzaeldado']: getTranslationByKey('labellanzaeldado'),
['labelarmeddamage']: getTranslationByKey('labelarmeddamage'),
['labeldisarmeddamage']: getTranslationByKey('labeldisarmeddamage'),
['labelparada']: getTranslationByKey('labelparada'),
['labelesquivar']: getTranslationByKey('labelesquivar')
});
});
</script>