Skocz do zawartości

Witamy w Nieoficjalnym polskim support'cie AMX Mod X

Witamy w Nieoficjalnym polskim support'cie AMX Mod X, jak w większości społeczności internetowych musisz się zarejestrować aby móc odpowiadać lub zakładać nowe tematy, ale nie bój się to jest prosty proces w którym wymagamy minimalnych informacji.
  • Rozpoczynaj nowe tematy i odpowiedaj na inne
  • Zapisz się do tematów i for, aby otrzymywać automatyczne uaktualnienia
  • Dodawaj wydarzenia do kalendarza społecznościowego
  • Stwórz swój własny profil i zdobywaj nowych znajomych
  • Zdobywaj nowe doświadczenia

Dołączona grafika Dołączona grafika

Guest Message by DevFuse
 

Zdjęcie

Team advantage warning 213 tag mismatch error


  • Nie możesz napisać tematu
  • Zaloguj się, aby dodać odpowiedź
2 odpowiedzi w tym temacie

#1 imib87

    Początkujący

  • Użytkownik

Reputacja: 0
Nowy

  • Postów:12
Offline

Napisano 21.03.2018 19:47

Cześć, plugin pobrałem z bułgarskiej strony, jeszcze go na polskiej scenie nie widziałem w akcji. Oryginalny link do tematu https://forums.allie...ad.php?t=295362. Problem polega na 3 errorach, i nie wynikają one na pewno z mojej wersji kompilatora.

 

W tych linijkach pokazuje błąd

									case 'C', 'c': g_eSettings[ADVANTAGE_TEAM] = CS_TEAM_CT
									case 'T', 't': g_eSettings[ADVANTAGE_TEAM] = CS_TEAM_T
									default: g_eSettings[ADVANTAGE_TEAM] = CS_TEAM_UNASSIGNED
								}

Z czego sam wywnioskowałem problem raczej będzie z enum, poniżej cały kod. Nie jestem w stanie sam to naprawić więc prosiłbym o wstawienie działającego kodu.

#include <amxmodx>
#include <amxmisc>
#include <cromchat>
#include <cstrike>

#define PLUGIN_VERSION "1.0"

enum
{
	SECTION_NONE = 0,
	SECTION_SETTINGS,
	SECTION_ADVANTAGES
}

enum _:Settings
{
	CsTeams:ADVANTAGE_TEAM,
	ADVANTAGE_FLAGS[32],
	bool:ADVANTAGE_USE_FLAGS,
	MAX_MONEY,
	bool:PLAYER_MESSAGE
}

new g_eSettings[Settings]

new Array:g_aLoses,
	Array:g_aMoney,
	bool:g_bRoundEnd,
	g_iLoses[CsTeams:3],
	g_iAdvantages

public plugin_init()
{
	register_plugin("Team Advantage", PLUGIN_VERSION, "OciXCrom")
	register_cvar("CRXTeamAdvantage", PLUGIN_VERSION, FCVAR_SERVER|FCVAR_SPONLY|FCVAR_UNLOGGED)
	register_dictionary("TeamAdvantage.txt")
	register_logevent("OnFirstRound", 2, "0=World triggered", "1&Restart_Round_")
	register_logevent("OnFirstRound", 2, "0=World triggered", "1=Game_Commencing")
	register_logevent("OnRoundStart", 2, "0=World triggered", "1=Round_Start")
	register_event("SendAudio", "OnTeamWin", "a", "2&%!MRAD_terwin", "2&%!MRAD_ctwin")
	g_aLoses = ArrayCreate(5)
	g_aMoney = ArrayCreate(8)
	ReadFile()
}

public plugin_end()
{
	ArrayDestroy(g_aLoses)
	ArrayDestroy(g_aMoney)
}

public OnFirstRound()
{
	g_iLoses[CS_TEAM_CT] = 0
	g_iLoses[CS_TEAM_T] = 0
}

public OnRoundStart()
	g_bRoundEnd = false

