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

https://discord.gg/43gGDQe6tS

inc complie hatası ve plugın duzenleme

Eklenti sorunlarınız ve özel eklenti istekleriniz

Moderatör: Moderatörler

Kullanıcı avatarı

Konu Sahibi
1DelTA1
Mesajlar: 69
Kayıt: Pzt Haz 26, 2017 7:45 pm
Konum: Antalya
İletişim:

inc complie hatası ve plugın duzenleme

Mesaj gönderen 1DelTA1 »

Merhabalar, colorchat.inc dosyasında complie ederken

Kod: Tümünü seç

include/colorchat.inc(28) : error 021: symbol already defined: "client_print_color"
include/colorchat.inc(31) : error 010: invalid function or declaration
include/colorchat.inc(33) : error 010: invalid function or declaration
include/colorchat.inc(36) : error 010: invalid function or declaration
include/colorchat.inc(40) : error 010: invalid function or declaration
include/colorchat.inc(57) : error 010: invalid function or declaration
/home/csserverlar/2

Hatası alıyorum düzeltebilirmiyiz acaba

Kod: Tümünü seç

#if defined _colorchat_included
	#endinput
#endif
#define _colorchat_included

/* ColorChat Support */
#define NORMAL	DontChange
#define GREEN	DontChange
#define RED		Red
#define BLUE	Blue
#define GREY	Grey
#define ColorChat client_print_color

#define MAX_TRANSLATION_LENGTH 2048

enum {
	DontChange = 0,
	Grey = -1,
	Red = -2,
	Blue = -3
};

#define print_team_default  DontChange
#define print_team_grey     Grey
#define print_team_red      Red
#define print_team_blue     Blue

stock client_print_color(id, sender, const fmt[], any:...)
{
	// check if id is different from 0
	if (id && !is_user_connected(id))
	{
		return 0;
	}

	if (sender < Blue || sender > 32)
	{
		sender = DontChange;
	}
	else if (sender < DontChange)
	{
		sender = -sender + 32; // align indexes to the TeamInfo ones
	}

	static const szTeamName[][] =
	{
		"",
		"TERRORIST",
		"CT"
	};

	new szMessage[191];

	new iParams = numargs();

	// Specific player code
	if (id)
	{
		if (iParams == 3)
		{
			copy(szMessage, charsmax(szMessage), fmt); // copy so message length doesn't exceed critical 192 value
		}
		else
		{
			vformat(szMessage, charsmax(szMessage), fmt, 4);
		}

		if (sender > (32 - Grey))
		{
			if (sender > (32 - Blue))
			{
				sender = id;
			}
			else
			{
				_CC_TeamInfo(id, sender, szTeamName[sender - (32 - Grey)]);
			}
		}
		_CC_SayText(id, sender, szMessage);
	}

	// Send message to all players
	else
	{
		// Figure out if at least 1 player is connected
		// so we don't execute useless useless code if not
		new iPlayers[32], iNum;
		get_players(iPlayers, iNum, "ch");
		if (!iNum)
		{
			return 0;
		}

		new iMlNumber, i, j;
		new Array:aStoreML = ArrayCreate();
		if (iParams >= 5) // ML can be used
		{
			for (j = 3; j < iParams; j++)
			{
				// retrieve original param value and check if it's LANG_PLAYER value
				if (getarg(j) == LANG_PLAYER)
				{
					i = 0;
					// as LANG_PLAYER == -1, check if next parm string is a registered language translation
					while ((szMessage[i] = getarg(j + 1, i++))) {}
					if (GetLangTransKey(szMessage) != TransKey_Bad)
					{
						// Store that arg as LANG_PLAYER so we can alter it later
						ArrayPushCell(aStoreML, j++);

						// Update ML array saire so we'll know 1st if ML is used,
						// 2nd how many args we have to alterate
						iMlNumber++;
					}
				}
			}
		}

		// If arraysize == 0, ML is not used
		// we can only send 1 MSG_ALL message if sender != 0
		if (!iMlNumber)
		{
			if (iParams == 3)
			{
				copy(szMessage, charsmax(szMessage), fmt);
			}
			else
			{
				vformat(szMessage, charsmax(szMessage), fmt, 4);
			}
			if (0 < sender < (32 - Blue)) // if 0 is passed, need to loop
			{
				if (sender > (32 - Grey))
				{
					_CC_TeamInfo(0, sender, szTeamName[sender - (32 - Grey)]);
				}
				_CC_SayText(0, sender, szMessage);
				return 1;
			}
		}

		if (sender > (32 - Blue))
		{
			sender = 0; // use receiver index
		}

		for (--iNum; iNum >= 0; iNum--)
		{
			id = iPlayers[iNum];

			if (iMlNumber)
			{
				for (j = 0; j < iMlNumber; j++)
				{
					// Set all LANG_PLAYER args to player index ( = id )
					// so we can format the text for that specific player
					setarg(ArrayGetCell(aStoreML, j), _, id);
				}

				// format string for specific player
				vformat(szMessage, charsmax(szMessage), fmt, 4);
			}

			if (sender > (32 - Grey))
			{
				_CC_TeamInfo(id, sender, szTeamName[sender - (32 - Grey)]);
			}
			_CC_SayText(id, sender, szMessage);
		}

		ArrayDestroy(aStoreML);
	}
	return 1;
}

stock _CC_TeamInfo(iReceiver, iSender, szTeam[])
{
	static iTeamInfo = 0;
	if (!iTeamInfo)
	{
		iTeamInfo = get_user_msgid("TeamInfo");
	}
	message_begin(iReceiver ? MSG_ONE : MSG_ALL, iTeamInfo, _, iReceiver);
	write_byte(iSender);
	write_string(szTeam);
	message_end();
}

stock _CC_SayText(iReceiver, iSender, szMessage[])
{
	static iSayText = 0;
	if (!iSayText)
	{
		iSayText = get_user_msgid("SayText");
	}
	
	message_begin(iReceiver ? MSG_ONE : MSG_ALL, iSayText, _, iReceiver);
	write_byte(iSender ? iSender : iReceiver);
	if (szMessage[0] > 4)
	{
		write_byte(1);
		szMessage[192 - 2 - 1] = 0;	// Two write_byte + string terminator
		write_string(szMessage);
	}
	else
	{
		szMessage[192 - 1 - 1] = 0;	// One write_byte + string terminator
		write_string(szMessage);
	}
	message_end();
}

new _translation_szBuffer[MAX_TRANSLATION_LENGTH];

stock register_dictionary_colored(const filename[])
{
	if (!register_dictionary(filename))
	{
		return 0;
	}

	new szFileName[256];
	get_localinfo("amxx_datadir", szFileName, charsmax(szFileName));
	format(szFileName, charsmax(szFileName), "%s/lang/%s", szFileName, filename);
	new fp = fopen(szFileName, "rt");
	if (!fp)
	{
		log_amx("Failed to open %s", szFileName);
		return 0;
	}

	new szLang[3], szKey[64], TransKey:iKey;

	while (!feof(fp))
	{
		fgets(fp, _translation_szBuffer, charsmax(_translation_szBuffer));
		trim(_translation_szBuffer);

		if (_translation_szBuffer[0] == '[')
		{
			strtok(_translation_szBuffer[1], szLang, charsmax(szLang), _translation_szBuffer, 1, ']');
		}
		else if (_translation_szBuffer[0])
		{
			strbreak(_translation_szBuffer, szKey, charsmax(szKey), _translation_szBuffer, charsmax(_translation_szBuffer));
			iKey = GetLangTransKey(szKey);
			if (iKey != TransKey_Bad)
			{
				replace_all(_translation_szBuffer, charsmax(_translation_szBuffer), "!g", "^4");
				replace_all(_translation_szBuffer, charsmax(_translation_szBuffer), "!t", "^3");
				replace_all(_translation_szBuffer, charsmax(_translation_szBuffer), "!n", "^1");
				replace_all(_translation_szBuffer, charsmax(_translation_szBuffer), "^^4", "^4");
				replace_all(_translation_szBuffer, charsmax(_translation_szBuffer), "^^3", "^3");
				replace_all(_translation_szBuffer, charsmax(_translation_szBuffer), "^^1", "^1");
				replace_all(_translation_szBuffer, charsmax(_translation_szBuffer), "^^n", "^n");
				replace_all(_translation_szBuffer, charsmax(_translation_szBuffer), "^^t", "^t");
				AddTranslation(szLang, iKey, _translation_szBuffer[2]);
			}
		}
	}

	fclose(fp);
	return 1;
}

/* ML from AMXX 1.8.3 support */
#define register_dictionary register_dictionary_colored

Extra csduragi formundan buluduğum bir map chooser var gayet güzel çalışmakta tek problem extend map secenegi yok oylama cıkınca oynanan map için extend oylamasıda ekleyebilirmiyiz ?
Bu mesaja eklenen dosyaları görüntülemek için gerekli izinlere sahip değilsiniz.

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

OPC Line
Mesajlar: 1635
Kayıt: Pzt Tem 22, 2019 3:13 am
Server Ip/DNS: 213.238.173.xx
Clan İsmi: *YouKnowMyName*

inc complie hatası ve plugın duzenleme

Mesaj gönderen OPC Line »

Sorun yaşadığınız eklentiyi buraya atar mısınız düzeltip atalım. Eklentilerde stock kullanmaya gerek yoktur. Extend olayına bakıyorum

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

Konu Sahibi
1DelTA1
Mesajlar: 69
Kayıt: Pzt Haz 26, 2017 7:45 pm
Konum: Antalya
İletişim:

inc complie hatası ve plugın duzenleme

Mesaj gönderen 1DelTA1 »

[quote="OPC Line" post_id=312676 time=1610744237 user_id=28383]
Sorun yaşadığınız eklentiyi buraya atar mısınız düzeltip atalım. Eklentilerde stock kullanmaya gerek yoktur. Extend olayına bakıyorum
[/quote]
Baş kısımda "// #define COLORCHAT" var
Bu kısmı silince if else kodları var allta ColorChata geçiriyor bilgi vereyim dedim belki lazımdır
Bu mesaja eklenen dosyaları görüntülemek için gerekli izinlere sahip değilsiniz.

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

OPC Line
Mesajlar: 1635
Kayıt: Pzt Tem 22, 2019 3:13 am
Server Ip/DNS: 213.238.173.xx
Clan İsmi: *YouKnowMyName*

inc complie hatası ve plugın duzenleme

Mesaj gönderen OPC Line »

Bu şekil denersen daha iyi olacaktır.
Bu mesaja eklenen dosyaları görüntülemek için gerekli izinlere sahip değilsiniz.

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

Konu Sahibi
1DelTA1
Mesajlar: 69
Kayıt: Pzt Haz 26, 2017 7:45 pm
Konum: Antalya
İletişim:

inc complie hatası ve plugın duzenleme

Mesaj gönderen 1DelTA1 »

OPC Line yazdı: Cmt Oca 16, 2021 12:24 am Bu şekil denersen daha iyi olacaktır.
Derleme yapıyor sorun yok da yazılar hala renksiz, dedigim gibi allta

Kod: Tümünü seç

					#if defined COLORCHAT
						client_print_color(iPlayer, RED, "^4[%s]^3 %s^1 is now on^3 %d^1 place in map top!", g_szPrefix, szName, i);
					#else
						client_print(iPlayer, print_chat, "[%s] %s is now on %d place in map top!", g_szPrefix, szName, i);
					#endif
Tarzında kodlar var COLORCHAT define edince renkli yazılara donuyor anladıgım kadarıyla ama define etmessek düz yazı gosterıyor şuanda da oldugu gibi içine yazmam gerken bişey varmı extra yani aslında istedigim renkli yazıları aktıf etmek

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

OPC Line
Mesajlar: 1635
Kayıt: Pzt Tem 22, 2019 3:13 am
Server Ip/DNS: 213.238.173.xx
Clan İsmi: *YouKnowMyName*

inc complie hatası ve plugın duzenleme

Mesaj gönderen OPC Line »

1DelTA1 yazdı: Cmt Oca 16, 2021 12:32 am
OPC Line yazdı: Cmt Oca 16, 2021 12:24 am Bu şekil denersen daha iyi olacaktır.
Derleme yapıyor sorun yok da yazılar hala renksiz, dedigim gibi allta

Kod: Tümünü seç

					#if defined COLORCHAT
						client_print_color(iPlayer, RED, "^4[%s]^3 %s^1 is now on^3 %d^1 place in map top!", g_szPrefix, szName, i);
					#else
						client_print(iPlayer, print_chat, "[%s] %s is now on %d place in map top!", g_szPrefix, szName, i);
					#endif
Tarzında kodlar var COLORCHAT define edince renkli yazılara donuyor anladıgım kadarıyla ama define etmessek düz yazı gosterıyor şuanda da oldugu gibi içine yazmam gerken bişey varmı extra yani aslında istedigim renkli yazıları aktıf etmek

Şöyleki öncelikle client_print_color kullanırsak 3 farklı renk seçeneğimiz oluyor.

^1 = clientin con_color rengi. Genel olarak sarı diye adlandırılır.
^3 = clientin takım rengi Mavi // Kırmızı
^4 = Yeşil

Ama anladığım kadarıyla sen bu şekil değil renkli şeyler yazmak istiyorsun. Ozaman elindeki colorchat.inc içerisini bununla değiştirip dene. Eklentinin ilk halini tekrar yükle yazılar aktif olacaktır.

Kod: Tümünü seç

enum Color
{
    NORMAL = 1, // clients scr_concolor cvar color
    GREEN, // Green Color
    TEAM_COLOR, // Red, grey, blue
    GREY, // grey
    RED, // Red
    BLUE, // Blue
}

new TeamName[][] = 
{
    "",
    "TERRORIST",
    "CT",
    "SPECTATOR"
}

ColorChat(id, Color:type, const msg[], {Float,Sql,Result,_}:...)
{
    static message[256];

    switch(type)
    {
        case NORMAL: // clients scr_concolor cvar color
        {
            message[0] = 0x01;
        }
        case GREEN: // Green
        {
            message[0] = 0x04;
        }
        default: // White, Red, Blue
        {
            message[0] = 0x03;
        }
    }

    vformat(message[1], 251, msg, 4);

    // Make sure message is not longer than 192 character. Will crash the server.
    message[192] = '^0';

    static team, ColorChange, index, MSG_Type;
    
    if(id)
    {
        MSG_Type = MSG_ONE;
        index = id;
    } else {
        index = FindPlayer();
        MSG_Type = MSG_ALL;
    }
    
    team = get_user_team(index);
    ColorChange = ColorSelection(index, MSG_Type, type);

    ShowColorMessage(index, MSG_Type, message);
        
    if(ColorChange)
    {
        Team_Info(index, MSG_Type, TeamName[team]);
    }
}

ShowColorMessage(id, type, message[])
{
    message_begin(type, get_user_msgid("SayText"), _, id);
    write_byte(id)        
    write_string(message);
    message_end();    
}

Team_Info(id, type, team[])
{
    message_begin(type, get_user_msgid("TeamInfo"), _, id);
    write_byte(id);
    write_string(team);
    message_end();

    return 1;
}

ColorSelection(index, type, Color:Type)
{
    switch(Type)
    {
        case RED:
        {
            return Team_Info(index, type, TeamName[1]);
        }
        case BLUE:
        {
            return Team_Info(index, type, TeamName[2]);
        }
        case GREY:
        {
            return Team_Info(index, type, TeamName[0]);
        }
    }

    return 0;
}

FindPlayer()
{
    static i;
    i = -1;

    while(i <= get_maxplayers())
    {
        if(is_user_connected(++i))
        {
            return i;
        }
    }

    return -1;
} 
Ben ne yapmak istediğini sonradan anladım :)

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

Konu Sahibi
1DelTA1
Mesajlar: 69
Kayıt: Pzt Haz 26, 2017 7:45 pm
Konum: Antalya
İletişim:

inc complie hatası ve plugın duzenleme

Mesaj gönderen 1DelTA1 »

OPC Line yazdı: Cmt Oca 16, 2021 12:52 am
1DelTA1 yazdı: Cmt Oca 16, 2021 12:32 am
OPC Line yazdı: Cmt Oca 16, 2021 12:24 am Bu şekil denersen daha iyi olacaktır.
Derleme yapıyor sorun yok da yazılar hala renksiz, dedigim gibi allta

Kod: Tümünü seç

					#if defined COLORCHAT
						client_print_color(iPlayer, RED, "^4[%s]^3 %s^1 is now on^3 %d^1 place in map top!", g_szPrefix, szName, i);
					#else
						client_print(iPlayer, print_chat, "[%s] %s is now on %d place in map top!", g_szPrefix, szName, i);
					#endif
Tarzında kodlar var COLORCHAT define edince renkli yazılara donuyor anladıgım kadarıyla ama define etmessek düz yazı gosterıyor şuanda da oldugu gibi içine yazmam gerken bişey varmı extra yani aslında istedigim renkli yazıları aktıf etmek

Şöyleki öncelikle client_print_color kullanırsak 3 farklı renk seçeneğimiz oluyor.

^1 = clientin con_color rengi. Genel olarak sarı diye adlandırılır.
^3 = clientin takım rengi Mavi // Kırmızı
^4 = Yeşil

Ama anladığım kadarıyla sen bu şekil değil renkli şeyler yazmak istiyorsun. Ozaman elindeki colorchat.inc içerisini bununla değiştirip dene. Eklentinin ilk halini tekrar yükle yazılar aktif olacaktır.

Kod: Tümünü seç

enum Color
{
    NORMAL = 1, // clients scr_concolor cvar color
    GREEN, // Green Color
    TEAM_COLOR, // Red, grey, blue
    GREY, // grey
    RED, // Red
    BLUE, // Blue
}

new TeamName[][] = 
{
    "",
    "TERRORIST",
    "CT",
    "SPECTATOR"
}

ColorChat(id, Color:type, const msg[], {Float,Sql,Result,_}:...)
{
    static message[256];

    switch(type)
    {
        case NORMAL: // clients scr_concolor cvar color
        {
            message[0] = 0x01;
        }
        case GREEN: // Green
        {
            message[0] = 0x04;
        }
        default: // White, Red, Blue
        {
            message[0] = 0x03;
        }
    }

    vformat(message[1], 251, msg, 4);

    // Make sure message is not longer than 192 character. Will crash the server.
    message[192] = '^0';

    static team, ColorChange, index, MSG_Type;
    
    if(id)
    {
        MSG_Type = MSG_ONE;
        index = id;
    } else {
        index = FindPlayer();
        MSG_Type = MSG_ALL;
    }
    
    team = get_user_team(index);
    ColorChange = ColorSelection(index, MSG_Type, type);

    ShowColorMessage(index, MSG_Type, message);
        
    if(ColorChange)
    {
        Team_Info(index, MSG_Type, TeamName[team]);
    }
}

ShowColorMessage(id, type, message[])
{
    message_begin(type, get_user_msgid("SayText"), _, id);
    write_byte(id)        
    write_string(message);
    message_end();    
}

Team_Info(id, type, team[])
{
    message_begin(type, get_user_msgid("TeamInfo"), _, id);
    write_byte(id);
    write_string(team);
    message_end();

    return 1;
}

ColorSelection(index, type, Color:Type)
{
    switch(Type)
    {
        case RED:
        {
            return Team_Info(index, type, TeamName[1]);
        }
        case BLUE:
        {
            return Team_Info(index, type, TeamName[2]);
        }
        case GREY:
        {
            return Team_Info(index, type, TeamName[0]);
        }
    }

    return 0;
}

FindPlayer()
{
    static i;
    i = -1;

    while(i <= get_maxplayers())
    {
        if(is_user_connected(++i))
        {
            return i;
        }
    }

    return -1;
} 
Ben ne yapmak istediğini sonradan anladım :)
Hahaha aslında hata bende derleme hatasını cozmek ıcın yapmıssın sen bende oyle yazmısım ondan anlamaman normal sorun yok :D
Denedım 2 adet hata aldım

Kod: Tümünü seç

include/colorchat.inc(19) : error 001: expected token: ";", but found "-identifier-"
include/colorchat.inc(70) : error 001: expected token: ";", but found "-identifier-"

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

OPC Line
Mesajlar: 1635
Kayıt: Pzt Tem 22, 2019 3:13 am
Server Ip/DNS: 213.238.173.xx
Clan İsmi: *YouKnowMyName*

inc complie hatası ve plugın duzenleme

Mesaj gönderen OPC Line »

kütüphane dosyasını derlemene gerek yok. (colorchat.inc)
https://panel.csduragi.com/cstrike/webf ... /scripting içerisine dizin oluştur'a basıp include adında klasör açın. İçerisine colochat.inc atın. Daha sonra panelde https://panel.csduragi.com/cstrike/eklentiyukle kısmına gelip eklentimizi yüklüyoruz ve servere kuruyoruz.

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

Colditz
Mesajlar: 2574
Kayıt: Çrş Ağu 23, 2017 9:17 pm

inc complie hatası ve plugın duzenleme

Mesaj gönderen Colditz »

Colorchat.inc yerine client_print_color kullanın. Tamamen aynı işlevi görüyor ve daha hızlı.

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

Konu Sahibi
1DelTA1
Mesajlar: 69
Kayıt: Pzt Haz 26, 2017 7:45 pm
Konum: Antalya
İletişim:

inc complie hatası ve plugın duzenleme

Mesaj gönderen 1DelTA1 »

OPC Line yazdı: Cmt Oca 16, 2021 1:10 am kütüphane dosyasını derlemene gerek yok. (colorchat.inc)
https://panel.csduragi.com/cstrike/webf ... /scripting içerisine dizin oluştur'a basıp include adında klasör açın. İçerisine colochat.inc atın. Daha sonra panelde https://panel.csduragi.com/cstrike/eklentiyukle kısmına gelip eklentimizi yüklüyoruz ve servere kuruyoruz.
O şekilde yaptım zaten, en son şunu farkettim colorchat kısımlarını "client_print_color" ile degismissin bende if elselerin hepsını aynı yaptım bu sefer bu hata geldi

Kod: Tümünü seç

timer.sma(707) : error 017: undefined symbol "RED"
timer.sma(707) : warning 215: expression has no effect
timer.sma(707) : warning 215: expression has no effect
timer.sma(707) : warning 215: expression has no effect
timer.sma(707) : warning 215: expression has no effect
timer.sma(707) : error 001: expected token: ";", but found ")"
timer.sma(707) : error 029: invalid expression, 
Düzenledigim sekini atıyorum buraya
Bu mesaja eklenen dosyaları görüntülemek için gerekli izinlere sahip değilsiniz.

Link:
Linklerini gizle
Linki Kopyala
Cevapla