Доступ к готовым решениям

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

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

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

Мануал Создание системы Золотых Слитков (Копия с Orio[N])

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

iCant

Ученик
Здравствуйте уважаемые пользователи P-I
Не так уж и давно на Orio[N] появилась система золотых слитков. И решил ее написать(скопировать).

Начнем
​

Ко всем new
PHP:
new GoldBuy = 0;
new GoldSell = 0;
new goldexchange;
new Text3D: goldtext;
Теперь добавляем в pInfo
PHP:
pGold,
Этот код добавляем в public OnPlayerPickUpPickup
PHP:
else if(pickupid == goldexchange)
 {
  OnPlayerCommandText(playerid,"/buygold");
  SetPlayerPos(playerid, 2312.3208,-8.8440,26.7422);
 }
Это добавляем куда-нибудь в конец мода.

PHP:
stock LoadGold()
{
	new iniOpens = ini_openFile("gold.cfg");
	ini_getInteger(iniOpens, "GoldBuy", GoldBuy);
	ini_getInteger(iniOpens, "GoldSell", GoldSell);
	ini_closeFile(iniOpens);
	new string[600];
	new gb = GoldBuy;
	new gs = GoldSell;
	format(string, sizeof(string), "Курс золота сейчас:\n\n| Покупка - %d$ за слиток | Продажа - %d$ за слиток |",gb,gs);
    goldtext = Create3DTextLabel(string,0xFFFFFFFF,2309.1985,-7.0999,26.7422,20.0,118,1);
    printf("Курс золота: %d$ покупка | %d$ продажа",gb,gs);
}
Потом нужно создать файл gold.cfg в папке scriptfiles.

в OnGameModeInit
PHP:
LoadGold();
И туда же пихаем
PHP:
goldexchange = CreatePickup(1239, 23, 2309.1985,-7.0999,26.7422, -1); 		// Обмен валюты в банке
Теперь идем в OnPlayerRegister и добовляем
PHP:
dini_IntSet(string, "Gold", PlayerInfo[playerid][pGold]);
В OnPlayerSave
PHP:
dini_IntSet(string, "Gold", PlayerInfo[playerid][pGold]);
Теперь вставляем в OnPlayerLogin
PHP:
PlayerInfo[playerid][pGold] = dini_Int(string2,"Gold");
И куда-нибудь в конец OnPlayerLogin
PHP:
new string[256];
format(string, sizeof(string), "{e3be88}[Банк]:{ffffff} Курс золота сегодня: {FF0000}Покупка: %d${ffffff} за слиток | {299800}Продажа: %d${ffffff} за слиток.",GoldBuy,GoldSell);
SendClientMessage(playerid,COLOR_WHITE, string);
Перейдем ко командам
В OnPlayerCommandText
PHP:
	if(strcmp(cmd, "/buygold", true) == 0 || strcmp(cmd, "/bg", true) == 0)
	{
		if (PlayerInfo[playerid][pLevel] > 4)
		{
			if(PlayerToPoint(5.0, playerid, 2309.1985,-7.0999,26.7422))
			{
			format(string,sizeof(string),"- Купить золото\n- Продать золото");
		    ShowPlayerDialog(playerid,9543,DIALOG_STYLE_LIST,"Обменный пункт",string,"Далее","Отмена");
		    return 1;
		    }
		}
		return 1;
	}
В OnDialogRespone
PHP:
 else if(dialogid == 9543)
{
if(response)
{
if(listitem == 0)
{
new str[200],sctring[200],lol[20];
format(str,sizeof(str),"У тебя в хранилище %d/50000 слитков\n\n",PlayerInfo[playerid][pGold]);
strcat(sctring,str);
format(str,sizeof(str),"Введи кол-во слитков золота, которое хочешь купить. Курс: 1 слиток = %d$",GoldBuy);
strcat(sctring,str);
format(lol,sizeof(lol),"Деньги - Золото");
ShowPlayerDialog(playerid,9535,DIALOG_STYLE_INPUT,lol,sctring,"Ок","Выйти");
}
else if(listitem == 1)
{
new str2[200],sctring2[200],lol2[20];
format(str2,sizeof(str2),"У тебя в хранилище %d/50000 слитков\n\n",PlayerInfo[playerid][pGold]);
strcat(sctring2,str2);
format(str2,sizeof(str2),"Введи кол-во слитков золота, которое хочешь продать. Курс продажи: 1 слиток = %d$",GoldSell);
strcat(sctring2,str2);
format(lol2,sizeof(lol2),"Золото - Деньги");
ShowPlayerDialog(playerid,9536,DIALOG_STYLE_INPUT,lol2,sctring2,"Далее","Назад");
}
return 1;
}
return 1;
}
else if(dialogid == 9535)
{
if(response)
{
if(!strval(inputtext))
{
new str[200],sctring[200],lol[20];
format(str,sizeof(str),"У тебя в хранилище %d/50000 слитков\n\n",PlayerInfo[playerid][pGold]);
strcat(sctring,str);
format(str,sizeof(str),"Введи кол-во слитков золота, которое хочешь купить. Курс: 1 слиток = %d$",GoldBuy);
strcat(sctring,str);
format(lol,sizeof(lol),"Деньги - Золото");
ShowPlayerDialog(playerid,9535,DIALOG_STYLE_INPUT,lol,sctring,"Далее","Назад");
}
new gold = strval(inputtext);
new money = gold*GoldBuy;
if(PlayerInfo[playerid][pMoney] < money)
{
SendClientMessage(playerid, COLOR_WHITE, "[Ошибка] У вас нехватает денег!");
return 1;
}
if(gold >= 50000) return SendClientMessage(playerid, COLOR_WHITE, "[Ошибка] Максимальное количество слитков в хранилище 50.000!");
if(gold <= 0) return SendClientMessage(playerid, COLOR_WHITE, "[Ошибка] Нельзя купить меньше одного слитка.");
new str2[200],sctring2[200],lol2[20];
PlayerInfo[playerid][pMoney] -= money;
PlayerInfo[playerid][pGold] += gold;
KaznaMoney += money;
format(str2,sizeof(str2),"Сделка состоялась успешно!\n\n");
strcat(sctring2,str2);
format(str2,sizeof(str2),"Приобретено: %d слитков,\n",gold);
strcat(sctring2,str2);
format(str2,sizeof(str2),"Потрачено: %d$.",money);
strcat(sctring2,str2);
format(lol2,sizeof(lol2),"Покупка");
ShowPlayerDialog(playerid, 8525, DIALOG_STYLE_MSGBOX,lol2, sctring2, "Выход", "Назад");

}
return 1;
}
else if(dialogid == 9536)
{
if(response)
{
if(!strval(inputtext))
{
new str[200],sctring[200],lol[20];
format(str,sizeof(str),"У тебя в хранилище %d/50000 слитков\n\n",PlayerInfo[playerid][pGold]);
strcat(sctring,str);
format(str,sizeof(str),"Введи кол-во слитков золота, которое хочешь продать. Курс продажи: 1 слиток = %d$",GoldSell);
strcat(sctring,str);
format(lol,sizeof(lol),"Золото - Деньги");
ShowPlayerDialog(playerid,9536,DIALOG_STYLE_INPUT,lol,sctring,"Далее","Назад");
}
new gold = strval(inputtext);
new money = gold*GoldSell;

if(PlayerInfo[playerid][pGold] < gold)
{
SendClientMessage(playerid, COLOR_WHITE, "[Ошибка] Неверное количество золотых слитков!");
return 1;
}

new str2[200],sctring2[200],lol2[20];
PlayerInfo[playerid][pMoney] += money;
PlayerInfo[playerid][pGold] -= gold;
KaznaMoney -= money;
format(str2,sizeof(str2),"Сделка состоялась успешно!\n\n");
strcat(sctring2,str2);
format(str2,sizeof(str2),"Продано: %d слитков,\n",gold);
strcat(sctring2,str2);
format(str2,sizeof(str2),"Остаток: %d слитков,\n",PlayerInfo[playerid][pGold]);
strcat(sctring2,str2);
format(str2,sizeof(str2),"Получено: %d$.",money);
strcat(sctring2,str2);
format(lol2,sizeof(lol2),"Продажа");
ShowPlayerDialog(playerid, 8525, DIALOG_STYLE_MSGBOX,lol2, sctring2, "Выход", "Назад");

}
return 1;
}
Изменять курс можно в файле gold.cfg
Ну вот и все. Если будут возникать вопросы или ошибки пишите в skype: mandarin.by.ru​
 
Последнее редактирование:
Статус
В этой теме нельзя размещать новые ответы.
Сверху Снизу