Доступ к архиву

Переход в группу "Пользователь"

300.00 ₽
Одноразовый платёж
Быстрый переход в группу "Пользователи", без надобности написания постов и ожидания.

Покупка дает возможность:
Быть полноправным участником форума
Нормальное копирование кода
Создавать темы
Скачивать файлы
Доступ к архиву Pawno-Info

Достижения как на [O]rio[N]

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

Alex_Nepom

Ученик
[Мануал/Урок] Достижения как на [O]rio[N]

Здравствуйте посетители форума Pawno-Info​


Хочу выставить написанную мной систему достижений как на [O]rio[N].
Попытаюсь одновременно объяснить для чего мы это добавляем, почему.
​
[Шаг 1] создание....
Ну начнем, для того чтобы наша функция срабатывала. Необходимо создать

в: enum pInfo
Код:
pDostiz1,
pDostiz2,
[Шаг 2][Аннулирование при подключении]
Далее, при подключении аннулируем ее.

в: public OnPlayerConnect

(Не знаю как у всех, но у меня PIF, но в стандарте у всех PlayerInfo)

Добавим:
Код:
PlayerInfo[playerid][pDostiz1] = 0;
PlayerInfo[playerid][pDostiz2] = 0;
Далее [Шаг 3][Сохранение/Загрузка]

Для того чтобы наша функция загружалась либо-же сохранялась

Версия файла <mxINI>

Добавляем в: public OnPlayerRegister(playerid,password[])
Код:
format(var, 32, "Dostiz1=%d\n",PlayerInfo[playerid][pDostiz1]);fwrite(hFile,var);
format(var, 32, "Dostiz2=%d\n",PlayerInfo[playerid][pDostiz2]);fwrite(hFile,var);

Добавляем в: public SavePlayer(playerid,password[]) (Не знаю у кого как, если что отредактируйте public где у вас все сохраняется)
Код:
format(var, 32, "Dostiz1=%d\n",PlayerInfo[playerid][pDostiz1]);fwrite(hFile,var);
format(var, 32, "Dostiz2=%d\n",PlayerInfo[playerid][pDostiz2]);fwrite(hFile,var);
Чтобы при подключении все это загружало:

public OnPlayerLogin(playerid,password[])
Код:
if( strcmp( key , "Dostiz1" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pDostiz1] = strval( val ); }
if( strcmp( key , "Dostiz2" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pDostiz2] = strval( val ); }

версия <MySQL>

Код:
MYSQL_GetInt([COLOR="#008000"]ваша цифра*[/COLOR], PlayerInfo[playerid][pDostiz1]); 
MYSQL_GetInt([COLOR="#008000"]ваша цифра*[/COLOR], PlayerInfo[playerid][pDostiz2]);
ваша цифра* В зависимости от положения строчки)


Далее [Шаг 4]

Для того чтобы получить допустим при 5 скилле наше достижение необходимо

Добавим в public OnPlayerUpdate(playerid)

Код:
if(PlayerInfo[playerid][pTruckSkill] == 500) //Опять-же не знаю))) у кого как измените если что на свое))
{
	if(PlayerInfo[playerid][pDostiz1] == 0)//проверка на не выполненное достижение
	{
	       SendClientMessage(playerid, COLOR_LIGHTRED, "ваш текст");
	       PlayerInfo[playerid][pDostiz1] = 1;//ставим что выполнено
                  // Добавляем сюда, что угодно 
           }
}
Просмотреть достижения:

в: public OnPlayerCommandText(playerid, cmdtext[])

Код:
if(strcmp(cmd, "/dostiz", true) == 0)
	{
	   new dostiz1[20];
              if(PlayerInfo[playerid][pDostiz1]) { dostiz1 = "{86ff00}Выполнено; } else { dostiz1 = "{ff0000}Не выполнено"; }
              new dostiz[] = "Дальнобойщик 5 скилл %s";
	   format(string, sizeof(string), dostiz, dostiz1);
	   ShowPlayerDialog(playerid,[COLOR="#FF0000"]id[/COLOR],DIALOG_STYLE_MSGBOX,"{ffffff}Достижения:",string," Выход ","");
	   [COLOR="#0000FF"]return true[/COLOR];
}
id - измените на свободный

Команду не проверял... В случае ошибки сообщите.

Вы можете взять данный мануал за основу) и попробовать выполнить что-то подобное))
Напишу любой мануал бесплатно)
Кому нужно, пишите в личку.
За плюсами не гоняюсь, но при копировании указывайте автора.​

P.S. Оформлять не умею ;) не художник)

С Вами был Legacyb4STI ;) Удачи
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу