Knife choice CORE [Удалено]

Статус
В этой теме нельзя размещать новые ответы.

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755

komashchenko

Идиот
Сообщения
916
Реакции
2,569
Re: [CS:GO] Knife choice - Выбор ножа V1.1

Версия 1.1 - 28.08.2014: Фикс когда нож пропадал, убрана реклама
 

komashchenko

Идиот
Сообщения
916
Реакции
2,569
Re: [CS:GO] Knife choice - Выбор ножа V1.1

C-подобный:
Версия 1.2 - 31.08.2014:  Добавлена возможность брать нож другого игрока, переделано меню

Если надо какие-то настройки плагина пишите в теме добавлю, сейчас в нем нет не 1 настройки:beer:
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Re: [CS:GO] Knife choice - Выбор ножа V1.1

komashchenko,
C-подобный:
new String:r_sKnifes[km-1][] = {"Складной нож", "Нож с лезвием-крюком", "Штык-нож", "Штык-нож М9", "Керамбит", "Охотничий нож", "Нож бабочка"};
PHP:
AddMenuItem(menu, "", "Золотой нож");
	AddMenuItem(menu, "", "Складной нож");
	AddMenuItem(menu, "", "Нож с лезвием-крюком");
	AddMenuItem(menu, "", "Штык-нож");
	AddMenuItem(menu, "", "Штык-нож М9");
	AddMenuItem(menu, "", "Керамбит");
	AddMenuItem(menu, "", "Охотничий нож");
	AddMenuItem(menu, "", "Нож бабочка");
Так, на раздумье тебе...
PHP:
switch(itemNum)
				{
					case 0: set_knife(client, 1);
					case 1: set_knife(client, 2);
					case 2: set_knife(client, 3);
					case 3: set_knife(client, 4);
					case 4: set_knife(client, 5);
					case 5: set_knife(client, 6);
					case 6: set_knife(client, 7);
					case 7: set_knife(client, 8);
				}
Супер! А просто set_knife(client, itemNum+1); нельзя было?
Первой мыслью я подумал: сколько же кода... Второй: сколько же мусора!
 

komashchenko

Идиот
Сообщения
916
Реакции
2,569
Re: [CS:GO] Knife choice - Выбор ножа V1.1

komashchenko,
C-подобный:
new String:r_sKnifes[km-1][] = {"Складной нож", "Нож с лезвием-крюком", "Штык-нож", "Штык-нож М9", "Керамбит", "Охотничий нож", "Нож бабочка"};
PHP:
AddMenuItem(menu, "", "Золотой нож");
    AddMenuItem(menu, "", "Складной нож");
    AddMenuItem(menu, "", "Нож с лезвием-крюком");
    AddMenuItem(menu, "", "Штык-нож");
    AddMenuItem(menu, "", "Штык-нож М9");
    AddMenuItem(menu, "", "Керамбит");
    AddMenuItem(menu, "", "Охотничий нож");
    AddMenuItem(menu, "", "Нож бабочка");
Так, на раздумье тебе...
PHP:
switch(itemNum)
                {
                    case 0: set_knife(client, 1);
                    case 1: set_knife(client, 2);
                    case 2: set_knife(client, 3);
                    case 3: set_knife(client, 4);
                    case 4: set_knife(client, 5);
                    case 5: set_knife(client, 6);
                    case 6: set_knife(client, 7);
                    case 7: set_knife(client, 8);
                }
Супер! А просто set_knife(client, itemNum+1); нельзя было?
нащот первого внимательно глянь
а за 2 спасибо :)
 

komashchenko

Идиот
Сообщения
916
Реакции
2,569
Re: [CS:GO] Knife choice - Выбор ножа V1.1

PHP:
AddMenuItem(menu, "", r_sKnifes[0]);
    AddMenuItem(menu, "", r_sKnifes[1]);
    AddMenuItem(menu, "", r_sKnifes[2]);
    AddMenuItem(menu, "", r_sKnifes[3]);
    AddMenuItem(menu, "", r_sKnifes[4]);
    AddMenuItem(menu, "", r_sKnifes[5]);
    AddMenuItem(menu, "", r_sKnifes[6]);
    AddMenuItem(menu, "", r_sKnifes[7]);
Оффтоп
Заодно пользователю легче редактировать текст - 1 строка на всё.

всеравно неувидил :)
там нет золотого ножа
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #27
Re: [CS:GO] Knife choice - Выбор ножа V1.1

komashchenko, если ножи записаны в строчных массивах то добавляй их в меню через цикл.
 

komashchenko

Идиот
Сообщения
916
Реакции
2,569
Re: [CS:GO] Knife choice - Выбор ножа V1.1

через цикл сделал, ну от что делать начиная с 374 строки у меня идей нет AlmazON подскажи :)
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #29
Re: [CS:GO] Knife choice - Выбор ножа V1.1

komashchenko,
PHP:
if(c_kife[client] >= 0)
	{
		AddMenuItem(menu, "enable0", "Выключить меню при спавне");
		if(c_kife[client] == 0)
		{
			AddMenuItem(menu, "auto1", "Включить автоматическою выдачу ножа\n ");
		}
		else
		{
			AddMenuItem(menu, "auto0", "Выключить автоматическою выдачу ножа\n ");
			if(c_kife[client] != 1)
			{
				AddMenuItem(menu, "option1", "[] Золотой нож");
			}
			else
			{
				AddMenuItem(menu, "", "[X] Золотой нож", ITEMDRAW_DISABLED);
			}
			if(c_kife[client] != 2)
			{
				AddMenuItem(menu, "option2", "[] Складной нож");
			}
			else
			{
				AddMenuItem(menu, "", "[X] Складной нож", ITEMDRAW_DISABLED);
			}
			if(c_kife[client] != 3)
			{
				AddMenuItem(menu, "option3", "[] Нож с лезвием-крюком");
			}
			else
			{
				AddMenuItem(menu, "", "[X] Нож с лезвием-крюком", ITEMDRAW_DISABLED);
			}
			if(c_kife[client] != 4)
			{
				AddMenuItem(menu, "option4", "[] Штык-нож");
			}
			else
			{
				AddMenuItem(menu, "", "[X] Штык-нож", ITEMDRAW_DISABLED);
			}
			if(c_kife[client] != 5)
			{
				AddMenuItem(menu, "option5", "[] Штык-нож М9");
			}
			else
			{
				AddMenuItem(menu, "", "[X] Штык-нож М9", ITEMDRAW_DISABLED);
			}
			if(c_kife[client] != 6)
			{
				AddMenuItem(menu, "option6", "[] Керамбит");
			}
			else
			{
				AddMenuItem(menu, "", "[X] Керамбит", ITEMDRAW_DISABLED);
			}
			if(c_kife[client] != 7)
			{
				AddMenuItem(menu, "option7", "[] Охотничий нож");
			}
			else
			{
				AddMenuItem(menu, "", "[X] Охотничий нож", ITEMDRAW_DISABLED);
			}
			if(c_kife[client] != 8)
			{
				AddMenuItem(menu, "option8", "[] Нож бабочка");
			}
			else
			{
				AddMenuItem(menu, "", "[X] Нож бабочка", ITEMDRAW_DISABLED);
			}
		}
	}
	else
	{
		AddMenuItem(menu, "enable1", "Включить меню при спавне");
	}
Это делается циклом.
 

komashchenko

Идиот
Сообщения
916
Реакции
2,569
Re: [CS:GO] Knife choice - Выбор ножа V1.1

C-подобный:
Версия 1.2.1 - 01.09.2014:  Оптимизация (спасибо: AlmazON, R1KO)
 

AlmazON

Не путать с самим yand3xmail
Сообщения
5,099
Реакции
2,755
Re: [CS:GO] Knife choice - Выбор ножа V1.2.1

Оффтоп
PHP:
else if(strcmp(info,"autoo") == 0)
		{
			c_kife[client] = 0;
			DID_sasting(client);
		}
		else if (strcmp(info,"enable") == 0) 
		{  
			c_kife[client] = 0;
			DID_sasting(client);
		}
сразу на
PHP:
else if(!strcmp(info,"autoo") || !strcmp(info,"enable"))
		{
			c_kife[client] = 0;
			DID_sasting(client);
		}
Да и вообще DID_sasting(client); вынести вниз и всё, выше удалить все.
PHP:
if((pc_kife_n == 1) && (pc_kife[client] != -1))
без скобок нормально работает:
PHP:
if(pc_kife_n == 1 && pc_kife[client] != -1)
А if(c_kife[client] == 0) проще if(!c_kife[client]). У тебя там много такого.
Не привыкай к лишним символам.
PHP:
FormatEx(format, sizeof(format), "[] %s", r_sKnifes[i-1]);
Кстати, кто-нибудь точно в курсе, что в таких случаях лучше: Format или FormatEx?
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #32
Re: [CS:GO] Knife choice - Выбор ножа V1.2.1

AlmazON, FormatEx всегда быстрее.
Format юзается когда нужно сделать формат строке, которая уже содержит значение.

Например:
PHP:
decl String:sStr[100];
Format(sStr, sizeof(sStr), "%N рак", client);

Здесь лучше FormatEx.

А здесь:
PHP:
new String:sStr1[] = " lol";
new String:sStr2[] = "ha-ha";
Format(sStr2, sizeof(sStr2), "%s%s", sStr2, sStr1);
FormatEx не выйдет.
 
Последнее редактирование:

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #33
Re: [CS:GO] Knife choice - Выбор ножа V1.2.1

AlmazON, да. Форматировать строку содержащую значение.


PHP:
static cell_t sm_formatex(IPluginContext *pCtx, const cell_t *params)
{
	char *buf, *fmt;
	size_t res;
	int arg = 4;

	pCtx->LocalToString(params[1], &buf);
	pCtx->LocalToString(params[3], &fmt);
	res = smcore.atcprintf(buf, static_cast<size_t>(params[2]), fmt, pCtx, params, &arg);

	return static_cast<cell_t>(res);
}

static char g_formatbuf[2048];
static StaticCharBuf g_extrabuf;
static cell_t sm_format(IPluginContext *pCtx, const cell_t *params)
{
	char *buf, *fmt, *destbuf;
	cell_t start_addr, end_addr, maxparam;
	size_t res, maxlen;
	int arg = 4;
	bool copy = false;
	char *__copy_buf;

	pCtx->LocalToString(params[1], &destbuf);
	pCtx->LocalToString(params[3], &fmt);

	maxlen = static_cast<size_t>(params[2]);
	start_addr = params[1];
	end_addr = params[1] + maxlen;
	maxparam = params[0];

	for (cell_t i=3; i<=maxparam; i++)
	{
		if ((params[i] >= start_addr) && (params[i] <= end_addr))
		{
			copy = true;
			break;
		}
	}

	if (copy)
	{
		if (maxlen > sizeof(g_formatbuf))
		{
			__copy_buf = g_extrabuf.GetWithSize(maxlen);
		}
		else
		{
			__copy_buf = g_formatbuf;
		}
	}

	buf = (copy) ? __copy_buf : destbuf;
	res = smcore.atcprintf(buf, maxlen, fmt, pCtx, params, &arg);

	if (copy)
	{
		memcpy(destbuf, __copy_buf, res+1);
	}

	return static_cast<cell_t>(res);
}
 
Последнее редактирование:

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #34
Re: [CS:GO] Knife choice - Выбор ножа V1.2.1

AlmazON, вроде как большая %T требует еще индекс клиента.
 

komashchenko

Идиот
Сообщения
916
Реакции
2,569
Re: [CS:GO] Knife choice - Выбор ножа V1.3

C-подобный:
Версия 1.3 - 01.09.2014:  Оптимизация, добавлен авто обновлятор
 

R1KO

fuck society
Сообщения
9,457
Реакции
7,786
  • Команда форума
  • #36
Re: [CS:GO] Knife choice - Выбор ножа V1.3

AlmazON, выходит что да, только тема не для этого)
 

hlfanat

Участник
Сообщения
6
Реакции
0
Re: [CS:GO] Knife choice - Выбор ножа V1.3

Там в меню опечатка :) "Выбать нож"

Добавлено через 4 минуты
Молю! Выкладывайте свои плагины на github или bitbucket, чтобы другие могли их исправлять. Ведь автора темы как правило не дождешься, а собирать фиксы по постам, прикрепленным файлам, цитатам совсем неблагодарное дело.
 
Последнее редактирование:

komashchenko

Идиот
Сообщения
916
Реакции
2,569
Re: [CS:GO] Knife choice - Выбор ножа V1.3

Там в меню опечатка :) "Выбать нож"

Добавлено через 4 минуты
Молю! Выкладывайте свои плагины на github или bitbucket, чтобы другие могли их исправлять. Ведь автора темы как правило не дождешься, а собирать фиксы по постам, прикрепленным файлам, цитатам совсем неблагодарное дело.

В чем проблема изменить исходник ? он есть в первом сообщении
 

sasha111

Участник
Сообщения
12
Реакции
1
Re: [CS:GO] Knife choice - Выбор ножа V1.3

Ошибка перевода меню
1.Выбать себе нож
 

anderson15

Участник
Сообщения
127
Реакции
9
Re: [CS:GO] Knife choice - Выбор ножа V1.3

А может проще сделать файл перевода для разных языков?
 
Статус
В этой теме нельзя размещать новые ответы.

Похожие темы

Сверху Снизу