Sign in to follow this  
Dreven

Баги?

Recommended Posts

Posted (edited)

Всем привет, есть несколько вопросов

Например вот код

console.log("INSERT INTO `characters` SET ownerid = %i, ownermail = '%s', cname='%s',datareg=NOW()", player.customData.sqlid, player.customData.mail, name);
            global.pool.query("INSERT INTO `characters` SET ownerid = %i, ownermail = '%s', cname='%s',datareg=NOW()", [player.customData.sqlid, player.customData.mail, name], function (err, res) {
                player.call("createHandler", ["createChareFinish"]);
                player.name = name;
            });

В базу данных персонаж не добавляется, но если скопировать из консоли запрос и вставить в базу напрямую то все хорошо, но например такой же запрос рядом

global.pool.query('INSERT INTO `accounts` SET email = ?, password = ?, ipreg=?,datereg=NOW()', [mail, md5(pass), player.ip], function (err, res) {
                                    player.call("loginHandler", ["success"]);
                                    player.customData.mail = mail;
                                    mp.events.call("loadAccount", player);
                                });

Работает без проблем, вот это бесит больше всего, непонятно почему и чем они между собой отличаются.

Так же интересует момент по поводу того что при входе на сервер когда чар спавнится на экране остается окно регистрации например, но если прописать browser1.destroy(); то игра просто зависает и через секунд 10 вылетает, весело конечно, что с ней не так?

var browser1 = mp.browsers.new("package://html/index.html");
player.call("loginHandler", ["success"]);
	"loginHandler": (handle) => {
        switch(handle){
            case "success":
            {
                browser1.destroy();
                break;
            }
	}
	}

Все хорошо, работает без проблем

	player.call("createHandler", ["createChareFinish"]);
	"createHandler": (handle) => {
        browser1 = mp.browsers.new("package://html/createchar.html");
        switch(handle){
            case "createChareFinish":
            {
                browser1.destroy();
	}
	}

Тупо крашит игра

Я дико извиняюсь, может банальщина конечно, но вот два абсолютно идентичных действия и работают по разному, точнее одно работает, второе нет, сверял сотни раз, все аналогично.

Edited by Dreven

Share this post


Link to post
Share on other sites

С проблемой запросов в БД разобрался, оказывается что использовать %s,%d,%i нельзя, с ? все работает, остается вопрос про закрытие браузера

UPDATE accounts SET name=%s

Не будет работать

UPDATE accounts SET name=?

Будет работать

Share this post


Link to post
Share on other sites

Спасибо, но функцию закрытия я знаю) Вопрос заключался именно в том почему крашит игру, тоже решил уже

Суть проблемы заключалась в том что окно которое создается через

var browser1 = mp.browsers.new("package://html/index.html");

У меня уже закрывалось до этого, а следующее я создавал через

mp.gui.execute("window.location = 'package://html/loadchars.html'");

На него destroy() не действует, тоесть если до этого браузер уже был закрыт функцией, а следующее окно было создано вторым способом то destroy() будет крашить игру.

Share this post


Link to post
Share on other sites

Ага, получается что ты и не создавал окно как таковое. Таким хаком получилось отобразить html через JS движек, но при этом для RAGEMP движка этого окна не было, он о нем не знал. Если я правильно понял как это работает. 

  • Like 1

Share this post


Link to post
Share on other sites

Не знаю тонкостей, просто удалял несуществующее и игра крашила)

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this  

  • Recently Browsing   0 members

    No registered users viewing this page.