Пользователь
- Регистрация
- 11 Дек 2024
- Сообщения
- 91
- Автор темы
- #1
Дароу, просили слить систему адоната, ниже увидите код, больше подходит конечно же под арз
пуфн:
//КУДА ТО В НАЧАЛО!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
enum adonateinfo
{
adonateName[80],
adonatePrice,
adonateItem_type, // 0 - item | 1 - vip | 2 - admin | 3 - convert az | 4 - other
adonateItem,
adonateItem_amount,
adonateItem_enchant // if item_type == 4 => ( 0 - mute | 1 - 5 list inventory )
}
new ADonateInfo[][adonateinfo] =
{
{"Покупка уникальных VIP-Статусов", 250, 1},
{"Покупка \"Уникальных наборы аксессуаров\"", 400, 4, 0, 0, 7},
{"Покупка \"Уникальных авто\" {FF0000}(АВТОФЛИП + 5К HP)", 300, 4, 1, 0, 7},
{"Покупка \"Уникальных предметов\"", 300, 4, 2, 0, 7},
{"Снять мут с своего аккаунта", 150, 4, 0, 0, 0},
{"4-й лист инвентаря", 500, 4, 0, 0, 1},
{"Покупка случайного 'личного охранника'", 500, 4, 0, 0, 4},
{"Обмен 100 рублей на 1000 AZ", 100, 3, 1000},
{"Дополнение Alpina-Plus", 2500, 4, 0, 0, 6}
};
//КУДА ТО В КОНЕЦ!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
CMD:adonate(playerid)
return ShowADonateMenu(playerid);
stock ShowADonateMenu(playerid)
{
if(Int_GetPlayerData(playerid, "DonateWait") < Global_Time)
{
Int_SetPlayerData(playerid, "DonateWait", Global_Time + 5);
f(global_str, 128, "SELECT `GetRoubles` FROM accounts WHERE NickName = BINARY('%s') LIMIT 1;", PN(playerid));
mysql_tquery(mysql, global_str, "UpdateDonatePlayer", "i", playerid);
}
global_str = "";
for(new i; i < sizeof(ADonateInfo); i++)
strcat(global_str, (str_f("{FFFF00}%d. {ffffff}%s\t{FFFF00}%i AZ-Рублей\n", i + 1, ADonateInfo[i][adonateName], ADonateInfo[i][adonatePrice] * XDonate)));
strcat(global_str, (str_f("\n \n{FF0000}НА САЙТЕ ДЕЙСВУЕТ X%i ПОПОЛНЕНИЕ СЧЕТА (1 руб. = %i AZ-RUB).", XDonate, 1 * XDonate)));
return SPD(playerid, 9925, DIALOG_STYLE_TABLIST, (str_f("{FFFFFF}Ваш текущий баланс | {FFFF00}%i AZ-Рублей.", PI[playerid][pRoubles])), global_str, "Далее", "Отмена");
}
public: UpdateDonatePlayer(playerid)
{
Int_SetPlayerData(playerid, "DonateWait", Global_Time + 5);
new newdonate;
cache_get_value_name_int(0, "GetRoubles", newdonate);
if(!newdonate)
return false;
GiveRoubles(playerid, newdonate, "умножение доната с сайта");
return SCMF(playerid, COLOR_VALIK, "[Информация]{FFFFFF} Ваш баланс успешно пополнен на %i RUB.", newdonate);
}
//В OnDialogResponse
case 9925:
{
if(!response)
return false;
if(listitem > sizeof(ADonateInfo))
return callcmd::adonate(playerid);
if(PI[playerid][pRoubles] < (ADonateInfo[listitem][adonatePrice] * XDonate))
return SendDonateLink(playerid);
switch(ADonateInfo[listitem][adonateItem_type])
{
case 0: addPlayerItem(playerid, ADonateInfo[listitem][adonateItem], ADonateInfo[listitem][adonateItem_amount], ADonateInfo[listitem][adonateItem_enchant]);
case 1:
{
global_str = "{FFFF00}Действие\t{FFFF00}Стоимость\n";
static vip_info[] = { 250, 500 };
for(new i; i < 2; i++)
strcat(global_str, (str_f("\n{FFFF00}%d. {ffffff}Приобрести вип-статус %s\t{FFFF00}%i AZ-Рублей (%i руб.)", i + 1, VipNames[i + 7], vip_info[i] * XDonate, vip_info[i])));
strcat(global_str, (str_f("\n \n{FF0000}НА САЙТЕ ДЕЙСВУЕТ X%i ПОПОЛНЕНИЕ СЧЕТА (1 руб. = %i AZ-RUB).", XDonate, 1 * XDonate)));
return spdList(playerid, 0, 2), SPD(playerid, 9930, DIALOG_STYLE_TABLIST_HEADERS, "{BFBBBA}Покупка вип-статуса", global_str, "Купить", "Закрыть");
}
case 3: GiveDonate(playerid, ADonateInfo[listitem][adonateItem], "Обмен рублей на AZ /adonate");
case 4:
{
switch(ADonateInfo[listitem][adonateItem_enchant])
{
case 0:
{
if(!PI[playerid][pMuteTime])
return SCM(playerid, COLOR_OLDRED, !"[Ошибка]{FFFFFF} У вас не имеется мута на аккаунте!");
UpdatePlayerDataInt(playerid, !"MuteTime", PI[playerid][pMuteTime] = 0);
SCM(playerid, COLOR_VALIK, !"[Информация] {FFFFFF}Вы успешно сняли мут с аккаунта!");
SAMF(COLOR_GREY, !"[A] Игрок %s[%d] досрочно снял мут через /adonate", PN(playerid), playerid);
}
case 1:
{
if(PI[playerid][pInvCell] >= 144)
return SCM(playerid, COLOR_VALIK, "[Подсказка]{FFFFFF} У вас уже есть 4-ый лист.");
UpdatePlayerDataInt(playerid, !"InvCell", PI[playerid][pInvCell] = 144);
SCM(playerid, COLOR_VALIK, !"[Подсказка]{FFFFFF} Вы приобрели 4-ый лист инвентаря!");
}
case 4: addPlayerItem(playerid, BodyGuardInfo[random(sizeof(BodyGuardInfo))][0], 1);
case 6: return spdList(playerid, 0, 6), SPDF(playerid, 9930, DIALOG_STYLE_MSGBOX, "{ff0000}Alpina Plus", "{FFFFFF}При покупке дополнения {ffff00}'Alpina Plus'{ffffff}, вы получаете:\n\n{cccccc}— Доступ к тюнинг-салону\n\n{FFFFFF}Стоимость дополнения {ffff00}'Alpina Plus'{ffffff} {ff0000}%s AZ-Рублей{FFFFFF}, вы желаете приобрести?", "Купить", "Отмена", separationInt(2500 * XDonate));
case 7:
{
global_str = "{FFFF00}Действие\t{FFFF00}Стоимость\n", SQL_STRING = "";
static const setAcsName[][] = { "Красный сет", "Синий сет", "Зеленый сет", "Марвел сет" }, vehicleLimitedItem[] = {2312, 6011, 6012, 6013, 6014, 6015, 6016, 6426, 6427, 6428, 6429, 6446, 6986, 7296, 7474, 7684, 7810, 7814, 7815, 7816}, otherItems[] = {6516, 7758};
for(new i; i < (!ADonateInfo[listitem][adonateItem] ? sizeof(setAcsName) : ADonateInfo[listitem][adonateItem] == 1 ? sizeof(vehicleLimitedItem) : sizeof(otherItems)); i++)
{
if(!ADonateInfo[listitem][adonateItem]) f(global_str, sizeof(global_str), "%s{FFFF00}%d. {ffffff}%s\t{FFFF00}%i AZ-Рублей (%i руб.)\n", global_str, i + 1, setAcsName[i][0], 400 * XDonate, 400);
else f(global_str, sizeof(global_str), "%s{FFFF00}%d. {ffffff}%s\t{FFFF00}%i AZ-Рублей (%i руб.)\n", global_str, i + 1, ItemsInfo[ADonateInfo[listitem][adonateItem] == 1 ? vehicleLimitedItem[i] : otherItems[i]][itemName], (ADonateInfo[listitem][adonateItem] == 1 ? 150 : 300) * XDonate, (ADonateInfo[listitem][adonateItem] == 1 ? 150 : 300));
}
strcat(global_str, (str_f("\n \n{FF0000}НА САЙТЕ ДЕЙСВУЕТ X%i ПОПОЛНЕНИЕ СЧЕТА (1 руб. = %i AZ-RUB).", XDonate, 1 * XDonate)));
return spdList(playerid, 0, 4), spdList(playerid, 1, ADonateInfo[listitem][adonateItem]), SPD(playerid, 9930, DIALOG_STYLE_TABLIST_HEADERS, "{BFBBBA}Покупка уникальных вещей", global_str, "Купить", "Закрыть");
}
}
}
}
UpdatePlayerDataInt(playerid, "Roubles", PI[playerid][pRoubles] -= (ADonateInfo[listitem][adonatePrice] * XDonate));
SCMF(playerid, COLOR_RED, "[Информация]{FFFFFF} У вас со счета списано: {cccccc}%d{FFFFFF} AZ-RUB. Спасибо за покупку.", ADonateInfo[listitem][adonatePrice] * XDonate);
}
case 9930:
{
if(!response)
return callcmd::adonate(playerid);
new adonateType = gpdList(playerid, 0), adonateCost[][] = { {150, 250, 350, 500, 700, 850, 1500}, {250, 500} };
if(PI[playerid][pRoubles] < (adonateType == 6 ? 2500 : adonateType == 4 ? (gpdList(playerid, 1) == 1 ? 300 : !gpdList(playerid, 1) ? 400 : 150) : adonateCost[adonateType == 4 ? 2 : adonateType - 1][listitem]) * XDonate)
return SendDonateLink(playerid);
else if(adonateType == 2 && PI[playerid][pVIP][0] > listitem+7)
return SCM(playerid, COLOR_OLDRED, !"[Ошибка]{ffffff} Ваш уровень вип-статуса выше того что вы хотите купить!");
switch(adonateType)
{
case 2: UpdatePlayerDataInt(playerid, "VIP", PI[playerid][pVIP][0] = listitem + 7), SCMF(playerid, COLOR_YELLOW, "[Информация]{ffffff} Поздравляем вас с приобретением {ffff00}'Вип-статуса %s' (%i - LVL)", VipNames[listitem+7], listitem+7);
case 4:
{
static const
setAcsName[][] = { "Красный сет", "Синий сет", "Зеленый сет", "Марвел сет" }, vehicleLimitedItem[] = {2312, 6011, 6012, 6013, 6014, 6015, 6016, 6426, 6427, 6428, 6429, 6446, 6986, 7296, 7474, 7684, 7810, 7814, 7815, 7816}, otherItems[] = {6516, 7758};
switch(gpdList(playerid, 1))
{
case 0:
{
static const setItem[][][] = {
{{5928, 5925, 4300, 6313, 5781, 3998, 6563, 6270}, 2},
{{5928, 5925, 4300, 6313, 5786, 4003, 6567, 6269}, 8},
{{5928, 5925, 4300, 6313, 5785, 4009, 6559, 6271}, 6},
{{4004, 5925, 4001, 6313, 5780, 4009, 6562, 6267}, 0}
};
for(new i; i < 8; i++)
addPlayerItem(playerid, setItem[listitem][0][i], 1, 13, setItem[listitem][1][0], 0, 100);
SCMF(playerid, COLOR_YELLOW, "[Информация]{ffffff} Поздравляем вас с приобретением {ffff00}'Уникального сета +13 (%s)'!", setAcsName[listitem]);
}
default: addPlayerItem(playerid, gpdList(playerid, 1) == 1 ? vehicleLimitedItem[listitem] : otherItems[listitem], 1), SCMF(playerid, COLOR_YELLOW, "[Информация]{ffffff} Поздравляем вас с приобретением {ffff00}'%s'", ItemsInfo[gpdList(playerid, 1) == 1 ? vehicleLimitedItem[listitem] : otherItems[listitem]][itemName]);
}
}
case 6:
UpdatePlayerDataInt(playerid, "Plus", PI[playerid][pPlus] = 1), SCM(playerid, COLOR_YELLOW, "[Информация]{ffffff} Поздравляем вас с приобретением дополнения {ff0000}Alpina Plus!");
}
return GiveRoubles(playerid, -(adonateType == 6 ? 2500 : adonateType == 4 ? (gpdList(playerid, 1) == 1 or gpdList(playerid, 1) == 2 ? 300 : !gpdList(playerid, 1) ? 400 : 150) : adonateCost[adonateType - 1][listitem]) * XDonate, "покупка /adonate");
}