diff --git a/home/__pycache__/admin.cpython-313.pyc b/home/__pycache__/admin.cpython-313.pyc index 5df01a2..09bac10 100644 Binary files a/home/__pycache__/admin.cpython-313.pyc and b/home/__pycache__/admin.cpython-313.pyc differ diff --git a/home/__pycache__/models.cpython-313.pyc b/home/__pycache__/models.cpython-313.pyc index 5b1bf2b..b482b49 100644 Binary files a/home/__pycache__/models.cpython-313.pyc and b/home/__pycache__/models.cpython-313.pyc differ diff --git a/home/__pycache__/pagos_stripe.cpython-313.pyc b/home/__pycache__/pagos_stripe.cpython-313.pyc new file mode 100644 index 0000000..41900ca Binary files /dev/null and b/home/__pycache__/pagos_stripe.cpython-313.pyc differ diff --git a/home/__pycache__/urls.cpython-313.pyc b/home/__pycache__/urls.cpython-313.pyc index a07f2f1..d487382 100644 Binary files a/home/__pycache__/urls.cpython-313.pyc and b/home/__pycache__/urls.cpython-313.pyc differ diff --git a/home/__pycache__/views.cpython-313.pyc b/home/__pycache__/views.cpython-313.pyc index 449bca5..412a328 100644 Binary files a/home/__pycache__/views.cpython-313.pyc and b/home/__pycache__/views.cpython-313.pyc differ diff --git a/home/admin.py b/home/admin.py index 78d2fc8..ecca5cd 100644 --- a/home/admin.py +++ b/home/admin.py @@ -3,7 +3,7 @@ from django.contrib import admin from django import forms from .models import ( Noticia, ClienteCategoria, SistemaOperativo, ServerSelection, - RecruitAFriend, DownloadClientPage, ContentCreator, RecruitReward, GuildRenameSettings, VoteSite + RecruitAFriend, DownloadClientPage, ContentCreator, RecruitReward, GuildRenameSettings, VoteSite, RenamePrice, CustomizePrice, ChangeRacePrice, ChangeFactionPrice, LevelUpPrice, GoldPrice, TransferPrice ) from django.db import connections import logging @@ -12,6 +12,25 @@ from django_ckeditor_5.widgets import CKEditor5Widget logger = logging.getLogger(__name__) + +@admin.register(ChangeFactionPrice) +class ChangeFactionPriceAdmin(admin.ModelAdmin): + list_display = ('price',) + +@admin.register(GoldPrice) +class GoldPriceAdmin(admin.ModelAdmin): + list_display = ('gold_amount', 'price') + ordering = ('gold_amount',) + + +@admin.register(TransferPrice) +class TransferPriceAdmin(admin.ModelAdmin): + list_display = ('price',) + +@admin.register(LevelUpPrice) +class LevelUpPriceAdmin(admin.ModelAdmin): + list_display = ('price',) + # Formulario para el modelo Noticia class NoticiaAdminForm(forms.ModelForm): class Meta: @@ -20,6 +39,19 @@ class NoticiaAdminForm(forms.ModelForm): widgets = { 'contenido': CKEditor5Widget(config_name='default'), } + +@admin.register(RenamePrice) +class RenamePriceAdmin(admin.ModelAdmin): + list_display = ("price",) + + +@admin.register(CustomizePrice) +class CustomizePriceAdmin(admin.ModelAdmin): + list_display = ("price",) + +@admin.register(ChangeRacePrice) +class ChangeRacePriceAdmin(admin.ModelAdmin): + list_display = ('price',) @admin.register(Noticia) class NoticiaAdmin(admin.ModelAdmin): diff --git a/home/models.py b/home/models.py index f986ee9..28dcd01 100644 --- a/home/models.py +++ b/home/models.py @@ -19,7 +19,90 @@ class Noticia(models.Model): class UnstuckHistory(models.Model): character_name = models.CharField(max_length=50) - used_at = models.DateTimeField() + used_at = models.DateTimeField() + +class ReviveHistory(models.Model): + character_name = models.CharField(max_length=50) + used_at = models.DateTimeField() + + def __str__(self): + return f"{self.character_name} - {self.used_at}" + +class ChangeFactionPrice(models.Model): + price = models.DecimalField(max_digits=6, decimal_places=2, default=10.00) + + def __str__(self): + return f"Precio para cambiar facción: {self.price} EUR" + + +class LevelUpPrice(models.Model): + price = models.DecimalField(max_digits=10, decimal_places=2, default=10.00) + + def __str__(self): + return f"Subir a nivel 80: {self.price} EUR" + + +class GoldPrice(models.Model): + gold_amount = models.IntegerField() # Cantidad de oro + price = models.DecimalField(max_digits=10, decimal_places=2) # Precio en EUR + + def __str__(self): + return f"{self.gold_amount} oro - {self.price} EUR" + + + +class TransferPrice(models.Model): + price = models.DecimalField(max_digits=5, decimal_places=2) + + def __str__(self): + return f"Precio de transferencia: {self.price} EUR" + + +class StoreCategory(models.Model): + name = models.CharField(max_length=100) + parent_category = models.ForeignKey('self', null=True, blank=True, on_delete=models.CASCADE) + + def __str__(self): + return self.name + +class StoreItem(models.Model): + name = models.CharField(max_length=200) + item_id = models.IntegerField() + category = models.ForeignKey(StoreCategory, on_delete=models.CASCADE) + image_url = models.URLField() + price = models.DecimalField(max_digits=6, decimal_places=2) # Precio en euros + + def __str__(self): + return self.name + +class Cart(models.Model): + username = models.CharField(max_length=150) # Para almacenar el nombre de usuario + item = models.ForeignKey(StoreItem, on_delete=models.CASCADE) + added_at = models.DateTimeField(auto_now_add=True) + + def total_price(self): + return self.item.price + + +class RenamePrice(models.Model): + price = models.DecimalField(max_digits=5, decimal_places=2, default=2.00) + + def __str__(self): + return f"{self.price} EUR" + + +class CustomizePrice(models.Model): + price = models.DecimalField(max_digits=5, decimal_places=2, default=1.00) + + def __str__(self): + return f"{self.price} EUR" + + +class ChangeRacePrice(models.Model): + price = models.DecimalField(max_digits=5, decimal_places=2) + + def __str__(self): + return f"Cambiar raza: {self.price} EUR" class ClienteCategoria(models.Model): diff --git a/home/pagos_stripe.py b/home/pagos_stripe.py new file mode 100644 index 0000000..d46362c --- /dev/null +++ b/home/pagos_stripe.py @@ -0,0 +1,24 @@ +import stripe +from django.conf import settings + +stripe.api_key = settings.STRIPE_SECRET_KEY + +def create_checkout_session(amount, currency="eur", success_url=None, cancel_url=None): + try: + session = stripe.checkout.Session.create( + payment_method_types=["card"], + line_items=[{ + "price_data": { + "currency": currency, + "product_data": {"name": "Renombrar personaje"}, + "unit_amount": int(amount * 100), # Convertir euros a centavos + }, + "quantity": 1, + }], + mode="payment", + success_url=success_url, + cancel_url=cancel_url, + ) + return {"success": True, "session_id": session.id} + except Exception as e: + return {"success": False, "error": str(e)} diff --git a/home/static/nw-themes/nw-ryu/nw-js-handlers/change_faction_response.js b/home/static/nw-themes/nw-ryu/nw-js-handlers/change_faction_response.js new file mode 100644 index 0000000..909c96a --- /dev/null +++ b/home/static/nw-themes/nw-ryu/nw-js-handlers/change_faction_response.js @@ -0,0 +1,45 @@ +if (window.history.replaceState) { + window.history.replaceState(null, null, window.location.href); +}; + +$(function(){ + $('.change-faction-button').on('click', function(e) { + e.preventDefault(); + $("#change-faction-response").empty(); + + var button = $(this); + var buttonoriginal = button.html(); + var data = $("#nw-change-faction-form").serialize(); + + var conf = confirm("¿Estás seguro de cambiar de facción al personaje seleccionado?"); + + if (conf === true) { + changeButton(button, 'Procesando pago...'); + + $.ajax({ + type: 'POST', + url: '', // URL actual + data: data, + dataType: 'json', + success: function(response) { + if (response.success) { + var stripe = Stripe(response.stripe_public_key); + stripe.redirectToCheckout({ sessionId: response.session_id }).then(function(result) { + if (result.error) { + $("#change-faction-response").append('' + result.error.message + '').hide().slideDown(); + restoreButton(button, buttonoriginal); + } + }); + } else { + $("#change-faction-response").append(response.message).hide().slideDown(); + restoreButton(button, buttonoriginal); + } + }, + error: function() { + $("#change-faction-response").append('Error inesperado. Por favor, intente más tarde.').hide().slideDown(); + restoreButton(button, buttonoriginal); + } + }); + } + }); +}); diff --git a/home/static/nw-themes/nw-ryu/nw-js-handlers/change_race_response.js b/home/static/nw-themes/nw-ryu/nw-js-handlers/change_race_response.js new file mode 100644 index 0000000..d23a799 --- /dev/null +++ b/home/static/nw-themes/nw-ryu/nw-js-handlers/change_race_response.js @@ -0,0 +1,73 @@ +if (window.history.replaceState) { + window.history.replaceState(null, null, window.location.href); +} + +function doRefresh() { + $("#nw-change-race-form").load(document.URL + " #nw-change-race-form>*", function () { + $.getScript('nw-js-handlers/change_race_response.js'); + }); +} + +$(function () { + $('select').on('change', function () { + var select = $(this); + select.css('color', select.children('option:selected').css('color')); + }); +}); + +$(function () { + $('.change-race-button').on('click', function (e) { + e.preventDefault(); + e.stopPropagation(); + $("#change-race-response").empty(); + + var button = $(this); + var buttonoriginal = button.html(); + var data = $("#nw-change-race-form").serialize(); + + var conf = confirm("¿Estás seguro de cambiar de raza al personaje seleccionado?"); + if (conf === true) { + changeButton(button, 'Procesando pago...'); + + $.ajax({ + type: 'POST', + url: '', // La URL para manejar la solicitud POST + data: data, + dataType: 'json', + success: function (response) { + if (response.success) { + // Verificar si Stripe.js está disponible + if (typeof Stripe === 'undefined') { + console.error("Stripe.js no está cargado."); + $("#change-race-response").append('Error al cargar Stripe. Intente nuevamente más tarde.').hide().slideDown(); + restoreButton(button, buttonoriginal); + return; + } + + // Inicializar Stripe con la clave pública + var stripe = Stripe(response.stripe_public_key); + + // Redirigir al checkout de Stripe + stripe.redirectToCheckout({ + sessionId: response.session_id + }).then(function (result) { + if (result.error) { + $("#change-race-response").append('' + result.error.message + '').hide().slideDown(); + restoreButton(button, buttonoriginal); + } + }); + } else { + $("#change-race-response").append(response.message).hide().slideDown(); + restoreButton(button, buttonoriginal); + } + }, + error: function () { + setTimeout(function () { + alert("Algo ha salido mal. Por favor intente más tarde"); + window.location.reload(); + }, 2000); + } + }); + } + }); +}); diff --git a/home/static/nw-themes/nw-ryu/nw-js-handlers/customize_response.js b/home/static/nw-themes/nw-ryu/nw-js-handlers/customize_response.js new file mode 100644 index 0000000..309f606 --- /dev/null +++ b/home/static/nw-themes/nw-ryu/nw-js-handlers/customize_response.js @@ -0,0 +1,52 @@ +if (window.history.replaceState) { + window.history.replaceState(null, null, window.location.href); +} + +$(function(){ + $('.customize-button').on('click', function(e) { + e.preventDefault(); + $("#customize-response").empty(); + + var button = $(this); + var buttonoriginal = button.html(); + var data = $("#nw-customize-form").serialize(); + + var conf = confirm("¿Estás seguro de personalizar al personaje seleccionado?"); + + if (conf === true) { + button.html("Procesando pago..."); + button.prop("disabled", true); + + $.ajax({ + type: 'POST', + url: '', // Endpoint para manejar el POST + data: data, + dataType: 'json', + success: function(response) { + if (response.success) { + var stripe = Stripe(response.stripe_public_key); + + stripe.redirectToCheckout({ + sessionId: response.session_id + }).then(function(result) { + if (result.error) { + $("#customize-response").html('' + result.error.message + ''); + button.html(buttonoriginal); + button.prop("disabled", false); + } + }); + } else { + $("#customize-response").html(response.message); + button.html(buttonoriginal); + button.prop("disabled", false); + } + }, + error: function() { + $("#customize-response").html('Algo salió mal. Intenta de nuevo.'); + button.html(buttonoriginal); + button.prop("disabled", false); + } + }); + } + }); +}); diff --git a/home/static/nw-themes/nw-ryu/nw-js-handlers/gold_response.js b/home/static/nw-themes/nw-ryu/nw-js-handlers/gold_response.js new file mode 100644 index 0000000..b2597c8 --- /dev/null +++ b/home/static/nw-themes/nw-ryu/nw-js-handlers/gold_response.js @@ -0,0 +1,35 @@ +$(function(){ + $('.gold-button').on('click', function(e) { + e.preventDefault(); + $("#gold-response").empty(); + + var button = $(this); + var originalText = button.html(); + var data = $("#uw-gold-form").serialize(); + + button.html('Procesando pago...'); + button.prop('disabled', true); + + $.ajax({ + type: 'POST', + url: '', + data: data, + dataType: 'json', + success: function(response) { + if (response.success) { + var stripe = Stripe(response.stripe_public_key); + stripe.redirectToCheckout({ sessionId: response.session_id }); + } else { + $("#gold-response").append(response.message).hide().slideDown(); + button.html(originalText); + button.prop('disabled', false); + } + }, + error: function() { + $("#gold-response").append('Error inesperado. Por favor, intente más tarde.').hide().slideDown(); + button.html(originalText); + button.prop('disabled', false); + } + }); + }); +}); diff --git a/home/static/nw-themes/nw-ryu/nw-js-handlers/level_up_response.js b/home/static/nw-themes/nw-ryu/nw-js-handlers/level_up_response.js new file mode 100644 index 0000000..ac7e4ae --- /dev/null +++ b/home/static/nw-themes/nw-ryu/nw-js-handlers/level_up_response.js @@ -0,0 +1,47 @@ +if (window.history.replaceState) { + window.history.replaceState(null, null, window.location.href); +} + +$(function() { + $('.level-up-button').on('click', function(e) { + e.preventDefault(); + $("#levelup-response").empty(); + + var button = $(this); + var buttonoriginal = button.html(); + var data = $("#nw-levelup-form").serialize(); + + var conf = confirm("¿Estás seguro de subir al nivel 80 al personaje seleccionado?"); + + if (conf === true) { + changeButton(button, 'Procesando pago...'); + + $.ajax({ + type: 'POST', + url: '', + data: data, + dataType: 'json', + success: function(response) { + if (response.success) { + var stripe = Stripe(response.stripe_public_key); + stripe.redirectToCheckout({ + sessionId: response.session_id + }).then(function(result) { + if (result.error) { + $("#levelup-response").append('' + result.error.message + '').hide().slideDown(); + restoreButton(button, buttonoriginal); + } + }); + } else { + $("#levelup-response").append(response.message).hide().slideDown(); + restoreButton(button, buttonoriginal); + } + }, + error: function() { + $("#levelup-response").append('Error inesperado. Por favor intente más tarde.').hide().slideDown(); + restoreButton(button, buttonoriginal); + } + }); + } + }); +}); diff --git a/home/static/nw-themes/nw-ryu/nw-js-handlers/login_response.js b/home/static/nw-themes/nw-ryu/nw-js-handlers/login_response.js index b297c24..8e79be1 100644 --- a/home/static/nw-themes/nw-ryu/nw-js-handlers/login_response.js +++ b/home/static/nw-themes/nw-ryu/nw-js-handlers/login_response.js @@ -45,7 +45,7 @@ $(function() { // Serializar datos para el envío const bValue = button.data('id'); let data = { login: bValue }; - data = $("#uw-login-form").serialize() + '&' + $.param(data); + data = $("#nw-login-form").serialize() + '&' + $.param(data); $.ajax({ type: 'POST', diff --git a/home/static/nw-themes/nw-ryu/nw-js-handlers/register.js b/home/static/nw-themes/nw-ryu/nw-js-handlers/register.js index 741d09e..7a11f63 100644 --- a/home/static/nw-themes/nw-ryu/nw-js-handlers/register.js +++ b/home/static/nw-themes/nw-ryu/nw-js-handlers/register.js @@ -1,6 +1,6 @@ $(function() { // Manejar el envío del formulario de creación de cuenta - $('#uw-create-form').on('submit', function(e) { + $('#nw-create-form').on('submit', function(e) { e.preventDefault(); const data = $(this).serialize(); const createResponse = $("#create-response"); diff --git a/home/static/nw-themes/nw-ryu/nw-js-handlers/rename_response.js b/home/static/nw-themes/nw-ryu/nw-js-handlers/rename_response.js new file mode 100644 index 0000000..baa0fa1 --- /dev/null +++ b/home/static/nw-themes/nw-ryu/nw-js-handlers/rename_response.js @@ -0,0 +1,75 @@ +if (window.history.replaceState) { + window.history.replaceState(null, null, window.location.href); +} + +$(document).ready(function () { + // Mostrar mensaje de cancelación si está presente en el backend + const cancelMessage = $("#rename-response").data("cancel-message"); + if (cancelMessage) { + $("#rename-response").html(cancelMessage).hide().slideDown(); + } + + // Manejar clics en el botón de renombrar + $('.rename-button').on('click', function (e) { + e.preventDefault(); + $("#rename-response").empty(); + + const button = $(this); + const originalText = button.html(); + const data = $("#nw-rename-form").serialize(); + + // Confirmar antes de proceder con el pago + const conf = confirm("¿Estás seguro de renombrar al personaje seleccionado?"); + if (!conf) return; + + // Cambiar texto del botón mientras procesa + changeButton(button, 'Procesando pago...'); + + $.ajax({ + type: 'POST', + url: '', // URL para manejar el POST + data: data, + dataType: 'json', + success: function (response) { + if (response.success) { + // Verificar que Stripe está cargado + if (typeof Stripe === 'undefined') { + console.error("Stripe.js no está cargado."); + $("#rename-response").append('Error al cargar Stripe. Intente nuevamente más tarde.').hide().slideDown(); + restoreButton(button, originalText); + return; + } + + // Redirigir a Stripe Checkout + const stripe = Stripe(response.stripe_public_key); + stripe.redirectToCheckout({ sessionId: response.session_id }).then(function (result) { + if (result.error) { + $("#rename-response").append('' + result.error.message + '').hide().slideDown(); + restoreButton(button, originalText); + } + }); + } else { + // Mostrar mensaje de error del backend + $("#rename-response").append(response.message).hide().slideDown(); + restoreButton(button, originalText); + } + }, + error: function () { + $("#rename-response").append('Error inesperado. Por favor, intente más tarde.').hide().slideDown(); + restoreButton(button, originalText); + } + }); + }); +}); + +// Función para cambiar el texto del botón y desactivarlo +function changeButton(button, text) { + button.html(text); + button.prop("disabled", true); +} + +// Función para restaurar el texto y habilitar el botón +function restoreButton(button, originalText) { + button.html(originalText); + button.prop("disabled", false); +} diff --git a/home/static/nw-themes/nw-ryu/nw-js-handlers/revive_response.js b/home/static/nw-themes/nw-ryu/nw-js-handlers/revive_response.js new file mode 100644 index 0000000..48fccbf --- /dev/null +++ b/home/static/nw-themes/nw-ryu/nw-js-handlers/revive_response.js @@ -0,0 +1,37 @@ +$(document).ready(function() { + $('.revive-button').on('click', function(e) { + e.preventDefault(); + $("#revive-response").empty(); + + var button = $(this); + var originalText = button.html(); + var data = $("#nw-revive-form").serialize(); + + button.html("Reviviendo..."); + button.prop("disabled", true); + + $.ajax({ + type: 'POST', + url: '', + data: data, + dataType: 'json', + success: function(response) { + $("#revive-response").html(response.message).hide().slideDown(); + if (response.success) { + button.html("Revivido"); + setTimeout(function() { + location.reload(); // Refrescar para actualizar el formulario + }, 5000); + } else { + button.html(originalText); + button.prop("disabled", false); + } + }, + error: function(xhr, status, error) { + $("#revive-response").html('Algo salió mal. Intente nuevamente.'); + button.html(originalText); + button.prop("disabled", false); + } + }); + }); +}); diff --git a/home/static/nw-themes/nw-ryu/nw-js-handlers/security_token_response.js b/home/static/nw-themes/nw-ryu/nw-js-handlers/security_token_response.js index 55a0afb..d3550ac 100644 --- a/home/static/nw-themes/nw-ryu/nw-js-handlers/security_token_response.js +++ b/home/static/nw-themes/nw-ryu/nw-js-handlers/security_token_response.js @@ -4,7 +4,7 @@ $(function() { var button = $(this); var originalText = button.html(); - var data = $("#uw-sec-token-form").serialize(); + var data = $("#nw-sec-token-form").serialize(); // Cambiar el texto del botón a "Solicitando token" changeButton(button, 'Solicitando token'); diff --git a/home/static/nw-themes/nw-ryu/nw-js-handlers/store_response.js b/home/static/nw-themes/nw-ryu/nw-js-handlers/store_response.js new file mode 100644 index 0000000..814d5ac --- /dev/null +++ b/home/static/nw-themes/nw-ryu/nw-js-handlers/store_response.js @@ -0,0 +1,28 @@ +$(document).ready(function() { + $('.add-to-cart').on('click', function() { + var itemId = $(this).data('item-id'); + $.post('/store/add_to_cart/', {item_id: itemId}, function(response) { + alert(response.message); + location.reload(); + }); + }); + + $('.remove-from-cart').on('click', function() { + var cartId = $(this).data('cart-id'); + $.post('/store/remove_from_cart/', {cart_id: cartId}, function(response) { + alert(response.message); + location.reload(); + }); + }); + + $('#checkout-button').on('click', function() { + $.post('/store/checkout/', {}, function(response) { + if (response.success) { + var stripe = Stripe(response.stripe_public_key); + stripe.redirectToCheckout({ sessionId: response.session_id }); + } else { + alert(response.message); + } + }); + }); +}); diff --git a/home/static/nw-themes/nw-ryu/nw-js-handlers/trade_points_response.js b/home/static/nw-themes/nw-ryu/nw-js-handlers/trade_points_response.js index e9e9105..ee4bbf6 100644 --- a/home/static/nw-themes/nw-ryu/nw-js-handlers/trade_points_response.js +++ b/home/static/nw-themes/nw-ryu/nw-js-handlers/trade_points_response.js @@ -1,4 +1,4 @@ -if(window.history.replaceState){window.history.replaceState(null,null,window.location.href);};$(function(){$('select').on('change',function(){var select=$(this);select.css('color',select.children('option:selected').css('color'));});});$(function(){$('#trade-sell-a').on('click',function(){$('#trade-sell-div').fadeIn('slow');$('#trade-buy-div').hide();});$('#trade-buy-a').on('click',function(){$('#trade-buy-div').fadeIn('slow');$('#trade-sell-div').hide();});});$(function(){$(".toggle-password").click(function(){$(this).toggleClass("fa-eye fa-eye-slash");var type=$(this).hasClass("fa-eye-slash")?"text":"password";$("#password-sell").attr("type",type);});});$(function(){$(".toggle-password").click(function(){$(this).toggleClass("fa-eye fa-eye-slash");var type=$(this).hasClass("fa-eye-slash")?"text":"password";$("#password-buy").attr("type",type);});});$(function(){$(".toggle-token").click(function(){$(this).toggleClass("fa-eye fa-eye-slash");var type=$(this).hasClass("fa-eye-slash")?"text":"password";$("#security-token-sell").attr("type",type);});});$(function(){$(".toggle-token").click(function(){$(this).toggleClass("fa-eye fa-eye-slash");var type=$(this).hasClass("fa-eye-slash")?"text":"password";$("#security-token-buy").attr("type",type);});});$(function(){$('.trade-points-sell-button').on('click',function(e){e.preventDefault();e.stopPropagation();$("#trade-points-sell-response").empty();var button=$(this);var buttonoriginal=button.html();var data={tradepointssell:button.data('id')};data=$("#uw-trade-points-sell-form").serialize()+'&'+$.param(data);changeButton(button,'CREANDO CÓDIGO');$.ajax({type:'POST',url:'',data:data,dataType:'json',success:function(data){$("#trade-points-sell-response").append(data.message).hide().slideDown();if(data.success===true){button.html("CÓDIGO CREADO");button.css("color","#d79602");setTimeout(function(){$("#uw-trade-points-sell-form")[0].reset();restoreButton(button,buttonoriginal);grecaptcha.reset(0);},5000);} -else{setTimeout(function(){$("#trade-points-sell-response").slideUp(function(){$("#trade-points-sell-response").empty();restoreButton(button,buttonoriginal);grecaptcha.reset(0);});},5000);}},error:function(){setTimeout(function(){alert("Algo ha salido mal. Por favor intente más tarde");window.location.reload();},2000);}});});});$(function(){$('.trade-points-buy-button').on('click',function(e){e.preventDefault();e.stopPropagation();$("#trade-points-buy-response").empty();$(".trade-points-check-button").prop('disabled',true);var button=$(this);var buttonoriginal=button.html();var data={tradepointsbuy:button.data('id')};data=$("#uw-trade-points-buy-form").serialize()+'&'+$.param(data);changeButton(button,'CANJEANDO CÓDIGO');$.ajax({type:'POST',url:'',data:data,dataType:'json',success:function(data){$("#trade-points-buy-response").append(data.message).hide().slideDown();if(data.success===true){button.html("CÓDIGO CANJEADO");button.css("color","#d79602");setTimeout(function(){$("#uw-trade-points-buy-form")[0].reset();$(".trade-points-check-button").prop('disabled',false);restoreButton(button,buttonoriginal);grecaptcha.reset(1);},5000);} -else{setTimeout(function(){$("#trade-points-buy-response").slideUp(function(){$("#trade-points-buy-response").empty();$(".trade-points-check-button").prop('disabled',false);restoreButton(button,buttonoriginal);grecaptcha.reset(1);});},5000);}},error:function(){setTimeout(function(){alert("Algo ha salido mal. Por favor intente más tarde");window.location.reload();},2000);}});});});$(function(){$('.trade-points-check-button').on('click',function(e){e.preventDefault();e.stopPropagation();$("#trade-points-buy-response").empty();$(".trade-points-buy-button").prop('disabled',true);var button=$(this);var buttonoriginal=button.html();var data={tradepointscheck:button.data('id')};data=$("#uw-trade-points-buy-form").serialize()+'&'+$.param(data);changeButton(button,'CHEQUEANDO CÓDIGO');$.ajax({type:'POST',url:'',data:data,dataType:'json',success:function(data){$("#trade-points-buy-response").append(data.message).hide().slideDown();if(data.success===true){button.html("INFO DEL CÓDIGO");button.css("color","#d79602");setTimeout(function(){$(".trade-points-buy-button").prop('disabled',false);restoreButton(button,buttonoriginal);grecaptcha.reset(1);},5000);} +if(window.history.replaceState){window.history.replaceState(null,null,window.location.href);};$(function(){$('select').on('change',function(){var select=$(this);select.css('color',select.children('option:selected').css('color'));});});$(function(){$('#trade-sell-a').on('click',function(){$('#trade-sell-div').fadeIn('slow');$('#trade-buy-div').hide();});$('#trade-buy-a').on('click',function(){$('#trade-buy-div').fadeIn('slow');$('#trade-sell-div').hide();});});$(function(){$(".toggle-password").click(function(){$(this).toggleClass("fa-eye fa-eye-slash");var type=$(this).hasClass("fa-eye-slash")?"text":"password";$("#password-sell").attr("type",type);});});$(function(){$(".toggle-password").click(function(){$(this).toggleClass("fa-eye fa-eye-slash");var type=$(this).hasClass("fa-eye-slash")?"text":"password";$("#password-buy").attr("type",type);});});$(function(){$(".toggle-token").click(function(){$(this).toggleClass("fa-eye fa-eye-slash");var type=$(this).hasClass("fa-eye-slash")?"text":"password";$("#security-token-sell").attr("type",type);});});$(function(){$(".toggle-token").click(function(){$(this).toggleClass("fa-eye fa-eye-slash");var type=$(this).hasClass("fa-eye-slash")?"text":"password";$("#security-token-buy").attr("type",type);});});$(function(){$('.trade-points-sell-button').on('click',function(e){e.preventDefault();e.stopPropagation();$("#trade-points-sell-response").empty();var button=$(this);var buttonoriginal=button.html();var data={tradepointssell:button.data('id')};data=$("#nw-trade-points-sell-form").serialize()+'&'+$.param(data);changeButton(button,'CREANDO CÓDIGO');$.ajax({type:'POST',url:'',data:data,dataType:'json',success:function(data){$("#trade-points-sell-response").append(data.message).hide().slideDown();if(data.success===true){button.html("CÓDIGO CREADO");button.css("color","#d79602");setTimeout(function(){$("#nw-trade-points-sell-form")[0].reset();restoreButton(button,buttonoriginal);grecaptcha.reset(0);},5000);} +else{setTimeout(function(){$("#trade-points-sell-response").slideUp(function(){$("#trade-points-sell-response").empty();restoreButton(button,buttonoriginal);grecaptcha.reset(0);});},5000);}},error:function(){setTimeout(function(){alert("Algo ha salido mal. Por favor intente más tarde");window.location.reload();},2000);}});});});$(function(){$('.trade-points-buy-button').on('click',function(e){e.preventDefault();e.stopPropagation();$("#trade-points-buy-response").empty();$(".trade-points-check-button").prop('disabled',true);var button=$(this);var buttonoriginal=button.html();var data={tradepointsbuy:button.data('id')};data=$("#nw-trade-points-buy-form").serialize()+'&'+$.param(data);changeButton(button,'CANJEANDO CÓDIGO');$.ajax({type:'POST',url:'',data:data,dataType:'json',success:function(data){$("#trade-points-buy-response").append(data.message).hide().slideDown();if(data.success===true){button.html("CÓDIGO CANJEADO");button.css("color","#d79602");setTimeout(function(){$("#nw-trade-points-buy-form")[0].reset();$(".trade-points-check-button").prop('disabled',false);restoreButton(button,buttonoriginal);grecaptcha.reset(1);},5000);} +else{setTimeout(function(){$("#trade-points-buy-response").slideUp(function(){$("#trade-points-buy-response").empty();$(".trade-points-check-button").prop('disabled',false);restoreButton(button,buttonoriginal);grecaptcha.reset(1);});},5000);}},error:function(){setTimeout(function(){alert("Algo ha salido mal. Por favor intente más tarde");window.location.reload();},2000);}});});});$(function(){$('.trade-points-check-button').on('click',function(e){e.preventDefault();e.stopPropagation();$("#trade-points-buy-response").empty();$(".trade-points-buy-button").prop('disabled',true);var button=$(this);var buttonoriginal=button.html();var data={tradepointscheck:button.data('id')};data=$("#nw-trade-points-buy-form").serialize()+'&'+$.param(data);changeButton(button,'CHEQUEANDO CÓDIGO');$.ajax({type:'POST',url:'',data:data,dataType:'json',success:function(data){$("#trade-points-buy-response").append(data.message).hide().slideDown();if(data.success===true){button.html("INFO DEL CÓDIGO");button.css("color","#d79602");setTimeout(function(){$(".trade-points-buy-button").prop('disabled',false);restoreButton(button,buttonoriginal);grecaptcha.reset(1);},5000);} else{setTimeout(function(){$("#trade-points-buy-response").slideUp(function(){$("#trade-points-buy-response").empty();$(".trade-points-buy-button").prop('disabled',false);restoreButton(button,buttonoriginal);grecaptcha.reset(1);});},5000);}},error:function(){setTimeout(function(){alert("Algo ha salido mal. Por favor intente más tarde");window.location.reload();},2000);}});});}); \ No newline at end of file diff --git a/home/static/nw-themes/nw-ryu/nw-js-handlers/transfer_character_response.js b/home/static/nw-themes/nw-ryu/nw-js-handlers/transfer_character_response.js new file mode 100644 index 0000000..311d2ec --- /dev/null +++ b/home/static/nw-themes/nw-ryu/nw-js-handlers/transfer_character_response.js @@ -0,0 +1,37 @@ +$(function(){ + $('.transfer-button').on('click', function(e) { + e.preventDefault(); + $("#transfer-character-response").empty(); + + var button = $(this); + var originalText = button.text(); + var data = $("#uw-transfer-character-form").serialize(); + + button.text("Procesando pago..."); + button.prop("disabled", true); + + $.ajax({ + type: 'POST', + url: '', // URL de transferencia + data: data, + dataType: 'json', + success: function(response) { + if (response.success) { + var stripe = Stripe(response.stripe_public_key); + stripe.redirectToCheckout({ + sessionId: response.session_id + }); + } else { + $("#transfer-character-response").append(response.message).hide().slideDown(); + button.text(originalText); + button.prop("disabled", false); + } + }, + error: function() { + $("#transfer-character-response").append('Error inesperado. Intente más tarde.').hide().slideDown(); + button.text(originalText); + button.prop("disabled", false); + } + }); + }); +}); diff --git a/home/static/nw-themes/nw-ryu/nw-js-handlers/unstuck_response.js b/home/static/nw-themes/nw-ryu/nw-js-handlers/unstuck_response.js index ab7bb27..8e8cd6d 100644 --- a/home/static/nw-themes/nw-ryu/nw-js-handlers/unstuck_response.js +++ b/home/static/nw-themes/nw-ryu/nw-js-handlers/unstuck_response.js @@ -6,7 +6,7 @@ $(function() { var button = $(this); var originalText = button.html(); - var data = $("#uw-unstuck-form").serialize(); + var data = $("#nw-unstuck-form").serialize(); button.html("Desbloqueando..."); button.prop("disabled", true); @@ -22,7 +22,7 @@ $(function() { if (data.success) { button.html("Desbloqueado"); setTimeout(function() { - $("#uw-unstuck-form")[0].reset(); + $("#nw-unstuck-form")[0].reset(); button.html(originalText); button.prop("disabled", false); }, 5000); diff --git a/home/templates/account/change_faction.html b/home/templates/account/change_faction.html new file mode 100644 index 0000000..aea0f0c --- /dev/null +++ b/home/templates/account/change_faction.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/change_faction.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/change_faction_cancel.html b/home/templates/account/change_faction_cancel.html new file mode 100644 index 0000000..67bc908 --- /dev/null +++ b/home/templates/account/change_faction_cancel.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/change_faction_cancel.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/change_faction_success.html b/home/templates/account/change_faction_success.html new file mode 100644 index 0000000..54b72a2 --- /dev/null +++ b/home/templates/account/change_faction_success.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/change_faction_success.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/change_race.html b/home/templates/account/change_race.html new file mode 100644 index 0000000..105bd6d --- /dev/null +++ b/home/templates/account/change_race.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/change_race.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/change_race_cancel.html b/home/templates/account/change_race_cancel.html new file mode 100644 index 0000000..a8c733c --- /dev/null +++ b/home/templates/account/change_race_cancel.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/change_race_success.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/change_race_success.html b/home/templates/account/change_race_success.html new file mode 100644 index 0000000..a8c733c --- /dev/null +++ b/home/templates/account/change_race_success.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/change_race_success.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/customize_character.html b/home/templates/account/customize_character.html new file mode 100644 index 0000000..8f28f6e --- /dev/null +++ b/home/templates/account/customize_character.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/customize_character.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/customize_success.html b/home/templates/account/customize_success.html new file mode 100644 index 0000000..871800a --- /dev/null +++ b/home/templates/account/customize_success.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/customize_success.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/gold_cancel.html b/home/templates/account/gold_cancel.html new file mode 100644 index 0000000..fa9adf7 --- /dev/null +++ b/home/templates/account/gold_cancel.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/gold_cancel.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/gold_character.html b/home/templates/account/gold_character.html new file mode 100644 index 0000000..729f360 --- /dev/null +++ b/home/templates/account/gold_character.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/gold_character.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/gold_success.html b/home/templates/account/gold_success.html new file mode 100644 index 0000000..5bfc409 --- /dev/null +++ b/home/templates/account/gold_success.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/gold_success.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/level_up.html b/home/templates/account/level_up.html new file mode 100644 index 0000000..2361013 --- /dev/null +++ b/home/templates/account/level_up.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/level_up.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/level_up_cancel.html b/home/templates/account/level_up_cancel.html new file mode 100644 index 0000000..0d3de10 --- /dev/null +++ b/home/templates/account/level_up_cancel.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/level_up_cancel.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/level_up_success.html b/home/templates/account/level_up_success.html new file mode 100644 index 0000000..0898ee6 --- /dev/null +++ b/home/templates/account/level_up_success.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/level_up_success.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/rename_cancel.html b/home/templates/account/rename_cancel.html new file mode 100644 index 0000000..b5c1281 --- /dev/null +++ b/home/templates/account/rename_cancel.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/rename_cancel.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/rename_character.html b/home/templates/account/rename_character.html new file mode 100644 index 0000000..94ad7f2 --- /dev/null +++ b/home/templates/account/rename_character.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/rename_character.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/rename_success.html b/home/templates/account/rename_success.html new file mode 100644 index 0000000..4b62dbf --- /dev/null +++ b/home/templates/account/rename_success.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/rename_success.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/revive_character.html b/home/templates/account/revive_character.html new file mode 100644 index 0000000..f3a0c0e --- /dev/null +++ b/home/templates/account/revive_character.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/revive_character.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/store_novawow.html b/home/templates/account/store_novawow.html new file mode 100644 index 0000000..e0d6ad6 --- /dev/null +++ b/home/templates/account/store_novawow.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/store_novawow.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/transfer_cancel.html b/home/templates/account/transfer_cancel.html new file mode 100644 index 0000000..c1fb1d6 --- /dev/null +++ b/home/templates/account/transfer_cancel.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/transfer_cancel.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/transfer_character.html b/home/templates/account/transfer_character.html new file mode 100644 index 0000000..fb6577e --- /dev/null +++ b/home/templates/account/transfer_character.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/transfer_character.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/account/transfer_success.html b/home/templates/account/transfer_success.html new file mode 100644 index 0000000..a7c10a1 --- /dev/null +++ b/home/templates/account/transfer_success.html @@ -0,0 +1,9 @@ + + + {% include 'partials/head.html' %} + {% include 'partials/header.html' %} + {% include 'partials/video.html' %} + {% include 'partials/transfer_success.html' %} + {% include 'partials/social.html' %} + {% include 'partials/footer.html' %} + {% include 'partials/final.html' %} \ No newline at end of file diff --git a/home/templates/partials/change_faction.html b/home/templates/partials/change_faction.html new file mode 100644 index 0000000..e06e5b7 --- /dev/null +++ b/home/templates/partials/change_faction.html @@ -0,0 +1,77 @@ +
+
+
+

Cambiar facción del personaje

+
+ +
+
+

La herramienta Cambiar facción del personaje te permite cambiar de la Alianza a la Horda y viceversa.

+

Si también deseas cambiar el nombre del personaje, debes usar la herramienta Renombrar personaje.

+
+

Al hacer un cambio de Facción:

+

- Los items, hechizos, títulos, reputaciones, monturas y logros se cambiarán a la nueva facción

+

- Las misiones activas en el Registro de misiones serán abandonadas

+

- Los teams de arena seán borrados

+

- Los amigos en la Lista de amigos se borrarán

+
+

Restricciones del personaje:

+

- No debe tener subastas activas

+

- No debe tener correos en el buzón

+

- No debe capitán de un team de arenas

+

- No debe ser miembro de una hermandad

+

- No debe tener demasiado oro

+
+ + + + + + + + + + + + + + + + + + + + + +
NivelMax. Oro
10-30300
31-501000
51-705000
71-8020000
+
+

Al usar el botón CAMBIAR FACCIÓN del personaje que hayas escogido, se enviará una petición de cambio de facción de dicho personaje.

+

Cuando ingreses a la lista de personajes de tu cuenta, verás un ícono a la izquierda de tu personaje escogido.

+

Al darle click a dicho ícono ingresarás al menú de edición de personaje que te permitirá pasar a la facción contraria.

+
+
+ NOTA +
+

Por favor, asegúrate de haber escogido al personaje correcto ya que esta acción no es reversible una vez realizada.

+
+
+
+ +
+ +
+
+
+
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/home/templates/partials/change_faction_cancel.html b/home/templates/partials/change_faction_cancel.html new file mode 100644 index 0000000..e69de29 diff --git a/home/templates/partials/change_faction_success.html b/home/templates/partials/change_faction_success.html new file mode 100644 index 0000000..e69de29 diff --git a/home/templates/partials/change_race.html b/home/templates/partials/change_race.html new file mode 100644 index 0000000..b052373 --- /dev/null +++ b/home/templates/partials/change_race.html @@ -0,0 +1,46 @@ +
+
+
+

Cambiar raza del personaje

+
+ +
+
+

La herramienta Cambiar raza del personaje te permite cambiar la raza del personaje entre otras de la misma facción.

+

Si también deseas cambiar el nombre del personaje, debes usar la herramienta Renombrar personaje.

+
+

Al usar el botón CAMBIAR RAZA del personaje que hayas escogido, se enviará una petición de cambio de raza de dicho personaje.

+

Cuando ingreses a la lista de personajes de tu cuenta, verás un ícono a la izquierda de tu personaje escogido.

+

Al darle click a dicho ícono ingresarás al menú de edición de personaje que te permitirá escoger entre las razas de la misma facción.

