Zeka_Peka228
Умник
Всем привет, решил сделать два типа наркотиков.
Сделал сохранение и загрузку их, и компилирует без единого варнинга и ошибки, но вот проблема..
Когда использую команду /drugs (я её модернизировал, подстроив под свою систему):
Вот в чем проблема собсна:
Когда юзаю /drugs 1 10 (ну крч марихуану (первый тип)), то мне дает сигарету в чат идет пустое SendClientMessage и никакого эффекта не дает моему персонажу(хотя по коду должно давать hp и опьянение). Также не идет GameText. Но что самое интересное, у меня по статистике нет вообще ниодного грамма первого типа наркотиков, но он их все равно пропускает.
А также после того как дало сигарету эту - после ввода /drugs (просто /drugs без никаких значений) пишет "Нельзя употре***ть слишком часто")
Кто поможет с меня ОГРОМНЫЙ +
---------- Сообщение добавлено в 14:08 ---------- Предыдущее сообщение добавлено в 13:58 ----------
Не обращайте внимание на быдло-код
PHP:
pDrugs[0] - это первый тип
pDrugs[1] - это второй тип
Когда использую команду /drugs (я её модернизировал, подстроив под свою систему):
PHP:
if(strcmp(cmd, "/drugs", true) == 0)
{
if(Logged[playerid] == true)
{
if(PlayerInfo[playerid][pMember] >= 6 && PlayerInfo[playerid][pMember] <= 9 || PlayerInfo[playerid][pMember] == 0 || PlayerInfo[playerid][pMember] == 13 || PlayerInfo[playerid][pMember] == 14)
{
if(GetPVarInt(playerid,"DrugsEffect") == 1) return SendClientMessage(playerid,COLOR_GRAD2, "Нельзя употре***ть наркотики слишком часто...");
new gramm;
tmp = strtok(cmdtext, idx);
gramm = strval(tmp);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "Используйте: /drugs [тип наркотиков(1-марихуанна, 2-спайс) [грамм]");
new typedrugs;
tmp = strtok(cmdtext, idx);
typedrugs = strval(tmp);
if(!strlen(tmp)) return SendClientMessage(playerid, COLOR_GRAD2, "Используйте: /drugs [тип наркотиков(1-марихуанна, 2-спайс) [грамм]");
if(gramm <= 0) return SendClientMessage(playerid,COLOR_GRAD2, "Неверное кол-во грамм.");
if(gramm > 20) return SendClientMessage(playerid,COLOR_GRAD2, "Не более 10 грамм за раз.");
if(typedrugs <= 0 && typedrugs >= 3) return SendClientMessage(playerid,COLOR_GRAD2, "Неверный номер наркотиков.");
if(PlayerInfo[playerid][pDrugs][0] < gramm && typedrugs == 1) return SendClientMessage(playerid,COLOR_GRAD2, "У Вас нет столько грамм марихуанны/спайса.");
if(PlayerInfo[playerid][pDrugs][1] < gramm && typedrugs == 2) return SendClientMessage(playerid,COLOR_GRAD2, "У Вас нет столько грамм спайса.");
if(gramm >= 1 && gramm <= 3 && typedrugs == 1)
{
if(PlayerInfo[playerid][pHealth] < 100.0) PlayerInfo[playerid][pHealth] += 5.0;
if(PlayerInfo[playerid][pHealth] > 100.0) PlayerInfo[playerid][pHealth] = 100.0;
SetTimerEx("DrugsEffect", 6000, false, "i", playerid);
SetPlayerDrunkLevel(playerid, 3000);
}
if(gramm >= 4 && gramm <= 6 && typedrugs == 1)
{
if(PlayerInfo[playerid][pHealth] < 100.0) PlayerInfo[playerid][pHealth] += 20.0;
if(PlayerInfo[playerid][pHealth] > 100.0) PlayerInfo[playerid][pHealth] = 100.0;
SetTimerEx("DrugsEffect", 12000, false, "i", playerid);
SetPlayerDrunkLevel(playerid, 6000);
}
if(gramm >= 7 && gramm <= 10 && typedrugs == 1)
{
if(PlayerInfo[playerid][pHealth] < 100.0) PlayerInfo[playerid][pHealth] += 35.0;
if(PlayerInfo[playerid][pHealth] > 100.0) PlayerInfo[playerid][pHealth] = 100.0;
SetTimerEx("DrugsEffect", 20000, false, "i", playerid);
SetPlayerDrunkLevel(playerid, 9000);
}
if(gramm >= 11 && gramm <= 15 && typedrugs == 1)
{
if(PlayerInfo[playerid][pHealth] < 100.0) PlayerInfo[playerid][pHealth] += 50.0;
if(PlayerInfo[playerid][pHealth] > 100.0) PlayerInfo[playerid][pHealth] = 100.0;
SetTimerEx("DrugsEffect", 30000, false, "i", playerid);
SetPlayerDrunkLevel(playerid, 15000);
}
if(gramm >= 16 && gramm <= 20 && typedrugs == 1)
{
if(PlayerInfo[playerid][pHealth] < 100.0) PlayerInfo[playerid][pHealth] += 70.0;
if(PlayerInfo[playerid][pHealth] > 100.0) PlayerInfo[playerid][pHealth] = 100.0;
SetTimerEx("DrugsEffect", 50000, false, "i", playerid);
SetPlayerDrunkLevel(playerid, 30000);
}
if(gramm >= 1 && gramm <= 3 && typedrugs == 2)
{
if(PlayerInfo[playerid][pHealth] < 100.0) PlayerInfo[playerid][pHealth] += 5.0;
if(PlayerInfo[playerid][pHealth] > 100.0) PlayerInfo[playerid][pHealth] = 100.0;
SetTimerEx("DrugsEffect", 6000, false, "i", playerid);
SetPlayerDrunkLevel(playerid, 3000);
}
if(gramm >= 4 && gramm <= 6 && typedrugs == 2)
{
if(PlayerInfo[playerid][pHealth] < 100.0) PlayerInfo[playerid][pHealth] += 20.0;
if(PlayerInfo[playerid][pHealth] > 100.0) PlayerInfo[playerid][pHealth] = 100.0;
SetTimerEx("DrugsEffect", 12000, false, "i", playerid);
SetPlayerDrunkLevel(playerid, 6000);
}
if(gramm >= 7 && gramm <= 10 && typedrugs == 2)
{
if(PlayerInfo[playerid][pHealth] < 100.0) PlayerInfo[playerid][pHealth] += 35.0;
if(PlayerInfo[playerid][pHealth] > 100.0) PlayerInfo[playerid][pHealth] = 100.0;
SetTimerEx("DrugsEffect", 20000, false, "i", playerid);
SetPlayerDrunkLevel(playerid, 9000);
}
if(gramm >= 11 && gramm <= 15 && typedrugs == 2)
{
if(PlayerInfo[playerid][pHealth] < 100.0) PlayerInfo[playerid][pHealth] += 50.0;
if(PlayerInfo[playerid][pHealth] > 100.0) PlayerInfo[playerid][pHealth] = 100.0;
SetTimerEx("DrugsEffect", 30000, false, "i", playerid);
SetPlayerDrunkLevel(playerid, 15000);
}
if(gramm >= 16 && gramm <= 20 && typedrugs == 2)
{
if(PlayerInfo[playerid][pHealth] < 100.0) PlayerInfo[playerid][pHealth] += 70.0;
if(PlayerInfo[playerid][pHealth] > 100.0) PlayerInfo[playerid][pHealth] = 100.0;
SetTimerEx("DrugsEffect", 50000, false, "i", playerid);
SetPlayerDrunkLevel(playerid, 30000);
}
if(typedrugs == 1) PlayerInfo[playerid][pDrugs][0] -= gramm;
if(typedrugs == 2) PlayerInfo[playerid][pDrugs][1] -= gramm;
if(PlayerInfo[playerid][pSex] == 1 && typedrugs == 1) format(string, sizeof(string), "%s употребил %dг марихуанны", PlayerInfo[playerid][pName],gramm);
if(PlayerInfo[playerid][pSex] == 1 && typedrugs == 2) format(string, sizeof(string), "%s употребил %dг спайса", PlayerInfo[playerid][pName],gramm);
if(PlayerInfo[playerid][pSex] == 2 && typedrugs == 1) format(string, sizeof(string), "%s употребила %dг марихуанны", PlayerInfo[playerid][pName],gramm);
if(PlayerInfo[playerid][pSex] == 2 && typedrugs == 2) format(string, sizeof(string), "%s употребила %dг марихуанны", PlayerInfo[playerid][pName],gramm);
StatusMessage(playerid,string,string);
if(typedrugs == 1) format(string, sizeof(string), "~r~-%i gramm marih.", gramm);
if(typedrugs == 2) format(string, sizeof(string), "~r~-%i gramm spice", gramm);
SetPlayerHealth(playerid, PlayerInfo[playerid][pHealth]);
GameTextForPlayer(playerid, string, 2000, 1);
SetPlayerSpecialAction(playerid, SPECIAL_ACTION_SMOKE_CIGGY);
SetPVarInt(playerid,"DrugsEffect",1);
}
}
return true;
}
Когда юзаю /drugs 1 10 (ну крч марихуану (первый тип)), то мне дает сигарету в чат идет пустое SendClientMessage и никакого эффекта не дает моему персонажу(хотя по коду должно давать hp и опьянение). Также не идет GameText. Но что самое интересное, у меня по статистике нет вообще ниодного грамма первого типа наркотиков, но он их все равно пропускает.
А также после того как дало сигарету эту - после ввода /drugs (просто /drugs без никаких значений) пишет "Нельзя употре***ть слишком часто")
Кто поможет с меня ОГРОМНЫЙ +
---------- Сообщение добавлено в 14:08 ---------- Предыдущее сообщение добавлено в 13:58 ----------
Не обращайте внимание на быдло-код
