Alexey19
Дебютант
Помогите, это система багажника вроде работает, но есть 1 но! Когда я пишу команду /dput диалоговое окно вылазиет, но жмёшь положить и нечего не происходить исправьте что тут не так.
Если что это фильтр скрипт
Если что это фильтр скрипт
Код:
//---------------------//
#pragma tabsize 0
#include <a_samp>
//--------------------//
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_GRAD 0xB4B5B7FF
#define DIALOG_BPUT 5239
#define DIALOG_BTAKE 5240
// -- Сис-ма аптечки -- //
#define MedkitMode 1 //
//---------------------//
new mkMode = MedkitMode;
//--------------------//
enum tInfo
{
tWeapon1,
tWeapon2,
tWeapon3,
tWeapon4,
tWeapon5,
tWeapon6,
tAmmo1,
tAmmo2,
tAmmo3,
tAmmo4,
tAmmo5,
tAmmo6,
tMedkit
};
new TrunkInfo[MAX_VEHICLES][tInfo];
//--------------------//
forward RemovePlayerWeapon(playerid, weaponid);
forward strtok3(const string[], &index);
//--------------------//
public OnFilterScriptInit()
{
print(" Trunk System FilterScript v.1.2 by JaST");
if(mkMode == 1)
{
Create3DTextLabel(" Аптечка для транспорта (250$)\n /buymkit",0x33CCFFAA,-2673.8306,624.3801,14.4531,75.0,0,1);
Create3DTextLabel(" Аптечка для транспорта (250$)\n /buymkit",0x33CCFFAA,1189.0936,-1372.4296,13.5343,75.0,0,1);
}
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmdx[256];
new string[128];
new idx;
new i = GetPlayerVehicleID(playerid);
new model = GetVehicleModel(i);
cmdx = strtok3(cmdtext, idx);
if(strcmp(cmdx, "/bput", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(!IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid, COLOR_YELLOW, " Вы должны находиться в автомобиле!");
SendClientMessage(playerid, COLOR_GRAD, " Мысли: Хм.. чтобы положить оружие нужно открыть багажник, а кнопка открытия находиться в автомобиле");
return 1;
}
if(model!=448 && model!=461 && model!=462 && model!=463 && model!=468 && model!=471 && model!=481 && model!=509 && model!=510 && model!=521 && model!=522 && model!=523 && model!=581 && model!=586 && model!=481 && model!=509 && model!=510)
{
ShowPlayerDialog(playerid,DIALOG_BPUT,DIALOG_STYLE_LIST,"Багажник","Оружие(Слот:1)\nОружие(Слот:2)\nОружие(Слот:3)\nОружие(Слот:4)\nОружие(Слот:5)\nОружие(Слот:6)", "Положить", "Закрыть");
}
else
{
SendClientMessage(playerid, COLOR_YELLOW, " В этом транспорте нет багажника!");
}
}
return 1;
}
else if (strcmp(cmdx, "/btake", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(!IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid, COLOR_YELLOW, " Вы должны находиться в автомобиле!");
SendClientMessage(playerid, COLOR_GRAD, " Мысли: Хм.. чтобы забрать оружие нужно открыть багажник, а кнопка открытия находиться в автомобиле");
return 1;
}
if(model!=448 && model!=461 && model!=462 && model!=463 && model!=468 && model!=471 && model!=481 && model!=509 && model!=510 && model!=521 && model!=522 && model!=523 && model!=581 && model!=586 && model!=481 && model!=509 && model!=510)
{
if(mkMode == 1 && TrunkInfo[i][tMedkit] != 0)
{
ShowPlayerDialog(playerid,DIALOG_BTAKE,DIALOG_STYLE_LIST,"Багажник","Авто-аптечка\nОружие(Слот:1)\nОружие(Слот:2)\nОружие(Слот:3)\nОружие(Слот:4)\nОружие(Слот:5)\nОружие(Слот:6)", "Забрать", "Закрыть");
}
else
{
ShowPlayerDialog(playerid,DIALOG_BTAKE,DIALOG_STYLE_LIST,"Багажник","Оружие(Слот:1)\nОружие(Слот:2)\nОружие(Слот:3)\nОружие(Слот:4)\nОружие(Слот:5)\nОружие(Слот:6)", "Забрать", "Закрыть");
}
}
else
{
SendClientMessage(playerid, COLOR_YELLOW, " В этом транспорте нет багажника!");
}
}
return 1;
}
else if(strcmp(cmdx, "/binfo", true) == 0)
{
if(IsPlayerConnected(playerid))
{
new gunname[32];
if(!IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid, COLOR_YELLOW, " Вы должны находиться в автомобиле!");
return 1;
}
format(string,sizeof(string)," |_________ АВТОМОБИЛЬ(%d)БАГАЖНИК _________| ",i);
SendClientMessage(playerid,COLOR_WHITE,string);
if(TrunkInfo[i][tWeapon1] != 0)
{
GetWeaponName(TrunkInfo[i][tWeapon1],gunname,sizeof(gunname));
format(string,sizeof(string)," ОРУЖИЕ(1): %s, патроны: %d", gunname,TrunkInfo[i][tAmmo1]);
SendClientMessage(playerid,COLOR_GRAD,string);
}
if(TrunkInfo[i][tWeapon2] != 0)
{
GetWeaponName(TrunkInfo[i][tWeapon2],gunname,sizeof(gunname));
format(string,sizeof(string)," ОРУЖИЕ(2): %s, патроны: %d", gunname,TrunkInfo[i][tAmmo2]);
SendClientMessage(playerid,COLOR_GRAD,string);
}
if(TrunkInfo[i][tWeapon3] != 0)
{
GetWeaponName(TrunkInfo[i][tWeapon3],gunname,sizeof(gunname));
format(string,sizeof(string)," ОРУЖИЕ(3): %s, патроны: %d", gunname,TrunkInfo[i][tAmmo3]);
SendClientMessage(playerid,COLOR_GRAD,string);
}
if(TrunkInfo[i][tWeapon4] != 0)
{
GetWeaponName(TrunkInfo[i][tWeapon4],gunname,sizeof(gunname));
format(string,sizeof(string)," ОРУЖИЕ(4): %s, патроны: %d", gunname,TrunkInfo[i][tAmmo4]);
SendClientMessage(playerid,COLOR_GRAD,string);
}
if(TrunkInfo[i][tWeapon5] != 0)
{
GetWeaponName(TrunkInfo[i][tWeapon5],gunname,sizeof(gunname));
format(string,sizeof(string)," ОРУЖИЕ(5): %s, патроны: %d", gunname,TrunkInfo[i][tAmmo5]);
SendClientMessage(playerid,COLOR_GRAD,string);
}
if(TrunkInfo[i][tWeapon6] != 0)
{
GetWeaponName(TrunkInfo[i][tWeapon6],gunname,sizeof(gunname));
format(string,sizeof(string)," ОРУЖИЕ(6): %s, патроны: %d", gunname,TrunkInfo[i][tAmmo6]);
SendClientMessage(playerid,COLOR_GRAD,string);
}
if(TrunkInfo[i][tMedkit] != 0 && mkMode == 1)
{
if(TrunkInfo[i][tMedkit] != 0)
{
format(string,sizeof(string)," АВТО-АПТЕЧКА: Количество лекарства: %d ", TrunkInfo[i][tMedkit]);
SendClientMessage(playerid,COLOR_GRAD,string);
}
}
}
return 1;
}
else if(strcmp(cmdx, "/buymkit", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(mkMode != 1) return 1;
if(!IsPlayerInAnyVehicle(playerid))
{
SendClientMessage(playerid, COLOR_YELLOW, " Вы должны находиться в автомобиле!");
return 1;
}
else
{
if(IsPlayerInRangeOfPoint(playerid,25,-2673.8306,624.3801,14.4531) || IsPlayerInRangeOfPoint(playerid,25,1189.0936,-1372.4296,13.5343))
{
if(TrunkInfo[i][tMedkit] > 2) { return SendClientMessage(playerid, COLOR_YELLOW, " Используй хотябы 3 дозы лекарства, чтобы купить новую аптечку!"); }
if(GetPlayerMoney(playerid) < 250) { return SendClientMessage(playerid, COLOR_YELLOW, " Недостаточно денег!"); }
TrunkInfo[i][tMedkit] = 5;
SendClientMessage(playerid, COLOR_YELLOW, " Вы купили авто-аптечку за 250$!");
GivePlayerMoney(playerid,-250);
}
return 1;
}
}
return 1;
}
else if(strcmp(cmdx, "/bfrisk", true) == 0)
{
new gunname[32];
new pskin = GetPlayerSkin(playerid);
new tmp[32];
new Float:X,Float:Y,Float:Z;
tmp = strtok3(cmdtext, idx);
if(IsPlayerConnected(playerid))
{
if(pskin != 280 && pskin != 281 && pskin != 282 && pskin != 283 && pskin != 284 && pskin != 285 && pskin != 286 && pskin != 287 && pskin != 288) { return SendClientMessage(playerid, COLOR_GRAD, " Вы не полицейский!"); }
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD, "Используйте: /bfrisk [playerid/Nick]");
GetPlayerPos(strval(tmp),X,Y,Z);
if(!IsPlayerInRangeOfPoint(playerid,15,X,Y,Z)) return SendClientMessage(playerid, COLOR_YELLOW, " Невозможно проверить багажник. Игрок далеко от вас!");
if(!IsPlayerInAnyVehicle(strval(tmp)))
{
SendClientMessage(playerid, COLOR_YELLOW, " Игрок должен находиться в автомобиле!");
return 1;
}
new tmpcar = GetPlayerVehicleID(strval(tmp));
format(string,sizeof(string)," |________ОБЫСК БАГАЖНИКА АВТОМОБИЛЯ(%d)________| ",tmpcar);
SendClientMessage(playerid,COLOR_WHITE,string);
if(TrunkInfo[tmpcar][tWeapon1] != 0)
{
GetWeaponName(TrunkInfo[tmpcar][tWeapon1],gunname,sizeof(gunname));
format(string,sizeof(string)," НАЙДЕНО ОРУЖИЕ: %s, патроны: %d", gunname,TrunkInfo[i][tAmmo1]);
SendClientMessage(playerid,COLOR_GRAD,string);
}
if(TrunkInfo[tmpcar][tWeapon2] != 0)
{
GetWeaponName(TrunkInfo[tmpcar][tWeapon2],gunname,sizeof(gunname));
format(string,sizeof(string)," НАЙДЕНО ОРУЖИЕ: %s, патроны: %d", gunname,TrunkInfo[i][tAmmo2]);
SendClientMessage(playerid,COLOR_GRAD,string);
}
if(TrunkInfo[tmpcar][tWeapon3] != 0)
{
GetWeaponName(TrunkInfo[tmpcar][tWeapon3],gunname,sizeof(gunname));
format(string,sizeof(string)," НАЙДЕНО ОРУЖИЕ: %s, патроны: %d", gunname,TrunkInfo[i][tAmmo3]);
SendClientMessage(playerid,COLOR_GRAD,string);
}
if(TrunkInfo[tmpcar][tWeapon4] != 0)
{
GetWeaponName(TrunkInfo[tmpcar][tWeapon4],gunname,sizeof(gunname));
format(string,sizeof(string)," НАЙДЕНО ОРУЖИЕ: %s, патроны: %d", gunname,TrunkInfo[i][tAmmo4]);
SendClientMessage(playerid,COLOR_GRAD,string);
}
if(TrunkInfo[tmpcar][tWeapon5] != 0)
{
GetWeaponName(TrunkInfo[tmpcar][tWeapon5],gunname,sizeof(gunname));
format(string,sizeof(string)," НАЙДЕНО ОРУЖИЕ: %s, патроны: %d", gunname,TrunkInfo[i][tAmmo5]);
SendClientMessage(playerid,COLOR_GRAD,string);
}
if(TrunkInfo[tmpcar][tWeapon6] != 0)
{
GetWeaponName(TrunkInfo[tmpcar][tWeapon6],gunname,sizeof(gunname));
format(string,sizeof(string)," НАЙДЕНО ОРУЖИЕ: %s, патроны: %d", gunname,TrunkInfo[i][tAmmo6]);
SendClientMessage(playerid,COLOR_GRAD,string);
}
if(TrunkInfo[tmpcar][tMedkit] != 0 && mkMode == 1)
{
if(TrunkInfo[tmpcar][tMedkit] != 0)
{
format(string,sizeof(string)," НАЙДЕНО АВТО-АПТЕЧКА: Количество лекарства: %d ", TrunkInfo[i][tMedkit]);
SendClientMessage(playerid,COLOR_GRAD,string);
}
}
}
return 1;
}
if(strcmp(cmdx, "/medkitmode", true) == 0)
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid,0x730000ff," Вы не уполномочены использовать данную команду!");
if(mkMode == 0) { mkMode=1; SendClientMessage(playerid,0xcf6300ff," Вы разрешили покупку авто-аптечек"); }
else { mkMode=0; SendClientMessage(playerid,0xcf6300ff," Вы запретили покупку авто-аптечек"); }
return 1;
}
return 0;
}
public RemovePlayerWeapon(playerid, weaponid)
{
new pWeapons[12] = 0;
new pAmmo[12] = 0;
for(new slot = 0; slot != 12; slot++)
{
new wep, ammo;
GetPlayerWeaponData(playerid, slot, wep, ammo);
if(wep != weaponid && ammo != 0)
{
GetPlayerWeaponData(playerid, slot, pWeapons[slot], pAmmo[slot]);
}
}
ResetPlayerWeapons(playerid);
for(new slot = 0; slot != 12; slot++)
{
if(pAmmo[slot] != 0)
{
GivePlayerWeapon(playerid, pWeapons[slot], pAmmo[slot]);
}
}
return 1;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
new gunid = GetPlayerWeapon(playerid);
new ammo = GetPlayerAmmo(playerid);
new i = GetPlayerVehicleID(playerid);
if(dialogid == DIALOG_BPUT)
{
if(response)
{
if (listitem == 0 && gunid != 0)
{
if(TrunkInfo[i][tWeapon1] != 0)
{
SendClientMessage(playerid,COLOR_GRAD," Здесь уже есть оружие!");
return 1;
}
if(gunid == 0)
{
SendClientMessage(playerid,COLOR_GRAD," Сначала выбери оружие которое хочеш положить в багажник");
return 1;
}
TrunkInfo[i][tWeapon1] = gunid;
TrunkInfo[i][tAmmo1] = ammo;
RemovePlayerWeapon(playerid,gunid);
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid,COLOR_GRAD," Вы успешно положили ваше оружие в багажник");
}
if (listitem == 1 && gunid != 0)
{
if(TrunkInfo[i][tWeapon2] != 0)
{
SendClientMessage(playerid,COLOR_GRAD," Здесь уже есть оружие!");
return 1;
}
if(gunid == 0)
{
SendClientMessage(playerid,COLOR_GRAD," Сначала выбери оружие которое хочеш положить в багажник");
return 1;
}
TrunkInfo[i][tWeapon2] = gunid;
TrunkInfo[i][tAmmo2] = ammo;
RemovePlayerWeapon(playerid,gunid);
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid,COLOR_GRAD," Вы успешно положили ваше оружие в багажник");
}
if (listitem == 2 && gunid != 0)
{
if(TrunkInfo[i][tWeapon3] != 0)
{
SendClientMessage(playerid,COLOR_GRAD," Здесь уже есть оружие!");
return 1;
}
if(gunid == 0)
{
SendClientMessage(playerid,COLOR_GRAD," Сначала выбери оружие которое хочеш положить в багажник");
return 1;
}
TrunkInfo[i][tWeapon3] = gunid;
TrunkInfo[i][tAmmo3] = ammo;
RemovePlayerWeapon(playerid,gunid);
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid,COLOR_GRAD," Вы успешно положили ваше оружие в багажник");
}
if (listitem == 3 && gunid != 0)
{
if(TrunkInfo[i][tWeapon4] != 0)
{
SendClientMessage(playerid,COLOR_GRAD," Здесь уже есть оружие!");
return 1;
}
if(gunid == 0)
{
SendClientMessage(playerid,COLOR_GRAD," Сначала выбери оружие которое хочеш положить в багажник");
return 1;
}
TrunkInfo[i][tWeapon4] = gunid;
TrunkInfo[i][tAmmo4] = ammo;
RemovePlayerWeapon(playerid,gunid);
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid,COLOR_GRAD," Вы успешно положили ваше оружие в багажник");
}
if (listitem == 4 && gunid != 0)
{
if(TrunkInfo[i][tWeapon5] != 0)
{
SendClientMessage(playerid,COLOR_GRAD," Здесь уже есть оружие!");
return 1;
}
if(gunid == 0)
{
SendClientMessage(playerid,COLOR_GRAD," Сначала выбери оружие которое хочеш положить в багажник");
return 1;
}
TrunkInfo[i][tWeapon5] = gunid;
TrunkInfo[i][tAmmo5] = ammo;
RemovePlayerWeapon(playerid,gunid);
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid,COLOR_GRAD," Вы успешно положили ваше оружие в багажник");
}
if (listitem == 5 && gunid != 0)
{
if(TrunkInfo[i][tWeapon6] != 0)
{
SendClientMessage(playerid,COLOR_GRAD," Здесь уже есть оружие!");
return 1;
}
if(gunid == 0)
{
SendClientMessage(playerid,COLOR_GRAD," Сначала выбери оружие которое хочеш положить в багажник");
return 1;
}
TrunkInfo[i][tWeapon6] = gunid;
TrunkInfo[i][tAmmo6] = ammo;
RemovePlayerWeapon(playerid,gunid);
RemovePlayerFromVehicle(playerid);
SendClientMessage(playerid,COLOR_GRAD," Вы успешно положили ваше оружие в багажник");
}
}
else
{
SendClientMessage(playerid,COLOR_GRAD," Вы закрыли багажник.");
}
}
if(dialogid == DIALOG_BTAKE)
{
if(response)
{
if (listitem == 0)
{
if(TrunkInfo[i][tMedkit] == 1)
{
SetPlayerHealth(playerid, 100);
TrunkInfo[i][tMedkit] = 0;
SendClientMessage(playerid,COLOR_GRAD," Ты истратил последнюю дозу лекарства из набора авто-аптечки, поезжайте и купите новую.");
return 1;
}
SetPlayerHealth(playerid, 100);
TrunkInfo[i][tMedkit] -= 1;
SendClientMessage(playerid,COLOR_YELLOW," Ты вылечился (-1 доза лекарства).");
}
if (listitem == 1)
{
if(TrunkInfo[i][tWeapon1] == 0)
{
SendClientMessage(playerid,COLOR_GRAD," Здесь пусто!");
return 1;
}
GivePlayerWeapon(playerid,TrunkInfo[i][tWeapon1],TrunkInfo[i][tAmmo1]);
TrunkInfo[i][tWeapon1] = 0;
TrunkInfo[i][tAmmo1] = 0;
SendClientMessage(playerid,COLOR_GRAD," Ты взял оружие из багажника");
RemovePlayerFromVehicle(playerid);
}
if (listitem == 2)
{
if(TrunkInfo[i][tWeapon2] == 0)
{
SendClientMessage(playerid,COLOR_GRAD," Здесь пусто!");
return 1;
}
GivePlayerWeapon(playerid,TrunkInfo[i][tWeapon2],TrunkInfo[i][tAmmo2]);
TrunkInfo[i][tWeapon2] = 0;
TrunkInfo[i][tAmmo2] = 0;
SendClientMessage(playerid,COLOR_GRAD," Ты взял оружие из багажника");
RemovePlayerFromVehicle(playerid);
}
if (listitem == 3)
{
if(TrunkInfo[i][tWeapon3] == 0)
{
SendClientMessage(playerid,COLOR_GRAD," Здесь пусто!");
return 1;
}
GivePlayerWeapon(playerid,TrunkInfo[i][tWeapon3],TrunkInfo[i][tAmmo3]);
TrunkInfo[i][tWeapon3] = 0;
TrunkInfo[i][tAmmo3] = 0;
SendClientMessage(playerid,COLOR_GRAD," Ты взял оружие из багажника");
RemovePlayerFromVehicle(playerid);
}
if (listitem == 4)
{
if(TrunkInfo[i][tWeapon4] == 0)
{
SendClientMessage(playerid,COLOR_GRAD," Здесь пусто!");
return 1;
}
GivePlayerWeapon(playerid,TrunkInfo[i][tWeapon4],TrunkInfo[i][tAmmo4]);
TrunkInfo[i][tWeapon4] = 0;
TrunkInfo[i][tAmmo4] = 0;
SendClientMessage(playerid,COLOR_GRAD," Ты взял оружие из багажника");
RemovePlayerFromVehicle(playerid);
}
if (listitem == 5)
{
if(TrunkInfo[i][tWeapon5] == 0)
{
SendClientMessage(playerid,COLOR_GRAD," Здесь пусто!");
return 1;
}
GivePlayerWeapon(playerid,TrunkInfo[i][tWeapon5],TrunkInfo[i][tAmmo5]);
TrunkInfo[i][tWeapon5] = 0;
TrunkInfo[i][tAmmo5] = 0;
SendClientMessage(playerid,COLOR_GRAD," Ты взял оружие из багажника");
RemovePlayerFromVehicle(playerid);
}
if (listitem == 6)
{
if(TrunkInfo[i][tWeapon6] == 0)
{
SendClientMessage(playerid,COLOR_GRAD," Здесь пусто!");
return 1;
}
GivePlayerWeapon(playerid,TrunkInfo[i][tWeapon6],TrunkInfo[i][tAmmo6]);
TrunkInfo[i][tWeapon6] = 0;
TrunkInfo[i][tAmmo6] = 0;
SendClientMessage(playerid,COLOR_GRAD," Ты взял оружие из багажника");
RemovePlayerFromVehicle(playerid);
}
}
else
{
SendClientMessage(playerid,COLOR_GRAD," Вы закрыли багажник.");
}
}
return 0;
}
stock strtok3(const string[], &index)
{
new length = strlen(string);
while ((index < length) && (string[index] <= ' '))
{
index++;
}
new offset = index;
new result[20];
while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
return result;
}
