haxball / haxball-issues

115 stars 43 forks source link

oyuncuların avatar değiştirmesini engelleme #1648

Open acemiadam4455 opened 2 years ago

acemiadam4455 commented 2 years ago

Merhaba,

Odaya gelen her oyuncunun aynı avatara sahip olmasını istiyorum. Örneğin herkesin avatarı 0 olsun ve avatarını değiştiremesinler.

Ama ben bir komutla istediğim oyuncunun avatarını değiştirebilmek istiyorum mesela bir oyuncunun 0 olan avatarını atıyorum 99 yapmak istiyorum.

Bu koda çok ihtiyacım var yardımcı olacak kişiye şimdiden teşekkür ediyorum

thenorthstar commented 2 years ago

Merhaba,

Odaya gelen her oyuncunun aynı avatara sahip olmasını istiyorum. Örneğin herkesin avatarı 0 olsun ve avatarını değiştiremesinler.

Ama ben bir komutla istediğim oyuncunun avatarını değiştirebilmek istiyorum mesela bir oyuncunun 0 olan avatarını atıyorum 99 yapmak istiyorum.

Bu koda çok ihtiyacım var yardımcı olacak kişiye şimdiden teşekkür ediyorum

@acemiadam4455 You can use the following code:

var avatar = "0";

function changePlayerAvatar(id,value){ //Refer this at anywhere you want.
    room.setPlayerAvatar(id,value);
}

room.onPlayerJoin = function(player){
    changePlayerAvatar(player.id,avatar); //Avatar must be a string with two characters at most.
}
acemiadam4455 commented 2 years ago

Merhaba, Odaya gelen her oyuncunun aynı avatara sahip olmasını istiyorum. Örneğin herkesin avatarı 0 olsun ve avatarını değiştiremesinler. Ama ben bir komutla istediğim oyuncunun avatarını değiştirebilmek istiyorum mesela bir oyuncunun 0 olan avatarını atıyorum 99 yapmak istiyorum. Bu koda çok ihtiyacım var yardımcı olacak kişiye şimdiden teşekkür ediyorum

@acemiadam4455 You can use the following code:

var avatar = "0";

function changePlayerAvatar(id,value){ //Refer this at anywhere you want.
    room.setPlayerAvatar(id,value);
}

room.onPlayerJoin = function(player){
    changePlayerAvatar(player.id,avatar); //Avatar must be a string with two characters at most.
}

@thenorthstar

Çok teşekkürler işime yaradı. Sizin sayenizde birçok sorunumu hallettim. Peki bu kodda bir düzenleme yaparak avatarını değiştirdiğim oyuncu odadan çıkıp tekrar girdiğinde 0 yerine o değiştirdiğim avatarın kalmasını sağlayabilmek mümkün mü ?

thenorthstar commented 2 years ago

Merhaba, Odaya gelen her oyuncunun aynı avatara sahip olmasını istiyorum. Örneğin herkesin avatarı 0 olsun ve avatarını değiştiremesinler. Ama ben bir komutla istediğim oyuncunun avatarını değiştirebilmek istiyorum mesela bir oyuncunun 0 olan avatarını atıyorum 99 yapmak istiyorum. Bu koda çok ihtiyacım var yardımcı olacak kişiye şimdiden teşekkür ediyorum

@acemiadam4455 You can use the following code:

var avatar = "0";

function changePlayerAvatar(id,value){ //Refer this at anywhere you want.
    room.setPlayerAvatar(id,value);
}

room.onPlayerJoin = function(player){
    changePlayerAvatar(player.id,avatar); //Avatar must be a string with two characters at most.
}

@thenorthstar

Çok teşekkürler işime yaradı. Sizin sayenizde birçok sorunumu hallettim. Peki bu kodda bir düzenleme yaparak avatarını değiştirdiğim oyuncu odadan çıkıp tekrar girdiğinde 0 yerine o değiştirdiğim avatarın kalmasını sağlayabilmek mümkün mü ?

@acemiadam4455 Evet mümkündür, aşağıdaki şekilde kullanabilirsin:

var avatar = "0";
var playerList = {};
var playerListArray = [];

function changePlayerAvatar(id, value) {
    room.setPlayerAvatar(id, value);
    if (playerList[player.name].avatar != value) playerList[player.name].avatar = value;
}

function getPreviousAccounts(player) {
    return playerListArray.filter(p => p.auth == player.auth || p.conn == player.conn);
}

room.onPlayerJoin = function (player) {
    if (playerListArray.length != 0) {
        var accounts = getPreviousAccounts(player);

        if (accounts.length != 0) {
            var lastAccount = accounts[accounts.length - 1];

            if (playerList[player.name] == undefined) {
                playerList[player.name] = { name: player.name, auth: player.auth, conn: player.conn, avatar: avatar };
                changePlayerAvatar(player.id, avatar);
            }
            else {
                changePlayerAvatar(player.id, lastAccount.avatar);
            }
        }
        else {
            if (playerList[player.name] == undefined) {
                playerList[player.name] = { name: player.name, auth: player.auth, conn: player.conn, avatar: avatar };
                changePlayerAvatar(player.id, avatar);
            }
            else {
                room.kickPlayer(player.id, "A player with this name already exists in the database, please join this room with your original informations.", false); //This can occur when a player changes their informations or another player with the same name tries to join the room.
            }
        }
    }
    else {
        if (playerList[player.name] == undefined) {
            playerList[player.name] = { name: player.name, auth: player.auth, conn: player.conn, avatar: avatar };
            changePlayerAvatar(player.id, avatar);
        }
        else {
            console.log("Bad"); //This is a rare situation, in fact it shouldn't occur in a logical way but I have added it.
            changePlayerAvatar(player.id, avatar);
        }
    }

    playerListArray.push(playerList[player.name]);
}
acemiadam4455 commented 2 years ago

@thenorthstar

maalesef kodu çalıştıramadım, odaya girdiğimde bağlantı kopuyor direkt.

Botumda daha önce başka bir işlevde kullandıgım benzer olan şu kodları olduğunu gördüm :

var playerList = {}; var playerListArray = [];

