free.time_
Умник
Всеееем привет, дорогие читатели, делать было нечего и решил я создать рандом кейсы как в CS:GO.
В чем вся суть системы, ее можно использовать как и в донат услугах, мероприятиях, или просто для CS
M серверов было бы очень не плохо!
У нас есть три кейса: Chroma Case, Chroma 2 Case и Falchion Case, все эти кейсы выпадают рандомно, в каждом из кейсов есть по 4 предмета, один из которых тоже выпадает рандомом.
Знаю, есть мелкие проблемы с оптимизацией, прошу простить.
Приступим..
И так, я сделал систему по пикапу и по команде, что вы вставите к себе решать вам.
Далее идем в конец мода и создаем stock Case(playerid):
Тут у нас стоит проверка на то, какой кейс нам выпал в рандоме, и вызывает ShowPlayerDialog.
Вызов есть а диалога нет?:cf: Не хорошо, надо добавить!
Идем в OnDialogResponse(паблик вызывается при ShowPlayerDialog)
Тут у нас уже рандом приз выдает, в зависимости от того, какой у нас кейс.
Ребят, добавлял призы на скорую руку, смотря на то, что мой мод new.pwn, в нем даже нет Админки, Нарко, Варнов, Скилов.
Переменные были придуманы мною, попрошу вас проявить оригинальность и добавить свои призы.
Чтобы добавить не 4 приза, а 5 делаем вот что:
везде где
в OnDialogResponse
Заменяем на
Там где у нас
Или подобная ерунда, добавляем ниже:
С кейсами тот же фокус, только надо добавить +1 проверку
Если у вас есть предложения по улучшению системы, или вы нашли баг, пишите.
Пикап находится в том самом месте которое на скринах, ЖДСФ, советую поменять координаты на свою.
На создание системы ушло 20-25 минут.
Надеюсь вы оцените старания.
В чем вся суть системы, ее можно использовать как и в донат услугах, мероприятиях, или просто для CS
У нас есть три кейса: Chroma Case, Chroma 2 Case и Falchion Case, все эти кейсы выпадают рандомно, в каждом из кейсов есть по 4 предмета, один из которых тоже выпадает рандомом.
Знаю, есть мелкие проблемы с оптимизацией, прошу простить.
Приступим..
И так, я сделал систему по пикапу и по команде, что вы вставите к себе решать вам.
Начнем.
Создаем переменную в начале мода:
Далее идем в паблик который запускается вместе с сервером(OnGameModeInit)
Тут мы создаем пикап и присваиваем его к переменной gotocase
Далее идем в паблик, который вызывается когда ты на пикапе(OnPlayerPickUpPickup), добавим это:
У нас стоит проверка, если мы стоим на пикапе которому присвоили gotocase, то запускаем рандом выбор кейса и переходим к стоку.
Все.
Создаем переменную в начале мода:
PHP:
new gotocase;
PHP:
gotocase = CreatePickup(19132,23,-1966.3043,120.4312,27.6875);
Далее идем в паблик, который вызывается когда ты на пикапе(OnPlayerPickUpPickup), добавим это:
PHP:
if(pickupid == gotocase)
{
switch(random(3))
{
case 0: SetPVarInt(playerid, "Case", 1);
case 1: SetPVarInt(playerid, "Case", 2);
case 2: SetPVarInt(playerid, "Case", 3);
}
Case(playerid);
}
Все.
Для стандартных CMD:
Описание выше, тоже самое
Для DC_CMD и прочих:
Все.
PHP:
if(strcmp(cmdtext, "/case", true) == 0)
{
switch(random(3))
{
case 0: SetPVarInt(playerid, "Case", 1);
case 1: SetPVarInt(playerid, "Case", 2);
case 2: SetPVarInt(playerid, "Case", 3);
}
Case(playerid);
}
Для DC_CMD и прочих:
PHP:
CMD:casee(playerid, params[])
{
switch(random(3))
{
case 0: SetPVarInt(playerid, "Case", 1);
case 1: SetPVarInt(playerid, "Case", 2);
case 2: SetPVarInt(playerid, "Case", 3);
}
Case(playerid);
}
Далее идем в конец мода и создаем stock Case(playerid):
PHP:
stock Case(playerid)
{
new rulesdialog[700],string[144];
if(GetPVarInt(playerid, "Case") == 1)
{
SendClientMessage(playerid, 0x5AB200FF,"Вы купили ключ к Falchion Case");
format(string,sizeof(string), "Поздравляем, вы получили доступ к {ffd200}Falchion Case\n\n"),strcat(rulesdialog,string);
strcat(rulesdialog, "{ffffff}Этот кейс вы получили за выигрышь в мероприятии или донат покупка.\n");
format(string,sizeof(string), "{ffffff}В данном кейсе имеется:\n\n"),strcat(rulesdialog,string);
strcat(rulesdialog, "{63ff00}- Бронежилет.\n\n");
strcat(rulesdialog, "{63ff00}- M4A1 +9000 патронов.\n");
strcat(rulesdialog, "{63ff00}- Все скиллы и лицензии.\n\n");
strcat(rulesdialog, "{63ff00}- Права админа(хелпера) 1 лвл.\n\n");
strcat(rulesdialog, "{ffffff}Если вам не выпало то, что вы хотели, просим не винить в этом администрацию.\n");
strcat(rulesdialog, "{ffffff}Если вы согласны с условиями нажмините `Начать`.");
}
else if(GetPVarInt(playerid, "Case") == 2)
{
SendClientMessage(playerid, 0x5AB200FF,"Вы купили ключ к Chroma 2 Case");
format(string,sizeof(string), "Поздравляем, вы получили доступ к {ffd200}Chroma 2 Case\n\n"),strcat(rulesdialog,string);
strcat(rulesdialog, "{ffffff}Этот кейс вы получили за выигрышь в мероприятии или донат покупка.\n");
format(string,sizeof(string), "{ffffff}В данном кейсе имеется:\n\n"),strcat(rulesdialog,string);
strcat(rulesdialog, "{63ff00}- AK47 +9000 патронов.\n\n");
strcat(rulesdialog, "{63ff00}- Права админа 2 уровень.\n");
strcat(rulesdialog, "{63ff00}- 10000г наркотиков.\n\n");
strcat(rulesdialog, "{63ff00}- Скин CJ\n\n");
strcat(rulesdialog, "{ffffff}Если вам не выпало то, что вы хотели, просим не винить в этом администрацию.\n");
strcat(rulesdialog, "{ffffff}Если вы согласны с условиями нажмините `Начать`.");
}
else if(GetPVarInt(playerid, "Case") == 3)
{
SendClientMessage(playerid, 0x5AB200FF,"Вы купили ключ к Chroma Case");
format(string,sizeof(string), "Поздравляем, вы получили доступ к {ffd200}Chroma Case\n\n"),strcat(rulesdialog,string);
strcat(rulesdialog, "{ffffff}Этот кейс вы получили за выигрышь в мероприятии или донат покупка.\n");
format(string,sizeof(string), "{ffffff}В данном кейсе имеется:\n\n"),strcat(rulesdialog,string);
strcat(rulesdialog, "{63ff00}- Detonate +100\n\n");
strcat(rulesdialog, "{63ff00}- Права админа 3 уровень.\n");
strcat(rulesdialog, "{63ff00}- Обнуления розыска.\n\n");
strcat(rulesdialog, "{63ff00}- Снятие всех варнов.\n\n");
strcat(rulesdialog, "{ffffff}Если вам не выпало то, что вы хотели, просим не винить в этом администрацию.\n");
strcat(rulesdialog, "{ffffff}Если вы согласны с условиями нажмините `Начать`.");
}
return ShowPlayerDialog(playerid, 1001, DIALOG_STYLE_MSGBOX,"{63cb00}Рандом-Кейс", rulesdialog, "Начать", "");
}
Вызов есть а диалога нет?:cf: Не хорошо, надо добавить!
Идем в OnDialogResponse(паблик вызывается при ShowPlayerDialog)
PHP:
case 1001:
{
new string[60], newstring[25];
if(GetPVarInt(playerid, "Case") == 1)
{
switch(random(4))
{
case 0: GivePlayerWeapon(playerid, 31, 9000), SetPVarString(playerid,"Priz","M4A1 + 9000 патронов");
case 1: SetPlayerArmour(playerid, 300.0), SetPVarString(playerid,"Priz","Бронежилет");
case 2:
{
pTemp[playerid][pGunSkill][0] = 100;
pTemp[playerid][pGunSkill][1] = 100;
pTemp[playerid][pGunSkill][2] = 100;
pTemp[playerid][pGunSkill][3] = 100;
pTemp[playerid][pGunSkill][4] = 100;
pTemp[playerid][pGunSkill][5] = 100;
// сис-мы лицензий у меня нет, выставите свою переменную
SetPVarString(playerid,"Priz","Все скиллы и лицензии");
}
case 3: Player[playerid][pAdmin] = 1, SetPVarString(playerid,"Priz","Права администратора");
}
}
if(GetPVarInt(playerid, "Case") == 2)
{
switch(random(4))
{
case 0: GivePlayerWeapon(playerid, 30, 9000), SetPVarString(playerid,"Priz","AK47 +9000 патронов");
case 1: Player[playerid][pAdmin] = 2, SetPVarString(playerid,"Priz","Права админа 2 уровень.");
case 2: Player[playerid][pNarko] = 10000, SetPVarString(playerid,"Priz","10000г наркотиков.");
case 3: SetPlayerSkin(playerid, 0), SetPVarString(playerid,"Priz","Скин CJ");
}
}
if(GetPVarInt(playerid, "Case") == 3)
{
switch(random(4))
{
case 0: GivePlayerWeapon(playerid, 30, 9000), SetPVarString(playerid,"Priz","Detonate");
case 1: Player[playerid][pAdmin] = 3, SetPVarString(playerid,"Priz","Права админа 3 уровень");
case 2: Player[playerid][pDante] = 1, SetPVarString(playerid,"Priz","Обнуления розыска");
case 3: Player[playerid][pWarn] = 0;, SetPVarString(playerid,"Priz","Снятие всех варнов");
}
}
GetPVarString(playerid,"Priz",newstring,sizeof(newstring));
format(string,sizeof(string), "Поздравляем!\n\nВы выиграли %s!",newstring);
return ShowPlayerDialog(playerid, 0 , DIALOG_STYLE_MSGBOX, "{63cb00}Выигрыш", string, "Принять", "");
}
Ребят, добавлял призы на скорую руку, смотря на то, что мой мод new.pwn, в нем даже нет Админки, Нарко, Варнов, Скилов.
Переменные были придуманы мною, попрошу вас проявить оригинальность и добавить свои призы.
Чтобы добавить не 4 приза, а 5 делаем вот что:
везде где
PHP:
switch(random(4))
Заменяем на
PHP:
switch(random(5))
PHP:
case 3: Player[playerid][pWarn] = 0;, SetPVarString(playerid,"Priz","Снятие всех варнов");
PHP:
case 4: Твой приз, SetPVarString(playerid,"Priz","Текст");
PHP:
if(GetPVarInt(playerid, "Case") == 4)
Если у вас есть предложения по улучшению системы, или вы нашли баг, пишите.
Пикап находится в том самом месте которое на скринах, ЖДСФ, советую поменять координаты на свою.
На создание системы ушло 20-25 минут.
Надеюсь вы оцените старания.
Последнее редактирование:
