anonimniy
Компетентный
Доброго, времени суток, уважаемые пользователи Pawno-Info. В данной теме я расскажу вам, как сделать магазины незаконной продукции, такие как на сервере Orio[N], вернее, я не знаю как они там устроены, я лишь взял у них оформление 3д Текстов, остальное доделал (придумал) сам.
Идея принадлежит проекту Orio[N] и его создателю [A]Le[X]and[R]`y.
Код и сам мануал принадлежит мне. (anonimniy).
При обнаружение багов, напишите мне. я исправлю.
Для тех кто не в теме:
МНП - Магазины незаконной продукции. С помощью них игрок может купить там материалы/наркотики. У МНП есть владельцы, касса и много функций.
Приступим.
Ко всем #define:
Ко всем forward:
В pInfo:
К enum:
В OnPlayerConnect:
В любое место мода (Главное не в скобки)
Ниже:
В OnGameModeInit:
В конец OnGameModeInit:
В OnPlayerRegister:
В OnPlayerSave:
В OnPlayerLogin:
В public OnPropUpdate:
В OnPlayerCommandText:
В OnDialogResponse:
В конец мода:
В папке scriptfiles создаём папку Black и туда закидываем файл mnp.
Ссылка на mnp. -
Идея принадлежит проекту Orio[N] и его создателю [A]Le[X]and[R]`y.
Код и сам мануал принадлежит мне. (anonimniy).
При обнаружение багов, напишите мне. я исправлю.
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Для тех кто не в теме:
МНП - Магазины незаконной продукции. С помощью них игрок может купить там материалы/наркотики. У МНП есть владельцы, касса и много функций.
Приступим.
Ко всем #define:
PHP:
#define MAX_MNP 1 // Кол-во МНП
PHP:
forward LoadMNP();
PHP:
pPMNPkey,
PHP:
enum sMNPInfo
{
sMNPOwned,
sMNPOwner[64],
Float:sMNPEntranceX,
Float:sMNPEntranceY,
Float:sMNPEntranceZ,
sMNPLevelNeeded,
sMNPCena,
sMNPTill,
sMNPNarko,
sMNPMati,
sMNPCenaNarko,
sMNPCenaMati,
Text3D: sMNPLabel,
};
new SMNPInfo[MAX_MNP][sMNPInfo];
new Text3D: SMNP3D[sizeof(SMNPInfo)];
PHP:
PlayerInfo[playerid][pPMNPkey] = 255;
PHP:
stock PrintSMNPInfo(playerid,targetid)
{
if(IsPlayerConnected(playerid))
{
new coordsstring[160];
format(coordsstring, sizeof(coordsstring), "Цена за 1 материал: $%d\nЦена за 1 грамм наркотиков: %d\nНаркотиков: %d\nМатериалов: %d\nВ сейфе: $%d\n",SMNPInfo[targetid][sMNPCenaMati],SMNPInfo[targetid][sMNPCenaNarko],SMNPInfo[targetid][sMNPNarko],SMNPInfo[targetid][sMNPMati],SMNPInfo[targetid][sMNPTill]);
SPD(playerid, DIALOG_NONE, DIALOG_STYLE_MSGBOX, "МНП", coordsstring, "Готово", "");
}
}
PHP:
public LoadMNP()
{
new arrCoords[12][64];
new strFromFile2[256];
new File: file = fopen("Black/mnp.cfg", io_read);
if (file)
{
new idx;
while (idx < sizeof(SMNPInfo))
{
fread(file, strFromFile2);
split(strFromFile2, arrCoords, '|');
SMNPInfo[idx][sMNPOwned] = strval(arrCoords[0]);
strmid(SMNPInfo[idx][sMNPOwner], arrCoords[1], 0, strlen(arrCoords[1]), 255);
SMNPInfo[idx][sMNPEntranceX] = floatstr(arrCoords[2]);
SMNPInfo[idx][sMNPEntranceY] = floatstr(arrCoords[3]);
SMNPInfo[idx][sMNPEntranceZ] = floatstr(arrCoords[4]);
SMNPInfo[idx][sMNPLevelNeeded] = strval(arrCoords[5]);
SMNPInfo[idx][sMNPCena] = strval(arrCoords[6]);
SMNPInfo[idx][sMNPTill] = strval(arrCoords[7]);
SMNPInfo[idx][sMNPNarko] = strval(arrCoords[8]);
SMNPInfo[idx][sMNPMati] = strval(arrCoords[9]);
SMNPInfo[idx][sMNPCenaNarko] = strval(arrCoords[10]);
SMNPInfo[idx][sMNPCenaMati] = strval(arrCoords[11]);
idx++;
}
fclose(file);
printf("|Магазины незаконной продукции (МНП): %d", MAX_MNP);
printf("|==============================");
}
return true;
}
PHP:
LoadMNP();
PHP:
for(new h = 0; h < sizeof(SMNPInfo); h++)
{
new text[600];
if(SMNPInfo[h][sMNPOwned] == 0)
{
format(text,sizeof(text),"{FF6347}< Магазин незаконной продукции >{FFFFFF}\n\nСтатус: {7CFC00}Продаётся{FFFFFF}\nНомер: {7CFC00}%d{FFFFFF}\nУровень: {7CFC00}%d{FFFFFF}\nЦена: {7CFC00}%d{FFFFFF}\n\nДля покупки введите '{FF6347}/buymnp{FFFFFF}'",h+1,SMNPInfo[h][sMNPLevelNeeded],SMNPInfo[h][sMNPCena]);
SMNP3D[h] = Create3DTextLabel(text,0xA9C4E4FF,SMNPInfo[h][sMNPEntranceX],SMNPInfo[h][sMNPEntranceY],SMNPInfo[h][sMNPEntranceZ]+1,20.0,0,1);
}
if(SMNPInfo[h][sMNPOwned] == 1)
{
format(text,sizeof(text),"{FF6347}< Магазин незаконной продукции >{FFFFFF}\n\nНомер: %d\nВладелец: {7CFC00}%s{FFFFFF}\nУровень: {7CFC00}%d{FFFFFF}\nЦена за 1 материал: %d\nЦена за 1 грамм наркотиков: %d\n[Материалы: {7CFC00}%d{FFFFFF} | Наркотики: {7CFC00}%d{FFFFFF}]\n\nДля покупки введите '{FF6347}/shop{FFFFFF}'",h+1,SMNPInfo[h][sMNPOwner],SMNPInfo[h][sMNPLevelNeeded],SMNPInfo[h][sMNPCenaMati],SMNPInfo[h][sMNPCenaNarko],SMNPInfo[h][sMNPMati],SMNPInfo[h][sMNPNarko]);
SMNP3D[h] = Create3DTextLabel(text,0xA9C4E4FF,SMNPInfo[h][sMNPEntranceX],SMNPInfo[h][sMNPEntranceY],SMNPInfo[h][sMNPEntranceZ]+1,20.0,0,1);
}
CreateDynamicMapIcon(SMNPInfo[h][sMNPEntranceX], SMNPInfo[h][sMNPEntranceY], SMNPInfo[h][sMNPEntranceZ], 39, COLOR_WHITE, 0, -1, -1, 400.0);
CreateDynamicPickup(1279, 23, SMNPInfo[h][sMNPEntranceX], SMNPInfo[h][sMNPEntranceY], SMNPInfo[h][sMNPEntranceZ],0);
}
printf("|Магазины незаконной продукции (МНП) загружены");
PHP:
dini_IntSet(string, "MNP", PlayerInfo[playerid][pPMNPkey]);
PHP:
dini_IntSet(string, "MNP", PlayerInfo[playerid][pPMNPkey]);
PHP:
PlayerInfo[playerid][pPMNPkey] = dini_Int(string2,"MNP");
PHP:
idx = 0;
while (idx < sizeof(SMNPInfo))
{
new coordsstring[256];
format(coordsstring, sizeof(coordsstring), "%d|%s|%f|%f|%f|%d|%d|%d|%d|%d|%d|%d\n",
SMNPInfo[idx][sMNPOwned],
SMNPInfo[idx][sMNPOwner],
SMNPInfo[idx][sMNPEntranceX],
SMNPInfo[idx][sMNPEntranceY],
SMNPInfo[idx][sMNPEntranceZ],
SMNPInfo[idx][sMNPLevelNeeded],
SMNPInfo[idx][sMNPCena],
SMNPInfo[idx][sMNPTill],
SMNPInfo[idx][sMNPNarko],
SMNPInfo[idx][sMNPMati],
SMNPInfo[idx][sMNPCenaNarko],
SMNPInfo[idx][sMNPCenaMati]);
if(idx == 0)
{
file2 = fopen("Black/mnp.cfg", io_write);
}
else
{
file2 = fopen("Black/mnp.cfg", io_append);
}
fwrite(file2, coordsstring);
idx++;
fclose(file2);
}
PHP:
if(strcmp(string,"/shop",true) == 0)
{
if(gPlayerLogged[playerid] == 1)
{
for(new h = 0; h < sizeof(SMNPInfo); h++)
{
if(PlayerToPoint(2.0, playerid, SMNPInfo[h][sMNPEntranceX], SMNPInfo[h][sMNPEntranceY], SMNPInfo[h][sMNPEntranceZ]))
{
SPD(playerid,4503,DIALOG_STYLE_LIST,"МНП","[1] - Купить материалы\n[2] - Купить наркотики",">>>","Х");
}
}
}
return true;
}
if(strcmp(string, "/mnpmenu",true)== 0)
{
if(gPlayerLogged[playerid] == 1)
{
if(PlayerInfo[playerid][pPMNPkey] == 255)
{
SendClientMessage(playerid,COLOR_WHITE,"{FF0000}[Ошибка]{FFFFFF} Вы не владеете МНП!");
return true;
}
SPD(playerid,4500,DIALOG_STYLE_LIST,"{33CCFF}МНП","[1] - Местоположение МНП\n[2] - Уст. цену за 1 материал\n[3] - Уст. цену за 1 наркотик\n[4] - Забрать материалы\n[5] - Забрать наркотики\n[6] - Забрать деньги\n[7] - Продать МНП\n[8] - Положить материалы\n[9] - Положить наркотики",">>>","X");
}
return true;
}
if(strcmp(string, "/mnpo", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(PlayerInfo[playerid][pAdmin] == 0) return true;
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_WHITE, "{FF9900}[Использование]{FFFFFF} /mnpo [ID Магазина]");
new housenum = strval(tmp);
SetPlayerPos(playerid,SMNPInfo[housenum][sMNPEntranceX],SMNPInfo[housenum][sMNPEntranceY],SMNPInfo[housenum][sMNPEntranceZ]);
GameTextForPlayer(playerid, "~w~ЏE‡EЊOPЏA‰…•", 5000, 1);
SetPlayerVirtualWorld(playerid, 0);
SetPlayerInterior(playerid,0);
PlayerInfo[playerid][pInt] = 0;
}
return true;
}
if(strcmp(string, "/buymnp", true) == 0)
{
if(IsPlayerConnected(playerid))
{
new Float:oldposx, Float:oldposy, Float:oldposz;
GetPlayerName(playerid, playername, sizeof(playername));
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
if(PlayerInfo[playerid][pPMNPkey] != 255)
{
SendClientMessage(playerid, COLOR_WHITE, "{FF0000}[Ошибка]{FFFFFF} У вас уже есть МНП!");
return true;
}
for(new b = 0; b < sizeof(SMNPInfo); b++)
{
if(PlayerToPoint(2.0, playerid, SMNPInfo[b][sMNPEntranceX], SMNPInfo[b][sMNPEntranceY], SMNPInfo[b][sMNPEntranceZ]) && SMNPInfo[b][sMNPOwned] == 0)
{
if(PlayerInfo[playerid][pLevel] < SMNPInfo[b][sMNPLevelNeeded])
{
format(string, sizeof(string), "JustGame RPG: Вы должны быть уровня %d чтобы купить это предприятие.",SMNPInfo[b][sMNPLevelNeeded]);
SendClientMessage(playerid, COLOR_GRAD5, string);
return true;
}
if(PlayerInfo[playerid][pMoney] >= SMNPInfo[b][sMNPCena])
{
PlayerInfo[playerid][pPMNPkey] = b;
SMNPInfo[b][sMNPOwned] = 1;
GetPlayerName(playerid, sendername, sizeof(sendername));
strmid(SMNPInfo[b][sMNPOwner], sendername, 0, strlen(sendername), 255);
PlayerInfo[playerid][pMoney] -= SMNPInfo[b][sMNPCena];
PlayerPlayMusic(playerid);
SendClientMessage(playerid, COLOR_WHITE, "JustGame RPG: Поздравляем, Вы только что приобрели магазин незаконной продукции (МНП).");
SendClientMessage(playerid, COLOR_WHITE, "Меню управление заправкой - {33CCFF}/mnpmenu.");
OnPropUpdate();
UpdateSMNP(b);
OnPlayerSave(playerid);
return true;
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "{FF0000}[Ошибка]{FFFFFF} Недостаточно средств!");
return true;
}
}
}
}
return true;
}
if(strcmp(string, "/sellmnp", true) == 0)
{
if(IsPlayerConnected(playerid))
{
GetPlayerName(playerid, playername, sizeof(playername));
if(PlayerInfo[playerid][pPMNPkey] == 255)
{
SendClientMessage(playerid, COLOR_WHITE, "{FF0000}[Ошибка]{FFFFFF} У Вас нет МНП.");
return true;
}
if(PlayerInfo[playerid][pMarried] > 0)
{
SendClientMessage(playerid, COLOR_WHITE, "{FF0000}[Ошибка]{FFFFFF} Вы женаты и не можете продать МНП!");
return true;
}
if(PlayerInfo[playerid][pPMNPkey] >= 0 && strcmp(playername, SMNPInfo[PlayerInfo[playerid][pPMNPkey]][sMNPOwner], true) == 0)
{
new bouse = PlayerInfo[playerid][pPMNPkey];
PlayerInfo[playerid][pMoney] += SMNPInfo[bouse][sMNPCena];
SMNPInfo[bouse][sMNPOwned] = 0;
GetPlayerName(playerid, sendername, sizeof(sendername));
strmid(SMNPInfo[bouse][sMNPOwner], "-", 0, strlen("-"), 255);
PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
new string123[60];
format(string123, sizeof(string123), "Вы продали МНП за $%d.",SMNPInfo[bouse][sMNPCena]);
SendClientMessage(playerid, COLOR_WHITE, string123);
PlayerInfo[playerid][pPMNPkey] = 255;
OnPlayerSave(playerid);
UpdateSMNP(bouse);
OnPropUpdate();
return true;
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "{FF0000}[Ошибка]{FFFFFF} Вы не владеете МНП!");
}
}
return true;
}
if (strcmp(string, "/mnpinfo", true) == 0)
{
if(IsPlayerConnected(playerid))
{
new bouse = PlayerInfo[playerid][pPMNPkey];
if(bouse == 255)
{
SendClientMessage(playerid, COLOR_WHITE, "{FF0000}[Ошибка]{FFFFFF} Вы не владеете МНП!");
return true;
}
PrintSMNPInfo(playerid,bouse);
}
return true;
}
PHP:
if(dialogid == 4500)
{
if(response)
{
if(listitem == 0)
{
if(PlayerInfo[playerid][pPMNPkey] != 255)
{
SetPlayerCheckpoint(playerid,SMNPInfo[PlayerInfo[playerid][pPMNPkey]][sMNPEntranceX], SMNPInfo[PlayerInfo[playerid][pPMNPkey]][sMNPEntranceY], SMNPInfo[PlayerInfo[playerid][pPMNPkey]][sMNPEntranceZ], 4.0);
GameTextForPlayer(playerid, "~w~ЏOЌKA ЊУЏ… УCЏAмO‹‡EмA ~r~Home", 5000, 1);
}
}
if(listitem == 1)
{
if(PlayerInfo[playerid][pPMNPkey] != 255)
{
SPD(playerid,4501,DIALOG_STYLE_INPUT,"Управление МНП","Установите цену за 1 материал:",">>>","X");
}
}
if(listitem == 2)
{
if(PlayerInfo[playerid][pPMNPkey] != 255)
{
SPD(playerid,4502,DIALOG_STYLE_INPUT,"Управление МНП","Установите цену за 1 наркотик:",">>>","X");
}
}
if(listitem == 3)
{
if(PlayerInfo[playerid][pPMNPkey] != 255)
{
new mnp = PlayerInfo[playerid][pPMNPkey];
if(PlayerToPoint(3, playerid,SMNPInfo[mnp][sMNPEntranceX], SMNPInfo[mnp][sMNPEntranceY], SMNPInfo[mnp][sMNPEntranceZ]))
{
if(SMNPInfo[mnp][sMNPMati] >= 1)
{
PlayerInfo[playerid][pMats] += SMNPInfo[mnp][sMNPMati];
SMNPInfo[mnp][sMNPMati] = 0;
UpdateSMNP(mnp);
SendClientMessage(playerid,COLOR_WHITE,"Вы забрали все материалы с вашего МНП.");
}
}
}
}
if(listitem == 4)
{
if(PlayerInfo[playerid][pPMNPkey] != 255)
{
new mnp = PlayerInfo[playerid][pPMNPkey];
if(PlayerToPoint(3, playerid,SMNPInfo[mnp][sMNPEntranceX], SMNPInfo[mnp][sMNPEntranceY], SMNPInfo[mnp][sMNPEntranceZ]))
{
if(SMNPInfo[mnp][sMNPNarko] >= 1)
{
PlayerInfo[playerid][pDrugs] += SMNPInfo[mnp][sMNPNarko];
SMNPInfo[mnp][sMNPNarko] = 0;
UpdateSMNP(mnp);
SendClientMessage(playerid,COLOR_WHITE,"Вы забрали все наркотики с вашего МНП.");
}
}
}
}
if(listitem == 5)
{
if(PlayerInfo[playerid][pPMNPkey] != 255)
{
new mnp = PlayerInfo[playerid][pPMNPkey];
if(PlayerToPoint(3, playerid,SMNPInfo[mnp][sMNPEntranceX], SMNPInfo[mnp][sMNPEntranceY], SMNPInfo[mnp][sMNPEntranceZ]))
{
if(SMNPInfo[mnp][sMNPTill] >= 1)
{
PlayerInfo[playerid][pMoney] += SMNPInfo[mnp][sMNPTill];
SMNPInfo[mnp][sMNPTill] = 0;
UpdateSMNP(mnp);
SendClientMessage(playerid,COLOR_WHITE,"Вы забрали все деньги с вашего МНП.");
}
}
}
}
if(listitem == 6)
{
if(PlayerInfo[playerid][pPMNPkey] != 255)
{
if(PlayerInfo[playerid][pMarried] > 0)
{
SendClientMessage(playerid, COLOR_WHITE, "{FF0000}[Ошибка]{FFFFFF} Вы женаты и не можете продать МНП!");
return true;
}
new sendername[MAX_PLAYER_NAME];
GetPlayerName(playerid, sendername, sizeof(sendername));
if(PlayerInfo[playerid][pPMNPkey] >= 0 && strcmp(sendername, SMNPInfo[PlayerInfo[playerid][pPMNPkey]][sMNPOwner], true) == 0)
{
new bouse = PlayerInfo[playerid][pPMNPkey];
PlayerInfo[playerid][pMoney] += SMNPInfo[bouse][sMNPCena];
SMNPInfo[bouse][sMNPOwned] = 0;
strmid(SMNPInfo[bouse][sMNPOwner], "-", 0, strlen("-"), 255);
PlayerPlaySound(playerid, 1052, 0.0, 0.0, 0.0);
new string123[60];
format(string123, sizeof(string123), "Вы продали МНП за $%d.",SMNPInfo[bouse][sMNPCena]);
SendClientMessage(playerid, COLOR_WHITE, string123);
PlayerInfo[playerid][pPMNPkey] = 255;
OnPlayerSave(playerid);
UpdateSMNP(bouse);
OnPropUpdate();
return true;
}
else
{
SendClientMessage(playerid, COLOR_WHITE, "{FF0000}[Ошибка]{FFFFFF} Вы не владеете МНП!");
}
}
}
if(listitem == 7)
{
SPD(playerid,4506,DIALOG_STYLE_INPUT,"Материалы","Введите кол-во материалов которые вы хотите положить:",">>>","X");
}
if(listitem == 8)
{
SPD(playerid,4507,DIALOG_STYLE_INPUT,"Наркотики","Введите кол-во наркотиков которые вы хотите положить:",">>>","X");
}
}
}
if(dialogid == 4501)
{
if(response)
{
new bouse = PlayerInfo[playerid][pPMNPkey];
if(!strval(inputtext))
{
SPD(playerid,4501,DIALOG_STYLE_INPUT,"Управление МНП","Установите цену за 1 материал:",">>>","X");
return true;
}
new color = strval(inputtext);
if(color > SMNPInfo[bouse][sMNPTill])
{
SendClientMessage(playerid, COLOR_WHITE, "{FF0000}[Ошибка]{FFFFFF} Вы не имеете столько в корзине!");
return true;
}
SMNPInfo[bouse][sMNPCenaMati] = color;
UpdateSMNP(bouse);
format(string, sizeof(string), "Цена за 1 материал теперь $%d.", SMNPInfo[bouse][sMNPCenaMati]);
SendClientMessage(playerid, COLOR_WHITE, string);
}
}
if(dialogid == 4502)
{
if(response)
{
new bouse = PlayerInfo[playerid][pPMNPkey];
if(!strval(inputtext))
{
SPD(playerid,4501,DIALOG_STYLE_INPUT,"Управление МНП","Установите цену за 1 наркотик:",">>>","X");
return true;
}
new color = strval(inputtext);
if(color > SMNPInfo[bouse][sMNPTill])
{
SendClientMessage(playerid, COLOR_WHITE, "{FF0000}[Ошибка]{FFFFFF} Вы не имеете столько в корзине!");
return true;
}
SMNPInfo[bouse][sMNPCenaNarko] = color;
UpdateSMNP(bouse);
format(string, sizeof(string), "Цена за 1 наркотик теперь $%d.", SMNPInfo[bouse][sMNPCenaMati]);
SendClientMessage(playerid, COLOR_WHITE, string);
}
}
if(dialogid == 4503)
{
if(response)
{
if(listitem == 0)
{
for(new h = 0; h < sizeof(SMNPInfo); h++)
{
if(PlayerToPoint(2.0, playerid, SMNPInfo[h][sMNPEntranceX], SMNPInfo[h][sMNPEntranceY], SMNPInfo[h][sMNPEntranceZ]))
{
SPD(playerid,4504,DIALOG_STYLE_INPUT,"Покупка материалов","Введите кол-во материалов которые вы хотите купить",">>>","X");
return true;
}
}
}
if(listitem == 1)
{
for(new h = 0; h < sizeof(SMNPInfo); h++)
{
if(PlayerToPoint(2.0, playerid, SMNPInfo[h][sMNPEntranceX], SMNPInfo[h][sMNPEntranceY], SMNPInfo[h][sMNPEntranceZ]))
{
SPD(playerid,4505,DIALOG_STYLE_INPUT,"Покупка наркотиков","Введите кол-во наркотиков которые вы хотите купить",">>>","X");
return true;
}
}
}
if(listitem == 2)
{
for(new h = 0; h < sizeof(SMNPInfo); h++)
{
if(PlayerToPoint(2.0, playerid, SMNPInfo[h][sMNPEntranceX], SMNPInfo[h][sMNPEntranceY], SMNPInfo[h][sMNPEntranceZ]))
{
SPD(playerid,4506,DIALOG_STYLE_INPUT,"Продажа материалов","Введите кол-во материалов которые вы хотите продать",">>>","X");
return true;
}
}
}
if(listitem == 3)
{
for(new h = 0; h < sizeof(SMNPInfo); h++)
{
if(PlayerToPoint(2.0, playerid, SMNPInfo[h][sMNPEntranceX], SMNPInfo[h][sMNPEntranceY], SMNPInfo[h][sMNPEntranceZ]))
{
SPD(playerid,4507,DIALOG_STYLE_INPUT,"Продажа наркотиков","Введите кол-во наркотиков которые вы хотите продать",">>>","X");
return true;
}
}
}
}
}
if(dialogid == 4504)
{
if(response)
{
if(!strval(inputtext))
{
SPD(playerid,4504,DIALOG_STYLE_INPUT,"Покупка материалов","Введите кол-во материалов которые вы хотите купить",">>>","X");
return true;
}
new color = strval(inputtext);
for(new h = 0; h < sizeof(SMNPInfo); h++)
{
if(PlayerToPoint(2.0, playerid, SMNPInfo[h][sMNPEntranceX], SMNPInfo[h][sMNPEntranceY], SMNPInfo[h][sMNPEntranceZ]))
{
if(color < 1 || color > SMNPInfo[h][sMNPMati])
{
SendClientMessage(playerid,COLOR_WHITE,"{FF0000}[Ошибка]{FFFFFF} У этого магазина нету столько материалов.");
SPD(playerid,4504,DIALOG_STYLE_INPUT,"Покупка материалов","Введите кол-во материалов которые вы хотите купить",">>>","X");
return true;
}
if(PlayerInfo[playerid][pMoney] < (SMNPInfo[h][sMNPCenaMati])*(color))
{
SendClientMessage(playerid,COLOR_WHITE,"{FF0000}[Ошибка]{FFFFFF} У вас недостаточно денег.");
SPD(playerid,4504,DIALOG_STYLE_INPUT,"Покупка материалов","Введите кол-во материалов которые вы хотите купить",">>>","X");
return true;
}
format(string,sizeof(string),"Вы купили %d материалов за $%d. Спасибо за покупку!",color,(color)*(SMNPInfo[h][sMNPCenaMati]));
SendClientMessage(playerid,COLOR_WHITE,string);
PlayerInfo[playerid][pMoney] -= (color)*(SMNPInfo[h][sMNPCenaMati]);
PlayerInfo[playerid][pMats] += color;
SMNPInfo[h][sMNPMati] -= color;
SMNPInfo[h][sMNPTill] += (color)*(SMNPInfo[h][sMNPCenaMati]);
OnPropUpdate();
UpdateSMNP(h);
return true;
}
}
}
}
if(dialogid == 4505)
{
if(response)
{
if(!strval(inputtext))
{
SPD(playerid,4505,DIALOG_STYLE_INPUT,"Покупка наркотиков","Введите кол-во наркотиков которые вы хотите купить",">>>","X");
return true;
}
new color = strval(inputtext);
for(new h = 0; h < sizeof(SMNPInfo); h++)
{
if(PlayerToPoint(2.0, playerid, SMNPInfo[h][sMNPEntranceX], SMNPInfo[h][sMNPEntranceY], SMNPInfo[h][sMNPEntranceZ]))
{
if(color < 1 || color > SMNPInfo[h][sMNPNarko])
{
SendClientMessage(playerid,COLOR_WHITE,"{FF0000}[Ошибка]{FFFFFF} У этого магазина нету столько наркотиков.");
SPD(playerid,4505,DIALOG_STYLE_INPUT,"Покупка наркотиков","Введите кол-во наркотиков которые вы хотите купить",">>>","X");
return true;
}
if(PlayerInfo[playerid][pMoney] < (SMNPInfo[h][sMNPCenaNarko])*(color))
{
SendClientMessage(playerid,COLOR_WHITE,"{FF0000}[Ошибка]{FFFFFF} У вас недостаточно денег.");
SPD(playerid,4505,DIALOG_STYLE_INPUT,"Покупка наркотиков","Введите кол-во наркотиков которые вы хотите купить",">>>","X");
return true;
}
format(string,sizeof(string),"Вы купили %d наркотиков за $%d. Спасибо за покупку!",color,(color)*(SMNPInfo[h][sMNPCenaNarko]));
SendClientMessage(playerid,COLOR_WHITE,string);
PlayerInfo[playerid][pMoney] -= (color)*(SMNPInfo[h][sMNPCenaNarko]);
PlayerInfo[playerid][pDrugs] += color;
SMNPInfo[h][sMNPNarko] -= color;
SMNPInfo[h][sMNPTill] += (color)*(SMNPInfo[h][sMNPCenaNarko]);
OnPropUpdate();
UpdateSMNP(h);
return true;
}
}
}
}
if(dialogid == 4506)
{
if(response)
{
if(!strval(inputtext))
{
SPD(playerid,4506,DIALOG_STYLE_INPUT,"Материалы","Введите кол-во материалов которые вы хотите положить",">>>","X");
return true;
}
new color = strval(inputtext);
new key = PlayerInfo[playerid][pPMNPkey];
if(color < 1 || color > PlayerInfo[playerid][pMats])
{
SendClientMessage(playerid,COLOR_WHITE,"{FF0000}[Ошибка]{FFFFFF} У вас нету столько материалов.");
SPD(playerid,4506,DIALOG_STYLE_INPUT,"Материалы","Введите кол-во материалов которые вы хотите положить",">>>","X");
return true;
}
format(string,sizeof(string),"Вы положили %d материалов в свой магазин.",color);
SendClientMessage(playerid,COLOR_WHITE,string);
PlayerInfo[playerid][pMats] -= color;
SMNPInfo[key][sMNPMati] += color;
OnPropUpdate();
UpdateSMNP(key);
return true;
}
}
if(dialogid == 4507)
{
if(response)
{
if(!strval(inputtext))
{
SPD(playerid,4507,DIALOG_STYLE_INPUT,"Наркотики","Введите кол-во наркотиков которые вы хотите положить",">>>","X");
return true;
}
new color = strval(inputtext);
new key = PlayerInfo[playerid][pPMNPkey];
if(color < 1 || color > PlayerInfo[playerid][pDrugs])
{
SendClientMessage(playerid,COLOR_WHITE,"{FF0000}[Ошибка]{FFFFFF} У вас нету столько наркотиков.");
SPD(playerid,4507,DIALOG_STYLE_INPUT,"Наркотики","Введите кол-во наркотиков которые вы хотите положить",">>>","X");
return true;
}
format(string,sizeof(string),"Вы положили %d наркотиков в свой магазин.",color);
SendClientMessage(playerid,COLOR_WHITE,string);
PlayerInfo[playerid][pDrugs] -= color;
SMNPInfo[key][sMNPNarko] += color;
OnPropUpdate();
UpdateSMNP(key);
return true;
}
}
PHP:
stock UpdateSMNP(idx)
{
new text[300];
if(SMNPInfo[idx][sMNPOwned] == 0)
{
format(text,sizeof(text),"{FF6347}< Магазин незаконной продукции >{FFFFFF}\n\nСтатус: {7CFC00}Продаётся{FFFFFF}\nНомер: {7CFC00}%d{FFFFFF}\nУровень: {7CFC00}%d{FFFFFF}\nЦена: {7CFC00}%d{FFFFFF}\n\nДля покупки введите '{FF6347}/buymnp{FFFFFF}'",idx+1,SMNPInfo[idx][sMNPLevelNeeded],SMNPInfo[idx][sMNPCena]);
Update3DTextLabelText(SMNP3D[idx], 0xA9C4E4FF, text);
}
if(SMNPInfo[idx][sMNPOwned] == 1)
{
format(text,sizeof(text),"{FF6347}< Магазин незаконной продукции >{FFFFFF}\n\nНомер: %d\nВладелец: {7CFC00}%s{FFFFFF}\nУровень: {7CFC00}%d{FFFFFF}\nЦена за 1 материал: %d\nЦена за 1 грамм наркотиков: %d\n[Материалы: {7CFC00}%d{FFFFFF} | Наркотики: {7CFC00}%d{FFFFFF}]\n\nДля покупки введите '{FF6347}/shop{FFFFFF}'",idx+1,SMNPInfo[idx][sMNPOwner],SMNPInfo[idx][sMNPLevelNeeded],SMNPInfo[idx][sMNPCenaMati],SMNPInfo[idx][sMNPCenaNarko],SMNPInfo[idx][sMNPMati],SMNPInfo[idx][sMNPNarko]);
Update3DTextLabelText(SMNP3D[idx], 0xA9C4E4FF, text);
}
}
Ссылка на mnp. -
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!
Вот и всё. Всем спасибо за прочтение данного мануала, не забывайте ставить "Спасибо" и отписываться!
С уважением, anonimniy.
С уважением, anonimniy.
