BJlack_Angel
Умник
И так начнём.
1) Ко всем #define добавляем
2) Теперь ко все new добавляем
3) Теперь добавим ко всем enum
4) Теперь добавляем в public OnGameModeInit()
Теперь добавим 2 команды
5)public OnPlayerCommandText(playerid, cmdtext[])
5)Теперь добавим диалог
6) Теперь в конец мода
7) В паблик public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) добавляем
8) Создаём файл Obshak.txt. В папке scriptfiles
9) Создаём CreatePickup
Автор: denizx92
Вырезал: ARSENAL
1) Ко всем #define добавляем
PHP:
#define DIALOG_OBSHAK 74
#define DIALOG_OBSHAK_ 75
#define DIALOG_OBSHAK_VZAT 76
#define DIALOG_OBSHAK_POLOZH 77
#define Player PlayerInfo
PHP:
new Nazvanie[MAX_PLAYERS][25];
PHP:
enum oInfo
{
oMoney,
oMats,
oDrugs,
};
new ObshakInfo[20][oInfo];
PHP:
LoadObshak();
SaveObshak();
Теперь добавим 2 команды
5)public OnPlayerCommandText(playerid, cmdtext[])
PHP:
if (strcmp(cmd, "/vzat", true) == 0)
{
new x_nr[256];
x_nr = strtok(cmdtext, idx);
tmp = strtok(cmdtext, idx);
new kolvo = strval(tmp);
if(kolvo == 0) return 1;
if(kolvo < 0) return 1;
new fam;
GetPlayerName(playerid, sendername, sizeof(sendername));
if(Player[playerid][pLeader] >0) fam = Player[playerid][pLeader];
else fam = Player[playerid][pMember];
if(strcmp(x_nr,"money",true) == 0)
{
if(ObshakInfo[fam-1][oMoney] < kolvo) return SendClientMessage(playerid, COLOR_GREY, "В общаке нет столько денег");
ObshakInfo[fam-1][oMoney] -= kolvo;
GivePlayerMoney(playerid,kolvo);
format(string,sizeof(string),"Лидер %s[%d] взял из общака %d$.В общаке: %d$",sendername,playerid,kolvo,ObshakInfo[fam-1][oMoney]);
SendTeamMessage(fam, TEAM_AZTECAS_COLOR, string);
SaveObshak();
return 1;
}
if(strcmp(x_nr,"mats",true) == 0)
{
if(ObshakInfo[fam-1][oMats] < kolvo) return SendClientMessage(playerid, COLOR_GREY, "В общаке нет столько материалов");
ObshakInfo[fam-1][oMats] -= kolvo;
Player[playerid][pMats] += kolvo;
format(string,sizeof(string),"Лидер %s[%d] взял из общака %d материалов.В общаке: %d матов",sendername,playerid,kolvo,ObshakInfo[fam-1][oMats]);
SendTeamMessage(fam, TEAM_AZTECAS_COLOR, string);
SaveObshak();
return 1;
}
if(strcmp(x_nr,"drugs",true) == 0)
{
if(ObshakInfo[fam-1][oDrugs] < kolvo) return SendClientMessage(playerid, COLOR_GREY, "В общаке нет столько наркотиков");
ObshakInfo[fam-1][oDrugs] -= kolvo;
Player[playerid][pDrugs] += kolvo;
format(string,sizeof(string),"Лидер %s[%d] взял из общака %d наркотиков.В общаке: %d нарко",sendername,playerid,kolvo,ObshakInfo[fam-1][oDrugs]);
SendTeamMessage(fam, TEAM_AZTECAS_COLOR, string);
SaveObshak();
return 1;
}
}
if (strcmp(cmd, "/donate", true) == 0)
{
new x_nr[256];
x_nr = strtok(cmdtext, idx);
tmp = strtok(cmdtext, idx);
new kolvo = strval(tmp);
if(kolvo == 0) return 1;
if(kolvo < 0) return 1;
new fam;
GetPlayerName(playerid, sendername, sizeof(sendername));
if(Player[playerid][pLeader] >0) fam = Player[playerid][pLeader];
else fam = Player[playerid][pMember];
if(kolvo == 0) return 1;
if(kolvo < 0) kolvo = -1 * kolvo;
if(strcmp(x_nr,"money",true) == 0)
{
if(GetPlayerMoney(playerid) < kolvo) return SendClientMessage(playerid, COLOR_GREY, "У тебя нет столько денег");
ObshakInfo[fam-1][oMoney] += kolvo;
GivePlayerMoney(playerid,-kolvo);
format(string,sizeof(string),"Игрок %s[%d] положил в общак %d$.В общаке: %d$",sendername,playerid,kolvo,ObshakInfo[fam-1][oMoney]);
SendTeamMessage(fam, TEAM_AZTECAS_COLOR, string);
SaveObshak();
return 1;
}
if(strcmp(x_nr,"mats",true) == 0)
{
if(Player[playerid][pMats] < kolvo) return SendClientMessage(playerid, COLOR_GREY, "У тебя нет столько материалов");
ObshakInfo[fam-1][oMats] += kolvo;
Player[playerid][pMats] -= kolvo;
format(string,sizeof(string),"Игрок %s[%d] положил в общак %d материалов.В общаке: %d матов",sendername,playerid,kolvo,ObshakInfo[fam-1][oMats]);
SendTeamMessage(fam, TEAM_AZTECAS_COLOR, string);
SaveObshak();
return 1;
}
if(strcmp(x_nr,"drugs",true) == 0)
{
if(Player[playerid][pDrugs] < kolvo) return SendClientMessage(playerid, COLOR_GREY, "У тебя нет столько наркотиков");
ObshakInfo[fam-1][oDrugs] += kolvo;
Player[playerid][pDrugs] -= kolvo;
format(string,sizeof(string),"Игрок %s[%d] положил в общак %d наркотиков.В общаке: %d нарко",sendername,playerid,kolvo,ObshakInfo[fam-1][oDrugs]);
SendTeamMessage(fam, TEAM_AZTECAS_COLOR, string);
SaveObshak();
return 1;
}
}
PHP:
else if(dialogid == DIALOG_OBSHAK)
{
if(response)
{
if(listitem == 0)
{
format(Nazvanie[playerid],25,"money");
ShowPlayerDialog(playerid,DIALOG_OBSHAK_,DIALOG_STYLE_LIST,"Деньги","Взять\nПоложить","Ок","Назад");
return 1;
}
if(listitem == 1)
{
format(Nazvanie[playerid],25,"drugs");
ShowPlayerDialog(playerid,DIALOG_OBSHAK_,DIALOG_STYLE_LIST,"Наркотики","Взять\nПоложить","Ок","Назад");
return 1;
}
if(listitem == 2)
{
format(Nazvanie[playerid],25,"mats");
ShowPlayerDialog(playerid,DIALOG_OBSHAK_,DIALOG_STYLE_LIST,"Материалы","Взять\nПоложить","Ок","Назад");
return 1;
}
}
}
//------------------------------------------------------------------------------
else if(dialogid == DIALOG_OBSHAK_)
{
if(response)
{
if(listitem == 0)
{
if(Player[playerid][pLeader] == 0) return SendClientMessage(playerid,COLOR_GREY,"Доступно только лидерам!");
ShowPlayerDialog(playerid,DIALOG_OBSHAK_VZAT,DIALOG_STYLE_INPUT,"Взять","Сколько выхотите взять?","Ок","Назад");
return 1;
}
if(listitem == 1)
{
ShowPlayerDialog(playerid,DIALOG_OBSHAK_POLOZH,DIALOG_STYLE_INPUT,"Положить","Сколько выхотите положить?","Ок","Назад");
return 1;
}
}
}
else if(dialogid == DIALOG_OBSHAK_VZAT)
{
if(response)
{
format(string,sizeof(string),"/vzat %s %d",Nazvanie[playerid],strval(inputtext));
OnPlayerCommandText(playerid,string);
}
}
else if(dialogid == DIALOG_OBSHAK_POLOZH)
{
if(response)
{
format(string,sizeof(string),"/donate %s %d",Nazvanie[playerid],strval(inputtext));
OnPlayerCommandText(playerid,string);
}
}
PHP:
forward LoadObshak();
forward SaveObshak();
public SaveObshak()
{
new idx;
new File: file2;
while (idx < 15)
{
new coordsstring[256];
format(coordsstring, sizeof(coordsstring), "%d|%d|%d\r\n",
ObshakInfo[idx][oMoney],
ObshakInfo[idx][oDrugs],
ObshakInfo[idx][oMats]);
if(idx == 0)
{
file2 = fopen("Obshak.txt", io_write);
}
else
{
file2 = fopen("Obshak.txt", io_append);
}
fwrite(file2, coordsstring);
idx++;
fclose(file2);
}
return 1;
}
public LoadObshak()
{
new arrCoords[32][64];
new strFromFile2[256];
new File: file = fopen("Obshak.txt", io_read);
if (file)
{
new idx;
while (idx < 15)
{
fread(file, strFromFile2);
split(strFromFile2, arrCoords, '|');
ObshakInfo[idx][oMoney] = strval(arrCoords[0]);
ObshakInfo[idx][oDrugs] = strval(arrCoords[1]);
ObshakInfo[idx][oMats] = strval(arrCoords[2]);
idx++;
}
fclose(file);
printf("Общак загружен");
}
return 1;
}
PHP:
new string[256];
if(IsPlayerInRangeOfPoint(playerid,2.0,2547.5444,-1281.7073,1060.9844) || IsPlayerInRangeOfPoint(playerid,2.0,2498.2788,-1711.3271,1014.7422) || IsPlayerInRangeOfPoint(playerid,2.0,-2164.8682,646.1217,1057.5938))
{
if(Player[playerid][pMember] == 5 || Player[playerid][pLeader] == 5)
{
format(string,sizeof(string),"Деньги: %d$ \nНаркотики: %d \nМатериалы: %d",ObshakInfo[4][oMoney],ObshakInfo[4][oDrugs],ObshakInfo[4][oMats]);
return ShowPlayerDialog(playerid,DIALOG_OBSHAK,DIALOG_STYLE_LIST,"Общак LCN",string,"Выбрать","Отмена");
}
if(Player[playerid][pMember] == 6 || Player[playerid][pLeader] == 6)
{
format(string,sizeof(string),"Деньги: %d$ \nНаркотики: %d \nМатериалы: %d",ObshakInfo[5][oMoney],ObshakInfo[5][oDrugs],ObshakInfo[5][oMats]);
return ShowPlayerDialog(playerid,DIALOG_OBSHAK,DIALOG_STYLE_LIST,"Общак Yakuza",string,"Выбрать","Отмена");
}
if(Player[playerid][pMember] == 17 || Player[playerid][pLeader] == 17)
{
format(string,sizeof(string),"Деньги: %d$ \nНаркотики: %d \nМатериалы: %d",ObshakInfo[9][oMoney],ObshakInfo[9][oDrugs],ObshakInfo[9][oMats]);
return ShowPlayerDialog(playerid,DIALOG_OBSHAK,DIALOG_STYLE_LIST,"Общак Rifa",string,"Выбрать","Отмена");
}
if(Player[playerid][pMember] == 14 || Player[playerid][pLeader] == 14)
{
format(string,sizeof(string),"Деньги: %d$ \nНаркотики: %d \nМатериалы: %d",ObshakInfo[10][oMoney],ObshakInfo[10][oDrugs],ObshakInfo[10][oMats]);
return ShowPlayerDialog(playerid,DIALOG_OBSHAK,DIALOG_STYLE_LIST,"Общак Vagos",string,"Выбрать","Отмена");
}
if(Player[playerid][pMember] == 13 || Player[playerid][pLeader] == 13)
{
format(string,sizeof(string),"Деньги: %d$ \nНаркотики: %d \nМатериалы: %d",ObshakInfo[11][oMoney],ObshakInfo[11][oDrugs],ObshakInfo[11][oMats]);
return ShowPlayerDialog(playerid,DIALOG_OBSHAK,DIALOG_STYLE_LIST,"Общак Groove",string,"Выбрать","Отмена");
}
if(Player[playerid][pMember] == 15 || Player[playerid][pLeader] == 15)
{
format(string,sizeof(string),"Деньги: %d$ \nНаркотики: %d \nМатериалы: %d",ObshakInfo[12][oMoney],ObshakInfo[12][oDrugs],ObshakInfo[12][oMats]);
return ShowPlayerDialog(playerid,DIALOG_OBSHAK,DIALOG_STYLE_LIST,"Общак Ballas",string,"Выбрать","Отмена");
}
if(Player[playerid][pMember] == 16 || Player[playerid][pLeader] == 16)
{
format(string,sizeof(string),"Деньги: %d$ \nНаркотики: %d \nМатериалы: %d",ObshakInfo[13][oMoney],ObshakInfo[13][oDrugs],ObshakInfo[13][oMats]);
return ShowPlayerDialog(playerid,DIALOG_OBSHAK,DIALOG_STYLE_LIST,"Общак Aztec",string,"Выбрать","Отмена");
}
if(Player[playerid][pMember] == 12 || Player[playerid][pLeader] == 12)
{
format(string,sizeof(string),"Деньги: %d$ \nНаркотики: %d \nМатериалы: %d",ObshakInfo[14][oMoney],ObshakInfo[14][oDrugs],ObshakInfo[14][oMats]);
return ShowPlayerDialog(playerid,DIALOG_OBSHAK,DIALOG_STYLE_LIST,"Общак Russian Mafia",string,"Выбрать","Отмена");
}
}
if(IsPlayerInRangeOfPoint(playerid,2.0,1558.9302,-1692.7329,5.8970))
{
if(Player[playerid][pMember] == 1 || Player[playerid][pLeader] == 1)
{
format(string,sizeof(string),"Деньги: %d$ \nНаркотики: %d \nМатериалы: %d",ObshakInfo[0][oMoney],ObshakInfo[0][oDrugs],ObshakInfo[0][oMats]);
return ShowPlayerDialog(playerid,DIALOG_OBSHAK,DIALOG_STYLE_LIST,"Конфискат Департамента Полиции",string,"Выбрать","Отмена");
}
}
9) Создаём CreatePickup
PHP:
CreatePickup(1274,23,2547.5444,-1281.7073,1060.9844,-1);
CreatePickup(1274,23,2498.2788,-1711.3271,1014.7422,-1);
CreatePickup(1274,23,-2164.8682,646.1217,1057.5938,-1);
CreatePickup(1274,23,1558.9302,-1692.7329,5.8970,-1);
Вырезал: ARSENAL