+
+
+ NOTA +
+

Por favor, asegúrate de haber escogido al personaje correcto ya que esta acción no es reversible una vez realizada.

+
+
+
+
+
+

Escoge el personaje que quieres desbloquear

+
+ + +
+ +
+
+
+
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/home/templates/partials/change_race_cancel.html b/home/templates/partials/change_race_cancel.html new file mode 100644 index 0000000..e69de29 diff --git a/home/templates/partials/change_race_success.html b/home/templates/partials/change_race_success.html new file mode 100644 index 0000000..8b13789 --- /dev/null +++ b/home/templates/partials/change_race_success.html @@ -0,0 +1 @@ + diff --git a/home/templates/partials/customize_character.html b/home/templates/partials/customize_character.html new file mode 100644 index 0000000..d15bcd8 --- /dev/null +++ b/home/templates/partials/customize_character.html @@ -0,0 +1,51 @@ +
+
+
+

Personalizar personaje

+
+ +
+
+

La herramienta Personalizar personaje te permite cambiar los siguientes aspectos un personaje:

+

- Color de la piel

+

- Rostro

+

- Pelo

+

- Sexo

+

- Características correspondientes a cada raza como cuernos, pendientes, marcas, vello facial

+

Si también deseas cambiar el nombre del personaje, debes usar la herramienta Renombrar personaje.

+
+

Al usar el botón PERSONALIZAR del personaje que hayas escogido, se enviará una petición de personalización de dicho personaje.

+

Cuando ingreses a la lista de personajes de tu cuenta, verás un ícono a la izquierda de tu personaje escogido.

+

Al darle click a dicho ícono ingresarás al menú de edición de personaje que te permitirá escoger diferentes características.

+
+
+ NOTA +
+

Por favor, asegúrate de haber escogido al personaje correcto ya que esta acción no es reversible una vez realizada.

+
+
+
+
+
+

Escoge el personaje que quieres desbloquear

+
+ + +
+ +
+
+
+
+
+
+
+
+
+
+ \ No newline at end of file diff --git a/home/templates/partials/customize_success.html b/home/templates/partials/customize_success.html new file mode 100644 index 0000000..e550bd4 --- /dev/null +++ b/home/templates/partials/customize_success.html @@ -0,0 +1,44 @@ +
+
+
+

Personalizar personaje

+
+ +
+
+

La herramienta Personalizar personaje te permite cambiar los siguientes aspectos un personaje:

+

- Color de la piel

+

- Rostro

+

- Pelo

+

- Sexo

+

- Características correspondientes a cada raza como cuernos, pendientes, marcas, vello facial

+

Si también deseas cambiar el nombre del personaje, debes usar la herramienta Renombrar personaje.

+
+

Al usar el botón PERSONALIZAR del personaje que hayas escogido, se enviará una petición de personalización de dicho personaje.

+

Cuando ingreses a la lista de personajes de tu cuenta, verás un ícono a la izquierda de tu personaje escogido.

+

Al darle click a dicho ícono ingresarás al menú de edición de personaje que te permitirá escoger diferentes características.

+
+
+ NOTA +
+

Por favor, asegúrate de haber escogido al personaje correcto ya que esta acción no es reversible una vez realizada.

+
+
+
+

Selecciona el personaje que deseas personalizar:

+
+ + +
+
+
+
+
+
+
+
\ No newline at end of file diff --git a/home/templates/partials/d_points.html b/home/templates/partials/d_points.html index e002ece..823b635 100644 --- a/home/templates/partials/d_points.html +++ b/home/templates/partials/d_points.html @@ -190,7 +190,7 @@ - +