Загрузка...

Roulette problem

Thread in Backend created by LordGusli Oct 31, 2023. 200 views

  1. LordGusli
    LordGusli Topic starter Oct 31, 2023 1 Dec 21, 2022
    Приветствую. Есть простенькая рулетка, написанная на js + php. Суть проблемы:
    Есть 69 предметов, каждый предмет в коде выглядит вот так:
    PHP
    <a id='r_money'>
    <li class='item-c rulet-item' id='money'>
    <img src='/assets/images/roulette-imgs/money.png'>
    </li>
    </a>
    Вот как выглядит предмет в БД:
    [IMG]

    Пытаясь изменить id='money' / id='r_money' и путь к новому изображению, возникает иногда ошибка при попытке прокрутить предмет:
    [IMG]
    Также в бд летит пустая строка:
    [IMG]
    Что самое странное, с изначальными предметами, которые были вбиты в рулетку, всё нормально работает, багов нет.

    Вот сам скрипт рулетки script_roulette.js:
    JS
    var active = true;
    var running = false;
    $(window).blur(function () {
    active = false;
    });
    $(window).focus(function () {
    active = true;
    });
    var redir_url = '/roulette/win';

    function runRoulette() {
    if (!running) {
    running = true;
    var audio = new Audio('/sound/case_scroll.wav');
    var slot_width = $('.item-c').outerWidth(true);
    var offset = slot_width * Math.min(Math.max(Math.random(), .2), .4);
    var startPos = parseInt($('#carusel').css('margin-left')) - 1; //default 120
    var position = 0;
    var interval = setInterval(function () {
    var start_offset = parseInt($('#carusel').css('margin-left')) - startPos + 3;
    var cPosition = Math.floor(start_offset / (slot_width + 6));
    if (cPosition != position && cPosition < 0) {
    position = cPosition;
    if (active) {
    audio.pause();
    audio.currentTime = 0;
    audio.volume = 0.25;
    audio.play();
    }
    }
    }, 10);
    var caruselElement = $('#carusel');
    if (caruselElement.length > 0) {
    var leftOffset = caruselElement.find('li[win="1"]').offset().left;
    var splitterOffset = $('#splitter').offset().left;
    caruselElement.animate({
    'margin-left': '-=' + (leftOffset - splitterOffset + offset)
    }, 10000, 'easeOutCubic', function () {
    if (interval) clearInterval(interval);
    setTimeout('location="' + redir_url + '";', 400);
    });
    } else {
    console.error("Element with id 'carusel' not found.");
    }
    }
    }
    Меняю изображения исходные (192x192) на изображения такого же разрешения - такой же баг. Даже пытался банально изменить название у пикчи на то, что уже заложено в коде - баг. Все скрипты и тд, которые связаны с основным файлом, не имеют в себе упоминания о предмете (я думал, что все предметы в каком-то ещё файле забиты, поэтому их изменение ломает всё).

    Если кто-то сможет помочь разобраться в проблеме, то буду очень благодарен. Если понадобится доступ к ftp, то напишите в лс
     
  2. 4B1D
    4B1D Nov 14, 2023 1 Nov 11, 2023
    Не совсем понятная эта часть - "Пытаясь изменить id='money' / id='r_money'" - ты хочешь изменить айдишник элемента?
    И еще, "возникает иногда ошибка" - иногда? Есть какая-то закономерность, когда она появляется?
    Судя по ошибке, создается ощущение, что скрипт пытается получить элемент рулетки до того, как она полностью загружена - обычно это лечится чем-то вроде $(document).ready()

    В целом, если еще проблема актуальна - могу глянуть. Дай знать, я тогда в лс напишу
     
Loading...
Top