iCant
Ученик
Здравствуйте уважаемые пользователи P-I
Не так уж и давно на Orio[N] появилась система золотых слитков. И решил ее написать(скопировать).
Начнем
Не так уж и давно на Orio[N] появилась система золотых слитков. И решил ее написать(скопировать).
Начнем
Ко всем new
PHP:
new GoldBuy = 0;
new GoldSell = 0;
new goldexchange;
new Text3D: goldtext;
PHP:
pGold,
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);
}
в OnGameModeInit
PHP:
LoadGold();
PHP:
goldexchange = CreatePickup(1239, 23, 2309.1985,-7.0999,26.7422, -1); // Обмен валюты в банке
PHP:
dini_IntSet(string, "Gold", PlayerInfo[playerid][pGold]);
PHP:
dini_IntSet(string, "Gold", PlayerInfo[playerid][pGold]);
PHP:
PlayerInfo[playerid][pGold] = dini_Int(string2,"Gold");
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;
}
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
Ну вот и все. Если будут возникать вопросы или ошибки пишите в skype: mandarin.by.ru
Последнее редактирование:
