 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
SERVER: Unknown command. Команда срабатывает наполовину.
| |
| Крендель | Дата: Воскресенье, 15.07.2012, 09:22 | Сообщение # 1 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 216
Награды: 0
Город: :дороГ
Репутация: -8
Замечания: 20%
Статус: 
| имеется команда Code if(strcmp(cmd, "/222", true) == 0) { OnPropUpdate(); return 1; } Code public OnPropUpdate() { for(new house = 0; house <= sizeof(HouseInfo); house++) { new queryForUpdateHouse[512]; format(queryForUpdateHouse,sizeof(queryForUpdateHouse), "sizeof(HouseInfo) %d", sizeof(HouseInfo)); SendClientMessage(0, COLOR_YELLOW, queryForUpdateHouse);
format(queryForUpdateHouse,sizeof(queryForUpdateHouse),"UPDATE houses SET\ hHealthx = %d,\ hHealthy = %d,\ hHealthz = %d,\ hArmourx = %d,\ hArmoury = %d,\ hArmourz = %d,\ hOwner = '%s',\ hDiscription = '%s',\ hValue = %d,\ hHel = %d,\ hArm = %d,\ hInt = %d,\ hLock = %d,\ hOwned = %d,\ hRooms = %d,\ hRent = %d,\ hRentabil = %d,\ hTakings = %d,\ hVec = %d,\ hVcol1 = %d,\ hVcol2 = %d,\ hDate = %d,\ hLevel = %d,\ hWorld = %d WHERE ID = %d LIMIT 1", HouseInfo[house][hHealthx], HouseInfo[house][hHealthy], HouseInfo[house][hHealthz], HouseInfo[house][hArmourx], HouseInfo[house][hArmoury], HouseInfo[house][hArmourz], HouseInfo[house][hOwner], HouseInfo[house][hDiscription], HouseInfo[house][hValue], HouseInfo[house][hHel], HouseInfo[house][hArm], HouseInfo[house][hInt], HouseInfo[house][hLock], HouseInfo[house][hOwned], HouseInfo[house][hRooms], HouseInfo[house][hRent], HouseInfo[house][hRentabil], HouseInfo[house][hTakings], HouseInfo[house][hVec], HouseInfo[house][hVcol1], HouseInfo[house][hVcol2], HouseInfo[house][hDate], HouseInfo[house][hLevel], HouseInfo[house][hWorld], house); mysql_query(queryForUpdateHouse); } SendClientMessage(0, COLOR_YELLOW, "2"); for(new business = 0; business <= sizeof(BizzInfo); business++) { SendClientMessage(0, COLOR_YELLOW, "3"); new queryForUpdateBusiness[512]; format(queryForUpdateBusiness,sizeof(queryForUpdateBusiness),"UPDATE business SET \ bOwned = %d,\ bOnwer = '%s',\ bMessage = '%s',\ bExtortion = '%s',\ bEntranceX = %d,\ bEntranceY = %d,\ bEntranceZ = %d,\ bExitX = %d,\ bExitY = %d,\ bExitZ = %d,\ bLevelNeeded = %d,\ bBuyPrice = %d,\ bEntranceCost = %d,\ bTill = %d,\ bLocked = %d,\ bInterior = %d,\ bProducts = %d,\ bMaxProducts = %d,\ bPriceProd = %d,\ WHERE ID = %d LIMIT 1", BizzInfo[business][bOwned], // Занят или продается BizzInfo[business][bOwner], // Хозяин BizzInfo[business][bMessage], // Описание BizzInfo[business][bExtortion], // Заместитель BizzInfo[business][bEntranceX], // Вход X BizzInfo[business][bEntranceY], // Вход Y BizzInfo[business][bEntranceZ], // Вход Z BizzInfo[business][bExitX], // Выход X BizzInfo[business][bExitY], // Выход Y BizzInfo[business][bExitZ], // Выход Z BizzInfo[business][bLevelNeeded], // Уровень BizzInfo[business][bBuyPrice], // Стоимость BizzInfo[business][bEntranceCost], // Стоимость входа BizzInfo[business][bTill], // Деньги бизнеса BizzInfo[business][bLocked], // Заперто или нет BizzInfo[business][bInterior], // ИД интерьера BizzInfo[business][bProducts], // Количество продуктов BizzInfo[business][bMaxProducts], // Максимальное количество продуктов BizzInfo[business][bPriceProd], // ИД пикапа около входа business); mysql_query(queryForUpdateBusiness); } SendClientMessage(0, COLOR_YELLOW, "4"); for(new sbusiness = 0; sbusiness <= sizeof(SBizzInfo); sbusiness++) { SendClientMessage(0, COLOR_YELLOW, "5"); new queryForUpdateSBusiness[512]; format(queryForUpdateSBusiness,sizeof(queryForUpdateSBusiness),"UPDATE sbusiness SET \ sbOwned = %d,\ sbOnwer = '%s',\ sbMessage = '%s',\ sbExtortion = '%s',\ sbEntranceX = %d,\ sbEntranceY = %d,\ sbEntranceZ = %d,\ sbLevelNeeded = %d,\ sbBuyPrice = %d,\ sbEntranceCost = %d,\ sbTill = %d,\ sbLocked = %d,\ sbInterior = %d,\ sbProducts = %d,\ sbMaxProducts = %d,\ sbPriceProd = %d,\ WHERE ID = %d LIMIT 1", SBizzInfo[sbusiness][sbOwned], // Занят или продается SBizzInfo[sbusiness][sbOwner], // Хозяин SBizzInfo[sbusiness][sbMessage], // Описание SBizzInfo[sbusiness][sbExtortion], // Заместитель SBizzInfo[sbusiness][sbEntranceX], // Вход X SBizzInfo[sbusiness][sbEntranceY], // Вход Y SBizzInfo[sbusiness][sbEntranceZ], // Вход Z SBizzInfo[sbusiness][sbLevelNeeded], // Уровень SBizzInfo[sbusiness][sbBuyPrice], // Стоимость SBizzInfo[sbusiness][sbEntranceCost], // Стоимость входа SBizzInfo[sbusiness][sbTill], // Деньги бизнеса SBizzInfo[sbusiness][sbLocked], // Заперто или нет SBizzInfo[sbusiness][sbInterior], // ИД интерьера SBizzInfo[sbusiness][sbProducts], // Количество продуктов SBizzInfo[sbusiness][sbMaxProducts], // Максимальное количество продуктов SBizzInfo[sbusiness][sbPriceProd], // ИД пикапа около входа sbusiness); mysql_query(queryForUpdateSBusiness); } SendClientMessage(0, COLOR_YELLOW, "6"); return 1; }
В конце паблика OnPlayerCommandText поставил "return SendClientMessage(playerid,COLOR_LIGHTRED,"Неизвестная команда!"); " При вводе команды /222 в паблике "OnPropUpdate();" срабатывает только первый цикл (7 раз повторяется как и должно быть по кличеству домов) и далее выводится сообщение "SERVER: Unknown command". Другие два цикла не срабатывают.
Вопрос 1: почему не срабатывают оставшиеся два цикла? Вопрос 2: почему выводится сообщение "SERVER: Unknown command" а не "Неизвестная команда!" ? Спасибо за внимание и ответы.
生き死に
|
| |
|
|
| Alcoholik | Дата: Воскресенье, 15.07.2012, 09:39 | Сообщение # 2 |
|
Мастер джэдай
Группа:
Администратор
Сообщений: 8299
Награды: 111
Город: Санкт-Петербург
Репутация: 6085
Статус: 
| Крендель, скорее всего обращение к несуществующему индексу массива, то есть количество ячеек в массиве меньше цикла. Сам долго ловил этот момент, в итоге ничё не нашёл и забил, команда не важной была, а потом случайно заметил, что обращение вообще идёт к левому массиву. Quote (Крендель) почему выводится сообщение "SERVER: Unknown command" а не "Неизвестная команда!" ? Потому что, когда ты пишешь команду, у тебя вызывается Onplayercommandtext, там идут условия на поиск строки, когда он находит команду, он её проходит и видит Quote (Крендель) SendClientMessage(0, COLOR_YELLOW, "6"); return 1; После return 1 он выйдет из поиска и всё. В твоём случае SERVER: Unknown command это не неизвестная команда, а ошибка внутри команды. Неизвестная команда сработает только в том случае, когда onplayercommandtext пройдёт до конца, а сделает он это в твоём случае, если ни одну команду не встретит нужную. Можешь попробовать убрать ретурн из команды и посмотреть. В теории он должен дальше идти искать и в итоге дойти до "Неизвестная команда!". (Если он не встретил по пути ещё команду, которая подойдёт к условию)
if(isset($beer)&&isset($girl)) { drink($beer);fuck($girl); }else die(); Мониторинг sa:mp серверов Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги. Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
|
| |
|
|
| Крендель | Дата: Воскресенье, 15.07.2012, 09:51 | Сообщение # 3 |
|
Уверенный в себе
Группа:
Продвинутые
Сообщений: 216
Награды: 0
Город: :дороГ
Репутация: -8
Замечания: 20%
Статус: 
| RoACh, Спасибо, помогли )) Проблема во всех циклах была в условии завершения циклов...везде стояло "<=", а надо было просто "<"
生き死に
|
| |
|
|
| Alcoholik | Дата: Воскресенье, 15.07.2012, 12:14 | Сообщение # 4 |
|
Мастер джэдай
Группа:
Администратор
Сообщений: 8299
Награды: 111
Город: Санкт-Петербург
Репутация: 6085
Статус: 
| Тогда закрываю)
if(isset($beer)&&isset($girl)) { drink($beer);fuck($girl); }else die(); Мониторинг sa:mp серверов Приватно никого не консультирую, моды также не пишу, ни так, ни за деньги. Моя ICQ 675715, пишу только с неё. Все остальные Роачи фейки, ничего я не продаю и продавать не буду, вас разводят.
|
| |
|
|
|
 |
|
 | |
| |
|