haxball / haxball-issues

116 stars 43 forks source link

player.name push açığı nasıl düzeltilir #1709

Open kox93 opened 2 years ago

kox93 commented 2 years ago

Selam, bende bir vip rolu var ve bunu auth ile ayarladım

var vip = ["auth"]

sonra bunu onplaerjoin ile

if (vip.includes(player.auth)){
(viprole.push(player.name))
}

bu şekilde yaptım ve bunu onplayerchat ile renklendirdim bunda sıkıntı yok. fakat bu oyuncu oyundan çıktığında, ve o isimle başka biri girdiğinde yine ona vip rolu veriyor, bunun onüne geçmek istiyorum. onplayerleave ile splice ettim fakat her oyuncu çıktığında vip rolu gidiyor bu sefer, ayarlayamadım. yardımcı olacak var mı ?

09x2019 commented 2 years ago

Selam, bende bir vip rolu var ve bunu auth ile ayarladım

var vip = ["auth"]

sonra bunu onplaerjoin ile

if (vip.includes(player.auth)){
(viprole.push(player.name))
}

bu şekilde yaptım ve bunu onplayerchat ile renklendirdim bunda sıkıntı yok. fakat bu oyuncu oyundan çıktığında, ve o isimle başka biri girdiğinde yine ona vip rolu veriyor, bunun onüne geçmek istiyorum. onplayerleave ile splice ettim fakat her oyuncu çıktığında vip rolu gidiyor bu sefer, ayarlayamadım. yardımcı olacak var mı ?

Bunun için "player.name" yerine "player.id" kullanabilirsiniz. @kox93

kox93 commented 2 years ago

Bunun için "player.name" yerine "player.id" kullanabilirsiniz. @kox93

Peki bu oyuncu oyundan çıktığında onu nasıl splice edeceğim? Çünkü her girdiğinde üst üste idyi push etmiş olacak @09x2019

09x2019 commented 2 years ago

Bunun için "player.name" yerine "player.id" kullanabilirsiniz. @kox93

Peki bu oyuncu oyundan çıktığında onu nasıl splice edeceğim? Çünkü her girdiğinde üst üste idyi push etmiş olacak @09x2019

Lafı fazla uzatmadan bir arkadaşa daha yaptığım sistemi sizinle paylaşmak istiyorum. Botunuza entegre edebilirsiniz.

//style[number] 0 normal - 1 bold - 2 italic - 3 small - 4 small-bold - 5 small-italic
//sounds[number] 0 - 1 - 2

var vipsAuth = [["auth1"], ["auth2"]]; //write player auth
var vipsID = [[]];
var vipscolors = [0x95FF8E]; //color
var vipssounds = [0, 1, 2];
var vipsprefix = ["VIP・"]; //role prefix
var vipsstyle = ["normal", "bold", "italic", "small", "small-bold", "small-italic"]; //message style

room.onPlayerJoin = function(player) {
    for(var i = 0; i < vipsAuth.length; i++) {
        if (player.auth == vipsAuth[i][0]) {
            vipsID.push([player.id]);
        }
    }
}

room.onPlayerLeave = function(player) {
    vipsID.shift([player.id]);
}

room.onPlayerChat = function(player, message) {
for(var i = 0; i < vipsID.length; i++) {
        if (player.id == vipsID[i][0]) {
            room.sendAnnouncement(vipsprefix + player.name + ": " + message, null, vipscolors, vipsstyle[1], vipssounds[1]);
            return false;
        }
    }
}
kox93 commented 2 years ago

Bunun için "player.name" yerine "player.id" kullanabilirsiniz. @kox93

Peki bu oyuncu oyundan çıktığında onu nasıl splice edeceğim? Çünkü her girdiğinde üst üste idyi push etmiş olacak @09x2019

Lafı fazla uzatmadan bir arkadaşa daha yaptığım sistemi sizinle paylaşmak istiyorum. Botunuza entegre edebilirsiniz.

var vipsAuth = [["auth1"], ["auth2"]]; //write player auth
var vipsID = [[]];
var vipscolors = [0x95FF8E]; //color
var vipssounds = [0, 1, 2];
var vipsprefix = ["VIP・"]; //role prefix
var vipsstyle = ["normal", "bold", "italic", "small", "small-bold", "small-italic"]; //message style

room.onPlayerJoin = function(player) {
for(var i = 0; i < vipsAuth.length; i++) {
        if (player.auth == vipsAuth[i][0]) {
vipsID.push([player.id]);
        }
    }
}

room.onPlayerChat = function(player, message) {
for(var i=0; i<vipsID.length; i++) {
        if (player.id == vipsID[i][0]) {
            room.sendAnnouncement(vipsprefix + player.name + ": " + message, null, vipscolors, vipsstyle[1], vipssounds[1]);
            return false;
        }
    }
}

Sağolun bunu anladım zaten teşekkürler fakat oyundan çıkıp tekrar oyuna girdiğinde tekrar player Idsini vipId'e pushlayacak ve boşu boşuna bota yük binecek. OnPlayerLeave ile splice etmek istiyorum.

kox93 commented 2 years ago

@thenorthstar demek istediğimi anlamıştır belki

09x2019 commented 2 years ago

@thenorthstar demek istediğimi anlamıştır belki

@kox93 Kodda düzenleme yapıyorum o zaman dediğiniz şekilde.

09x2019 commented 2 years ago

Bunun için "player.name" yerine "player.id" kullanabilirsiniz. @kox93

Peki bu oyuncu oyundan çıktığında onu nasıl splice edeceğim? Çünkü her girdiğinde üst üste idyi push etmiş olacak @09x2019

Lafı fazla uzatmadan bir arkadaşa daha yaptığım sistemi sizinle paylaşmak istiyorum. Botunuza entegre edebilirsiniz.

//style[number] 0 normal - 1 bold - 2 italic - 3 small - 4 small-bold - 5 small-italic
//sounds[number] 0 - 1 - 2

var vipsAuth = [["auth1"], ["auth2"]]; //write player auth
var vipsID = [[]];
var vipscolors = [0x95FF8E]; //color
var vipssounds = [0, 1, 2];
var vipsprefix = ["VIP・"]; //role prefix
var vipsstyle = ["normal", "bold", "italic", "small", "small-bold", "small-italic"]; //message style

room.onPlayerJoin = function(player) {
    for(var i = 0; i < vipsAuth.length; i++) {
        if (player.auth == vipsAuth[i][0]) {
            vipsID.push([player.id]);
        }
    }
}

room.onPlayerLeave = function(player) {
    vipsID.shift([player.id]);
}

room.onPlayerChat = function(player, message) {
for(var i = 0; i < vipsID.length; i++) {
        if (player.id == vipsID[i][0]) {
            room.sendAnnouncement(vipsprefix + player.name + ": " + message, null, vipscolors, vipsstyle[1], vipssounds[1]);
            return false;
        }
    }
}

@kox93 Tekrar kontrol sağlayın.

thenorthstar commented 2 years ago

Selam, bende bir vip rolu var ve bunu auth ile ayarladım

var vip = ["auth"]

sonra bunu onplaerjoin ile

if (vip.includes(player.auth)){
(viprole.push(player.name))
}

bu şekilde yaptım ve bunu onplayerchat ile renklendirdim bunda sıkıntı yok. fakat bu oyuncu oyundan çıktığında, ve o isimle başka biri girdiğinde yine ona vip rolu veriyor, bunun onüne geçmek istiyorum. onplayerleave ile splice ettim fakat her oyuncu çıktığında vip rolu gidiyor bu sefer, ayarlayamadım. yardımcı olacak var mı ?

@kox93 Anladığım kadarıyla splice fonksiyonuyla ilgili bir problemin var. #1661 numaralı konuyu açan da sendin sanırım, orada da benzer bir durum vardı çünkü. Linkini bıraktığım script'i kullanabilirsin: https://github.com/thenorthstar/HaxBall-Example-Scripts/blob/main/Beginner/VIP_Roles.js

Bu arada JavaScript'in hazır fonksiyonlarını kullanmadan önce biraz araştırma yapman faydana olur.

Kodun Çıktısı: https://thehax.pl/forum/powtorki.php?nagranie=528d79b39e2c299e646bc993da16511e

kox93 commented 2 years ago

@kox93 Anladığım kadarıyla splice fonksiyonuyla ilgili bir problemin var. #1661 numaralı konuyu açan da sendin sanırım, orada da benzer bir durum vardı çünkü. Linkini bıraktığım script'i kullanabilirsin: https://github.com/thenorthstar/HaxBall-Example-Scripts/blob/main/Beginner/VIP_Roles.js

Bu arada JavaScript'in hazır fonksiyonlarını kullanmadan önce biraz araştırma yapman faydana olur.

Kodun Çıktısı: https://thehax.pl/forum/powtorki.php?nagranie=528d79b39e2c299e646bc993da16511e

@thenorthstar botlardaki kodu alıp kendi botuma uyguladım fakat şimdi de eğer oyunda 2 tane vip varsa ve birisi çıkarsa diğer vipin de özellikleri gidiyor.

thenorthstar commented 2 years ago

@kox93 Anladığım kadarıyla splice fonksiyonuyla ilgili bir problemin var. #1661 numaralı konuyu açan da sendin sanırım, orada da benzer bir durum vardı çünkü. Linkini bıraktığım script'i kullanabilirsin: https://github.com/thenorthstar/HaxBall-Example-Scripts/blob/main/Beginner/VIP_Roles.js Bu arada JavaScript'in hazır fonksiyonlarını kullanmadan önce biraz araştırma yapman faydana olur. Kodun Çıktısı: https://thehax.pl/forum/powtorki.php?nagranie=528d79b39e2c299e646bc993da16511e

@thenorthstar botlardaki kodu alıp kendi botuma uyguladım fakat şimdi de eğer oyunda 2 tane vip varsa ve birisi çıkarsa diğer vipin de özellikleri gidiyor.

@kox93 Bu senin kendi kodundan kaynaklanan bir hata. Benim burada paylaştığım kodda öyle bir şey olmuyordu. botlardaki kodu alıp kendi botuma uyguladım demişsin, demek ki kendi kodunda bir yerlerde bir sıkıntı var ki o hataya neden oluyor.

nomerang commented 1 year ago

you are checking auth but pushing name your method is wrong