shape1
shape2
shape3
shape4
shape7
shape8

[ Мануал ] Система Подарков


Drujok

Освоившийся
Пользователь
04.07.2017
26
1
21
0
Доброго времени суток!

Решил выложить систему подарков так как видел что люди ищут но на форуме нет видел что то но там она на Диалогах и в [ FS ]

Ну вообщем приступим

всего Подарков 8 но дума. сами сможете увеличить количество подарков

Координаты подарков измените на свои и призы тоже измените на свои

Ко всем New

//=/=/=/=/=/=/=/=/=/=/=/ [ Подарки ] /=/=/=/=/=/=/=/=/=/=/=/=/=/=/
new podarok[8];// Количество подарков на карте
//=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/

Далее в enum pInfo

pPodarok,// Подарки
pPodarok1,// Подарки
pPodarok2,// Подарки
pPodarok3,// Подарки
pPodarok4,// Подарки
pPodarok5,// Подарки
pPodarok6,// Подарки
pPodarok7,// Подарки
pPodarok8,// Подарки

Далее в OnPlayerConnect

PlayerInfo[playerid][pPodarok1] = 0; PlayerInfo[playerid][pPodarok2] = 0;//Подарки//
PlayerInfo[playerid][pPodarok3] = 0; PlayerInfo[playerid][pPodarok4] = 0;//Подарки//
PlayerInfo[playerid][pPodarok5] = 0; PlayerInfo[playerid][pPodarok6] = 0;//Подарки//
PlayerInfo[playerid][pPodarok7] = 0; PlayerInfo[playerid][pPodarok8] = 0;//Подарки//

Далее в OnGameModeInit

//~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ [ Подарки на карте ] ~~~~~~~~~~~~~~~~~~~~~~~~~~~
podarok[0] = CreatePickup(19056,1,-55.4535,937.1276,12.1393);
podarok[1] = CreatePickup(19056,1,-712.0522,945.1098,12.1700);
podarok[2] = CreatePickup(19056,1,2507.8210,-2129.6099,23.4558);
podarok[3] = CreatePickup(19056,1,2219.1543,-1960.7726,18.8197);
podarok[4] = CreatePickup(19056,1,1859.8710,-1970.5662,31.9357);
podarok[5] = CreatePickup(19056,1,1863.1366,-2320.5496,6.3150);
podarok[6] = CreatePickup(19056,1,-2226.4800,262.2672,24.5571);
podarok[7] = CreatePickup(19056,1,1767.7008,2274.0122,15.9718);

Далее в OnPlayerPickUpPickup(playerid, pickupid)

//=/=/=/=/=/=/=/=/=/=/=/ [ Подарки ] /=/=/=/=/=/=/=/=/=/=/=/=/=/=/
if(pickupid == podarok[0])
{
if(PlayerInfo[playerid][pPodarok] > 0) return SCM(playerid, COLOR_WHITE, "{B22222}[Информация] {FFFFFF}Вы уже брали этот подарок!");
PlayerInfo[playerid][pMoney] += 10000;
PlayerInfo[playerid][pDm] += 200;
PlayerInfo[playerid][pPodarok] = 1;
SendClientMessage(playerid,COLOR_WHITE,"{73B461}[Информация] {FFFFFF}Подарок #1 собран!");
SendClientMessage(playerid,COLOR_WHITE,"{73B461}[Информация] {FFFFFF}Вы получили 10.000 рублей и 200 ДО!");
}
if(pickupid == podarok[1])
{
if(PlayerInfo[playerid][pPodarok1] > 0) return SCM(playerid, COLOR_WHITE, "{B22222}[Информация] {FFFFFF}Вы уже брали этот подарок!");
PlayerInfo[playerid][pMoney] += 31000;
PlayerInfo[playerid][pDm] += 105;
PlayerInfo[playerid][pPodarok1] = 1;
SendClientMessage(playerid,COLOR_WHITE,"{73B461}[Информация] {FFFFFF}Подарок #2 собран!");
SendClientMessage(playerid,COLOR_WHITE,"{73B461}[Информация] {FFFFFF}Вы получили 31000 рублей и 105 ДО!");
}
if(pickupid == podarok[2])
{
if(PlayerInfo[playerid][pPodarok2] > 0) return SCM(playerid, COLOR_WHITE, "{B22222}[Информация] {FFFFFF}Вы уже брали этот подарок!");
PlayerInfo[playerid][pMoney] += 1;
PlayerInfo[playerid][pDm] += 1;
PlayerInfo[playerid][pPodarok2] = 1;
SendClientMessage(playerid,COLOR_WHITE,"{73B461}[Информация] {FFFFFF}Подарок #3 собран!");
SendClientMessage(playerid,COLOR_WHITE,"{73B461}[Информация] {FFFFFF}Вы получили 1 рублей и 1 ДО!( Жаль )");
}
if(pickupid == podarok[3])
{
if(PlayerInfo[playerid][pPodarok3] > 0) return SCM(playerid, COLOR_WHITE, "{B22222}[Информация] {FFFFFF}Вы уже брали этот подарок!");
PlayerInfo[playerid][pMoney] += 150023;
PlayerInfo[playerid][pDm] += 40;
PlayerInfo[playerid][pPodarok3] = 1;
SendClientMessage(playerid,COLOR_WHITE,"{73B461}[Информация] {FFFFFF}Подарок #4 собран!");
SendClientMessage(playerid,COLOR_WHITE,"{73B461}[Информация] {FFFFFF}Вы получили 150.023 рублей и 40 ДО!");
}
if(pickupid == podarok[4])
{
if(PlayerInfo[playerid][pPodarok4] > 0) return SCM(playerid, COLOR_WHITE, "{B22222}[Информация] {FFFFFF}Вы уже брали этот подарок!");
PlayerInfo[playerid][pMoney] += 100000;
PlayerInfo[playerid][pDm] += 200;
PlayerInfo[playerid][pPodarok4] = 1;
SendClientMessage(playerid,COLOR_WHITE,"{73B461}[Информация] {FFFFFF}Подарок #5 собран!");
SendClientMessage(playerid,COLOR_WHITE,"{73B461}[Информация] {FFFFFF}Вы получили 100.000 рублей и 200 ДО!");
}
if(pickupid == podarok[5])
{
if(PlayerInfo[playerid][pPodarok6] > 0) return SCM(playerid, COLOR_WHITE, "{B22222}[Информация] {FFFFFF}Вы уже брали этот подарок!");
PlayerInfo[playerid][pMoney] += 220000;
PlayerInfo[playerid][pDm] += 30;
PlayerInfo[playerid][pPodarok6] = 1;
SendClientMessage(playerid,COLOR_WHITE,"{73B461}[Информация] {FFFFFF}Подарок #6 собран!");
SendClientMessage(playerid,COLOR_WHITE,"{73B461}[Информация] {FFFFFF}Вы получили 220.000 рублей и 30 ДО!");
}
if(pickupid == podarok[6])
{
if(PlayerInfo[playerid][pPodarok7] > 0) return SCM(playerid, COLOR_WHITE, "{B22222}[Информация] {FFFFFF}Вы уже брали этот подарок!");
PlayerInfo[playerid][pMoney] += 0;
PlayerInfo[playerid][pDm] += 150;
PlayerInfo[playerid][pPodarok7] = 1;
SendClientMessage(playerid,COLOR_WHITE,"{73B461}[Информация] {FFFFFF}Подарок #7 собран!");
SendClientMessage(playerid,COLOR_WHITE,"{73B461}[Информация] {FFFFFF}Вы получили 150 ДО!");
}
if(pickupid == podarok[7])
{
if(PlayerInfo[playerid][pPodarok8] > 0) return SCM(playerid, COLOR_WHITE, "{B22222}[Информация] {FFFFFF}Вы уже получили бонус на открытие!");
PlayerInfo[playerid][pMoney] += 670000;
PlayerInfo[playerid][pDm] += 40;
PlayerInfo[playerid][pPodarok8] = 1;
SendClientMessage(playerid,COLOR_WHITE,"{73B461}[Информация] {FFFFFF}Подарок #8 собран!");
SendClientMessage(playerid,COLOR_WHITE,"{73B461}[Информация] {FFFFFF}Вы получили 670.000 рублей и 40 ДО!");
}
//=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/=/

Далее в OnPlayerRegister(playerid, password[])

format(var, 32, "PODAROK=%d\n",PlayerInfo[playerid][pPodarok]);fwrite(hFile, var);//Подарки//
format(var, 32, "PODAROK1=%d\n",PlayerInfo[playerid][pPodarok1]);fwrite(hFile, var);//Подарки//
format(var, 32, "PODAROK2=%d\n",PlayerInfo[playerid][pPodarok2]);fwrite(hFile, var);//Подарки//
format(var, 32, "PODAROK3=%d\n",PlayerInfo[playerid][pPodarok3]);fwrite(hFile, var);//Подарки//
format(var, 32, "PODAROK4=%d\n",PlayerInfo[playerid][pPodarok4]);fwrite(hFile, var);//Подарки//
format(var, 32, "PODAROK5=%d\n",PlayerInfo[playerid][pPodarok5]);fwrite(hFile, var);//Подарки//
format(var, 32, "PODAROK6=%d\n",PlayerInfo[playerid][pPodarok6]);fwrite(hFile, var);//Подарки//
format(var, 32, "PODAROK7=%d\n",PlayerInfo[playerid][pPodarok7]);fwrite(hFile, var);//Подарки//
format(var, 32, "PODAROK8=%d\n",PlayerInfo[playerid][pPodarok8]);fwrite(hFile, var);//Подарки//

Далее в OnPlayerUpdate(playerid)

format(var, 32, "PODAROK=%d\n",PlayerInfo[playerid][pPodarok]);fwrite(hFile, var);//Подарки//
format(var, 32, "PODAROK1=%d\n",PlayerInfo[playerid][pPodarok1]);fwrite(hFile, var);//Подарки//
format(var, 32, "PODAROK2=%d\n",PlayerInfo[playerid][pPodarok2]);fwrite(hFile, var);//Подарки//
format(var, 32, "PODAROK3=%d\n",PlayerInfo[playerid][pPodarok3]);fwrite(hFile, var);//Подарки//
format(var, 32, "PODAROK4=%d\n",PlayerInfo[playerid][pPodarok4]);fwrite(hFile, var);//Подарки//
format(var, 32, "PODAROK5=%d\n",PlayerInfo[playerid][pPodarok5]);fwrite(hFile, var);//Подарки//
format(var, 32, "PODAROK6=%d\n",PlayerInfo[playerid][pPodarok6]);fwrite(hFile, var);//Подарки//
format(var, 32, "PODAROK7=%d\n",PlayerInfo[playerid][pPodarok7]);fwrite(hFile, var);//Подарки//
format(var, 32, "PODAROK8=%d\n",PlayerInfo[playerid][pPodarok8]);fwrite(hFile, var);//Подарки//

Далее в OnPlayerLogin(playerid,password[])

if( strcmp( key , "PODAROK" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pPodarok] = strval( val ); }//Подарки//
if( strcmp( key , "PODAROK1" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pPodarok1] = strval( val ); }//Подарки//
if( strcmp( key , "PODAROK2" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pPodarok2] = strval( val ); }//Подарки//
if( strcmp( key , "PODAROK3" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pPodarok3] = strval( val ); }//Подарки//
if( strcmp( key , "PODAROK4" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pPodarok4] = strval( val ); }//Подарки//
if( strcmp( key , "PODAROK5" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pPodarok5] = strval( val ); }//Подарки//
if( strcmp( key , "PODAROK6" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pPodarok6] = strval( val ); }//Подарки//
if( strcmp( key , "PODAROK7" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pPodarok7] = strval( val ); }//Подарки//
if( strcmp( key , "PODAROK8" , true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pPodarok8] = strval( val ); }//Подарки//

