Discord sunucumuz açılmıştır, hepinizi bekleriz

https://discord.gg/43gGDQe6tS

Stringden harf almak

Oyunda karşılaştığınız hatalar , oyun hakkında genel bilgiler

Moderatör: Moderatörler

Kullanıcı avatarı

Konu Sahibi
HakimKILLER44
Mesajlar: 155
Kayıt: Cum Ağu 13, 2021 8:56 pm
Konum: Azerbeycan
Server Ip/DNS: 147.185.221.16:26504

Stringden harf almak

Mesaj gönderen HakimKILLER44 »

Selam aleykum arkadaşlar. Her hangi bir stringden bir harfin yeri nasıl bulunur? Örnek : "selam aleykum" yazisindan ben "s" nin indexini(olduğu konumu) bulmak istiyorum. Bir yardim eden olursa sevinirim(yardimci ola bilecek kodlar: strfind(), contain() ben bunlari denedim yapamadim).

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Taha Demirbaş
Mesajlar: 10424
Kayıt: Cum Tem 08, 2016 10:05 pm
Konum: Türkiye
İletişim:

Stringden harf almak

Mesaj gönderen Taha Demirbaş »

Contain ile o harfin yerini alman zor. En basiti stringin uzunluğunu alıp her bir karakteri için istediğin harf mi diye sorgu yapman olacaktır.

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Konu Sahibi
HakimKILLER44
Mesajlar: 155
Kayıt: Cum Ağu 13, 2021 8:56 pm
Konum: Azerbeycan
Server Ip/DNS: 147.185.221.16:26504

Stringden harf almak

Mesaj gönderen HakimKILLER44 »

Taha Demirbaş yazdı: Prş Ara 29, 2022 9:19 pm Bir for döngüsüyle yapmaya çalıştım olmadı hep böyle oluyor
Kod yazımı :
new metin[200] = "selam aleykum"
for (new i = 0; i < strlen(metin); i++)
{
client_print(0, print_chat, "%s", metin[ i ])
if (contain(metin[ i ], "y"))
// stringde "y" harfi varsa burası çalışır
}


Kod çıktısı :
For döngüsünden sonra metin deyişenin aldığı deyerler şöyle oluyor:
selam aleykum
selam aleyku
selam aleyk
selam aley
selam ale
selam al
selam a
selam //boşluk var
selam
sela
sel
se
s

Yukarda olduğu gibi yapiyor ve for döngüsünün içindeki if (şart) ödenmiyor. Bir el atin lütfen

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Emrullah AKTAŞ
Mesajlar: 257
Kayıt: Sal Oca 11, 2022 11:22 pm
Konum: İstanbul
Clan İsmi: We Are Gamer

Stringden harf almak

Mesaj gönderen Emrullah AKTAŞ »

Sorguyu böyle güncelleyin:

Kod: Tümünü seç

if(equal(metin[i], "y"))

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Konu Sahibi
HakimKILLER44
Mesajlar: 155
Kayıt: Cum Ağu 13, 2021 8:56 pm
Konum: Azerbeycan
Server Ip/DNS: 147.185.221.16:26504

Stringden harf almak

Mesaj gönderen HakimKILLER44 »

Emrullah AKTAŞ yazdı: Prş Ara 29, 2022 10:02 pm Abi atdiğim resime bir bakarmisin? Işte dongu sirasinda harfleri teker teker gostermiyor. (Normalde böyle olur : "selam" ->> "s", "e", "l", "a", "m" burda ise olmuyor nedense)
Resime bakmayı unutmayin : https://img.webme.com/pic/g/gausywuay56 ... 233915.jpg

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Konu Sahibi
HakimKILLER44
Mesajlar: 155
Kayıt: Cum Ağu 13, 2021 8:56 pm
Konum: Azerbeycan
Server Ip/DNS: 147.185.221.16:26504

Stringden harf almak

Mesaj gönderen HakimKILLER44 »

bir el aticak olan yokmu acaba?

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Konu Sahibi
HakimKILLER44
Mesajlar: 155
Kayıt: Cum Ağu 13, 2021 8:56 pm
Konum: Azerbeycan
Server Ip/DNS: 147.185.221.16:26504

Stringden harf almak

Mesaj gönderen HakimKILLER44 »

Yapmak istediyim aslinda bu Renkli Yazi
Eyer msg deyiseninde !t varsa mavi, !y varsa kirmizi, !d varsa boz yazicak

Kod: Tümünü seç


// Stock: ZE Color Print
stock ze_color_p(index, const text[], any:...)
{
	new const teams[][] = {"", "TERRORIST", "CT", "SPECTATOR"}
	new msg[128], main_team, team[100]
	vformat(msg, charsmax(msg), text, 3)
	
	/*
	
	// Str Find fonksiyonu calismadi
	if (strfind(msg, "!t")
		team = "CT"
	else if (strfind(msg, "!t")
		team = "TERRORIST"
	else if (strfind(msg, "!t")
		team = ""

	// Donguyle de calismadi
	for (new i = 0; i < strlen(msg); i++)
	{
		client_print(0, print_chat, "%s", msg[i])
		if (equal(msg[i], "!") && equal(msg[i + 1], "y"))
		{
			team = "TERRORIST"
			client_print(0, print_chat, "kirmizi")
		}
	}
	
	*/
	
	replace_all(msg, charsmax(msg), "!g", "^x04") // yesil
	replace_all(msg, charsmax(msg), "!n", "^x01") // normal
	replace_all(msg, charsmax(msg), "!t", "^x03") // mavi
	replace_all(msg, charsmax(msg), "!y", "^x03") // kirmizi
	replace_all(msg, charsmax(msg), "!d", "^x03") // boz
	
	if (index == 0)
	{
		for (new id = 1; id <= get_maxplayers(); id++)
		{
			if (!is_user_connected(id))
				continue
			
			main_team = get_user_team(id)
			
			message_begin(MSG_ONE, get_user_msgid("TeamInfo"), _, id)
			write_byte(id)
			write_string(team)
			message_end()
			
			message_begin(MSG_ONE, get_user_msgid("SayText"), _, id)
			write_byte(id)
			write_string(msg)
			message_end()
			
			message_begin(MSG_ONE, get_user_msgid("TeamInfo"), _, id)
			write_byte(id)
			write_string(teams[main_team])
			message_end()
		}
	}
	else
	{
		main_team = get_user_team(index)
		
		message_begin(MSG_ONE, get_user_msgid("TeamInfo"), _, index)
		write_byte(index)
		write_string(team)
		message_end()
		
		message_begin(MSG_ONE, get_user_msgid("SayText"), _, index)
		write_byte(index)
		write_string(msg)
		message_end()
		
		message_begin(MSG_ONE, get_user_msgid("TeamInfo"), _, index)
		write_byte(index)
		write_string(teams[main_team])
		message_end()
	}
}

zahmet olmazsa bu kodlara bir bakin

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Emrullah AKTAŞ
Mesajlar: 257
Kayıt: Sal Oca 11, 2022 11:22 pm
Konum: İstanbul
Clan İsmi: We Are Gamer

Stringden harf almak

Mesaj gönderen Emrullah AKTAŞ »

"equali" komutunu kullanabilirsiniz.

Link:
Linklerini gizle
Linki Kopyala

Schwartzkopf
Mesajlar: 13
Kayıt: Pzr Nis 17, 2022 6:54 pm

Stringden harf almak

Mesaj gönderen Schwartzkopf »

HakimKILLER44 yazdı: Prş Ara 29, 2022 9:13 pm Selam aleykum arkadaşlar. Her hangi bir stringden bir harfin yeri nasıl bulunur? Örnek : "selam aleykum" yazisindan ben "s" nin indexini(olduğu konumu) bulmak istiyorum. Bir yardim eden olursa sevinirim(yardimci ola bilecek kodlar: strfind(), contain() ben bunlari denedim yapamadim).
"Containi" yi bunun için kullanabilirsiniz gibi gözüküyor. Açıklaması şu şekilde;

Kod: Tümünü seç

-1 on failure (no match found). 
Any other value indicates a position in the string where the match starts.

Link:
Linklerini gizle
Linki Kopyala
Kullanıcı avatarı

Konu Sahibi
HakimKILLER44
Mesajlar: 155
Kayıt: Cum Ağu 13, 2021 8:56 pm
Konum: Azerbeycan
Server Ip/DNS: 147.185.221.16:26504

Stringden harf almak

Mesaj gönderen HakimKILLER44 »

Schwartzkopf yazdı: Cum Ara 30, 2022 3:31 pm acaba bir ornek vere bilirmisin? (galiba senin dediyin bu)

Kod: Tümünü seç

	if (contain(msg, "!t"))// dogruysa calisir (mavi yazar)
		team = "CT"
	if (contain(msg, "!y"))// dogruysa calisir (kirmizi yazar)
		team = "TERRORIST"

ben soyle yapiyorum :

Kod: Tümünü seç

	new msg[200] = "!tBu mavi yazidir"
	
	if (contain(msg, "!t")) // burasi calismalidir
		team = "CT"
	if (contain(msg, "!y")) // burasi calismamalidir (msg  deyiseninde  !y  harfi yok)
		team = "TERRORIST"
bunlari yazdikdan sonra her ikiside calisiyor. bunu duzeletemiyorum malesef. lutfen orneklerle cevap verin

Link:
Linklerini gizle
Linki Kopyala
Cevapla