Ошибка при компиляции

WeSTMan

А вот тут текст!
Сообщения
833
Реакции
521
PHP:
#pragma tabsize 0

public OnPluginStart()
{
	RegConsoleCmd("math", Mat_Command);
}
public Action:Mat_Command(ic, argc)
{
    if ( ic == 0 )
    {   
        PrintToServer("client-side only");
        return Plugin_Handled;
    }
	ShowMatMenu(ic);
	return Plugin_Handled;
}

ShowMatMenu(ic)
{

	new Handle:hMenu = CreateMenu(Handle_Mu1Menu);
	SetMenuTitle(hMenu, "Меню цикла\nВыберите цикл:");
	AddMenuItem(hMenu, NULL_STRING, "От 1 до 100");
	AddMenuItem(hMenu, NULL_STRING, "От 1 до 200");
	AddMenuItem(hMenu, NULL_STRING, "От 1 до 300");
	
	SetMenuExitBackButton(hMenu, true);
	DisplayMenu(hMenu, ic, MENU_TIME_FOREVER);
	
}
public action:Handle_Mu1Menu(Handle:hMenu, MenuAction:action, ic, iSlot)
{
	if ( action == MenuAction_Select )
	{
	if ( iSlot == 0 )
	{
		new summ = 0;
		
		for (new i = 1; i < 100; i++)
		{
			summ += i;
		}
		PrintToChatAll("\x01[Цикл] \x04Вы сосчитали от 1 до 100, ответ: %d", summ);
		ShowMatMenu(ic);
	}
	else if ( iSlot == 1 )
	{
		new summ = 0;
		
		for (new i = 1; i < 200; i++)
		{
			summ += i;
		}
		PrintToChatAll("\x01[Цикл] \x04Вы сосчитали от 1 до 200, ответ: %d", summ)
		ShowMatMenu(ic);
	}
	else if ( iSlot == 2 )
	{
		new summ = 0;
		
		for (new i = 1; i < 300; i++)
		{
			summ += i;
		}
	PrintToChatAll("\x01[Цикл] \x04Вы сосчитали от 1 до 200, ответ: %d", summ)
	ShowMatMenu(ic);
	}
	
	else if ( action == MenuAction_End )
		{
			CloseHandle(hMenu);
		}
	}
}
Ошбика:
// F:\Servers\myzmsrv\cstrike\addons\sourcemod\scripting\mat.sp(21) : error 100:
function prototypes do not match
 

Sam_Fisher

Участник
Сообщения
703
Реакции
203
PHP:
#pragma tabsize 0

public OnPluginStart()
{
	RegConsoleCmd("math", Mat_Command);
}
public Action:Mat_Command(ic, argc)
{
    if ( ic == 0 )
    {   
        PrintToServer("client-side only");
        return Plugin_Handled;
    }
	ShowMatMenu(ic);
	return Plugin_Handled;
}

ShowMatMenu(ic)
{

	new Handle:hMenu = CreateMenu(Handle_Mu1Menu);
	SetMenuTitle(hMenu, "Меню цикла\nВыберите цикл:");
	AddMenuItem(hMenu, NULL_STRING, "От 1 до 100");
	AddMenuItem(hMenu, NULL_STRING, "От 1 до 200");
	AddMenuItem(hMenu, NULL_STRING, "От 1 до 300");
	
	SetMenuExitBackButton(hMenu, true);
	DisplayMenu(hMenu, ic, MENU_TIME_FOREVER);
	
}
public action:Handle_Mu1Menu(Handle:hMenu, MenuAction:action, ic, iSlot)
{
	if ( action == MenuAction_Select )
	{
	if ( iSlot == 0 )
	{
		new summ = 0;
		
		for (new i = 1; i < 100; i++)
		{
			summ += i;
		}
		PrintToChatAll("\x01[Цикл] \x04Вы сосчитали от 1 до 100, ответ: %d", summ);
		ShowMatMenu(ic);
	}
	else if ( iSlot == 1 )
	{
		new summ = 0;
		
		for (new i = 1; i < 200; i++)
		{
			summ += i;
		}
		PrintToChatAll("\x01[Цикл] \x04Вы сосчитали от 1 до 200, ответ: %d", summ)
		ShowMatMenu(ic);
	}
	else if ( iSlot == 2 )
	{
		new summ = 0;
		
		for (new i = 1; i < 300; i++)
		{
			summ += i;
		}
	PrintToChatAll("\x01[Цикл] \x04Вы сосчитали от 1 до 200, ответ: %d", summ)
	ShowMatMenu(ic);
	}
	
	else if ( action == MenuAction_End )
		{
			CloseHandle(hMenu);
		}
	}
}
Ошбика:
// F:\Servers\myzmsrv\cstrike\addons\sourcemod\scripting\mat.sp(21) : error 100:
function prototypes do not match
Кодировка какая? должна быть UTF8 без BOOM

C-подобный:
else if ( iSlot == 2 )
    {
        new summ = 0;
        
        for (new i = 1; i < 300; i++)
        {
            summ += i;
        }
    PrintToChatAll("\x01[Цикл] \x04Вы сосчитали от 1 до [COLOR="Red"]200[/COLOR], ответ: %d", summ)
    ShowMatMenu(ic);
    }
должно быть 300, не?
 

WeSTMan

А вот тут текст!
Сообщения
833
Реакции
521
ошибка тут:
public action:Handle_Mu1Menu(Handle:hMenu, MenuAction:action, ic, iSlot)
У Handle_Mu1Menu нету action.

Добавлено через 3 минуты
Как сделать так, чтоб и имя показывал и то, что посчитал:
else if ( iSlot == 1 )
{
decl String:sName[32];
GetClientName(ic, sName, sizeof(sName) - 1);

new summ = 0;

for (new i = 1; i < 200; i++)
{
summ += i;
}
PrintToChatAll("\x01[Цикл] \x04Игрок \x03%s \x04сосчитал от 1 до 200, ответ: %d", summ, sName);
ShowMatMenu(ic);
}
Получается:
[Цикл] Игрок V сосчитал от 1 до 200, ответ: 1262703942
 
Последнее редактирование модератором:

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #4
Как сделать так, чтоб и имя показывал и то, что посчитал:
else if ( iSlot == 1 )
{
decl String:sName[32];
GetClientName(ic, sName, sizeof(sName) - 1);

new summ = 0;

for (new i = 1; i < 200; i++)
{
summ += i;
}
PrintToChatAll("\x01[Цикл] \x04Игрок \x03%s \x04сосчитал от 1 до 200, ответ: %d", summ, sName);
ShowMatMenu(ic);
}
Получается:
[Цикл] Игрок V сосчитал от 1 до 200, ответ: 1262703942

PHP:
else if ( iSlot == 1 )
	{
		new summ = 0;
		
		for (new i = 1; i < 200; i++)
		{
			summ += i;
		}
		PrintToChatAll("\x01[Цикл] \x04Игрок \x03%N \x04сосчитал от 1 до 200, ответ: %d",ic, summ);
		ShowMatMenu(ic);
	}
 
  • Мне нравится
Реакции: ifx
Сверху Снизу