hteppl 214 Опубликовано 16 июля, 2018 Мод Amazing ZM, полностью переделанный. Проблема в том, что при выдаче VIP, записывается дата выдачи и окончания вип, сколько дней осталось. Но переменная pVIP остается 0, при том, что раньше все работало. То есть, вип не активируется, а должно быть значение 1. Для наглядности, вот фото Команда выдачи CMD:setvip(playerid,params[]) { if(Login[playerid]==0) return false; if(PInfo[playerid][pAdmin] < 4) return false; if(sscanf(params, "dd", params[0],params[1])) return SCM(playerid, 0x99cc00FF, "Информация: {FFFFFF}/setvip [ID] [Коль-во дней]"); if(!IsPlayerConnected(params[0])) return SCM(playerid,-1, "Игрок Offline."); if(params[1] < 0 || params[1] > 365) return SCM(playerid, -1, "От 0 до 365."); if(params[1] >= 1) { PInfo[params[0]][pVip] = 1; format(Text, 256, "UPDATE `users` SET `GIVEVIP` = CURDATE() WHERE `pName` = '%s'", PInfo[params[0]][pName]); QueryEmpty(ConnectBD, Text); format(Text, 256, "UPDATE `users` SET `GIVEDVIP` = CURDATE() WHERE `pName` = '%s'", PInfo[params[0]][pName]); QueryEmpty(ConnectBD, Text); format(Text, 256, "UPDATE `users` SET `LOSTVIP` = (CURDATE() + INTERVAL %d DAY) WHERE `pName` = '%s'", params[1], PInfo[params[0]][pName]); QueryEmpty(ConnectBD, Text); format(Text, 256, "UPDATE `users` SET `VDAYS`=DATEDIFF(`LOSTVIP`, `GIVEDVIP`) WHERE `pName` = '%s'", PInfo[params[0]][pName]); QueryEmpty(ConnectBD, Text); format(Text, 144, "[A] %s[%d] выдал VIP %s[%d] на %d дней.", PInfo[playerid][pName],playerid, PInfo[params[0]][pName],params[0],params[1]); SendAdminMessage(0x99CC00FF, Text); SendMes(params[0],COLOR_YELLOW, "Администратор %s[%d] выдал вам VIP на %d дней.", PInfo[playerid][pName], playerid, params[1]); } else if(params[0] == 0) { PInfo[params[0]][pVip] = 0; format(Text, 256, "UPDATE `users` SET `GIVEVIP` = '0000-00-00' WHERE `pName` = '%s'", PInfo[params[0]][pName]); QueryEmpty(ConnectBD, Text); format(Text, 256, "UPDATE `users` SET `GIVEDVIP` = '0000-00-00' WHERE `pName` = '%s'", PInfo[params[0]][pName]); QueryEmpty(ConnectBD, Text); format(Text, 256, "UPDATE `users` SET `LOSTVIP` = '0000-00-00' WHERE `pName` = '%s'", PInfo[params[0]][pName]); QueryEmpty(ConnectBD, Text); format(Text, 256, "UPDATE `users` SET `VDAYS` = '0' WHERE `pName` = '%s'", PInfo[params[0]][pName]); QueryEmpty(ConnectBD, Text); format(Text, 144, "[A] %s[%d] снял VIP %s[%d].", PInfo[playerid][pName],playerid, PInfo[params[0]][pName],params[0]); SendAdminMessage(0x99CC00FF, Text); SendMes(params[0],COLOR_YELLOW, "Администратор %s[%d] снял с вас VIP.", PInfo[playerid][pName], playerid, params[1]); } PInfo[params[0]][pVipEnd] = params[1]; SaveAccount(params[0]); return true; //UPDATE `users` SET `TESTVIP` = (CURDATE()+10) WHERE `pName` = 'James_Lee' //UPDATE `users` SET `GIVEDVIP` = (CURDATE() + INTERVAL %d DAY) WHERE `pName` = 'James_Lee' // format(Text, 256, "UPDATE `users` SET `LOSTVIP` = (CURDATE() + INTERVAL %d DAY) WHERE `pName` = '%s'", params[1], PInfo[params[0]][pName]); } В чем может быть проблема, не понимаю. Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Vegas 91 Опубликовано 16 июля, 2018 @hteppl, я мб щас скажу глупую вещь, но где в этом коде смена pVip на единичку? Типа я вижу всё , кроме него, ну чисто логические рассуждения ^^ Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
MOP TTEX 144 Опубликовано 16 июля, 2018 CMD:setvip(playerid,params[]) { if(Login[playerid]==0) return false; if(PInfo[playerid][pAdmin] < 4) return false; if(sscanf(params, "dd", params[0],params[1])) return SCM(playerid, 0x99cc00FF, "Информация: {FFFFFF}/setvip [ID] [Коль-во дней]"); if(!IsPlayerConnected(params[0])) return SCM(playerid,-1, "Игрок Offline."); if(params[1] < 0 || params[1] > 365) return SCM(playerid, -1, "От 0 до 365."); if(params[1] >= 1) { PInfo[params[0]][pVip] = 1; format(Text, 256, "UPDATE `users` SET `GIVEVIP` = CURDATE() WHERE `pName` = '%s'", PInfo[params[0]][pName]); QueryEmpty(ConnectBD, Text); format(Text, 256, "UPDATE `users` SET `pVip` = 1 WHERE `pName` = '%s'", PInfo[params[0]][pName]); QueryEmpty(ConnectBD, Text); format(Text, 256, "UPDATE `users` SET `GIVEDVIP` = CURDATE() WHERE `pName` = '%s'", PInfo[params[0]][pName]); QueryEmpty(ConnectBD, Text); format(Text, 256, "UPDATE `users` SET `LOSTVIP` = (CURDATE() + INTERVAL %d DAY) WHERE `pName` = '%s'", params[1], PInfo[params[0]][pName]); QueryEmpty(ConnectBD, Text); format(Text, 256, "UPDATE `users` SET `VDAYS`=DATEDIFF(`LOSTVIP`, `GIVEDVIP`) WHERE `pName` = '%s'", PInfo[params[0]][pName]); QueryEmpty(ConnectBD, Text); format(Text, 144, "[A] %s[%d] выдал VIP %s[%d] на %d дней.", PInfo[playerid][pName],playerid, PInfo[params[0]][pName],params[0],params[1]); SendAdminMessage(0x99CC00FF, Text); SendMes(params[0],COLOR_YELLOW, "Администратор %s[%d] выдал вам VIP на %d дней.", PInfo[playerid][pName], playerid, params[1]); } else if(params[0] == 0) { PInfo[params[0]][pVip] = 0; format(Text, 256, "UPDATE `users` SET `GIVEVIP` = '0000-00-00' WHERE `pName` = '%s'", PInfo[params[0]][pName]); QueryEmpty(ConnectBD, Text); format(Text, 256, "UPDATE `users` SET `GIVEDVIP` = '0000-00-00' WHERE `pName` = '%s'", PInfo[params[0]][pName]); QueryEmpty(ConnectBD, Text); format(Text, 256, "UPDATE `users` SET `LOSTVIP` = '0000-00-00' WHERE `pName` = '%s'", PInfo[params[0]][pName]); QueryEmpty(ConnectBD, Text); format(Text, 256, "UPDATE `users` SET `VDAYS` = '0' WHERE `pName` = '%s'", PInfo[params[0]][pName]); QueryEmpty(ConnectBD, Text); format(Text, 256, "UPDATE `users` SET `pVip` = 0 WHERE `pName` = '%s'", PInfo[params[0]][pName]); QueryEmpty(ConnectBD, Text); format(Text, 144, "[A] %s[%d] снял VIP %s[%d].", PInfo[playerid][pName],playerid, PInfo[params[0]][pName],params[0]); SendAdminMessage(0x99CC00FF, Text); SendMes(params[0],COLOR_YELLOW, "Администратор %s[%d] снял с вас VIP.", PInfo[playerid][pName], playerid, params[1]); } PInfo[params[0]][pVipEnd] = params[1]; SaveAccount(params[0]); return true; //UPDATE `users` SET `TESTVIP` = (CURDATE()+10) WHERE `pName` = 'James_Lee' //UPDATE `users` SET `GIVEDVIP` = (CURDATE() + INTERVAL %d DAY) WHERE `pName` = 'James_Lee' // format(Text, 256, "UPDATE `users` SET `LOSTVIP` = (CURDATE() + INTERVAL %d DAY) WHERE `pName` = '%s'", params[1], PInfo[params[0]][pName]); } попробуй так Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты
Vegas 91 Опубликовано 17 июля, 2018 Вот об этой строке я говорил format(Text, 256, "UPDATE `users` SET `pVip` = 1 WHERE `pName` = '%s'", PInfo[params[0]][pName]); Поделиться сообщением Ссылка на сообщение Поделиться на другие сайты