Cesar Jeffwood
Умник
Здравствуйте .Пожалуй начну.Добавляем в enum Домов
Теперь ко всем командам,а то есть в public OnPlayerCommandText
Внимание CMD /use
Внимание CMD /makestore
Теперь в public OnDialogResponse.
Внимания OnDialogResponse
Основной диалог
Другие диалоги
Внимания диалоги
В конце мода
UpdateStoreHouse
Сохранения\Загрузка Mysql R39-2
SaveStoreHouse
Внимания SaveStoreHouse
Добавьте в загрузку домов
PHP:
Float: StoreX,
Float: StoreY,
Float: StoreZ,
StoreMetall,
StoreAmmo,
StoreSkin,
StoreDrugs,
Text3D: StoreInfoHouse,
StoreGun
Внимание CMD /use
PHP:
pHouse это переменная есть ли у игрока дом или нету.У вас может быть по другому.
hUpdate это улучшения вы можете удалить(Проверка на шкаф ,если есть система улучшения).
1074 Диалог Вы можете поменять на кокой с думается
PHP:
if(strcmp(cmd, "/use", true) == 0)
{
if(PlayerInfo[playerid][pHouse] == 999) return SendClientMessage(playerid,COLOR_GRAD2, "У Вас нет дома!");
if(HouseInfo[PlayerInfo[playerid][pHouse]][hUpdate] < 5) return SendClientMessage(playerid,COLOR_GRAD2, "У Вас нет шкафа!");
if(!IsPlayerInRangeOfPoint(playerid,8.0,HouseInfo[PlayerInfo[playerid][pHouse]][StoreX],HouseInfo[PlayerInfo[playerid][pHouse]][StoreY],HouseInfo[PlayerInfo[playerid][pHouse]][StoreZ])) return SendClientMessage(playerid,COLOR_GRAD2, "Вы должны находиться у своего шкафа.");
ShowPlayerDialog(playerid,1074,DIALOG_STYLE_LIST,"{0066FF}Домашний шкаф","1. Положить металл\n2. Положить наркотики\n3. Положить оружие\n4. Положить одежду\n5. Взять металл\n6. Взять наркотики\n7. Взять оружие\n8. Взять одежду","Далее","Закрыть");
return true;
}
PHP:
pHouse это переменная есть ли у игрока дом или нету.У вас может быть по другому.
hUpdate это улучшения вы можете удалить(Проверка на шкаф ,если есть система улучшения).
PHP:
if(strcmp(cmd, "/makestore", true) == 0)
{
if(PlayerInfo[playerid][pHouse] == 999) return SendClientMessage(playerid,COLOR_GRAD2, "У Вас нет дома!");
if(HouseInfo[PlayerInfo[playerid][pHouse]][hUpdate] < 5) return SendClientMessage(playerid,COLOR_GRAD2, "Для установки шкафа требуется пятый уровень улучшений дома.");
new Float: xch;
new Float: ych;
new Float: zch;
if (PlayerInfo[playerid][pHouse] < 999)
{
if(!IsPlayerInRangeOfPoint(playerid,50.0,HouseInfo[PlayerInfo[playerid][pHouse]][ExitIntX],HouseInfo[PlayerInfo[playerid][pHouse]][ExitIntY],HouseInfo[PlayerInfo[playerid][pHouse]][ExitIntZ])) return SendClientMessage(playerid,COLOR_GRAD2, "Вы должны находиться у себя дома!");
if(HouseInfo[PlayerInfo[playerid][pHouse]][hUpdate] >= 5 && HouseInfo[PlayerInfo[playerid][pHouse]][StoreX] > 0)
{
new i = PlayerInfo[playerid][pHouse];
Delete3DTextLabel(HouseInfo[i][StoreInfoHouse]);
GetPlayerPos(playerid, xch, ych, zch);
HouseInfo[i][StoreX] = xch;
HouseInfo[i][StoreY] = ych;
HouseInfo[i][StoreZ] = zch;
new stringasr[200],gunname[64];
if(HouseInfo[i][StoreGun] > 0) GetWeaponName(HouseInfo[i][StoreGun],gunname,sizeof(gunname));
if(HouseInfo[i][StoreGun] == 0) gunname = "нет";
if(HouseInfo[i][StoreSkin] >= 1) format(stringasr,sizeof(stringasr),"Шкаф\n{FFFFFF}Металл: {0099FF}%d из 700 кг\n{FFFFFF}Наркотики: {0099FF}%d из 2000 г\n{FFFFFF}Оружие: {0099FF}%s\n{FFFFFF}Патроны: {0099FF}%d из 3000\n{FFFFFF}Одежда: {00CC00}Есть",HouseInfo[i][StoreMetall],HouseInfo[i][StoreDrugs],gunname,HouseInfo[i][StoreAmmo]);
if(HouseInfo[i][StoreSkin] == 0) format(stringasr,sizeof(stringasr),"Шкаф\n{FFFFFF}Металл: {0099FF}%d из 700 кг\n{FFFFFF}Наркотики: {0099FF}%d из 2000 г\n{FFFFFF}Оружие: {0099FF}%s\n{FFFFFF}Патроны: {0099FF}%d из 3000\n{FFFFFF}Одежда: {FF6600}Нет",HouseInfo[i][StoreMetall],HouseInfo[i][StoreDrugs],gunname,HouseInfo[i][StoreAmmo]);
HouseInfo[i][StoreInfoHouse] = Create3DTextLabel(stringasr,0xFFFF00FF,HouseInfo[i][StoreX], HouseInfo[i][StoreY], HouseInfo[i][StoreZ]+1,10.0,HouseInfo[i][hWorld],1);
SendClientMessage(playerid,0x00CC00AA, "Вы перенесли шкаф.");
SaveStoreHouse(PlayerInfo[playerid][pHouse]);
return true;
}
if(HouseInfo[PlayerInfo[playerid][pHouse]][hUpdate] >= 5 && HouseInfo[PlayerInfo[playerid][pHouse]][StoreX] == 0)
{
GetPlayerPos(playerid, xch, ych, zch);
new i = PlayerInfo[playerid][pHouse];
HouseInfo[PlayerInfo[playerid][pHouse]][StoreX] = xch;
HouseInfo[PlayerInfo[playerid][pHouse]][StoreY] = ych;
HouseInfo[PlayerInfo[playerid][pHouse]][StoreZ] = zch;
HouseInfo[PlayerInfo[playerid][pHouse]][StoreMetall] = 0;
HouseInfo[PlayerInfo[playerid][pHouse]][StoreAmmo] = 0;
HouseInfo[PlayerInfo[playerid][pHouse]][StoreDrugs] = 0;
HouseInfo[PlayerInfo[playerid][pHouse]][StoreSkin] = 0;
SendClientMessage(playerid,0x0099FFAA, "Вы поставили дома шкаф! Используйте {FFCC00}/use{0099FF} для просмотра новых возможностей.");
SendClientMessage(playerid,0x00CC00AA, "Чтобы перенести шкаф используйте команду /makestore.");
new stringasr[200],gunname[64];
if(HouseInfo[i][StoreGun] > 0) GetWeaponName(HouseInfo[i][StoreGun],gunname,sizeof(gunname));
if(HouseInfo[i][StoreGun] == 0) gunname = "нет";
if(HouseInfo[i][StoreSkin] >= 1) format(stringasr,sizeof(stringasr),"Шкаф\n{FFFFFF}Металл: {0099FF}%d из 700 кг\n{FFFFFF}Наркотики: {0099FF}%d из 2000 г\n{FFFFFF}Оружие: {0099FF}%s\n{FFFFFF}Патроны: {0099FF}%d из 3000\n{FFFFFF}Одежда: {00CC00}Есть",HouseInfo[i][StoreMetall],HouseInfo[i][StoreDrugs],gunname,HouseInfo[i][StoreAmmo]);
if(HouseInfo[i][StoreSkin] == 0) format(stringasr,sizeof(stringasr),"Шкаф\n{FFFFFF}Металл: {0099FF}%d из 700 кг\n{FFFFFF}Наркотики: {0099FF}%d из 2000 г\n{FFFFFF}Оружие: {0099FF}%s\n{FFFFFF}Патроны: {0099FF}%d из 3000\n{FFFFFF}Одежда: {FF6600}Нет",HouseInfo[i][StoreMetall],HouseInfo[i][StoreDrugs],gunname,HouseInfo[i][StoreAmmo]);
HouseInfo[i][StoreInfoHouse] = Create3DTextLabel(stringasr,0xFFFF00FF,HouseInfo[i][StoreX], HouseInfo[i][StoreY], HouseInfo[i][StoreZ]+1,10.0,HouseInfo[i][hWorld],1);
SaveStoreHouse(PlayerInfo[playerid][pHouse]);
}
}
else
{
}
return true;
}
Внимания OnDialogResponse
PHP:
pMeat - металл у игрока,pDrugs наркотики игрока,pSkin переменная одежды.
pUpdate Улучшения игрока для проверки что бы игрок не взял больше(Можно убрать)
Диалоги 1075,1076,1077,1078,1079,1080 вы можете изменять .
PHP:
if(dialogid == 1074)
{
if(response)
{
if(listitem == 0)
{
if(PlayerInfo[playerid][pMetal] == 0) return SendClientMessage(playerid,COLOR_GRAD2, "У Вас нет металла.");
if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreMetall] >= 700) return SendClientMessage(playerid,COLOR_GRAD2, "В шкафу недостаточно места!");
ShowPlayerDialog(playerid, 1075, DIALOG_STYLE_INPUT, "{FFCC00}Положить металл", "{ffffff}Сколько кг металла Вы хотите\nположить в шкаф?", "Ввод", "Закрыть");
}
if(listitem == 1)
{
if(PlayerInfo[playerid][pDrugs] == 0) return SendClientMessage(playerid,COLOR_GRAD2, "У Вас нет наркотиков.");
if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreDrugs] >= 2000) return SendClientMessage(playerid,COLOR_GRAD2, "В шкафу недостаточно места!");
ShowPlayerDialog(playerid, 1076, DIALOG_STYLE_INPUT, "{FFCC00}Положить наркотики", "{ffffff}Сколько грамм наркотиков Вы хотите\nположить в шкаф?", "Ввод", "Закрыть");
}
if(listitem == 2)
{
if(GetPlayerWeapon(playerid) == 0) return SendClientMessage(playerid,COLOR_GRAD2, "У Вас нет оружия в руках.");
if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreAmmo] >= 3000) return SendClientMessage(playerid,COLOR_GRAD2, "В шкафу недостаточно места!");
ShowPlayerDialog(playerid, 1077, DIALOG_STYLE_INPUT, "{FFCC00}Положить оружие", "{ffffff}Сколько грамм наркотиков Вы хотите\nположить в шкаф?", "Ввод", "Закрыть");
}
if(listitem == 3)
{
if(PlayerInfo[playerid][pSkin] == 97 && HouseInfo[PlayerInfo[playerid][pHouse]][StoreSkin] > 0) return SendClientMessage(playerid,COLOR_GRAD2, "Ваша одежда уже в шкафу!");
if(PlayerInfo[playerid][pMember] > 0) return SendClientMessage(playerid,COLOR_GRAD2, "Вы не можете это использовать, потому что состоите в организации.");
SendClientMessage(playerid,0x00CC00AA, "Вы положили свою одежду в шкаф.");
HouseInfo[PlayerInfo[playerid][pHouse]][StoreSkin] = PlayerInfo[playerid][pSkin];
PlayerInfo[playerid][pSkin] = 97;
SetPlayerSkin(playerid, 97);
UpdateStoreHouse(PlayerInfo[playerid][pHouse]);
}
if(listitem == 4)
{
if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreMetall] == 0) return SendClientMessage(playerid,COLOR_GRAD2, "В шкафу нет металла.");
if(PlayerInfo[playerid][pMetal] >= 20 && PlayerInfo[playerid][pUpdate] < 2) return SendClientMessage(playerid,COLOR_GRAD2, "Вы не можете взять больше металла.");
if(PlayerInfo[playerid][pMetal] >= 50 && PlayerInfo[playerid][pUpdate] >= 2) return SendClientMessage(playerid,COLOR_GRAD2, "Вы не можете взять больше металла.");
ShowPlayerDialog(playerid, 1078, DIALOG_STYLE_INPUT, "{FFCC00}Взять металл", "{ffffff}Сколько кг металла Вы хотите\nвзять из шкафа?", "Ввод", "Закрыть");
}
if(listitem == 5)
{
if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreDrugs] == 0) return SendClientMessage(playerid,COLOR_GRAD2, "В шкафу нет наркотиков.");
if(PlayerInfo[playerid][pDrugs] >= 1000 && PlayerInfo[playerid][pUpdate] < 2) return SendClientMessage(playerid,COLOR_GRAD2, "Вы не можете взять больше наркотиков.");
if(PlayerInfo[playerid][pDrugs] >= 2000 && PlayerInfo[playerid][pUpdate] >= 2) return SendClientMessage(playerid,COLOR_GRAD2, "Вы не можете взять больше наркотиков.");
ShowPlayerDialog(playerid, 1079, DIALOG_STYLE_INPUT, "{FFCC00}Взять наркотики", "{ffffff}Сколько грамм наркотиков Вы хотите\nвзять из шкафа?", "Ввод", "Закрыть");
}
if(listitem == 6)
{
if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreGun] == 0) return SendClientMessage(playerid,COLOR_GRAD2, "В шкафу нет оружия.");
ShowPlayerDialog(playerid, 1080, DIALOG_STYLE_INPUT, "{FFCC00}Взять оружие", "{ffffff}Сколько патронов Вы хотите\nвзять из шкафа?", "Ввод", "Закрыть");
}
if(listitem == 7)
{
if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreSkin] == 0) return SendClientMessage(playerid,COLOR_GRAD2, "У Вас нет одежды в шкафу.");
if(PlayerInfo[playerid][pMember] > 0) return SendClientMessage(playerid,COLOR_GRAD2, "Вы не можете это использовать, потому что состоите в организации.");
SendClientMessage(playerid,0x00CC00AA, "Вы взяли одежду из шкафа.");
PlayerInfo[playerid][pSkin] = HouseInfo[PlayerInfo[playerid][pHouse]][StoreSkin];
HouseInfo[PlayerInfo[playerid][pHouse]][StoreSkin] = 0;
SetPlayerSkin(playerid, PlayerInfo[playerid][pSkin]);
UpdateStoreHouse(PlayerInfo[playerid][pHouse]);
}
}
}
Внимания диалоги
PHP:
pMeat - металл у игрока,pDrugs наркотики игрока.
pUpdate Улучшения игрока для проверки что бы игрок не взял больше(Можно убрать)
PHP:
if(dialogid == 1075)
{
if(response)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 1075, DIALOG_STYLE_INPUT, "{FFCC00}Положить металл", "{ffffff}Сколько кг металла Вы хотите\nположить в шкаф?", "Ввод", "Закрыть");
if(strval(inputtext) <= 0) return SendClientMessage(playerid,COLOR_GRAD2, "Неверное кол-во.");
if(strval(inputtext) < 1) return ShowPlayerDialog(playerid, 1075, DIALOG_STYLE_INPUT, "{FFCC00}Положить металл", "{ffffff}Сколько кг металла Вы хотите\nположить в шкаф?", "Ввод", "Закрыть");
if(PlayerInfo[playerid][pMetal] < strval(inputtext)) return SendClientMessage(playerid,COLOR_GRAD2, "У Вас нет столько металла.");
HouseInfo[PlayerInfo[playerid][pHouse]][StoreMetall] += strval(inputtext);
if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreMetall] > 700)
{
ShowPlayerDialog(playerid, 1075, DIALOG_STYLE_INPUT, "{FFCC00}Положить металл", "{ffffff}Сколько кг металла Вы хотите\nположить в шкаф?", "Ввод", "Закрыть");
SendClientMessage(playerid,COLOR_GRAD2, "В шкафу недостаточно места!");
HouseInfo[PlayerInfo[playerid][pHouse]][StoreMetall] -= strval(inputtext);
return true;
}
format(query,sizeof(query),"Вы положили в шкаф %d кг металла.",strval(inputtext));
SendClientMessage(playerid,0x0099FFAA, query);
format(query,sizeof(query),"~r~-%d~n~~r~metall",strval(inputtext));
GameTextForPlayer(playerid, query, 1000, 1);
PlayerInfo[playerid][pMetal] -= strval(inputtext);
UpdateStoreHouse(PlayerInfo[playerid][pHouse]);
}
else
{
}
}
if(dialogid == 1078)
{
if(response)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 1078, DIALOG_STYLE_INPUT, "{FFCC00}Взять металл", "{ffffff}Сколько кг металла Вы хотите\nвзять из шкафа?", "Ввод", "Закрыть");
if(strval(inputtext) < 1) SendClientMessage(playerid,COLOR_GRAD2, "Вы не можете взять с шкафа менее 1 кг металла.");
if(strval(inputtext) < 1) return ShowPlayerDialog(playerid, 1078, DIALOG_STYLE_INPUT, "{FFCC00}Взять металл", "{ffffff}Сколько кг металла Вы хотите\nвзять из шкафа?", "Ввод", "Закрыть");
if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreMetall] < strval(inputtext)) return SendClientMessage(playerid,COLOR_GRAD2, "В шкафу нет столько металла.");
PlayerInfo[playerid][pMetal] += strval(inputtext);
if(PlayerInfo[playerid][pMetal] > 20 && PlayerInfo[playerid][pUpdate] < 2) ShowPlayerDialog(playerid, 1078, DIALOG_STYLE_INPUT, "{FFCC00}Взять металл", "{ffffff}Сколько кг металла Вы хотите\nвзять из шкафа?", "Ввод", "Закрыть");
if(PlayerInfo[playerid][pMetal] > 50 && PlayerInfo[playerid][pUpdate] >= 2) ShowPlayerDialog(playerid, 1078, DIALOG_STYLE_INPUT, "{FFCC00}Взять металл", "{ffffff}Сколько кг металла Вы хотите\nвзять из шкафа?", "Ввод", "Закрыть");
if(PlayerInfo[playerid][pMetal] > 20 && PlayerInfo[playerid][pUpdate] < 2) SendClientMessage(playerid,COLOR_GRAD2, "Вы не можете взять больше металла.");
if(PlayerInfo[playerid][pMetal] > 50 && PlayerInfo[playerid][pUpdate] >= 2) SendClientMessage(playerid,COLOR_GRAD2, "Вы не можете взять больше металла.");
if(PlayerInfo[playerid][pMetal] > 20 && PlayerInfo[playerid][pUpdate] < 2) return PlayerInfo[playerid][pMetal] -= strval(inputtext);
if(PlayerInfo[playerid][pMetal] > 50 && PlayerInfo[playerid][pUpdate] >= 2) return PlayerInfo[playerid][pMetal] -= strval(inputtext);
format(query,sizeof(query),"Вы взяли из шкафа %d кг металла.",strval(inputtext));
SendClientMessage(playerid,0x0099FFAA, query);
format(query,sizeof(query),"~g~+%d~n~~g~metall",strval(inputtext));
GameTextForPlayer(playerid, query, 1000, 1);
HouseInfo[PlayerInfo[playerid][pHouse]][StoreMetall] -= strval(inputtext);
UpdateStoreHouse(PlayerInfo[playerid][pHouse]);
}
else
{
}
}
if(dialogid == 1079)
{
if(response)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 1078, DIALOG_STYLE_INPUT, "{FFCC00}Взять металл", "{ffffff}Сколько кг металла Вы хотите\nвзять из шкафа?", "Ввод", "Закрыть");
if(strval(inputtext) < 1) SendClientMessage(playerid,COLOR_GRAD2, "Вы не можете взять с шкафа менее 1 г наркотиков.");
if(strval(inputtext) < 1) return ShowPlayerDialog(playerid, 1078, DIALOG_STYLE_INPUT, "{FFCC00}Взять металл", "{ffffff}Сколько кг металла Вы хотите\nвзять из шкафа?", "Ввод", "Закрыть");
if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreMetall] < strval(inputtext)) return SendClientMessage(playerid,COLOR_GRAD2, "В шкафу нет столько металла.");
PlayerInfo[playerid][pDrugs] += strval(inputtext);
if(PlayerInfo[playerid][pDrugs] > 1000 && PlayerInfo[playerid][pUpdate] < 2) ShowPlayerDialog(playerid, 1078, DIALOG_STYLE_INPUT, "{FFCC00}Взять металл", "{ffffff}Сколько кг металла Вы хотите\nвзять из шкафа?", "Ввод", "Закрыть");
if(PlayerInfo[playerid][pDrugs] > 2000 && PlayerInfo[playerid][pUpdate] >= 2) ShowPlayerDialog(playerid, 1078, DIALOG_STYLE_INPUT, "{FFCC00}Взять металл", "{ffffff}Сколько кг металла Вы хотите\nвзять из шкафа?", "Ввод", "Закрыть");
if(PlayerInfo[playerid][pDrugs] > 1000 && PlayerInfo[playerid][pUpdate] < 2) SendClientMessage(playerid,COLOR_GRAD2, "Вы не можете взять больше металла.");
if(PlayerInfo[playerid][pDrugs] > 2000 && PlayerInfo[playerid][pUpdate] >= 2) SendClientMessage(playerid,COLOR_GRAD2, "Вы не можете взять больше металла.");
if(PlayerInfo[playerid][pDrugs] > 1000 && PlayerInfo[playerid][pUpdate] < 2) return PlayerInfo[playerid][pDrugs] -= strval(inputtext);
if(PlayerInfo[playerid][pDrugs] > 2000 && PlayerInfo[playerid][pUpdate] >= 2) return PlayerInfo[playerid][pDrugs] -= strval(inputtext);
format(query,sizeof(query),"Вы взяли из шкафа %d грамм наркотиков.",strval(inputtext));
SendClientMessage(playerid,0x0099FFAA, query);
format(query,sizeof(query),"~g~+%d~n~~g~drugs",strval(inputtext));
GameTextForPlayer(playerid, query, 1000, 1);
HouseInfo[PlayerInfo[playerid][pHouse]][StoreDrugs] -= strval(inputtext);
UpdateStoreHouse(PlayerInfo[playerid][pHouse]);
}
else
{
}
}
if(dialogid == 1076)
{
if(response)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 1076, DIALOG_STYLE_INPUT, "{FFCC00}Положить наркотики", "{ffffff}Сколько грамм наркотиков Вы хотите\nположить в шкаф?", "Ввод", "Закрыть");
if(strval(inputtext) <= 0) return SendClientMessage(playerid,COLOR_GRAD2, "Неверное кол-во.");
if(strval(inputtext) < 1) return ShowPlayerDialog(playerid, 1076, DIALOG_STYLE_INPUT, "{FFCC00}Положить наркотики", "{ffffff}Сколько грамм наркотиков Вы хотите\nположить в шкаф?", "Ввод", "Закрыть");
if(PlayerInfo[playerid][pDrugs] < strval(inputtext)) return SendClientMessage(playerid,COLOR_GRAD2, "У Вас нет столько металла.");
HouseInfo[PlayerInfo[playerid][pHouse]][StoreDrugs] += strval(inputtext);
if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreDrugs] > 2000) ShowPlayerDialog(playerid, 1076, DIALOG_STYLE_INPUT, "{FFCC00}Положить наркотики", "{ffffff}Сколько грамм наркотиков Вы хотите\nположить в шкаф?", "Ввод", "Закрыть");
if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreDrugs] > 2000) SendClientMessage(playerid,COLOR_GRAD2, "В шкафу недостаточно места!");
if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreDrugs] > 2000) return HouseInfo[PlayerInfo[playerid][pHouse]][StoreDrugs] -= strval(inputtext);
format(query,sizeof(query),"Вы положили в шкаф %d г наркотиков.",strval(inputtext));
SendClientMessage(playerid,0x0099FFAA, query);
format(query,sizeof(query),"~r~-%d~n~~r~drugs",strval(inputtext));
GameTextForPlayer(playerid, query, 1000, 1);
PlayerInfo[playerid][pDrugs] -= strval(inputtext);
UpdateStoreHouse(PlayerInfo[playerid][pHouse]);
}
else
{
}
}
if(dialogid == 1080)
{
if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreGun] == 0) return SendClientMessage(playerid,COLOR_GRAD2, "В шкафу нет оружия.");
if(response)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 1080, DIALOG_STYLE_INPUT, "{FFCC00}Взять оружие", "{ffffff}Сколько патронов Вы хотите\nвзять из шкафа?", "Ввод", "Закрыть");
if(strval(inputtext) < 1) SendClientMessage(playerid,COLOR_GRAD2, "Вы не можете взять из шкафа менее 1 патрона.");
if(strval(inputtext) < 1) return ShowPlayerDialog(playerid, 1080, DIALOG_STYLE_INPUT, "{FFCC00}Взять оружие", "{ffffff}Сколько патронов Вы хотите\nвзять из шкафа?", "Ввод", "Закрыть");
HouseInfo[PlayerInfo[playerid][pHouse]][StoreAmmo] -= strval(inputtext);
if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreAmmo] < 0) ShowPlayerDialog(playerid, 1080, DIALOG_STYLE_INPUT, "{FFCC00}Взять оружие", "{ffffff}Сколько патронов Вы хотите\nвзять из шкафа?", "Ввод", "Закрыть");
if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreAmmo] < 0) SendClientMessage(playerid,COLOR_GRAD2, "В шкафу недостаточно патронов.");
if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreAmmo] < 0) return HouseInfo[PlayerInfo[playerid][pHouse]][StoreAmmo] += strval(inputtext);
new gunname[64];
GetWeaponName(HouseInfo[PlayerInfo[playerid][pHouse]][StoreGun],gunname,sizeof(gunname));
format(query,sizeof(query),"Вы достали из шкафа оружие %s и %d патронов.",gunname,strval(inputtext));
SendClientMessage(playerid,0x0099FFAA, query);
format(query,sizeof(query),"~r~+%d~n~~r~ammo",strval(inputtext));
GameTextForPlayer(playerid, query, 1000, 1);
GivePlayerWeapon(playerid,HouseInfo[PlayerInfo[playerid][pHouse]][StoreGun],strval(inputtext));
UpdateStoreHouse(PlayerInfo[playerid][pHouse]);
}
else
{
}
}
if(dialogid == 1077)
{
if(GetPlayerWeapon(playerid) < 16) return SendClientMessage(playerid,COLOR_GRAD2, "Это оружие нельзя поместить в шкаф.");
if(GetPlayerWeapon(playerid) > 34) return SendClientMessage(playerid,COLOR_GRAD2, "Это оружие нельзя поместить в шкаф.");
if(response)
{
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, 1077, DIALOG_STYLE_INPUT, "{FFCC00}Положить оружие", "{ffffff}Сколько патронов Вы хотите\nположить в шкаф?", "Ввод", "Закрыть");
if(strval(inputtext) < 1) SendClientMessage(playerid,COLOR_GRAD2, "Вы не можете положить в шкаф менее 1 патрона.");
if(strval(inputtext) < 1) return ShowPlayerDialog(playerid, 1077, DIALOG_STYLE_INPUT, "{FFCC00}Положить оружие", "{ffffff}Сколько патронов Вы хотите\nположить в шкаф?", "Ввод", "Закрыть");
HouseInfo[PlayerInfo[playerid][pHouse]][StoreAmmo] += strval(inputtext);
if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreAmmo] > 3000) ShowPlayerDialog(playerid, 1077, DIALOG_STYLE_INPUT, "{FFCC00}Положить оружие", "{ffffff}Сколько патронов Вы хотите\nположить в шкаф?", "Ввод", "Закрыть");
if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreAmmo] > 3000) SendClientMessage(playerid,COLOR_GRAD2, "В шкафу недостаточно места!");
if(HouseInfo[PlayerInfo[playerid][pHouse]][StoreAmmo] > 3000) return HouseInfo[PlayerInfo[playerid][pHouse]][StoreAmmo] -= strval(inputtext);
if(GetPlayerWeapon(playerid) == 0) return SendClientMessage(playerid,COLOR_GRAD2, "У Вас нет оружия в руках.");
new gunname[64];
HouseInfo[PlayerInfo[playerid][pHouse]][StoreGun] = GetPlayerWeapon(playerid);
GetWeaponName(GetPlayerWeapon(playerid),gunname,sizeof(gunname));
format(query,sizeof(query),"Вы положили в шкаф оружие %s и %d патронов.",gunname,strval(inputtext));
SendClientMessage(playerid,0x0099FFAA, query);
format(query,sizeof(query),"~r~-%d~n~~r~ammo",strval(inputtext));
GameTextForPlayer(playerid, query, 1000, 1);
new patr = GetPlayerAmmo(playerid);
new dat = patr - strval(inputtext);
RemovePlayerWeapon(playerid,HouseInfo[PlayerInfo[playerid][pHouse]][StoreGun]);
GivePlayerWeapon(playerid,HouseInfo[PlayerInfo[playerid][pHouse]][StoreGun],dat);
UpdateStoreHouse(PlayerInfo[playerid][pHouse]);
}
else
{
}
}
UpdateStoreHouse
PHP:
stock UpdateStoreHouse(i)
{
new stringasr[200],gunname[64];
if(HouseInfo[i][StoreGun] > 0) GetWeaponName(HouseInfo[i][StoreGun],gunname,sizeof(gunname));
if(HouseInfo[i][StoreGun] == 0) gunname = "нет";
if(HouseInfo[i][StoreSkin] >= 1) format(stringasr,sizeof(stringasr),"Шкаф\n{FFFFFF}Металл: {0099FF}%d из 700 кг\n{FFFFFF}Наркотики: {0099FF}%d из 2000 г\n{FFFFFF}Оружие: {0099FF}%s\n{FFFFFF}Патроны: {0099FF}%d из 3000\n{FFFFFF}Одежда: {00CC00}Есть",HouseInfo[i][StoreMetall],HouseInfo[i][StoreDrugs],gunname,HouseInfo[i][StoreAmmo]);
if(HouseInfo[i][StoreSkin] == 0) format(stringasr,sizeof(stringasr),"Шкаф\n{FFFFFF}Металл: {0099FF}%d из 700 кг\n{FFFFFF}Наркотики: {0099FF}%d из 2000 г\n{FFFFFF}Оружие: {0099FF}%s\n{FFFFFF}Патроны: {0099FF}%d из 3000\n{FFFFFF}Одежда: {FF6600}Нет",HouseInfo[i][StoreMetall],HouseInfo[i][StoreDrugs],gunname,HouseInfo[i][StoreAmmo]);
Update3DTextLabelText(HouseInfo[i][StoreInfoHouse], 0xFFFF00FF, stringasr);
return true;
}
SaveStoreHouse
Внимания SaveStoreHouse
PHP:
dbHandle это база данных у вас может быть по другому.
Строка (UPDATE houses)houses где находиться StoreX и д.
PHP:
stock SaveStoreHouse(i)
{
new mquery[350];
format(mquery, sizeof(mquery),
"UPDATE houses SET hStoreX = '%f',hStoreY = '%f',hStoreZ = '%f',hStoreMetall = '%i',hStoreAmmo = '%i',hStoreDrugs = '%i',hStoreSkin = '%i',hStoreGun = '%i' WHERE ID = '%i'",
HouseInfo[i][StoreX],
HouseInfo[i][StoreY],
HouseInfo[i][StoreZ],
HouseInfo[i][StoreMetall],
HouseInfo[i][StoreAmmo],
HouseInfo[i][StoreDrugs],
HouseInfo[i][StoreSkin],
HouseInfo[i][StoreGun],
i
);
mysql_pquery(dbHandle, mquery);
return true;
}
PHP:
HouseInfo[indexsa][StoreX] = cache_get_field_content_float(indexsa-1, "hStoreX");
HouseInfo[indexsa][StoreY] = cache_get_field_content_float(indexsa-1, "hStoreY");
HouseInfo[indexsa][StoreZ] = cache_get_field_content_float(indexsa-1, "hStoreZ");
HouseInfo[indexsa][StoreMetall] = cache_get_field_content_int(indexsa-1, "hStoreMetall");
HouseInfo[indexsa][StoreAmmo] = cache_get_field_content_int(indexsa-1, "hStoreAmmo");
HouseInfo[indexsa][StoreDrugs] = cache_get_field_content_int(indexsa-1, "hStoreDrugs");
HouseInfo[indexsa][StoreSkin] = cache_get_field_content_int(indexsa-1, "hStoreSkin");
HouseInfo[indexsa][StoreGun] = cache_get_field_content_int(indexsa-1, "hStoreGun");
[SIZE=5]Сохранения\Загрузка на MxINI[/SIZE]
[SIZE=5]В конец мода.[/SIZE][SPOILER][PHP]
stock SaveShkav(i)
{
new idx;
new File: file2;
while (idx < sizeof(HouseInfo))
{
new coordsstring[256];
format(coordsstring, sizeof(coordsstring), "%f,%f,%f,%d,%d,%d,%d,%d\n",
HouseInfo[idx][StoreX],
HouseInfo[idx][StoreY],
HouseInfo[idx][StoreZ],
HouseInfo[idx][StoreMetall],
HouseInfo[idx][StoreAmmo],
HouseInfo[idx][StoreDrugs],
HouseInfo[idx][StoreSkin]),
HouseInfo[idx][StoreGun]);
if(idx == 0)
{
file2 = fopen("house/shkaf.cfg", io_write);
}
else
{
file2 = fopen("house/shkaf.cfg", io_append);
}
fwrite(file2, coordsstring);
idx++;
fclose(file2);
}
return true;
}
forward LoadSH(createall);
public LoadSH(createall)
{
new arrCoords[11][40];
new strFromFile2[256];
new File: file = fopen("house/shkaf.cfg", io_read);
if (file)
{
new idx;
while (idx < sizeof(HouseInfo))
{
fread(file, strFromFile2);
split(strFromFile2, arrCoords, ',');
HouseInfo[idx][StoreX] = floatstr(arrCoords[0]);
HouseInfo[idx][StoreY] = floatstr(arrCoords[1]);
HouseInfo[idx][StoreZ] = floatstr(arrCoords[2]);
HouseInfo[idx][StoreMetall] = floatstr(arrCoords[3]);
HouseInfo[idx][StoreAmmo] = floatstr(arrCoords[4]);
HouseInfo[idx][StoreDrugs] = floatstr(arrCoords[5]);
HouseInfo[idx][StoreSkin] = strval(arrCoords[7]);
HouseInfo[idx][StoreGun] = strval(arrCoords[8]);
idx++;
}
fclose(file);
print("Cистема шкафов - загружена!");
}
return true;
}
Последнее редактирование:
