Форум Pawn.Wiki - Воплоти мечту в реальность!: Реклама с редактированием текста из игры v2.0 - Форум Pawn.Wiki - Воплоти мечту в реальность!

Перейти к содержимому

  • (2 Страниц) +
  • 1
  • 2
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

[ Scr ][ All ]
Реклама с редактированием текста из игры v2.0
Оценка: -----

#1
Пользователь офлайн   Mike 

  • Профессионал
  • Вставить ник
  • Раскрыть информацию
Здравствуйте, итак я написал 2-ю версию скрипта, возможности:
Редактирование текста из игры;
Изменение цвета текста из игры;
Изменение времени, которое отвечает, через сколько будет показываться реклама;
Скриншоты:
Изображение

1) В папку scriptfiles поставить это:
adv.rar [363байт]

2) В начало мода:
#define DIALOG_CHANGE 1
#define DIALOG_TEXT1 2
#define DIALOG_TEXT2 3
#define DIALOG_TEXT3 4
#define DIALOG_TEXT4 5
#define DIALOG_TEXT5 6
#define DIALOG_TIME 7


3) Ко всем new:
new adtimer;
new ad = 0;


4) Ко всем forward'ам:
forward Adv();
forward Adv2();


5) В public OnDialogResponse:
if(dialogid == DIALOG_CHANGE)
	{
	    if(response)
	    {
			if(listitem == 0)
			{
			ShowPlayerDialog(playerid, DIALOG_TEXT1, DIALOG_STYLE_INPUT, "Редактирование текста", "Введите текст рекламы", "Принять", "Отмена");
			}
			if(listitem == 1)
			{
			ShowPlayerDialog(playerid, DIALOG_TEXT2, DIALOG_STYLE_INPUT, "Редактирование текста", "Введите текст рекламы", "Принять", "Отмена");
			}
			if(listitem == 2)
			{
			ShowPlayerDialog(playerid, DIALOG_TEXT3, DIALOG_STYLE_INPUT, "Редактирование текста", "Введите текст рекламы", "Принять", "Отмена");
			}
			if(listitem == 3)
			{
			ShowPlayerDialog(playerid, DIALOG_TEXT4, DIALOG_STYLE_INPUT, "Редактирование текста", "Введите текст рекламы", "Принять", "Отмена");
			}
			if(listitem == 4)
			{
			ShowPlayerDialog(playerid, DIALOG_TEXT5, DIALOG_STYLE_INPUT, "Редактирование текста", "Введите текст рекламы", "Принять", "Отмена");
			}
                        if(listitem == 5)
			{
			ShowPlayerDialog(playerid, DIALOG_TIME, DIALOG_STYLE_INPUT, "Редактирование времени", "Введите время(в минутах)", "Принять", "Отмена");
			}

	    }
	}
	if(dialogid == DIALOG_TEXT1)
	{
	    if(response)
	    {
	    	if(!strlen(inputtext))
			{
			ShowPlayerDialog(playerid, DIALOG_TEXT1, DIALOG_STYLE_INPUT, "Редактирование текста", "Введите текст рекламы", "Принять", "Отмена");
			return 1;
			}
			new file = ini_openFile("adv/text.ini");//
			ini_setString(file,"Text1",inputtext);
			ini_closeFile(file);
			SendClientMessage(playerid, COLOR_WHITE, "Вы успешно изменили текст рекламы!");
	    }
	    else
	    {
	    // none
	    }
	}
	if(dialogid == DIALOG_TEXT2)
	{
	    if(response)
	    {
	    	if(!strlen(inputtext))
			{
			ShowPlayerDialog(playerid, DIALOG_TEXT2, DIALOG_STYLE_INPUT, "Редактирование текста", "Введите текст рекламы", "Принять", "Отмена");
			return 1;
			}
			new file = ini_openFile("adv/text.ini");//
			ini_setString(file,"Text2",inputtext);
			ini_closeFile(file);
			SendClientMessage(playerid, COLOR_WHITE, "Вы успешно изменили текст рекламы!");
	    }
	    else
	    {
	    // none
	    }
	}
	if(dialogid == DIALOG_TEXT3)
	{
	    if(response)
	    {
	    	if(!strlen(inputtext))
			{
			ShowPlayerDialog(playerid, DIALOG_TEXT3, DIALOG_STYLE_INPUT, "Редактирование текста", "Введите текст рекламы", "Принять", "Отмена");
			return 1;
			}
			new file = ini_openFile("adv/text.ini");//
			ini_setString(file,"Text3",inputtext);
			ini_closeFile(file);
			SendClientMessage(playerid, COLOR_WHITE, "Вы успешно изменили текст рекламы!");
	    }
	    else
	    {
	    // none
	    }
	}
	if(dialogid == DIALOG_TEXT4)
	{
	    if(response)
	    {
	    	if(!strlen(inputtext))
			{
			ShowPlayerDialog(playerid, DIALOG_TEXT4, DIALOG_STYLE_INPUT, "Редактирование текста", "Введите текст рекламы", "Принять", "Отмена");
			return 1;
			}
			new file = ini_openFile("adv/text.ini");//
			ini_setString(file,"Text4",inputtext);
			ini_closeFile(file);
			SendClientMessage(playerid, COLOR_WHITE, "Вы успешно изменили текст рекламы!");
	    }
	    else
	    {
	    // none
	    }
	}
	if(dialogid == DIALOG_TEXT5)
	{
	    if(response)
	    {
	    	if(!strlen(inputtext))
			{
			ShowPlayerDialog(playerid, DIALOG_TEXT5, DIALOG_STYLE_INPUT, "Редактирование текста", "Введите текст рекламы", "Принять", "Отмена");
			return 1;
			}
			new file = ini_openFile("adv/text.ini");//
			ini_setString(file,"Text5",inputtext);
			ini_closeFile(file);
			SendClientMessage(playerid, COLOR_WHITE, "Вы успешно изменили текст рекламы!");
	    }
	    else
	    {
	    // none
	    }
        if(dialogid == DIALOG_TIME)
	{
	    if(response)
	    {
			new per[128], txt;
	    	if(!strlen(inputtext))
			{
			ShowPlayerDialog(playerid, DIALOG_TIME, DIALOG_STYLE_INPUT, "Редактирование времени", "Введите время(в минутах)", "Принять", "Отмена");
			return 1;
			}
  				new numer = IsNumeric(inputtext);
				if(!numer)
				{
				ShowPlayerDialog(playerid, DIALOG_TIME, DIALOG_STYLE_INPUT, "Редактирование времени", "Введите время(в минутах)", "Принять", "Отмена");
				SendClientMessage(playerid,COLOR_WHITE,"((Время не может состоять из букв!))");
				return 1;
				}
    				if(strval(inputtext) < 0 || strval(inputtext) >= 100) return SendClientMessage(playerid, COLOR_WHITE, "Время должно быть от 1 до 100 минут!");
					new timeadv;
					timeadv = strval(inputtext)*1000*60;
					new file = ini_openFile("adv/text.ini");
					{
					ini_setInteger(file,"Time",timeadv);
					ini_getInteger(file, "Time", txt);
					ini_closeFile(file);
					}
			format(per,sizeof(per),"Вы изменили время отображения рекламы, теперь реклама будет появляться каждые %d мин.",strval(inputtext));
			SendClientMessage(playerid, COLOR_WHITE, per);
			KillTimer(adtimer);
			adtimer = SetTimer("Adv", txt, 1);
	    }
	    else
	    {
	    // none
		}
	}
	}


6) В public OnPlayerCommandText:
if(strcmp(cmd, "/changetext", true) == 0)
	{
			new t1[128], t2[128], t3[128], t4[128], t5[128];
 		    new file = ini_openFile("adv/text.ini");
    		{
			ini_getString(file, "Text1", t1);
			ini_getString(file, "Text2", t2);
			ini_getString(file, "Text3", t3);
			ini_getString(file, "Text4", t4);
			ini_getString(file, "Text5", t5);
			ini_closeFile(file);
			}
		        format(string, sizeof(string), "Text1: %s\nText2: %s\nText3: %s\nText4: %s\nText5: %s",t1,t2,t3,t4,t5);
	         	ShowPlayerDialog(playerid, DIALOG_CHANGE, DIALOG_STYLE_LIST, "Выбирите текст", string, "Выбрать", "Отмена");
			return 1;
	}


7) В public OnGameModeInit:
new txt;
	new file = ini_openFile("adv/text.ini");
	{
 	ini_getInteger(file, "Time", txt);
 	ini_closeFile(file);
 	}
	adtimer = SetTimer("Adv", txt, 1);


8) В конец мода:
public Adv2()
{

	new string[128], test[8];
    new ftext[128];
    new t1[128], t2[128], t3[128], t4[128], t5[128];
	new file = ini_openFile("adv/text.ini");
	ini_getString(file, "Text1", t1);
	ini_getString(file, "Text2", t2);
	ini_getString(file, "Text3", t3);
	ini_getString(file, "Text4", t4);
	ini_getString(file, "Text5", t5);
	ini_closeFile(file);
    if(ad == 1) { ftext = t1; }
    else if(ad == 2) { ftext = t2; }
    else if(ad == 3) { ftext = t3; }
    else if(ad == 4) { ftext = t4; }
    else if(ad == 5) { ftext = t5; }
   	format(string, sizeof(string), "%s", ftext);
   	new test1 = strmid(test, string, 0, 7);
	SendClientMessageToAll(test1, string);

	return 1;
}
//==============================================================================
public Adv()
{

	new dice = random(5)+1;
	ad = dice;
    Adv2();

	return 1;
}
//====================================

IsNumeric(const string[])
{
        for (new i = 0, j = strlen(string); i < j; i++)
        {
                if (string[i] > '9' || string[i] < '0') return 0;
        }
        return 1;
}


Вот и все, на счет инклуда mxINI его вставляете в папку pawno>>>includes. Скачать MxINI

Автор: Mike

На сторонние ресурсы копировать запрещено! © pawn.wiki
12

#2
Пользователь офлайн   LiMOH 

  • Профессионал
  • Вставить ник
  • Раскрыть информацию
Классно, поставил плюс) Еще бы не помешала возможность добавления / удаления строк.
0

#3
Пользователь офлайн   Romzes 

  • ( ^_^ )
  • Вставить ник
  • Раскрыть информацию
Тоже нравится. + Поставлю.
0

#4
Пользователь офлайн   Twist 

  • Маппер по вызову!
  • Вставить ник
  • Раскрыть информацию
Нормально придумал, заберу себе!
0

#5
Пользователь офлайн   Draif 

  • Новичок
  • Вставить ник
  • Раскрыть информацию
кУЛЛ
0

#6
Пользователь офлайн   kaserer20111 

  • Я вернулся!))
  • Вставить ник
  • Раскрыть информацию
C:\Users\????\Desktop\??????\SAMP-RP - ?????\filterscripts\reklama.pwn(75) : error 017: undefined symbol "string"
C:\Users\????\Desktop\??????\SAMP-RP - ?????\filterscripts\reklama.pwn(75) : error 017: undefined symbol "string"
C:\Users\????\Desktop\??????\SAMP-RP - ?????\filterscripts\reklama.pwn(75) : error 029: invalid expression, assumed zero
C:\Users\????\Desktop\??????\SAMP-RP - ?????\filterscripts\reklama.pwn(75) : fatal error 107: too many error messages on one line


format(string, sizeof(string), "Text1: %s\nText2: %s\nText3: %s\nText4: %s\nText5: %s",t1,t2,t3,t4,t5);

Пытался сделать ФС'ом по вылазили эти ошибки в моде робит Можно ли это исправить?
0

#7
Пользователь офлайн   Stich 

  • Эксперт
  • Вставить ник
  • Раскрыть информацию

Просмотр сообщенияkaserer20111 (16 декабря 2012 - 12:35) писал:

C:\Users\????\Desktop\??????\SAMP-RP - ?????\filterscripts\reklama.pwn(75) : error 017: undefined symbol "string"
C:\Users\????\Desktop\??????\SAMP-RP - ?????\filterscripts\reklama.pwn(75) : error 017: undefined symbol "string"
C:\Users\????\Desktop\??????\SAMP-RP - ?????\filterscripts\reklama.pwn(75) : error 029: invalid expression, assumed zero
C:\Users\????\Desktop\??????\SAMP-RP - ?????\filterscripts\reklama.pwn(75) : fatal error 107: too many error messages on one line


format(string, sizeof(string), "Text1: %s\nText2: %s\nText3: %s\nText4: %s\nText5: %s",t1,t2,t3,t4,t5);

Пытался сделать ФС'ом по вылазили эти ошибки в моде робит Можно ли это исправить?

Перед строкой:
format(string, sizeof(string), "Text1: %s\nText2: %s\nText3: %s\nText4: %s\nText5: %s",t1,t2,t3,t4,t5);

Вставь вот это: "new string[500];"

1

#8
Пользователь офлайн   kaserer20111 

  • Я вернулся!))
  • Вставить ник
  • Раскрыть информацию
Спасибо! :rolleyes: + твой
0

#9
Пользователь офлайн   Makentoshen 

  • Vip
  • Вставить ник
  • Раскрыть информацию
Хорошая работа. :) +
0

#10
Пользователь офлайн   Slime 

  • Прохожий
  • Вставить ник
  • Раскрыть информацию
Вылазит ошибка
C:\Users\GreenZe\Desktop\Test\gamemodes\Test.pwn(62545) : error 021: symbol already defined: "IsNumeric"
Pawn compiler 3.2.3664	 	 	Copyright © 1997-2006, ITB CompuPhase


1 Error.


Вот сама строка
IsNumeric(const string[])
{
        for (new i = 0, j = strlen(string); i < j; i++)
        {
                if (string[i] > '9' || string[i] < '0') return 0;
        }
        return 1;
}

0

Поделиться темой:


  • (2 Страниц) +
  • 1
  • 2
  • Вы не можете создать новую тему
  • Вы не можете ответить в тему

1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей


Яндекс.Метрика