Ну вот и все если будут Ошибки или проблемы Пишите 

P.S: Измените все на свое

[pDm] - Донат измените на Свое

[pMoney] - Выдача денег измените на Свое

Всем Спасибо за внимание 

Если помог то поставь +сик Вам не трудно а Мне приятно

Авторство:

Автор Системы: Илья Гантимуров [ MaJoR ]

Автор Слива Drujok

 
Последнее редактирование модератором:

Batka1337

Хацкер-программист
Пользователь
08.12.2014
363
154
0
26
Ну код как всегда 

 

Alim260302

Новичок
Пользователь
18.03.2017
2
4
0
19
@Drujok,а как сделать чтобы выдавалось рандомно как на мазинге, поможешь поставлю огроменный ++
 

Drujok

Освоившийся
Пользователь
04.07.2017
26
1
21
0
@Alim260302,Вот у меня работает замени все на свое это я так чисто для теста

if(pickupid == podarok[0])
{
if(PlayerInfo[playerid][pPodarok] > 0) return SCM(playerid, COLOR_WHITE, "{B22222}[Информация] {FFFFFF}Вы уже брали этот подарок!");
new Prise = random(4);
if(Prise == 0) PlayerInfo[playerid][pMoney] += 10000;//Выдача денег
if(Prise == 1) PlayerInfo[playerid][pDm] += 200;//Выдача Донат
if(Prise == 2) PlayerInfo[playerid][pExp] += 4;//Выдача Exp (Опыт)
if(Prise == 3) PlayerInfo[playerid][pDonateRank] += 3;//Вип Аккаунт
PlayerInfo[playerid][pPodarok] = 1;
SendClientMessage(playerid,COLOR_WHITE,"{73B461}[Информация] {FFFFFF}Подарок #1 собран!");
if(Prise == 0) SendClientMessage(playerid,COLOR_WHITE,"{73B461}[Информация] {FFFFFF}Вы получили 10.000 рублей!");
if(Prise == 1) SendClientMessage(playerid,COLOR_WHITE,"{73B461}[Информация] {FFFFFF}Вы получили 200 ДО!");
if(Prise == 2) SendClientMessage(playerid,COLOR_WHITE,"{73B461}[Информация] {FFFFFF}Вы получили 4 Exp!");
if(Prise == 3) SendClientMessage(playerid,COLOR_WHITE,"{73B461}[Информация] {FFFFFF}Вы получили Vip 2 Level!");

Можно еще так попробовать

Код:
if(pickupid == podarok[0])
	{
	if(PlayerInfo[playerid][pPodarok] > 0) return SCM(playerid, COLOR_WHITE, "{B22222}[Информация] {FFFFFF}Вы уже брали этот подарок!");
	new Prise = random(4);
	if(Prise == 0) PlayerInfo[playerid][pMoney] += 10000;
        SendClientMessage(playerid,COLOR_WHITE,"{73B461}[Информация] {FFFFFF}Вы получили 10.000 рублей!");
	if(Prise == 1) PlayerInfo[playerid][pDm] += 200;
	SendClientMessage(playerid,COLOR_WHITE,"{73B461}[Информация] {FFFFFF}Вы получили 200 ДО!");
	if(Prise == 2) PlayerInfo[playerid][pExp] += 4;
	SendClientMessage(playerid,COLOR_WHITE,"{73B461}[Информация] {FFFFFF}Вы получили 4 Exp!");
	if(Prise == 3) PlayerInfo[playerid][pDonateRank] += 3;
	SendClientMessage(playerid,COLOR_WHITE,"{73B461}[Информация] {FFFFFF}Вы получили Vip 2 Level!");
	PlayerInfo[playerid][pPodarok] = 1;
	SendClientMessage(playerid,COLOR_WHITE,"{73B461}[Информация] {FFFFFF}Подарок #1 собран!");
	}
 
Последнее редактирование модератором:

Artyom_Kurzov

Освоившийся
Пользователь
07.12.2015
95
17
0
26
Автор не какой Илья Гантимуров. Автор данной системы я. Данная система вырезана из моего мода который я делал и после слил доква есть.

Кто не верит вот мод: https://yadi.sk/d/kI425VGO335m8s

 
Последнее редактирование модератором:

ytka558

Новичок
Пользователь
13.08.2016
73
1
4
0
Вот такая ошибка

C:\Users\äåòè.pc-\Desktop\sublime\gamemodes\MRP.pwn(5090) : error 017: undefined symbol "PlayerInfo"
C:\Users\äåòè.pc-\Desktop\sublime\gamemodes\MRP.pwn(5090) : warning 215: expression has no effect
C:\Users\äåòè.pc-\Desktop\sublime\gamemodes\MRP.pwn(5090) : error 001: expected token: ";", but found "]"
C:\Users\äåòè.pc-\Desktop\sublime\gamemodes\MRP.pwn(5090) : error 029: invalid expression, assumed zero
C:\Users\äåòè.pc-\Desktop\sublime\gamemodes\MRP.pwn(5090) : fatal error 107: too many error messages on one line
Вот сама строчка

Код:
PlayerInfo[playerid][pPodarok1] = 0;
PlayerInfo[playerid][pPodarok2] = 0;//Ïîäàðêè//
 
Последнее редактирование модератором:

noname_idk

Гуру
Пользователь
19.07.2015
4 046
7
787
0
Скриптер
@ytka558, ну, PlayerInfo замените на свою переменную аккаунта. Если не знаете ее, покажите команду, например, выдачи админ-прав, либо изменения статистики... 

 

ytka558

Новичок
Пользователь
13.08.2016
73
1
4
0
Вот команда

Код:
CMD:setadmin(playerid, params[])
{
    if(GetString(GetName(playerid), NAME_FULL_ACCESS_1) || GetString(GetName(playerid), NAME_FULL_ACCESS_2) || GetString(GetName(playerid), NAME_FULL_ACCESS_3))
	{
		new playername[24], admin_level;
		if(sscanf(params, "s[24]i", playername, admin_level)) return SendClientMessage(playerid, COLOR_WHITE, "Ââåäèòå: /setadmin [íèê èãðîêà] [óðîâåíü àäìèíà]");
		else if(CheckExceptionName(playername)) return 0;
		else if(!(ADM_NONE <= admin_level <= ADM_FOUNDER)) return SendClientMessage(playerid, COLOR_GREY, "Óðîâåíü àäìèíèñòðàòîðà îò 1 äî 8");
		new string[128];
		format(string, sizeof(string), "SELECT * FROM "T_ADMIN" WHERE name = '%s'", playername);
		mysql_tquery(dbHandle, string, "@SetAdmin", "isi", playerid, playername, admin_level);
	}
	return 1;
}
 

ytka558

Новичок
Пользователь
13.08.2016
73
1
4
0
Надеюсь,Вы про это?
 
Код:
		if(!level) return SendClientMessage(playerid, COLOR_GREY, "Èãðîê íå àäìèíèñòðàòîð");
		mysql_format(dbHandle, string, sizeof(string), "INSERT INTO "T_ADMIN" (name,level,last_connect,put_admin,data,a_infonewpl) VALUES ('%s',%d,CURDATE(),'%s',CURDATE(),1)", name, level, GetName(playerid));
		mysql_tquery(dbHandle, string, "", "");
		mysql_format(dbHandle, string, sizeof(string), "UPDATE "T_ACCOUNTS" SET admin = %d WHERE name = '%s'", level, name);
		mysql_tquery(dbHandle, string, "", "");
		format(string, sizeof(string), "%s äîáàâëåí â ñïèñîê àäìèíèñòðàöèè. Óðîâåíü ïîëíîìî÷èé %i", name, level);
	    SendClientMessage(playerid, COLOR_GREEN, string);
	    format(string, sizeof(string), "%s äîáàâèë â ñïèñîê àäìèíèñòðàöèè %s (%i óðîâåíü)", GetName(playerid), name, level);
	    WriteLog("SetAdmin", string);
	    if(GetPlayerID(name) != INVALID_PLAYER_ID)
    	{
    	    pInfo[GetPlayerID(name)][pAdmin] = level;
			MysqlUpdatePlayerInt(GetPlayerID(name), "admin", pInfo[playerid][pAdmin]);
    	    format(string, sizeof(string), "%s íàçíà÷èë Âàñ àäìèíèñòðàòîðîì", GetName(playerid));
	    	SendClientMessage(GetPlayerID(name), COLOR_YELLOW, string);
    	}
	}
	return 1;
}
 

ytka558

Новичок
Пользователь
13.08.2016
73
1
4
0
@Elrmrnt-Kritik, Можете ещё помочь?
Вот такая ошибка
 

C:\Users\äåòè.pc-\Desktop\sublime\gamemodes\MRP.pwn(4762) : error 017: undefined symbol "span"
C:\Users\äåòè.pc-\Desktop\sublime\gamemodes\MRP.pwn(4762) : error 017: undefined symbol "class"
C:\Users\äåòè.pc-\Desktop\sublime\gamemodes\MRP.pwn(4762) : error 029: invalid expression, assumed zero
C:\Users\äåòè.pc-\Desktop\sublime\gamemodes\MRP.pwn(4762) : fatal error 107: too many error messages on on

Вот сама строчка
 

Код:
bonus= CreatePickup(19056 <span class="searchlite">ïèêàï</span>à,1 <span class="searchlite">ïèêàï</span>à,2273.0374,-2187.8806,22, 1 <span class="searchlite">ïèêàï</span>à);// Êîîðäèíàòû X,Y,Z ñìåíèòü íà ñâîè.
 

noname_idk

Гуру
Пользователь
19.07.2015
4 046
7
787
0
Скриптер
@ytka558, удаляйте все, что находится в пределах < и >

 

ytka558

Новичок
Пользователь
13.08.2016
73
1
4
0
@Elrmrnt-Kritik, Всё хорошо с подарками,но проверка (чтобы второй раз не взяли) ошибку выдаёт
 

C:\Users\äåòè.pc-\Desktop\sublime\gamemodes\MRP.pwn(9722) : error 017: undefined symbol "SCM"

Строчка
 

Код:
if(pInfo[playerid][pPodarok8] > 0) return SCM(playerid, COLOR_WHITE, "{B22222}[Èíôîðìàöèÿ] {FFFFFF}Âû óæå ïîëó÷èëè áîíóñ íà îòêðûòèå!");
 

ytka558

Новичок
Пользователь
13.08.2016
73
1
4
0
@Elrmrnt-Kritik, Поможете ещё помочь?
Вот ошибка
 

C:\Users\äåòè.pc-\Desktop\sublime\gamemodes\MRP.pwn(4950) : error 017: undefined symbol "key"
C:\Users\äåòè.pc-\Desktop\sublime\gamemodes\MRP.pwn(4950) : error 017: undefined symbol "val"
C:\Users\äåòè.pc-\Desktop\sublime\gamemodes\MRP.pwn(4950) : error 017: undefined symbol "ini_GetValue"
C:\Users\äåòè.pc-\Desktop\sublime\gamemodes\MRP.pwn(4950) : fatal error 107: too many error messages on one line

Вот строчка
 

Код:
if( strcmp( key , "PODAROK" , true ) == 0 ) { val = ini_GetValue( Data ); pInfo[playerid][pPodaro1] = strval( val ); }//Ïîäàðêè//
 
Последнее редактирование модератором:

noname_idk

Гуру
Пользователь
19.07.2015
4 046
7
787
0
Скриптер
@ytka558, у Вас в моде какой способ сохранения данных? Наверняка не стандартный writer. Переведите на свой, mxINI, MySQL или что там у Вас...