Regisss
Умник
Доброго времени суток, форумчане! Выкладываю вам систему бонуса на сервер, с возможностью редактирования прямо в игре! И так! Приступим!
Нам понадобиться инклуд MxINI. Найти его вы можете на форуме.
И так, для начала создайте файл "bonus.ini" в папке "scriptfiles" и впишите такие значения:
Всё в дальнейшем вы можете изменить прямо в игре.
И так, в начало мода:
Ко всем пабликам:
В public OnGamemodeInit
в конец вашей регистрации:
Сама команда:
в OnPlayerDialogResponse:
Делал я под свой мод! Так что изменяйте всё под себя!
Внимания! Всё я тестил на сервере, так что если у вас что-то не работает - виноваты уже вы.
Нам понадобиться инклуд MxINI. Найти его вы можете на форуме.
И так, для начала создайте файл "bonus.ini" в папке "scriptfiles" и впишите такие значения:
PHP:
bonuson = 0
bonusmoney = 1
bonusdonate = 1
bonuslvl = 1
И так, в начало мода:
PHP:
new bonus[4];
forward SaveBonus();
forward GiveBonus(playerid);
forward LoadBonus();
forward UpdateBonus();
PHP:
public GiveBonus(playerid)
{
new st[100];
GiveMoney(playerid, bonus[1]);
PlayerInfo[playerid][pDonateMoney] = bonus[2]; // на своё
PlayerInfo[playerid][pLevel] = bonus[3];
format(st,sizeof(st),"Вы получили бонус: %d$, %d Donate и %d LVL", bonus[1], bonus[2], bonus[3]);
OnPlayerSave(playerid);
}
public UpdateBonus()
{
if(bonus[0] == 0) SendRconCommand("hostname [RUS | UA] Relax RPG [0.3.7]"); // название изменяйте на своё
if(bonus[0] == 1) SendRconCommand("hostname [RUS|UA] Relax RPG [BONUS!!]");
return 1;
}
public LoadBonus()
{
new File = iniOpen("bonus.ini");
ini_GetInteger(File,"bonuson",bonus[0]);
ini_GetInteger(File,"bonusmoney",bonus[1]);
ini_GetInteger(File,"bonusdonate",bonus[2]);
ini_GetInteger(File,"bonuslvl",bonus[3]);
ini_Close(File);
return true;
}
public SaveBonus()
{
new File = iniOpen("bonus.ini");
ini_SetInteger(File,"bonuson",bonus[0]);
ini_SetInteger(File,"bonusmoney",bonus[1]);
ini_SetInteger(File,"bonusdonate",bonus[2]);
ini_SetInteger(File,"bonuslvl",bonus[3]);
ini_Close(File);
return true;
}
PHP:
LoadBonus();
UpdateBonus();
PHP:
if(bonus[0] == 1) GiveBonus(playerid);
PHP:
if(strcmp(cmd, "/bonuspanel", true) == 0) // чтобы на DC_CMD просто замените шапку на CMD:bonuspanel(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] < 10) return true; // своё
new ttext[10], str[256];
if(bonus[0] == 0) ttext = "Выключен";
else ttext = "Включен";
format(str,sizeof(str),"~ Бонус "#ogt"[%s]\n\nДенег в бонусе "#ogt"[%d$]\nДоната в бонусе"#ogt" [%d]\nLVL В бонусе "#ogt"[%d lvl]", ttext, bonus[1], bonus[2], bonus[3]);
ShowPlayerDialog(playerid, 5621, DIALOG_STYLE_LIST, "Редактор бонуса",str,"Выбрать","Отмена");
return true;
}
PHP:
if(dialogid == 5621)
{
if(response)
{
switch(listitem)
{
case 0:
{
if(bonus[0] == 0) bonus[0] = 1;
else bonus[0] = 0;
SaveBonus();
UpdateBonus();
OnPlayerCommandText(playerid, "/bonuspanel");
}
case 1:
{
SPD(playerid, 5622, DIALOG_STYLE_INPUT, "{"#cWHITE"}Деньги",""#ogt"Введите новое кол-во денег бонуса","Ок","Отмена");
}
case 2:
{
SPD(playerid, 5623, DIALOG_STYLE_INPUT, "{"#cWHITE"}Донат",""#ogt"Введите новое кол-во доната бонуса","Ок","Отмена");
}
case 3:
{
SPD(playerid, 5624, DIALOG_STYLE_INPUT, "{"#cWHITE"}Уровень",""#ogt"Введите новый уровень в бонусе","Ок","Отмена");
}
}
}
}
if(dialogid == 5622)
{
if(response)
{
if(!strlen(inputtext)) return SPD(playerid, 5622, DIALOG_STYLE_INPUT, "{"#cWHITE"}Деньги",""#ogt"Введите новое кол-во денег бонуса","Ок","Отмена");
new dengi = strval(inputtext);
bonus[1] = dengi;
OnPlayerCommandText(playerid, "/bonuspanel");
SaveBonus();
UpdateBonus();
}
}
if(dialogid == 5623)
{
if(response)
{
if(!strlen(inputtext)) return SPD(playerid, 5623, DIALOG_STYLE_INPUT, "{"#cWHITE"}Донат",""#ogt"Введите новое кол-во доната бонуса","Ок","Отмена");
new donat = strval(inputtext);
bonus[2] = donat;
OnPlayerCommandText(playerid, "/bonuspanel");
SaveBonus();
UpdateBonus();
}
}
if(dialogid == 5624)
{
if(response)
{
if(!strlen(inputtext)) return SPD(playerid, 5624, DIALOG_STYLE_INPUT, "{"#cWHITE"}Уровень",""#ogt"Введите новый уровень в бонусе","Ок","Отмена");
new lvl = strval(inputtext);
bonus[3] = lvl;
OnPlayerCommandText(playerid, "/bonuspanel");
SaveBonus();
UpdateBonus();
}
}
Внимания! Всё я тестил на сервере, так что если у вас что-то не работает - виноваты уже вы.
Последнее редактирование:
