Open ghost opened 2 years ago
sorunu tam olarak anlamadim yapmak istediginiz seyi ve kodunuzu biraz daha detayli anlatirsaniz yardimci olabilirim
yourfriend#2756 discorddan yazabilirsin
selamlar ben oyuncuların kullanması için çeşitli renkler hazırladım örneğin !mavi !kırmızı bunları yazdıkları zaman renkleri geliyor bunda bi sıkıntı yok. fakat renkleri tekrar çıkarmaları için de komut hazırladım fakat bunu yazınca herkesin renkleri sıfırlanıyor yazan oyuncunun değil.
kahverengi.splice(kahverengi.indexOf(player.name), 1) kırmızıRenk.splice(kırmızıRenk.indexOf(player.name), 1)
hem bunu hem de
kahverengi.splice(player.name) kırmızıRenk.splice(player.name)
bunu denedim fakat ne yaparsam yapayım yazan oyuncunun değil tüm oyuncuların renkleri siliniyor. pushlarken sadece o oyuncuya yazılıyor fakat splice ederken herkesin siliniyor. Yardımcı olabilecek var mı kafayı yiyeceğim
@emret2 Aşağıdaki kod odana aynı isimde birden fazla oyuncu giriş yaptığında ne gibi bir sonuç verecek onu da ayriyeten düşünmelisin.
kahverengi.splice(kahverengi.indexOf(player.name), 1)
kırmızıRenk.splice(kırmızıRenk.indexOf(player.name), 1)
Alttaki şekilde zaten yapamazsın.
kahverengi.splice(player.name)
kırmızıRenk.splice(player.name)
Son düzenleme: Yarın müsait olursam buraya kod eklemesi yapacağım. Tamamdır, kod hazır. Aşağıdaki kodu kullanabilirsin:
var commands = ["!default", "!red", "!blue", "!yellow", "!green", "!pink", "!orange", "!brown"];
var colors = [0xFFFFFF, 0xFF0000, 0x0000FF, 0xFFFF00, 0x00FF00, 0xFF0080, 0xFF8000, 0x804000];
var playerList = {};
var room = HBInit({ roomName: "Color Options", noPlayer: true, public: false, maxPlayers: 12 });
function isCommand(message) {
return commands.includes(message);
}
room.onPlayerChat = function (player, message) {
console.log(`${player.name}: ${message}`);
if (isCommand(message) == true) {
if (commands.indexOf(message) === -1) { //Actually it won't get -1 but I have added it as just a control against crashes.
console.log("Error");
return false;
}
else {
playerList[player.name].textColor = colors[commands.indexOf(message)];
room.sendAnnouncement(`Your text color has been changed as ${message.slice(1)}.`, player.id, playerList[player.name].textColor, "bold", 1);
return false;
}
}
else {
room.sendAnnouncement(`${player.name}: ${message}`, null, playerList[player.name].textColor, "normal", 1);
return false;
}
}
room.onPlayerJoin = function (player) {
if (playerList[player.name] == undefined) {
playerList[player.name] = { name: player.name, auth: player.auth, conn: player.conn, textColor: 0xFFFFFF };
}
}
Kodun çıktısı şu linkteki gibidir: https://thehax.pl/forum/powtorki.php?nagranie=efbcb1c86524746712835e9744b14c88
Not: Zamanım kısıtlı olduğu için yan sekme kontrolü gibi ekstra özellikleri eklemedim, kendin eklersin.
@yourfriendd Şunu diyor, oyunculara komutla renkli yazma özelliği eklemek istiyorum. Oyuncu komutu girdiğinde renkli yazma özelliği kendisine tanımlanıyor fakat varsayılan değere döndürmek istediğinde bütün oyuncuların renklerini siliyor.
var commands = ["!default", "!red", "!blue", "!yellow", "!green", "!pink", "!orange", "!brown"]; var colors = [0xFFFFFF, 0xFF0000, 0x0000FF, 0xFFFF00, 0x00FF00, 0xFF0080, 0xFF8000, 0x804000]; var playerList = {}; var room = HBInit({ roomName: "Color Options", noPlayer: true, public: false, maxPlayers: 12 }); function isCommand(message) { return commands.includes(message); } room.onPlayerChat = function (player, message) { console.log(`${player.name}: ${message}`); if (isCommand(message) == true) { if (commands.indexOf(message) === -1) { //Actually it won't get -1 but I have added it as just a control against crashes. console.log("Error"); return false; } else { playerList[player.name].textColor = colors[commands.indexOf(message)]; room.sendAnnouncement(`Your text color has been changed as ${message.slice(1)}.`, player.id, playerList[player.name].textColor, "bold", 1); return false; } } else { room.sendAnnouncement(`${player.name}: ${message}`, null, playerList[player.name].textColor, "normal", 1); return false; } } room.onPlayerJoin = function (player) { if (playerList[player.name] == undefined) { playerList[player.name] = { name: player.name, auth: player.auth, conn: player.conn, textColor: 0xFFFFFF }; } }
Kodun çıktısı şu linkteki gibidir: https://thehax.pl/forum/powtorki.php?nagranie=efbcb1c86524746712835e9744b14c88
Not: Zamanım kısıtlı olduğu için yan sekme kontrolü gibi ekstra özellikleri eklemedim, kendin eklersin.
@thenorthstar Sağolun hocam teşekkürler bu daha düzenli 30dan fazla renk komutum vardı uğraştıracak ama benim anlamadığım pushlarken neden o kişiye tanımlıyor da splice ederken herkesi siliyor?
var commands = ["!default", "!red", "!blue", "!yellow", "!green", "!pink", "!orange", "!brown"]; var colors = [0xFFFFFF, 0xFF0000, 0x0000FF, 0xFFFF00, 0x00FF00, 0xFF0080, 0xFF8000, 0x804000]; var playerList = {}; var room = HBInit({ roomName: "Color Options", noPlayer: true, public: false, maxPlayers: 12 }); function isCommand(message) { return commands.includes(message); } room.onPlayerChat = function (player, message) { console.log(`${player.name}: ${message}`); if (isCommand(message) == true) { if (commands.indexOf(message) === -1) { //Actually it won't get -1 but I have added it as just a control against crashes. console.log("Error"); return false; } else { playerList[player.name].textColor = colors[commands.indexOf(message)]; room.sendAnnouncement(`Your text color has been changed as ${message.slice(1)}.`, player.id, playerList[player.name].textColor, "bold", 1); return false; } } else { room.sendAnnouncement(`${player.name}: ${message}`, null, playerList[player.name].textColor, "normal", 1); return false; } } room.onPlayerJoin = function (player) { if (playerList[player.name] == undefined) { playerList[player.name] = { name: player.name, auth: player.auth, conn: player.conn, textColor: 0xFFFFFF }; } }
Kodun çıktısı şu linkteki gibidir: https://thehax.pl/forum/powtorki.php?nagranie=efbcb1c86524746712835e9744b14c88 Not: Zamanım kısıtlı olduğu için yan sekme kontrolü gibi ekstra özellikleri eklemedim, kendin eklersin.
@thenorthstar Sağolun hocam teşekkürler bu daha düzenli 30dan fazla renk komutum vardı uğraştıracak ama benim anlamadığım pushlarken neden o kişiye tanımlıyor da splice ederken herkesi siliyor?
@emret2 Bunun nedenini tam olarak anlamak için kodunun tamamını görmemiz gerekiyor olabilir. Bu şekilde yapabileceğim yorumlar çok sınırlı çünkü.
selamlar ben oyuncuların kullanması için çeşitli renkler hazırladım örneğin !mavi !kırmızı bunları yazdıkları zaman renkleri geliyor bunda bi sıkıntı yok. fakat renkleri tekrar çıkarmaları için de komut hazırladım fakat bunu yazınca herkesin renkleri sıfırlanıyor yazan oyuncunun değil.
hem bunu hem de
bunu denedim fakat ne yaparsam yapayım yazan oyuncunun değil tüm oyuncuların renkleri siliniyor. pushlarken sadece o oyuncuya yazılıyor fakat splice ederken herkesin siliniyor. Yardımcı olabilecek var mı kafayı yiyeceğim