function getPreviousAccounts(player) { return playerListArray.length > 0 && playerListArray.filter(p => p.auth == player.auth || p.conn == player.conn);

Bu kodlarla bir çakışma olduğundan dolayı mı olmuyor acaba bir bilginiz var mı ne yaptıysam çalıştıramadım

thenorthstar commented 2 years ago

@thenorthstar

maalesef kodu çalıştıramadım, odaya girdiğimde bağlantı kopuyor direkt.

Botumda daha önce başka bir işlevde kullandıgım benzer olan şu kodları olduğunu gördüm :

var playerList = {}; var playerListArray = [];

function getPreviousAccounts(player) { return playerListArray.length > 0 && playerListArray.filter(p => p.auth == player.auth || p.conn == player.conn);

Bu kodlarla bir çakışma olduğundan dolayı mı olmuyor acaba bir bilginiz var mı ne yaptıysam çalıştıramadım

@acemiadam4455 Çakışma olduğu için patlıyordur. Çakışmaları halledip test edersin sen artık.

acemiadam4455 commented 2 years ago

@thenorthstar Hocam bu kod hiçbir bot ile çalışmıyor. Kodda bir yanlışlık olabilir mi acaba bir kontrol edebilir misiniz eğer vaktiniz varsa? Sizi de uğraştırıyorum kusura bakmayın ama benim için çok önemli. Kodda sıkıntı olup olmadığını merak ediyorum 3 gündür bir türlü çalıştıramadım.

thenorthstar commented 2 years ago

@thenorthstar Hocam bu kod hiçbir bot ile çalışmıyor. Kodda bir yanlışlık olabilir mi acaba bir kontrol edebilir misiniz eğer vaktiniz varsa? Sizi de uğraştırıyorum kusura bakmayın ama benim için çok önemli. Kodda sıkıntı olup olmadığını merak ediyorum 3 gündür bir türlü çalıştıramadım.

@acemiadam4455 Kodu kontrol ettim, hatalı bir yer varmış. Düzelttim ve bu linkten devam edebiliriz: https://github.com/thenorthstar/HaxBall-Example-Scripts/blob/main/Beginner/PlayerAvatarControl.js

Kodun çıktısı: https://thehax.pl/forum/powtorki.php?nagranie=1634a1108b595da378ae3f9f2d929c45

acemiadam4455 commented 2 years ago

@thenorthstar Hocam bu kod hiçbir bot ile çalışmıyor. Kodda bir yanlışlık olabilir mi acaba bir kontrol edebilir misiniz eğer vaktiniz varsa? Sizi de uğraştırıyorum kusura bakmayın ama benim için çok önemli. Kodda sıkıntı olup olmadığını merak ediyorum 3 gündür bir türlü çalıştıramadım.

@acemiadam4455 Kodu kontrol ettim, hatalı bir yer varmış. Düzelttim ve bu linkten devam edebiliriz: https://github.com/thenorthstar/HaxBall-Example-Scripts/blob/main/Beginner/PlayerAvatarControl.js

Kodun çıktısı: https://thehax.pl/forum/powtorki.php?nagranie=1634a1108b595da378ae3f9f2d929c45

Çok teşekkürler, bu platformda sorunlar ile bir tek siz ilgileniyorsunuz. Zamanınızı harcıyorsunuz. Size minnettarım.

Ama bu kodda istediğim şey hala tam olarak olmuyor. Odaya gelenin avatarı 0 oluyor evet sorun yok ama odaya gelen oyuncunun 0 olan avatarını konsol ile değiştiriyorum. Örneğin oyuncu odada üstün performans sergilediği için avatarını kral tacı emojisi yapıyorum. Sorun şu ki; aynı oyuncu odadan çıkıp girdiğinde avatarı tekrar 0 oluyor, taç emojisi kayboluyor. Ben istiyorum ki taç emojisi kalsın. Bu kod onu sağlamıyor denediğime göre. Kodun çıktısını paylaştığınız linkte de bu durum olmuyor. Bu şekilde bir kod yazılması mümkün değil mi, eğer mümkünse tekrar bir bakabilir misiniz ?

Bu konunun biraz gereksiz uzadığının farkındayım, affınıza sığınıyorum sizi çok sıktım. Uğraşmam derseniz de canınız sağ olsun.

thenorthstar commented 2 years ago

@thenorthstar Hocam bu kod hiçbir bot ile çalışmıyor. Kodda bir yanlışlık olabilir mi acaba bir kontrol edebilir misiniz eğer vaktiniz varsa? Sizi de uğraştırıyorum kusura bakmayın ama benim için çok önemli. Kodda sıkıntı olup olmadığını merak ediyorum 3 gündür bir türlü çalıştıramadım.

@acemiadam4455 Kodu kontrol ettim, hatalı bir yer varmış. Düzelttim ve bu linkten devam edebiliriz: https://github.com/thenorthstar/HaxBall-Example-Scripts/blob/main/Beginner/PlayerAvatarControl.js Kodun çıktısı: https://thehax.pl/forum/powtorki.php?nagranie=1634a1108b595da378ae3f9f2d929c45

Çok teşekkürler, bu platformda sorunlar ile bir tek siz ilgileniyorsunuz. Zamanınızı harcıyorsunuz. Size minnettarım.

Ama bu kodda istediğim şey hala tam olarak olmuyor. Odaya gelenin avatarı 0 oluyor evet sorun yok ama odaya gelen oyuncunun 0 olan avatarını konsol ile değiştiriyorum. Örneğin oyuncu odada üstün performans sergilediği için avatarını kral tacı emojisi yapıyorum. Sorun şu ki; aynı oyuncu odadan çıkıp girdiğinde avatarı tekrar 0 oluyor, taç emojisi kayboluyor. Ben istiyorum ki taç emojisi kalsın. Bu kod onu sağlamıyor denediğime göre. Kodun çıktısını paylaştığınız linkte de bu durum olmuyor. Bu şekilde bir kod yazılması mümkün değil mi, eğer mümkünse tekrar bir bakabilir misiniz ?

Bu konunun biraz gereksiz uzadığının farkındayım, affınıza sığınıyorum sizi çok sıktım. Uğraşmam derseniz de canınız sağ olsun.

@acemiadam4455 Dostum benim yazmış olduğum kod senin istediğin şeyin en temel hâli. İstediğin şeyi o kodu baz alarak kendin yapabilirsin. Örneğin room.onPlayerJoin'de oyuncunun önceki hesapları kontrol ediliyor. Bu kısımla oynayarak bir şeyler yapabilirsin meselâ. Uğraşıp ben de yaparım ama ben sizin yaparak kendinizi geliştirmenizi istiyorum.

acemiadam4455 commented 2 years ago

@thenorthstar Hocam bu kod hiçbir bot ile çalışmıyor. Kodda bir yanlışlık olabilir mi acaba bir kontrol edebilir misiniz eğer vaktiniz varsa? Sizi de uğraştırıyorum kusura bakmayın ama benim için çok önemli. Kodda sıkıntı olup olmadığını merak ediyorum 3 gündür bir türlü çalıştıramadım.

@acemiadam4455 Kodu kontrol ettim, hatalı bir yer varmış. Düzelttim ve bu linkten devam edebiliriz: https://github.com/thenorthstar/HaxBall-Example-Scripts/blob/main/Beginner/PlayerAvatarControl.js Kodun çıktısı: https://thehax.pl/forum/powtorki.php?nagranie=1634a1108b595da378ae3f9f2d929c45

Çok teşekkürler, bu platformda sorunlar ile bir tek siz ilgileniyorsunuz. Zamanınızı harcıyorsunuz. Size minnettarım. Ama bu kodda istediğim şey hala tam olarak olmuyor. Odaya gelenin avatarı 0 oluyor evet sorun yok ama odaya gelen oyuncunun 0 olan avatarını konsol ile değiştiriyorum. Örneğin oyuncu odada üstün performans sergilediği için avatarını kral tacı emojisi yapıyorum. Sorun şu ki; aynı oyuncu odadan çıkıp girdiğinde avatarı tekrar 0 oluyor, taç emojisi kayboluyor. Ben istiyorum ki taç emojisi kalsın. Bu kod onu sağlamıyor denediğime göre. Kodun çıktısını paylaştığınız linkte de bu durum olmuyor. Bu şekilde bir kod yazılması mümkün değil mi, eğer mümkünse tekrar bir bakabilir misiniz ? Bu konunun biraz gereksiz uzadığının farkındayım, affınıza sığınıyorum sizi çok sıktım. Uğraşmam derseniz de canınız sağ olsun.

@acemiadam4455 Dostum benim yazmış olduğum kod senin istediğin şeyin en temel hâli. İstediğin şeyi o kodu baz alarak kendin yapabilirsin. Örneğin room.onPlayerJoin'de oyuncunun önceki hesapları kontrol ediliyor. Bu kısımla oynayarak bir şeyler yapabilirsin meselâ. Uğraşıp ben de yaparım ama ben sizin yaparak kendinizi geliştirmenizi istiyorum.

@thenorthstar

Bunu yapmayı denedim fakat kodlama bilgim neredeyse hiç olmadığı için başarısız oldum. Bu kodu benim için yazarsanız çok sevinirim. Tek isteğim güzel bir eğlence odası oluşturmak.

thenorthstar commented 2 years ago

@thenorthstar Hocam bu kod hiçbir bot ile çalışmıyor. Kodda bir yanlışlık olabilir mi acaba bir kontrol edebilir misiniz eğer vaktiniz varsa? Sizi de uğraştırıyorum kusura bakmayın ama benim için çok önemli. Kodda sıkıntı olup olmadığını merak ediyorum 3 gündür bir türlü çalıştıramadım.

@acemiadam4455 Kodu kontrol ettim, hatalı bir yer varmış. Düzelttim ve bu linkten devam edebiliriz: https://github.com/thenorthstar/HaxBall-Example-Scripts/blob/main/Beginner/PlayerAvatarControl.js Kodun çıktısı: https://thehax.pl/forum/powtorki.php?nagranie=1634a1108b595da378ae3f9f2d929c45

Çok teşekkürler, bu platformda sorunlar ile bir tek siz ilgileniyorsunuz. Zamanınızı harcıyorsunuz. Size minnettarım. Ama bu kodda istediğim şey hala tam olarak olmuyor. Odaya gelenin avatarı 0 oluyor evet sorun yok ama odaya gelen oyuncunun 0 olan avatarını konsol ile değiştiriyorum. Örneğin oyuncu odada üstün performans sergilediği için avatarını kral tacı emojisi yapıyorum. Sorun şu ki; aynı oyuncu odadan çıkıp girdiğinde avatarı tekrar 0 oluyor, taç emojisi kayboluyor. Ben istiyorum ki taç emojisi kalsın. Bu kod onu sağlamıyor denediğime göre. Kodun çıktısını paylaştığınız linkte de bu durum olmuyor. Bu şekilde bir kod yazılması mümkün değil mi, eğer mümkünse tekrar bir bakabilir misiniz ? Bu konunun biraz gereksiz uzadığının farkındayım, affınıza sığınıyorum sizi çok sıktım. Uğraşmam derseniz de canınız sağ olsun.

@acemiadam4455 Dostum benim yazmış olduğum kod senin istediğin şeyin en temel hâli. İstediğin şeyi o kodu baz alarak kendin yapabilirsin. Örneğin room.onPlayerJoin'de oyuncunun önceki hesapları kontrol ediliyor. Bu kısımla oynayarak bir şeyler yapabilirsin meselâ. Uğraşıp ben de yaparım ama ben sizin yaparak kendinizi geliştirmenizi istiyorum.

@thenorthstar

Bunu yapmayı denedim fakat kodlama bilgim neredeyse hiç olmadığı için başarısız oldum. Bu kodu benim için yazarsanız çok sevinirim. Tek isteğim güzel bir eğlence odası oluşturmak.

@acemiadam4455 Anladım, senin adına üzgünüm ama çalışan biri olarak o kişinin ben olamayacağımı söylemek durumundayım. Sana işinde bol şans. Bu arada, GitHub profilimden sunucuma gelip developers-help kanalından yardım isteyebilirsin. Ben yardımcı olamayacak durumda olsam bile yardımcı olabilecek birilerini bulabiliriz.

nomerang commented 1 year ago

use a name and password based registration system. not auth or conn. save the avatar to the account of player. use the setplayeravatar function when the player is logged in.