Заявка за поправяне на Prefix Editor Menu

Ако имате затруднения при изработката/преработката на даден плъгин - пишете тук, ще се опитаме да ви помогнем!
Отговори
Потребителски аватар

Автор на темата
Abiss32
Потребител
Потребител
Мнения: 13
Регистриран: 03 яну 2019, 12:58
Се отблагодари: 1 път

Заявка за поправяне на Prefix Editor Menu

Мнение от Abiss32 » 15 апр 2019, 14:23

Здравей!

Имам нужда от помощ да довърша един плъгин нписах всичко но ми излизат грешки които хе знам как да ги поправя:

Код: Избери всички

#include <amxmodx>
#include <amxmisc>

#define PLUGIN "Prefix Editor"
#define VERSION "1.0"
#define AUTHOR "real<Abiss>"

#define Founder		ADMIN_CFG


enum
{
	DIR_PREFIXES
}

new const g_szDataDir[][] =
{
	"addons/amxmodx/configs/ap_prefixes.ini"
}
enum _:PlayerData
{
	g_szName[32],
	g_szSteamID[32],
	g_iOption,
	g_iPlayer,
	g_iChoosen
}

new g_PlayerInfo[33][PlayerData]

new const g_szPrefixMenuItems[][]=
{
	"Add Pre-made Prefix",
	"Remove Prefix"
}
new const g_szPremadeMenuItems[][]=
{
	"VIP",
	"ADMIN",
	"STAFF",
	"HEAD STAFF",
	"CO-OWNER",
	"OWNER"
}
new const g_szPremadePrefixes[][]=
{
	"[VIP]",
	"[Admin]",
	"[OZ Staff]",
	"[OZ Head Staff]",
	"[-<Co-Owner>-]",
	"[-<OWNER>-]"
}

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_concmd("Prefix_Editor","check_access")
}
public check_access(id)
{
	if(get_user_flags(id) & Founder)
	{
		PrefixEditorMenu(id)
	}
	else client_print(id, print_chat,"You don't have access to this menu!")
}
public PrefixEditorMenu(id)
{
	new iMenuID = menu_create("\rPrefix Editor \w:", "PrefixEditorMenuHndle")

	for(new i=0; i<sizeof(g_szPrefixMenuItems); i++) menu_additem(iMenuID, g_szPrefixMenuItems[i])

	menu_display(id, iMenuID)
}
public PrefixEditorMenuHndle(id,iMenuID, iItem)
{
	switch(iItem)
	{
		case 1: AddPremade(id)
		case 2: RemovePrefix(id)
	}
	return PLUGIN_HANDLED
}

public AddPremade(id)
{
	
	new szText[128]
	new iMenuID = menu_create("\rChoose Prefix\w:","AddPremadeMenuHandle")
	
	for(new i=0; i<sizeof(g_szPremadeMenuItems) && i<sizeof(g_szPremadePrefixes); i++)
	{
		formatex(szText, charsmax(szText), "\y%s \w(\r %s \w)", g_szPremadeMenuItems[i] ,g_szPremadePrefixes[i])
		menu_additem(iMenuID, szText)
	}
	menu_display(id, iMenuID)
}
public AddPremadeMenuHandle(id, iMenuID, iItem)
{
	if(iItem == MENU_EXIT)
	{
		menu_destroy(iMenuID);
		return;
	}
	
	switch(iItem)
	{
		case 0 .. 10:
		{
			g_PlayerInfo[id][g_iOption] = iItem+1
			ChoosePrefixPlayer(id)
		}
	}
}
public ChoosePrefixPlayer(id)
{
	new szItem[32], iMenuID = menu_create("\yChoose Target \w:", "ChoosePrefixPlayerHandle");
	
	for(new i=0, n=0; i<=32; i++)
	{
		if(!is_user_connected(i)) continue
		
		g_PlayerInfo[n++][g_iPlayer] = i
		
		get_user_name(i, szItem, charsmax(szItem))
		menu_additem(iMenuID, szItem, "0", 0)
	}
	
	menu_display(id, iMenuID)
}

public ChoosePrefixPlayerHandle(id, iMenuID, iItem)
{
	if(iItem == MENU_EXIT)
	{
		menu_destroy(iMenuID)
		return;
	}
	
	g_PlayerInfo[id][g_iChoosen] = g_PlayerInfo[iItem][g_iPlayer]
	
	if(!is_user_connected(g_PlayerInfo[id][g_iChoosen]))
	{
		client_print(id, print_chat,  "!g[Oblivion Zombie] !yTarget Not Founded In The Server.")
		AddPremade(id)
		return;
	}
	
	PrefixAdded(id)
}
public PrefixAdded(id)
{	
	new szText[256]
	for(new i = 1; i < sizeof(g_szPremadePrefixes); i++)
	{
		if (g_PlayerInfo[id][g_iOption] == i)
		{
			formatex(szText, charsmax(szText), "^"n^"^"%s^"^"%s^"", g_PlayerInfo[g_PlayerInfo[id][g_iChoosen]][g_szName], g_szPremadePrefixes[i-1]);
			write_file(g_szDataDir[DIR_PREFIXES], szText);
			client_print(id, print_chat, "Perfix is added!")
		}
	}
}
public RemovePrefix(id)
{
	{
	new szItem[32]
	new iMenuID = menu_create("\yChoose Target \w:", "RemovePrefixHandle");
	
	for(new i=0, n=0; i<=32; i++)
	{
		if(!is_user_connected(i)) continue
		
		g_PlayerInfo[n++][g_iPlayer] = i
		
		get_user_name(i, szItem, charsmax(szItem))
		menu_additem(iMenuID, szItem, "0", 0)
	}
	
	menu_display(id, iMenuID)
}

public RemovePrefixHandle(id, iMenuID, iItem)
{
	if(iItem == MENU_EXIT)
	{
		menu_destroy(iMenuID)
		return;
	}
	
	g_PlayerInfo[id][g_iChoosen] = g_PlayerInfo[iItem][g_iPlayer]
	
	if(!is_user_connected(g_PlayerInfo[id][g_iChoosen]))
	{
		client_print(id, print_chat,  "[Oblivion Zombie] Target Not Founded In The Server.")
		PrefixEditorMenu(id)
		return;
	}
	
	PrefixRemoved(id)
}
public PrefixRemoved(id)
{
	new szText[192], iLine, iLen, szLineData[2][32]
	
	while((iLine = read_file(g_szDataDir[DIR_PREFIXES], iLine, szText, charsmax(szText), iLen)))
	{	
		if(!iLen || szText[0] == ';' || szText[0] == '/' && szText[1] == '/') continue;
					
		if(parse(szText, szLineData[0], charsmax(szLineData[]), szLineData[1], charsmax(szLineData[])) < 2) continue;
					
		if(equal(g_PlayerInfo[g_PlayerInfo[id][g_iChoosen]][g_szName], szLineData[0]) || equal(g_PlayerInfo[g_PlayerInfo[id][g_iChoosen]][g_szSteamID], szLineData[0]))
		{
			delete_line(g_szDataDir[DIR_PREFIXES], iLine);
			client_print(id, print_chat,"Prefix removed!")
			return;
	
}
	
stock delete_line(const szFile[], iLine)
{
	if (file_exists(szFile))
	{
		new iMaxLines = file_size(szFile, 1)
		
		new Array:szFileLines, szLine[512], iTextLen
		
		szFileLines = ArrayCreate(512)
		
		for (new iLineToRead = 0; iLineToRead < iMaxLines; iLineToRead++)
		{
			if (iLineToRead + 1 == iLine)
				continue
			
			read_file(szFile, iLineToRead, szLine, charsmax(szLine), iTextLen)
			
			ArrayPushString(szFileLines, szLine)
		}
		
		delete_file(szFile)
		
		for (new iLineToRead = 0; iLineToRead < ArraySize(szFileLines); iLineToRead++)
		{
			ArrayGetString(szFileLines, iLineToRead, szLine, charsmax(szLine))
			
			write_file(szFile, szLine)
		}
		
		ArrayDestroy(szFileLines)
	}
}
Ако някой помогне ще съм много благодарен!

Това са грешките които излизат.

Warning: Loose indentation on line 185
Error: Invalid expression, assumed zero on line 185
Error: Undefined symbol "RemovePrefixHandle" on line 185
Error: Undefined symbol "iItem" on line 185
Error: Too many error messages on one line on line 185

Compilation aborted.
4 Errors.
Could not locate output file E:\games\Counter-Strike\cstrike\addons\amxmodx\scripting\zp_prefix_editor_menu.amx (compile failed).
Последна промяна от Abiss32 на 16 апр 2019, 02:41, променено общо 3 пъти.

Потребителски аватар

OciXCrom TM
Администратор
Администратор
Мнения: 5110
Регистриран: 06 окт 2016, 19:20
Местоположение: /resetscore
Се отблагодари: 59 пъти
Получена благодарност: 491 пъти
Години: 21
Контакти:

Имам нужда от помощ

Мнение от OciXCrom TM » 15 апр 2019, 16:36

Оправи си заглавието на темата и сподели какви грешки излизат.

Потребителски аватар

JackEyedJones
Потребител
Потребител
Мнения: 166
Регистриран: 10 сеп 2018, 17:26
Местоположение: Plovdiv, Bulgaria, Europe, Entire World
Се отблагодари: 3 пъти
Получена благодарност: 29 пъти
Години: 25
Контакти:

Поправка на плъгин

Мнение от JackEyedJones » 15 апр 2019, 17:04

Код: Избери всички

#include <amxmodx>
#include <amxmisc>

#define PLUGIN 	"Prefix Editor"
#define VERSION "1.0"
#define AUTHOR 	"real<Abiss>"

#define Founder	ADMIN_CFG

enum
{
	DIR_PREFIXES
}

new const g_szDataDir[][] =
{
	"addons/amxmodx/configs/ap_prefixes.ini"
}

enum _:PlayerData
{
	g_szName[32],
	g_szSteamID[32],
	g_iOption,
	g_iPlayer,
	g_iChoosen
}

new g_PlayerInfo[33][PlayerData]

new const g_szPrefixMenuItems[][]=
{
	"Add Pre-made Prefix",
	"Remove Prefix"
}

new const g_szPremadeMenuItems[][]=
{
	"VIP",
	"ADMIN",
	"STAFF",
	"HEAD STAFF",
	"CO-OWNER",
	"OWNER"
}

new const g_szPremadePrefixes[][]=
{
	"[VIP]",
	"[Admin]",
	"[OZ Staff]",
	"[OZ Head Staff]",
	"[-<Co-Owner>-]",
	"[-<OWNER>-]"
}

public plugin_init()
{
	register_plugin(PLUGIN, VERSION, AUTHOR)
	
	register_concmd("Prefix_Editor","check_access")
}

public check_access(id)
{
	if(get_user_flags(id) & Founder)
	{
		PrefixEditorMenu(id)
	}
	else client_print(id, print_chat,"You don't have access to this menu!")
}

public PrefixEditorMenu(id)
{
	new iMenuID = menu_create("\rPrefix Editor \w:", "PrefixEditorMenuHndle")

	for(new i=0; i<sizeof(g_szPrefixMenuItems); i++) menu_additem(iMenuID, g_szPrefixMenuItems[i])

	menu_display(id, iMenuID)
}

public PrefixEditorMenuHndle(id,iMenuID, iItem)
{
	switch(iItem)
	{
		case 1: AddPremade(id)
		case 2: RemovePrefix(id)
	}
	return PLUGIN_HANDLED
}

public AddPremade(id)
{
	
	new szText[128]
	new iMenuID = menu_create("\rChoose Prefix\w:","AddPremadeMenuHandle")
	
	for(new i=0; i<sizeof(g_szPremadeMenuItems) && i<sizeof(g_szPremadePrefixes); i++)
	{
		formatex(szText, charsmax(szText), "\y%s \w(\r %s \w)", g_szPremadeMenuItems[i] ,g_szPremadePrefixes[i])
		menu_additem(iMenuID, szText)
	}
	menu_display(id, iMenuID)
}

public AddPremadeMenuHandle(id, iMenuID, iItem)
{
	if(iItem == MENU_EXIT)
	{
		menu_destroy(iMenuID);
		return;
	}
	
	switch(iItem)
	{
		case 0 .. 10:
		{
			g_PlayerInfo[id][g_iOption] = iItem+1
			ChoosePrefixPlayer(id)
		}
	}
}

public ChoosePrefixPlayer(id)
{
	new szItem[32], iMenuID = menu_create("\yChoose Target \w:", "ChoosePrefixPlayerHandle");
	
	for(new i=0, n=0; i<=32; i++)
	{
		if(!is_user_connected(i)) continue
		
		g_PlayerInfo[n++][g_iPlayer] = i
		
		get_user_name(i, szItem, charsmax(szItem))
		menu_additem(iMenuID, szItem, "0", 0)
	}
	
	menu_display(id, iMenuID)
}

public ChoosePrefixPlayerHandle(id, iMenuID, iItem)
{
	if(iItem == MENU_EXIT)
	{
		menu_destroy(iMenuID)
		return;
	}
	
	g_PlayerInfo[id][g_iChoosen] = g_PlayerInfo[iItem][g_iPlayer]
	
	if(!is_user_connected(g_PlayerInfo[id][g_iChoosen]))
	{
		client_print(id, print_chat,  "!g[Oblivion Zombie] !yTarget Not Founded In The Server.")
		AddPremade(id)
		return;
	}
	
	PrefixAdded(id)
}

public PrefixAdded(id)
{	
	new szText[256]
	for(new i = 1; i < sizeof(g_szPremadePrefixes); i++)
	{
		if (g_PlayerInfo[id][g_iOption] == i)
		{
			formatex(szText, charsmax(szText), "^"n^"^"%s^"^"%s^"", g_PlayerInfo[g_PlayerInfo[id][g_iChoosen]][g_szName], g_szPremadePrefixes[i-1]);
			write_file(g_szDataDir[DIR_PREFIXES], szText);
			client_print(id, print_chat, "Perfix is added!")
		}
	}
}

public RemovePrefix(id)
{
	new szItem[32]
	new iMenuID = menu_create("\yChoose Target \w:", "RemovePrefixHandle");
	
	for(new i=0, n=0; i<=32; i++)
	{
		if(!is_user_connected(i)) continue
		
		g_PlayerInfo[n++][g_iPlayer] = i
		
		get_user_name(i, szItem, charsmax(szItem))
		menu_additem(iMenuID, szItem, "0", 0)
	}
	
	menu_display(id, iMenuID)
}

public RemovePrefixHandle(id, iMenuID, iItem)
{
	if(iItem == MENU_EXIT)
	{
		menu_destroy(iMenuID)
		return;
	}
	
	g_PlayerInfo[id][g_iChoosen] = g_PlayerInfo[iItem][g_iPlayer]
	
	if(!is_user_connected(g_PlayerInfo[id][g_iChoosen]))
	{
		client_print(id, print_chat,  "[Oblivion Zombie] Target Not Founded In The Server.")
		PrefixEditorMenu(id)
		return;
	}
	
	PrefixRemoved(id)
}

public PrefixRemoved(id)
{
	new szText[192], iLine, iLen, szLineData[2][32]
	
	while((iLine = read_file(g_szDataDir[DIR_PREFIXES], iLine, szText, charsmax(szText), iLen)))
	{	
		if(!iLen || szText[0] == ';' || szText[0] == '/' && szText[1] == '/') continue;
					
		if(parse(szText, szLineData[0], charsmax(szLineData[]), szLineData[1], charsmax(szLineData[])) < 2) continue;
					
		if(equal(g_PlayerInfo[g_PlayerInfo[id][g_iChoosen]][g_szName], szLineData[0]) || equal(g_PlayerInfo[g_PlayerInfo[id][g_iChoosen]][g_szSteamID], szLineData[0]))
		{
			delete_line(g_szDataDir[DIR_PREFIXES], iLine);
			client_print(id, print_chat,"Prefix removed!")
			return;
		}
	}
}
	
stock delete_line(const szFile[], iLine)
{
	if (file_exists(szFile))
	{
		new iMaxLines = file_size(szFile, 1)
		
		new Array:szFileLines, szLine[512], iTextLen
		
		szFileLines = ArrayCreate(512)
		
		for (new iLineToRead = 0; iLineToRead < iMaxLines; iLineToRead++)
		{
			if (iLineToRead + 1 == iLine)
				continue
			
			read_file(szFile, iLineToRead, szLine, charsmax(szLine), iTextLen)
			
			ArrayPushString(szFileLines, szLine)
		}
		
		delete_file(szFile)
		
		for (new iLineToRead = 0; iLineToRead < ArraySize(szFileLines); iLineToRead++)
		{
			ArrayGetString(szFileLines, iLineToRead, szLine, charsmax(szLine))
			
			write_file(szFile, szLine)
		}
		
		ArrayDestroy(szFileLines)
	}
}
В този вариант, плъгина няма да работи. Без тестове го казвам.
Още от тук е проблема:

Код: Избери всички

is_user_connected(g_PlayerInfo[id][g_iChoosen])
Без регистрация с for( няма да намери индекса.

Потребителски аватар

stambeto2006 TM®
Тестов модератор
Тестов модератор
Мнения: 332
Регистриран: 06 окт 2016, 15:44
Се отблагодари: 20 пъти
Получена благодарност: 23 пъти
Години: 23
Контакти:

Поправка на плъгин

Мнение от stambeto2006 TM® » 15 апр 2019, 22:28

До автора на темата оправи си заглавието това, че си го направил от "Имам нужда от помощ" на "Поправка на плъгин" отново не става на въпрос за какво става дума в темата. Ако не си оправиш заглавието, темата ще ти бъде заключена и директно ще отиде в "КОША" да се научиш.
ИзображениеИзображение

Потребителски аватар

Автор на темата
Abiss32
Потребител
Потребител
Мнения: 13
Регистриран: 03 яну 2019, 12:58
Се отблагодари: 1 път

Заявка за поправяне на Prefix Editor Menu

Мнение от Abiss32 » 16 апр 2019, 14:11

Надявам се новото заглавие да ви устройва...
И ако може някой да оправи плъгине ще бъде страхотно

Потребителски аватар

summertime vibes
Тестов модератор
Тестов модератор
Мнения: 1028
Регистриран: 27 ное 2016, 17:47
Местоположение: In the Heaven
Се отблагодари: 43 пъти
Получена благодарност: 82 пъти
Контакти:

Заявка за поправяне на Prefix Editor Menu

Мнение от summertime vibes » 21 апр 2019, 13:59

Пробва ли изобщо това, което е написал @JackEyedJones?
Изображение


Потребителски аватар

Автор на темата
Abiss32
Потребител
Потребител
Мнения: 13
Регистриран: 03 яну 2019, 12:58
Се отблагодари: 1 път

Заявка за поправяне на Prefix Editor Menu

Мнение от Abiss32 » 22 апр 2019, 00:03

То плъгина въобще не иска да се компилира дава много грешки и мисля че някои идват от stock-овете

Потребителски аватар

JackEyedJones
Потребител
Потребител
Мнения: 166
Регистриран: 10 сеп 2018, 17:26
Местоположение: Plovdiv, Bulgaria, Europe, Entire World
Се отблагодари: 3 пъти
Получена благодарност: 29 пъти
Години: 25
Контакти:

Заявка за поправяне на Prefix Editor Menu

Мнение от JackEyedJones » 22 апр 2019, 07:35

Тук е окей всичко.
:hooray:
Screenshot_97.png
Screenshot_97.png (27.12 KиБ) Видяна 60 пъти
Screenshot_97.png
Screenshot_97.png (27.12 KиБ) Видяна 60 пъти

Потребителски аватар

stambeto2006 TM®
Тестов модератор
Тестов модератор
Мнения: 332
Регистриран: 06 окт 2016, 15:44
Се отблагодари: 20 пъти
Получена благодарност: 23 пъти
Години: 23
Контакти:

Заявка за поправяне на Prefix Editor Menu

Мнение от stambeto2006 TM® » 22 апр 2019, 16:18

Abiss32 написа:
22 апр 2019, 00:03
То плъгина въобще не иска да се компилира дава много грешки и мисля че някои идват от stock-овете
Може да покажеш какви грешки ти дава, а не само да казвате. Ако използваш готов мод от цс-хлапе.инфо, където да са ровичкани библиотеките е нормално да ти дава.

Току що пробвах при мен и се компилира без никакви грешки, както е показал и @JackEyedJones.
ИзображениеИзображение

Отговори

Върни се в “Помощ в скриптирането”

Кой е на линия

Потребители, разглеждащи този форум: Няма регистрирани потребители и 0 госта