public OnTeamWin()
{
	if(g_bRoundEnd)
		return
		
	g_bRoundEnd = true
	
	new szTeam[9]
	read_data(2, szTeam, charsmax(szTeam))
	
	new CsTeams:iWinTeam = szTeam[7] == 'c' ? CS_TEAM_CT : CS_TEAM_T,
		CsTeams:iLoseTeam = iWinTeam == CS_TEAM_CT ? CS_TEAM_T : CS_TEAM_CT
	
	g_iLoses[iLoseTeam]++
	g_iLoses[iWinTeam] = 0
	
	if(g_eSettings[ADVANTAGE_TEAM] != CS_TEAM_UNASSIGNED && g_eSettings[ADVANTAGE_TEAM] != iLoseTeam)
		return
	
	new iMoney
	
	for(new i; i < g_iAdvantages; i++)
	{
		if(g_iLoses[iLoseTeam] == ArrayGetCell(g_aLoses, i))
		{
			iMoney = ArrayGetCell(g_aMoney, i)
			break
		}
	}
	
	if(!iMoney)
		return
		
	new iPlayers[32], iPnum
	get_players(iPlayers, iPnum, "e", iLoseTeam == CS_TEAM_CT ? "CT" : "TERRORIST")
	
	if(g_eSettings[ADVANTAGE_USE_FLAGS])
		CC_SendMessage(0, "%L", LANG_PLAYER, "ADVANTAGE_GET_FLAGS", g_eSettings[ADVANTAGE_FLAGS], LANG_PLAYER, iLoseTeam == CS_TEAM_CT ? "ADVANTAGE_TEAM_CT" : "ADVANTAGE_TEAM_T", iMoney, g_iLoses[iLoseTeam])
	else
		CC_SendMessage(0, "%L", LANG_PLAYER, "ADVANTAGE_GET_NORMAL", LANG_PLAYER, iLoseTeam == CS_TEAM_CT ? "ADVANTAGE_TEAM_CT" : "ADVANTAGE_TEAM_T", iMoney, g_iLoses[iLoseTeam])		
	
	for(new iPlayer, i; i < iPnum; i++)
	{
		iPlayer = iPlayers[i]
		
		if(g_eSettings[ADVANTAGE_USE_FLAGS] && !has_all_flags(iPlayer, g_eSettings[ADVANTAGE_FLAGS]))
			continue
			
		cs_set_user_money(iPlayers[i], clamp(cs_get_user_money(iPlayer) + iMoney, .max = g_eSettings[MAX_MONEY]))
		
		if(g_eSettings[PLAYER_MESSAGE])
			CC_SendMessage(iPlayer, "%L", iPlayer, "ADVANTAGE_GET_PLAYER", iMoney, g_iLoses[iLoseTeam])
	}
}

ReadFile()
{
	new szConfigsName[256], szFilename[256]
	get_configsdir(szConfigsName, charsmax(szConfigsName))
	formatex(szFilename, charsmax(szFilename), "%s/TeamAdvantage.ini", szConfigsName)
	
	new iFilePointer = fopen(szFilename, "rt")
	
	if(iFilePointer)
	{
		new szData[64], szKey[32], szValue[32], iNum, iSection = SECTION_NONE
		
		while(!feof(iFilePointer))
		{
			fgets(iFilePointer, szData, charsmax(szData))
			trim(szData)
			
			switch(szData[0])
			{
				case EOS, ';': continue
				case '[':
				{
					iNum = strlen(szData)
					
					if(szData[iNum - 1] == ']')
					{
						switch(szData[1])
						{
							case 'S', 's': iSection = SECTION_SETTINGS
							case 'A', 'a': iSection = SECTION_ADVANTAGES
						}
					}
					else continue
				}
				default:
				{
					strtok(szData, szKey, charsmax(szKey), szValue, charsmax(szValue), '=')
					trim(szKey); trim(szValue)
					
					if(!szValue[0])
						continue
						
					switch(iSection)
					{
						case SECTION_SETTINGS:
						{
							if(equal(szKey, "ADVANTAGE_TEAM"))
							{
								switch(szValue[0])
								{
									case 'C', 'c': g_eSettings[ADVANTAGE_TEAM] = CS_TEAM_CT
									case 'T', 't': g_eSettings[ADVANTAGE_TEAM] = CS_TEAM_T
									default: g_eSettings[ADVANTAGE_TEAM] = CS_TEAM_UNASSIGNED
								}
							}
							else if(equal(szKey, "ADVANTAGE_FLAGS"))
							{
								if(szValue[0] != '!')
								{
									g_eSettings[ADVANTAGE_USE_FLAGS] = true
									copy(g_eSettings[ADVANTAGE_FLAGS], charsmax(g_eSettings[ADVANTAGE_FLAGS]), szValue)
								}
							}
							else if(equal(szKey, "MAX_MONEY"))
								g_eSettings[MAX_MONEY] = str_to_num(szValue)
							else if(equal(szKey, "CHAT_PREFIX"))
								CC_SetPrefix(szValue)
							else if(equal(szKey, "PLAYER_MESSAGE"))
								g_eSettings[PLAYER_MESSAGE] = _:clamp(str_to_num(szValue), false, true)
						}
						case SECTION_ADVANTAGES:
						{
							iNum = str_to_num(szKey)
							ArrayPushCell(g_aLoses, iNum)
							
							iNum = str_to_num(szValue)
							ArrayPushCell(g_aMoney, iNum)
							
							g_iAdvantages++
						}
					}
				}
			}
		}
		
		fclose(iFilePointer)
	}
}


  • +
  • -
  • 0

#2 AwIlL^^

    Magiczny Gość

  • Użytkownik

Reputacja: 135
Zaawansowany

  • Postów:263
  • Steam:steam
  • Imię:Eryk
  • Lokalizacja:Gdańsk
Offline

Napisano 22.03.2018 09:26

Po znaku rownania dopisz tuż przed zmienną czy tam stałą takie coś:
_:
Czyli podłoga i dwukropek.
  • +
  • -
  • 1

Potrzebujesz porad do amxx?? Pisz na [PW]


#3 imib87

    Początkujący

  • Autor tematu
  • Użytkownik

Reputacja: 0
Nowy

  • Postów:12
Offline

Napisano 22.03.2018 20:51

Dzięki wielkie za pomoc, problem rozwiązany.


  • +
  • -
  • 0




Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych