Уверен вам пригодится
[Waring]
%s- переменная
Переменная — это хранилище данных, куда мы можем записывать
различные данные для их последующего вызова. Тоесть действия с переменными предельно просты: запись информации,вывод и
использование информации. Если присмотрется ближе, то список можно пополнить еще одним пунктом — объявление переменной.
Каждая переменная имеет свое название, чтобы компилятор мог отличить друг от друга переменные, название мы задаем при
объявлении. Оператор объявления переменной — new
1)
PHP код:
warning 219: local variable "%s" shadows a variable at a preceding level
Это значит что переменная дважды объявлена.
Пример:
PHP код:
new neka; new neka
;
Что же нам делать, а вот что:
1) мы можем одну из них удалить;
2) можем изменить;
Но не стоит забывать что при изменении переменной нам нужно заменить все что её касается
вот пример правильного изменения:
PHP код:
new neka1; neka1 = CreatePickup(1239, 2, 1380.3220,-1771.3235,13.5469);
2)
PHP код:
warning 217: loose indentation
Это значит что код не табулирован(код не построен лесенкой)
Пример:
PHP код:
stock LSNews(color,const string[]) { for(new i = 0; i < MAX_PLAYERS; i++){ if(IsPlayerConnected(i)){ if(!lNews[i]){ SendClientMessage(i, color, string);}}}}
пример правильного табулирования
PHP код:
stock LSNews(color,const string[]) { for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(!lNews[i]) { SendClientMessage(i, color, string); } } } }
Что же делать? ответ прост
1) мы можем делать все вручную
2) можем поставить
#pragma tabsize 0
3) можем с помощи notepad++ все исправить (на форуме есть урок)
pragma tabsize — Он просто маскирует эти warning и не более
3)
PHP код:
warning 235: public function lacks forward declaration %s
Это означает что у функции нету forward
Пример:
Вы создали паблик
PHP код:
public lol()
И увас появляется этот варинг что же делать?
ответ прост
добавляем forward
PHP код:
forward lol(); public lol()
если вы не хотите каждый раз писать forward то можно сделать так:
PHP код:
#define public:%1(%2) forward %1(%2); public %1(%2)
и тогда новые паблики мы пишем так
PHP код:
public:lol()
4)
PHP код:
warning 216: nested comment ;
Вот так это выглядит
PHP код:
/*case 458: //Fire&lvl исправление PHP код: case 458: //Fire&lvl
5)
PHP код:
warning 213: tag mismatch
Это означает не совпадения аргументов
вот допустим самый простой случай:
PHP код:
#define CreateObject CreateDynamicObject #define MoveObject MoveDynamicObject
решение простое
PHP код:
#define CreateObject, CreateDynamicObject #define MoveObject, MoveDynamicObject
6)
PHP код:
warning 201: redefinition of constant/macro
Это означает что в дефайнах(define)
Пример:
PHP код:
#define OnPlayerEnterRaceCheckpoint #define OnPlayerEnterRaceCheckpoint
Решение одну из двух удалить!
7)
PHP код:
warning 200: symbol "%s" is truncated to 31 characters
Это обозначает что мы при создании переменной ввели больше 31 символа
Пример:
PHP код:
new sssssssssssssssssssssssssssssss;
Решение:
Просто сменить название или укоротить !
PHP код:
warning 202: number of arguments does not match definition
Это значит что у нас не совпадают аргументы
Возьмем самый простой пример:
PHP код:
Create3DTextLabel(" ТУт типо текст .",0xFFA500FF,.0120,456.2717,35.1719,20.0);
Наша ошибка содержится здесь:
PHP код:
-2041.0120,456.2717,35.1719,20.0 -2041.0120,456.2717,35.1719--------- это на ша координата (она нас не интересует) 20.0--------вот наша ошибка (20----это расстояние с которого наш текст будет виден) а вот 0 это у нас testLOS- линия видимости
решение простое:
Нам 0 нужно заменить на 1
PHP код:
Create3DTextLabel(" ТУт типо текст .",0xFFA500FF,1111.1111,111.1111,11.1111,20.1);
9)
PHP код:
warning 203: symbol is never used: %s
Это означает что данный символ нигде не используется
Пример :
Создадим допустим переменную
new respon;
И тут у нас возникает
PHP код:
(1578) warning 203: symbol is never used: "respon"
Что же делать?
Ответ прост:
найти эту переменную и удалить
10)
PHP код:
warning 204: symbol is assigned a value that is never used %s
Это значит что создали переменную и массив а он негде не используется
Пример:
PHP код:
new blabal[15];
Решения: просто удалить
11)
PHP код:
warning 209: function "%s" should return a value
Это значит что наша функция не возвращается(простыми словами нету return 1; или return 0
пример:
PHP код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { if (newkeys == 1024) { OnPlayerCommandText(playerid,"/Blablabal"); return 1; <========Вот наш return ДО } }
Решения:
PHP код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys) { if (newkeys == 1024) { OnPlayerCommandText(playerid,"/Blablabal"); } return 1; <========Вот наш return ПОСЛЕ }
[Error]
1)
PHP код:
error 040: duplicate "case" label (value 28)
это означает что case стаким значением повторяется
Решение этой проблемы простое
PHP код:
case 28: case 28:
нам нужно цифру 28 изменит на другую (в той строчке на которую жалуется )
2)
PHP код:
error 032: array index out of bounds (variable "JoinPed")
Это означает что индекс массива превышен (но не всегда смотрим дальше)
Пример:
PHP код:
new JoinPed[131][1] = {
131- массив поигравшись с ним я понял что дело не в нем, а в чём-же спросите вы?
пример данной ошибки:
PHP код:
else if(SelectCharPlace[playerid] == 2) { SetPlayerSkin(playerid, JoinPed[123][0]); SelectCharPlace[playerid] = 3; InviteSkin[playerid] = JoinPed[98][0]; }
как видим
JoinPed[123] с начало с таким значением, а потом JoinPed[98]
Решение простое:
JoinPed[123] число в данных скобках должно быть одинаковым.
пример:
PHP код:
else if(SelectCharPlace[playerid] == 2) { SetPlayerSkin(playerid, JoinPed[123][0]); SelectCharPlace[playerid] = 3; InviteSkin[playerid] = JoinPed[123][0]; }
3)
PHP код:
error 037: invalid string (possibly non-terminated string)
Это означает что строка неправильная а точнее где то допущена ошибка
пример:
PHP код:
else if(PlayerInfo[targetid][pRank] == 4) { rangz = "Зам.модера; }
как видим нам после слова «модера» не хватает «
пример:
PHP код:
else if(PlayerInfo[targetid][pRank] == 4) { rangz = "Зам.модера"; }
4)
PHP код:
error 001: expected token: ",", but found ";"
Это значит что мы пропустили знак или скобку (в данном примере скобку)
Пример:
PHP код:
public SaveProdykts() { new idx; new File: file2; while (idx < sizeof(ProdyktsInfo)) { new coordsstring[256]; format(coordsstring, sizeof(coordsstring), "%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%dn", ProdyktsInfo[idx][prSous], ProdyktsInfo[idx][prPizza], ProdyktsInfo[idx][prMilk], ProdyktsInfo[idx][prJuice], ProdyktsInfo[idx][prSpirt], ProdyktsInfo[idx][prChicken], ProdyktsInfo[idx][prKolbasa], ProdyktsInfo[idx][prFish], ProdyktsInfo[idx][prIceCream], ProdyktsInfo[idx][prChips], ProdyktsInfo[idx][prZamProd]; if(idx == 0) { file2 = fopen("[prodykts]/prodykts.cfg", io_write); } else { file2 = fopen("[prodykts]/prodykts.cfg", io_append); } fwrite(file2, coordsstring); idx++; fclose(file2); } return 1; }
смотрим на
PHP код:
ProdyktsInfo[idx][prZamProd];
и вим что мы пропустили )
и так оно выглядит
PHP код:
ProdyktsInfo[idx][prZamProd]);
PHP код:
public SaveProdykts() { new idx; new File: file2; while (idx < sizeof(ProdyktsInfo)) { new coordsstring[256]; format(coordsstring, sizeof(coordsstring), "%d,%d,%d,%d,%d,%d,%d,%d,%d,%d,%dn", ProdyktsInfo[idx][prSous], ProdyktsInfo[idx][prPizza], ProdyktsInfo[idx][prMilk], ProdyktsInfo[idx][prJuice], ProdyktsInfo[idx][prSpirt], ProdyktsInfo[idx][prChicken], ProdyktsInfo[idx][prKolbasa], ProdyktsInfo[idx][prFish], ProdyktsInfo[idx][prIceCream], ProdyktsInfo[idx][prChips], ProdyktsInfo[idx][prZamProd]);< ----------- И вот наша скобка if(idx == 0) { file2 = fopen("[prodykts]/prodykts.cfg", io_write); } else { file2 = fopen("[prodykts]/prodykts.cfg", io_append); } fwrite(file2, coordsstring); idx++; fclose(file2); } return 1; }
5)
PHP код:
error 002: only a single statement (or expression) can follow each "case"
Это означает что у вас после «case» идет if(dialogid == )
Пример:
PHP код:
case 7507: { if(response) ClothesSex[playerid] = 1; else ClothesSex[playerid] = 2; ShowPlayerDialog(playerid,7504,2,"??????? ??????","{A0B0D0}?????????? ?????? {7CC000}300$n{A0B0D0}??????? ?????? {7CC000}300$n{A0B0D0}???????????? ?????? {7CC000}300$n{A0B0D0}?????","???????","?????"); return 1; } if(dialogid == 7504) <------------------- вот наша и ошибка { if(response) { SetCameraBehindPlayer(playerid); TogglePlayerControllable(playerid, 1); SetPlayerSkin(playerid, PlayerInfo[playerid][pModel]); ClothesRun[playerid] = 0; return 1; }
Решение простое:
if(dialogid == 7504) это нам нужно заменить на case как и последующий диалог !
PHP код:
case 7504: <------------------- вот так это выглядит { if(response) { SetCameraBehindPlayer(playerid); TogglePlayerControllable(playerid, 1); SetPlayerSkin(playerid, PlayerInfo[playerid][pModel]); ClothesRun[playerid] = 0; return 1; }
6)
PHP код:
error 004: function "%s" is not implemented
Это означает что мы пропустили скобку.
Мой совет
1)проверить весь код в ручную
2)на форуме был урок как найти не по ставленую скобку
3)Можно воспользоватся notepad++ там показы линии открытых скобок и тогда можно найти эту скобку
7)
PHP код:
error 017: undefined symbol %s
Это означает что мы не поставили переменную (new)
Пример:
PHP код:
error 017: undefined symbol "lol"
Решение:
Ко всем new добавим
PHP код:
new lol;
Posts: 46
Threads: 13
Joined: Dec 2009
Reputation:
0
I downloaded a filter scirpt with login system and i get this error :/ what do i need? i Got the latest pawno from www.sa-mp.com downloads.
Posts: 3,488
Threads: 16
Joined: Jun 2007
Reputation:
0
Did you open the filterscript with the latest pawno?
Posts: 852
Threads: 34
Joined: May 2009
Reputation:
0
Quote:
Originally Posted by MadeMan
Did you open the filterscript with the latest pawno?
MadeMan is right download the 0.3 server package from HERE.
And compile it in that pawno. Then your good to go.
/Artix
Posts: 46
Threads: 13
Joined: Dec 2009
Reputation:
0
i downloaded the latest pawno R4 3.0a windows server and i get this errors :/
Код:
D:Documents and SettingsPawe23lPulpitDM SERVERgamemodeslvdm2.pwn(890) : error 017: undefined symbol "ShowPlayerDialog" D:Documents and SettingsPawe23lPulpitDM SERVERgamemodeslvdm2.pwn(2829) : error 017: undefined symbol "ShowPlayerDialog" D:Documents and SettingsPawe23lPulpitDM SERVERgamemodeslvdm2.pwn(3482) : error 025: function heading differs from prototype D:Documents and SettingsPawe23lPulpitDM SERVERgamemodeslvdm2.pwn(3482) : error 025: function heading differs from prototype D:Documents and SettingsPawe23lPulpitDM SERVERgamemodeslvdm2.pwn(3719) : warning 235: public function lacks forward declaration (symbol "OnDialogResponse") D:Documents and SettingsPawe23lPulpitDM SERVERgamemodeslvdm2.pwn(3771) : error 017: undefined symbol "ShowPlayerDialog" D:Documents and SettingsPawe23lPulpitDM SERVERgamemodeslvdm2.pwn(3721) : warning 204: symbol is assigned a value that is never used: "sendername" Pawn compiler 3.2.3664 Copyright © 1997-2006, ITB CompuPhase 5 Errors.
this is my map
http://pastebin.com/f388dfd88
Posts: 852
Threads: 34
Joined: May 2009
Reputation:
0
If it says : undefined symbol ShowPlayerDialog then you are NOT compiling in 0.3.
/Artix
Posts: 46
Threads: 13
Joined: Dec 2009
Reputation:
0
but i am do you want me to screen record it ?
Posts: 3,488
Threads: 16
Joined: Jun 2007
Reputation:
0
How do you open the script?
Posts: 46
Threads: 13
Joined: Dec 2009
Reputation:
0
i go in to the pawno folder that i downloaded from sa-mp.com downloads just 5min ago and i open pawno.exe than click open and select my game mode. Than compile and i get this errors :/
Posts: 852
Threads: 34
Joined: May 2009
Reputation:
0
Okay then i cant help you anymore..
If you say you are doin it i see nothing what could help.
/Artix
Posts: 603
Threads: 19
Joined: Nov 2007
Reputation:
0
When you extracted pawno, you’ll have to re-assign the file extension. You can simply do that by opening the new pawno.exe.
edit: replied too late, sorry
- Регистрация
- 20 Авг 2011
- Сообщения
- 53
- Лучшие ответы
- 0
- Репутация
- 4
-
#1
При попытке добавить какой либо диалог, выходит такая ошибка
Код:
: error 017: undefined symbol "ShowPlayerDialog"
Например:
Код:
E:Работа с модомТестgamemodebest-gf.pwn(8310) : error 017: undefined symbol "ShowPlayerDialog"
Строка:
Код:
ShowPlayerDialog(playerid,1245,DIALOG_STYLE_LIST,"Покупка лицензий",string,"Ок","Отмена");
Содержание
- Error 017 undefined symbol showplayerdialog
- Маппинг для сервера
- Моды для сервера
- Программы для скриптера
- [-1]SENATOR
- Статистика форума
- Форум Pawn.Wiki — Воплоти мечту в реальность!: error 017 — Форум Pawn.Wiki — Воплоти мечту в реальность!
- Форум Pawn.Wiki — Воплоти мечту в реальность!: error 017: undefined symbol — Форум Pawn.Wiki — Воплоти мечту в реальность!
- Форум Pawn.Wiki — Воплоти мечту в реальность!: Подробно как исправить некоторые Warning и Error — Форум Pawn.Wiki — Воплоти мечту в реальность!
Error 017 undefined symbol showplayerdialog
Быстрый переход в группу «Пользователи», без надобности написания постов и ожидания.
Покупка дает возможность:
Маппинг для сервера
Если вы хотите обновить Ваш сервер новыми доработками — то зайдите в наш раздел. Большой выбор готовых решений от наших пользователей
Моды для сервера
Огромный выбор различных модификаций для Вашего сервера. Пролистайте эти темы! Возможно именно там Вы найдете то, что искали уже давно.
Программы для скриптера
Подборка удобных программ для скриптера
[-1]SENATOR
Заблокирован
При попытке добавить какой либо диалог, выходит такая ошибка
Статистика форума
Created by Giness
Уважаемый Гость.
Пожалуйста — воздержитесь от любых комментариев на форуме относительно ситуации в мире.
В личных сообщениях, в темах и где бы то не было.
Помните — это закончится в любом случае, а слова, сказанные (или написанные) Вами — не забудутся никогда.
МЫ ЗА МИР.
(Любые сообщения относительно ситуации в мире(не важно с каким смыслом) буду удаляться. А пользователи — блокироваться безвозвратно. )
Источник
Форум Pawn.Wiki — Воплоти мечту в реальность!: error 017 — Форум Pawn.Wiki — Воплоти мечту в реальность!
- Pawn скриптинг
- Первая помощь
- Проблемы с компилированием
- Правила форума
- Просмотр новых публикаций
- Группа: Активные пользователи
- Сообщений: 72
- Регистрация: 01 декабря 14
- Группа: Активные пользователи
- Сообщений: 21
- Регистрация: 04 октября 13
ко всем переменным в начале мода добавь:
Сообщение отредактировал Vibe: 17 января 2015 — 15:46
- Группа: Vip
- Сообщений: 1 324
- Регистрация: 26 сентября 13
Vibe (17 января 2015 — 15:45) писал:
error 021: symbol already defined: «SiteText» — переменная SiteText уже объявлена
не учи других если сам не понимаешь!
в какой паблик ты пихаешь?:
Сообщение отредактировал bek: 17 января 2015 — 16:02
- Группа: Активные пользователи
- Сообщений: 72
- Регистрация: 01 декабря 14
bek (17 января 2015 — 15:53) писал:
error 021: symbol already defined: «SiteText» — переменная SiteText уже объявлена
не учи других если сам не понимаешь!
в какой паблик ты пихаешь?:
в public OnPlayerConnect(playerid)
Решил проблему,спасибо за помощь.
Сообщение отредактировал Oleg_Morety: 17 января 2015 — 16:09
Источник
Форум Pawn.Wiki — Воплоти мечту в реальность!: error 017: undefined symbol — Форум Pawn.Wiki — Воплоти мечту в реальность!
- Pawn скриптинг
- Первая помощь
- Проблемы с компилированием
- Правила форума
- Просмотр новых публикаций
- (2 Страниц)
- 1
- 2
- >
- Вы не можете создать новую тему
Тема закрыта
- Группа: Пользователи
- Сообщений: 22
- Регистрация: 24 апреля 16
(9633) : error 017: undefined symbol «GetPlayerVarInt»
(14895) : error 017: undefined symbol «SetPvarInt»
(14897) : error 035: argument type mismatch (argument 2)
new.pwn(14905) : error 017: undefined symbol «SetPvarInt»
(14907) : error 035: argument type mismatch (argument 2)
Строка (9633) if(GetPlayerVarInt(playerid, «GruzRab») == 1) ShowPlayerDialog(playerid, 5533, DIALOG_STYLE_MSGBOX, «. . «, «?? . . . ? . . «, «??», «. «);
Строка (14895) SetPvarInt(playerid, «GruzRab», 0);
Строка (14897) SendClientMessage(playerid, «<66ff00>?? . . ? . . . » );
Строка (14907) SendClientMessage(playerid, «<66ff00>?? . ?? . . . ?? . . ?? . » );
- Группа: Пользователи
- Сообщений: 22
- Регистрация: 24 апреля 16
- Группа: Пользователи
- Сообщений: 9
- Регистрация: 19 августа 17
ко всем new пихнуть
- Группа: Пользователи
- Сообщений: 22
- Регистрация: 24 апреля 16
oxmc (19 августа 2017 — 15:08) писал:
ко всем new пихнуть
Теперь эта ошибка (9635) : error 012: invalid function call, not a valid address
(9635) : warning 215: expression has no effect
(9635) : warning 215: expression has no effect
(9635) : error 001: expected token: «;», but found «)»
(9635) : error 029: invalid expression, assumed zero
(9635) : fatal error 107: too many error messages on one line
в этой строке (9635) if(GetPlayerVarInt(playerid, «GruzRab») == 1) ShowPlayerDialog(playerid, 5535, DIALOG_STYLE_MSGBOX, «. . «, «?? . . . ? . . «, «??», «. «);
- Группа: Пользователи
- Сообщений: 9
- Регистрация: 19 августа 17
maks264291 (19 августа 2017 — 15:11) писал:
Теперь эта ошибка (9635) : error 012: invalid function call, not a valid address
(9635) : warning 215: expression has no effect
(9635) : warning 215: expression has no effect
(9635) : error 001: expected token: «;», but found «)»
(9635) : error 029: invalid expression, assumed zero
(9635) : fatal error 107: too many error messages on one line
в этой строке (9635) if(GetPlayerVarInt(playerid, «GruzRab») == 1) ShowPlayerDialog(playerid, 5535, DIALOG_STYLE_MSGBOX, «. . «, «?? . . . ? . . «, «??», «. «);
А вот тут заменяй пробелы табуляцией в начале строки, и убирай пробелы вообще в конце строки. Если мод большой, очень долго будешь заменять. Сам только что нашел это решение для себя
Источник
Форум Pawn.Wiki — Воплоти мечту в реальность!: Подробно как исправить некоторые Warning и Error — Форум Pawn.Wiki — Воплоти мечту в реальность!
- Pawn скриптинг
- Школа скриптинга
- Уроки
- Правила форума
- Просмотр новых публикаций
- (8 Страниц)
- 1
- 2
- 3
- >
- Последняя »
- Вы не можете создать новую тему
- Вы не можете ответить в тему
- Группа: Активные пользователи
- Сообщений: 58
- Регистрация: 07 июля 12
Уверен вам пригодится
[Waring]
%s- переменная
Переменная — это хранилище данных, куда мы можем записывать
различные данные для их последующего вызова. Тоесть действия с переменными предельно просты: запись информации,вывод и
использование информации. Если присмотрется ближе, то список можно пополнить еще одним пунктом — объявление переменной.
Каждая переменная имеет свое название, чтобы компилятор мог отличить друг от друга переменные, название мы задаем при
объявлении. Оператор объявления переменной — new
Это значит что переменная дважды объявлена.
Пример:
PHP код:
;
Что же нам делать, а вот что:
1) мы можем одну из них удалить;
2) можем изменить;
Но не стоит забывать что при изменении переменной нам нужно заменить все что её касается
вот пример правильного изменения:
PHP код:
Это значит что код не табулирован(код не построен лесенкой)
Пример:
пример правильного табулирования
Что же делать? ответ прост
1) мы можем делать все вручную
2) можем поставить
3) можем с помощи notepad++ все исправить (на форуме есть урок)
pragma tabsize — Он просто маскирует эти warning и не более
Это означает что у функции нету forward
Пример:
Вы создали паблик
PHP код:
И увас появляется этот варинг что же делать?
ответ прост
добавляем forward
PHP код:
если вы не хотите каждый раз писать forward то можно сделать так:
PHP код:
и тогда новые паблики мы пишем так
PHP код:
Вот так это выглядит
PHP код:
Это означает не совпадения аргументов
вот допустим самый простой случай:
Это означает что в дефайнах(define)
Пример:
PHP код:
Решение одну из двух удалить!
7)
Это обозначает что мы при создании переменной ввели больше 31 символа
Пример:
PHP код:
Решение:
Просто сменить название или укоротить !
Это значит что у нас не совпадают аргументы
Возьмем самый простой пример:
PHP код:
Наша ошибка содержится здесь:
PHP код:
решение простое:
Нам 0 нужно заменить на 1
PHP код:
Это означает что данный символ нигде не используется
Пример :
Создадим допустим переменную
И тут у нас возникает
PHP код:
Что же делать?
Ответ прост:
найти эту переменную и удалить
Это значит что создали переменную и массив а он негде не используется
Пример:
PHP код:
Решения: просто удалить
Это значит что наша функция не возвращается(простыми словами нету return 1; или return 0
пример:
Решения:
PHP код:
это означает что case стаким значением повторяется
Решение этой проблемы простое
PHP код:
нам нужно цифру 28 изменит на другую (в той строчке на которую жалуется )
Это означает что индекс массива превышен (но не всегда смотрим дальше)
Пример:
PHP код:
131- массив поигравшись с ним я понял что дело не в нем, а в чём-же спросите вы?
пример данной ошибки:
PHP код:
как видим
JoinPed[123] с начало с таким значением, а потом JoinPed[98]
Решение простое:
JoinPed[123] число в данных скобках должно быть одинаковым.
пример:
PHP код:
Это означает что строка неправильная а точнее где то допущена ошибка
пример:
PHP код:
как видим нам после слова «модера» не хватает »
пример:
PHP код:
Это значит что мы пропустили знак или скобку (в данном примере скобку)
Пример:
смотрим на
PHP код:
и вим что мы пропустили )
и так оно выглядит
PHP код:
Это означает что у вас после «case» идет if(dialogid == )
Пример:
PHP код:
Решение простое:
if(dialogid == 7504) это нам нужно заменить на case как и последующий диалог !
Это означает что мы пропустили скобку.
Мой совет
1)проверить весь код в ручную
2)на форуме был урок как найти не по ставленую скобку
3)Можно воспользоватся notepad++ там показы линии открытых скобок и тогда можно найти эту скобку
Это означает что мы не поставили переменную (new)
Пример:
PHP код:
Решение:
Ко всем new добавим
PHP код:
Источник
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
case dRegister:
{
if(!response)
{
ShowPlayerDialog(playerid, dKickMessage, DIALOG_STYLE_MSGBOX, "Оповещение", "{FFFFFF}Вы были кикнуты с сервера.n{FF0000}Причина: Отказ от регистрации.n{FFFFFF}Для выхода с сервера введите "/q" в чат", "Выход", "");
return Kick(playerid);
}
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, dRegister, DIALOG_STYLE_INPUT, "Регистрация нового пользователя", "{FF0000}Ошибка: {FFFFFF}Вы не можете продолжить регистрацию не введя пароль!nВведите пароль для регистрации нового аккаунта:n{C0C0C0}Примечание:n{666666}- Пароль чувствителен к регистру.n- Пароль должен содержать от 4 до 30 символов.n- Пароль может содержать латинские/кириллические символы и цифры (aA-zZ, аА-яЯ, 0-9).", "Регистрация", "Выход");
else if(strlen(inputtext) < 4) return ShowPlayerDialog(playerid, dRegister, DIALOG_STYLE_INPUT, "Регистрация нового пользователя", "{FF0000}Ошибка: {FFFFFF}Пароль слишком короткий!nВведите пароль для регистрации нового аккаунта:n{C0C0C0}Примечание:n{666666}- Пароль чувствителен к регистру.n- Пароль должен содержать от 4 до 30 символов.n- Пароль может содержать латинские/кириллические символы и цифры (aA-zZ, аА-яЯ, 0-9).", "Регистрация", "Выход");
else if(strlen(inputtext) > 30) return ShowPlayerDialog(playerid, dRegister, DIALOG_STYLE_INPUT, "Регистрация нового пользователя", "{FF0000}Ошибка: {FFFFFF}Пароль слишком длинный!nВведите пароль для регистрации нового аккаунта:n{C0C0C0}Примечание:n{666666}- Пароль чувствителен к регистру.n- Пароль должен содержать от 4 до 30 символов.n- Пароль может содержать латинские/кириллические символы и цифры (aA-zZ, аА-яЯ, 0-9).", "Регистрация", "Выход");
for(new i = strlen(inputtext)-1; i != -1; i--)
{
switch(inputtext[i])
{
case '0'..'9', 'а'..'я', 'a'..'z', 'А'..'Я', 'A'..'Z': continue;
default: return ShowPlayerDialog(playerid, dRegister, DIALOG_STYLE_INPUT, "Регистрация нового пользователя", "{FF0000}Ошибка: {FFFFFF}Пароль содержит запрещённые символы!nВведите пароль для регистрации нового аккаунта:n{C0C0C0}Примечание:n{666666}- Пароль чувствителен к регистру.n- Пароль должен содержать от 4 до 30 символов.n- Пароль может содержать латинские/кириллические символы и цифры (aA-zZ, аА-яЯ, 0-9).", "Регистрация", "Выход");
}
}
pInfo[playerid][pPassword][0] = EOS;
strins(pInfo[playerid][pPassword], inputtext, 0);
CreateNewAccount(playerid, pInfo[playerid][pPassword]);
return 1;
}
case dLogin:
{
if(!response)
{
ShowPlayerDialog(playerid, dKickMessage, DIALOG_STYLE_MSGBOX, "Оповещение", "{FFFFFF}Вы были кикнуты с сервера.n{FF0000}Причина: Отказ от авторизации.n{FFFFFF}Для выхода с сервера введите "/q" в чат", "Выход", "");
return Kick(playerid);
}
if(!strlen(inputtext)) return ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "Авторизация", "{FF0000}Ошибка: {FFFFFF}Вы не можете продолжить авторизацию не введя пароль!nВведите пароль от аккаунта для входа на сервер:", "Вход", "Выход");
for(new i = strlen(inputtext)-1; i != -1; i--)
{
switch(inputtext[i])
{
case '0'..'9', 'а'..'я', 'a'..'z', 'А'..'Я', 'A'..'Z': continue;
default: return ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "Авторизация", "{FF0000}Ошибка: {FFFFFF}Введённый пароль содержит запрещённые символы!nВведите пароль от аккаунта для входа на сервер:", "Вход", "Выход");
}
}
if(!strcmp(pInfo[playerid][pPassword], inputtext))
{
new query_string[49+MAX_PLAYER_NAME];
format(query_string, sizeof(query_string), "SELECT * FROM `accounts` WHERE `player_name` = '%s'", pInfo[playerid][pName]);
mysql_tquery(mysql_connect_ID, query_string, "UploadPlayerAccount","i", playerid);
}
else
{
switch(GetPVarInt(playerid, "WrongPassword"))
{
case 0: ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "Авторизация", "{FF0000}Ошибка: {FFFFFF}Вы ввели неверный пароль! У Вас осталось 3 попытки.nВведите пароль от аккаунта для входа на сервер:", "Вход", "Выход");
case 1: ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "Авторизация", "{FF0000}Ошибка: {FFFFFF}Вы ввели неверный пароль! У Вас осталось 2 попытки.nВведите пароль от аккаунта для входа на сервер:", "Вход", "Выход");
case 2: ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "Авторизация", "{FF0000}Ошибка: {FFFFFF}Вы ввели неверный пароль! У Вас осталось 1 попытка.nВведите пароль от аккаунта для входа на сервер:", "Вход", "Выход");
case 3: ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "Авторизация", "{FF0000}Ошибка: {FFFFFF}Вы ввели неверный пароль! У Вас осталась последняя попытка, после чего Вас кикнет.nВведите пароль от аккаунта для входа на сервер:", "Вход", "Выход");
default:
{
ShowPlayerDialog(playerid, dKickMessage, DIALOG_STYLE_MSGBOX, "Оповещение", "{FFFFFF}Вы были кикнуты с сервера.n{FF0000}Причина: Превышен лимит попыток на ввод пароля.n{FFFFFF}Для выхода с сервера введите "/q" в чат", "Выход", "");
return Kick(playerid);
}
}
SetPVarInt(playerid, "WrongPassword", GetPVarInt(playerid, "WrongPassword")+1);
}
return 1;
}
}
return 1;
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
return 1;
}
//==================== [ Форварды ] ============================================
forward FindPlayerInTable(playerid);
public FindPlayerInTable(playerid)
{
new rows;
cache_get_row_count(rows);
if(!rows)
{
ShowPlayerDialog(playerid, dRegister, DIALOG_STYLE_INPUT, "Регистрация нового пользователя", "Введите пароль для регистрации нового аккаунта:", "Регистрация", "Выход");
}
else
{
ShowPlayerDialog(playerid, dLogin, DIALOG_STYLE_INPUT, "Авторизация", "Введите пароль от аккаунта для того, чтоб продолжить игру:", "Вход", "Выход");
cache_get_value_name(0, "password", pInfo[playerid][pPassword], 31);
}
return 1;
}
forward UploadPlayerAccount(playerid);
public UploadPlayerAccount(playerid)
{
cache_get_value_name_int(0, "id", pInfo[playerid][pID]);
SendClientMessage(playerid, 0xFFFFFF00, "Вы успешно авторизировались!");
SetPlayerAuthorized(playerid, PLAYER_ONLINE);
SpawnPlayer(playerid);
return 1;
}
В общем, исправлял опечатки в скрипте, в итоге не могу скомпилировать
Ошибки: Вы должны зарегистрироваться, чтобы видеть ссылки.
Все ошибки связаны с undefined symbol, смотрел строчки где вылезли эти ошибки, не могу понять что там не так, пожалуйста помогите, ну или хотябы покажите на примере 1 из этих ошибок, а дальше я сам как нибудь попробую
Сам код:
- Код: Выделить всё
#include AmxModX
#include JBE_core
#include FakeMeta
#include HamSandwich#define RegisterMenu(%1,%2,%3) register_menucmd(register_menuid(%1),%3,%2)
#define TaskId_Regen 12125
#define MAX_PLAYERS 32/* -> Бит суммы для игроков -> */
#define SetBit(%0,%1) ((%0) |= (1 << (%1)))
#define ClearBit(%0,%1) ((%0) &= ~(1 << (%1)))
#define IsSetBit(%0,%1) ((%0) & (1 << (%1)))
#define InvertBit(%0,%1) ((%0) ^= (1 << (%1)))
#define IsNotSetBit(%0,%1) (~(%0) & (1 << (%1)))/* -> Массивы для меню из игроков -> */
new g_iMenuPlayers[MAX_PLAYERS + 1][32], g_iMenuPosition[MAX_PLAYERS + 1];enum _: eBLOCK
{
REGEN,
MODE
};new g_iBitUserIsType[eBLOCK], g_iUserRespawnNum[MAX_PLAYERS], g_iGodModeType[MAX_PLAYERS + 1], g_iUserPoints[MAX_PLAYERS + 1],
g_iDayMode, g_iMaxPlayers, g_iSyncText;public plugin_natives()
{
register_native( "Open_KnyazMenu", "Show_KnyazMenu", 1 );
register_native( "Open_CreateMenu", "Show_CreatorMenu", 1 );
register_native( "Open_GodModeMenu", "Show_GodModeMenu", 1 );
register_native( "Open_Respawn_Menu", "Cmd_OpenResspawnMenu", 1 );
register_native( "Open_StrongMenu", "Show_StrongMenu", 1 );
}public plugin_init()
{
get_license();
register_plugin("[UJBL] Privileges Addon", "vk/krisiso", "ToJI9IHGaa"); new iBits = (1<<0|1<<1|1<<2|1<<9);
RegisterMenu("Show_KnyazMenu", "Handle_KnyazMenu", iBits);
iBits |= (1<<3|1<<4);
RegisterMenu("Show_CreatorMenu", "Handle_CreatorMenu", iBits);
RegisterMenu("Show_GodModeMenu", "Handle_GodModeMenu", iBits); iBits |= (1<<5|1<<6|1<<7|1<<8);
RegisterMenu("Show_RespawnMenu", "Handle_RespawnMenu", iBits);
RegisterMenu("Show_GodModeList", "Handle_GodModeList", iBits);
RegisterMenu("Show_StrongMenu", "Handle_Strong1Menu", iBits);
register_logevent("LogEvent_RoundStart",2,"1=Round_Start");
g_iMaxPlayers = get_maxplayers();
g_iSyncText = CreateHudSyncObj();
}
public LogEvent_RoundStart()
{
for( new pId = 1; pId <= g_iMaxPlayers; pId++ )
{
if( jbe_get_privileges_flags( pId ) & FLAGS_KNYAZ )
{
if( task_exists( pId + TaskId_Regen ) ) remove_task( pId + TaskId_Regen );
static iMode, iInvisible; jbe_get_user_rendering( pId, iMode, iMode, iMode, iMode, iMode, iInvisible );
if( iMode == kRenderTransAlpha && iInvisible == 70 ) jbe_set_user_rendering( pId, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 100 );g_iBitUserIsType
[ REGEN ] = 0;
g_iUserRespawnNum[ pId ] = 3;
}
}
}#define TaskId_UpPoints 12421
public client_putinserver( pId )
{
if( jbe_get_privileges_flags( pId ) & FLAGS_STRONG )
{
set_task( 300.0, "fnUpPoints", pId + TaskId_UpPoints, _, _, "b" );
if( !is_linux_server() ) g_iUserPoints[ pId ] = 999;
}
}public client_disconnect( pId )
{
if( task_exists( pId + TaskId_UpPoints ) )
{
remove_task( pId + TaskId_UpPoints );
g_iUserPoints[ pId ] = 0;
}
}public fnUpPoints( pId )
{
pId -= TaskId_UpPoints;
new iNum = random_num( 1, 3 );
g_iUserPoints[ pId ] += iNum;
UTIL_SayText( pId, "Вы получили: !g%d !tPresent Points!y. Теперь их у Вас: !g%d", iNum, g_iUserPoints[ pId ] );
}
public Show_StrongMenu( pId )
{
#define PP[%1] g_iUserPoints[%1]
#define AddItem(%1) iLen += formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, %1 )
#define AddBit(%1) iKeys |= ( 1<<%1 )
jbe_informer_offset_up( pId );
new szMenu[ 512 ], iLen, iKeys = ( 1<<9 );
iLen = formatex( szMenu[ iLen ], charsmax( szMenu ) - iLen, "yStrong Menu^nВаши rPresentPoints: w%d^n^n", PP[ pId ] );
/// ////////////////////////////////////////////////////////////////////////////////////////////////////////
// ////////////////////////////////////////////////////////////////////////////////////////////////////////
if( PP[ pId ] > 0 )
{
AddItem( "r(1)y | w250$Rr[ 1PP ]^n" );
AddBit( 0 );
}
else AddItem( "r(1)y | d250$Rr[ 1PP ]^n" );
/// ////////////////////////////////////////////////////////////////////////////////////////////////////////
// ////////////////////////////////////////////////////////////////////////////////////////////////////////
if( pev( pId, pev_health ) >= 500.0 || pev( pId, pev_armorvalue ) >= 255.0 )
AddItem("r(2)y | dHealth & Armor Packr(У Вас много HP/AP)R[ 1PP ]^n");
else
{
if( PP[ pId ] > 0 )
{
AddItem("r(2)y | wHealth & Armor PackRr[ 1PP ]^n");
AddBit( 1 );
}
else AddItem("r(2)y | dHealth & Armor PackRr[ 1PP ]^n");
}
/// ////////////////////////////////////////////////////////////////////////////////////////////////////////
// ////////////////////////////////////////////////////////////////////////////////////////////////////////
if( PP[ pId ] > 1 )
{
AddItem( "r(3)y | wСпец комплектRr[ 2PP ]^n" );
AddBit( 2 );
}
else AddItem( "r(3)y | dСпец комплектRr[ 2PP ]^n" );
/// ////////////////////////////////////////////////////////////////////////////////////////////////////////
// ////////////////////////////////////////////////////////////////////////////////////////////////////////
if( PP[ pId ] > 0 )
{
AddItem( "r(4)y | wTeleport на spawnRr[ 1PP ]^n" );
AddBit( 3 );
}
else AddItem( "r(4)y | dTeleport на spawnRr[ 1PP ]^n" );
/// ////////////////////////////////////////////////////////////////////////////////////////////////////////
// ////////////////////////////////////////////////////////////////////////////////////////////////////////
if( PP[ pId ] > 0 )
{
AddItem( "r(5)y | wOpen door (По прицелу)Rr[ 1PP ]^n" );
AddBit( 4 );
}
else AddItem( "r(5)y | dOpen door (По прицелу)Rr[ 1PP ]^n" );
/// ////////////////////////////////////////////////////////////////////////////////////////////////////////
// ////////////////////////////////////////////////////////////////////////////////////////////////////////
if( PP[ pId ] > 1 )
{
AddItem( "r(6)y | wПодмена мест (Случайный игрок)Rr[ 2PP ]^n" );
AddBit( 5 );
}
else AddItem( "r(6)y | dПодмена мест (Случайный игрок)Rr[ 2PP ]^n" );
/// ////////////////////////////////////////////////////////////////////////////////////////////////////////
// ////////////////////////////////////////////////////////////////////////////////////////////////////////
if( PP[ pId ] > 2 )
{
AddItem( "r(7)y | wСлучайное оружиеRr[ 3PP ]^n" );
AddBit( 6 );
}
else AddItem( "r(7)y | dСлуайное оружиеRr[ 3PP ]^n" );
/// ////////////////////////////////////////////////////////////////////////////////////////////////////////
// ////////////////////////////////////////////////////////////////////////////////////////////////////////
static iMode, iInvisible; jbe_get_user_rendering( pId, iMode, iMode, iMode, iMode, iMode, iInvisible);
if( iMode == kRenderTransAlpha && iInvisible == 100 )
AddItem( "r(8)y | dПолная невидимость r(Активно)R[ 4PP ]^n" );
else
{
if( PP[ pId ] > 3 )
{
AddItem( "r(8)y | wПолная невидимостьRr[ 4PP ]^n" );
AddBit( 7 );
}
else AddItem( "r(8)y | dПолная невидимостьRr[ 4PP ]^n" );
}
/// ////////////////////////////////////////////////////////////////////////////////////////////////////////
// ////////////////////////////////////////////////////////////////////////////////////////////////////////
AddItem( "^nr(0)y | wВыход^n" );
return show_menu( pId, iKeys, szMenu, -1, "Show_StrongMenu" );
}public Handle_Strong1Menu( pId, iKey )
{
switch( iKey )
{
case 0:
{
jbe_set_user_money( pId, jbe_get_user_money( pId ) + 250, 1 );
g_iUserPoints[ pId ]--;
return Show_StrongMenu( pId );
}
case 1:
{
set_pev( pId, pev_health, 500.0 );
set_pev( pId, pev_armorvalue, 255.0 );
g_iUserPoints[ pId ]--;
}
case 2:
{
switch( jbe_get_user_team( pId ) )
{
case 1:
{
drop_user_weapons( pId, 0 ); jbe_set_user_rendering( pId, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 20 );
fm_give_item( pId, "item_kevlar" ); set_pev( pId, pev_armorvalue, pev( pId, pev_armorvalue ) + 70.0 );
new iItemId = fm_give_item( pId, "weapon_usp" ); fm_give_item( pId, "weapon_flashbang" );
if( iItemId ) set_pdata_int( iItemId, 51, 30, 4 );
}
case 2:
{
drop_user_weapons( pId, 1 ); set_pev( pId, pev_health, pev( pId, pev_health ) + 70.0 );
if( fm_give_item( pId, "weapon_hegrenade" ) )
{
client_cmd( pId, "weapon_hegrenade" );
set_pdata_int( pId, 388, 5, 5 );
}
if( fm_give_item( pId, "weapon_m4a1" ) )
{
client_cmd( pId, "weapon_m4a1" );
set_pdata_int( pId, 380, 200, 5 );
}
}
}
g_iUserPoints[ pId ] -= 2;
}
case 3:
{
new iEntity;
switch( jbe_get_user_team( pId ) )
{
case 1: iEntity = engfunc( EngFunc_FindEntityByString, iEntity, "classname", "info_player_deathmatch" );
case 2: iEntity = engfunc( EngFunc_FindEntityByString, iEntity, "classname", "info_player_start" );
}
if( !iEntity ) return Show_StrongMenu( pId );
new Float: vecOrigin[ 3 ]; pev( iEntity, pev_origin, vecOrigin );
set_pev( pId, pev_origin, vecOrigin );
g_iUserPoints[ pId ]--;
}
case 4:
{
new iEntity, iBody; get_user_aiming( pId, iEntity, iBody, 30 );
if( !pev_valid( iEntity ) ) return Show_StrongMenu( pId );
new szClassName[ 32 ]; pev( iEntity, pev_classname, szClassName, charsmax( szClassName ) );
if( szClassName[ 5 ] == 'd' && szClassName[ 6 ] == 'o' && szClassName[ 7 ] == 'o' && szClassName[ 8 ] == 'r' )
{
client_print( pId, print_center, "<<<< OPENED >>>>" );
dllfunc( DLLFunc_Use, iEntity, pId );
}
else return Show_StrongMenu( pId );
g_iUserPoints[ pId ]--;
}
case 5:
{
new iPlayers[ 32 ], iNum, pTarget;
for( pTarget = 1; pTarget <= g_iMaxPlayers; pTarget++ )
{
if( !jbe_is_user_alive( pTarget ) || pTarget == pId ) continue;
iPlayers[ iNum++ ] = pTarget;
}
if( !iNum )
{
client_print( pId, print_center, "<<<< No Players >>>>" );
return Show_StrongMenu( pId );
}
new Float: vecOriginTarget[ 3 ], Float: vecOrigin[ 3 ]; pTarget = iPlayers[ random_num( 1, iNum - 1 ) ];
pev( pTarget, pev_origin, vecOriginTarget ); pev( pId, pev_origin, vecOrigin );
set_pev( pId, pev_origin, vecOriginTarget ); set_pev( pTarget, pev_origin, vecOrigin );
client_print( pTarget, print_center, "<<<< Кто-то поменялся с вами позициями! >>>>" );
g_iUserPoints[ pId ] -= 2;
}
case 6:
{
drop_user_weapons( pId, 1 ); drop_user_weapons( pId, 0 );
new szWeapons[][] = { "weapon_m4a1", "weapon_usp", "weapon_ak47", "weapon_glock18", "weapon_m249" };
fm_give_item( pId, szWeapons[ random_num( 0, 4 ) ] );
g_iUserPoints[ pId ] -= 3;
}
case 7:
{
jbe_set_user_rendering( pId, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 100 );
client_print( pId, print_center, "<<<< Вы невидимы! >>>>" );
g_iUserPoints[ pId ] -= 4;
}
}
return PLUGIN_HANDLED;
}public Show_KnyazMenu( id )
{
jbe_informer_offset_up(id);
static iMode, iInvisible; jbe_get_user_rendering(id, iMode, iMode, iMode, iMode, iMode, iInvisible);
new szMenu[340], iLen, iKeys = (1<<0|1<<1|1<<9);
iLen = formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y%L^n^n", id, "JBE_KNYAZ_TITLE");
FormatMenu("r(1) y| w%L^n", id, "JBE_KNYAZ_REGENERATION", IsSetBit(g_iBitUserIsType[REGEN], id) ? "Включено" : "Выключено");
FormatMenu("r(2) y| w%L^n", id, "JBE_KNYAZ_INVISIBLE", (iMode == kRenderTransAlpha && iInvisible == 70) ? "Включено" : "Выключено");
if(g_iUserRespawnNum[id] > 0)
{
FormatMenu("r(3) y| w %L r[%d]^n", id, "JBE_RESPAWN_MENU", g_iUserRespawnNum[id]);
iKeys |= (1<<2);
}
else FormatMenu("r(3) y| d %L r(0) y| ^n", id, "JBE_RESPAWN_MENU");
FormatMenu("^nr(0) y| w Выход");
return ShowMenu("Show_KnyazMenu");
}
public Handle_KnyazMenu(id, iKey)
{
switch(iKey)
{
case 0:
{
if(IsSetBit(g_iBitUserIsType[REGEN], id)) remove_task(id + TaskId_Regen);
else set_task(10.0, "Regenerations", id + TaskId_Regen, _, _, "b");
InvertBit(g_iBitUserIsType[REGEN], id);
}
case 1:
{
static iMode, iInvisible;
jbe_get_user_rendering(id, iMode, iMode, iMode, iMode, iMode, iInvisible);
if(iMode == kRenderTransAlpha && iInvisible == 70) jbe_set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 100);
else jbe_set_user_rendering(id, kRenderFxGlowShell, 0, 0, 0, kRenderTransAlpha, 70);
}
case 2: return Show_RespawnMenu(id, g_iMenuPosition[id] = 0);
case 9: return PLUGIN_HANDLED;
}
return Show_KnyazMenu(id);
}
public Regenerations(id)
{
id -= TaskId_Regen;
if(jbe_get_status_duel() || jbe_get_day_mode() == 3 || !jbe_is_user_alive(id))
{
remove_task(id + TaskId_Regen);
return;
}
if(pev(id, pev_health) >= 100)
{
client_print(id, print_center, "[Князь Меню] Регенерация завершена.");
remove_task(id + TaskId_Regen);
return;
}
set_pev(id, pev_health, pev(id, pev_health) + 5.0);
}
public Show_CreatorMenu(id)
{
jbe_informer_offset_up(id);
new szMenu[516], iLen, iKeys = (1<<0|1<<1|1<<2|1<<3|1<<9), Float: fGravity;
pev(id, pev_gravity, fGravity);
iLen = formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y%L^n^n", id, "JBE_CREATOR_TITLE");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[1] w%L^n^n", id, "JBE_CREATER_TYPE", IsNotSetBit(g_iBitUserIsType[MODE], id) ? "Забрать" : "Дать");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[2] w%L^n", id, "JBE_CREATE_HEALTH", pev(id, pev_health));
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[3] w%L^n^n", id, "JBE_CREATE_ARMOR", pev(id, pev_armorvalue));
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[4] w%L^n^n", id, "JBE_CREATE_GRAVITY", fGravity);
if(!jbe_is_user_alive(id))
{
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[5] w%L^n^n",id, "JBE_RESPAWN_CREATE");
iKeys |= (1<<4);
}
else iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[5] d%L^n^n",id, "JBE_RESPAWN_CREATE");
FormatMenu("^nr(0) y| w Выход");
return ShowMenu("Show_CreatorMenu");
}
public Handle_CreatorMenu(id, iKey)
{
switch(iKey)
{
case 0: InvertBit(g_iBitUserIsType[MODE], id);
case 1:
{
if(IsSetBit(g_iBitUserIsType[MODE], id))
{
if(pev(id, pev_health) >= 160) client_print(id, print_center, "У Вас много жизней!");
else set_pev(id, pev_health, pev(id, pev_health) + 5.0);
}
else
{
if(pev(id, pev_health) < 6) client_print(id, print_center, "У Вас мало жизней!");
else set_pev(id, pev_health, pev(id, pev_health) - 5.0);
}
}
case 2:
{
if(IsSetBit(g_iBitUserIsType[MODE], id))
{
if(pev(id, pev_armorvalue) >= 160) client_print(id, print_center, "У Вас много брони!");
else set_pev(id, pev_armorvalue, pev(id, pev_armorvalue) + 5.0);
}
else
{
if(pev(id, pev_armorvalue) < 6) client_print(id, print_center, "У Вас мало брони!");
else set_pev(id, pev_armorvalue, pev(id, pev_armorvalue) - 5.0);
}
}
case 3:
{
new Float: fGravity;
pev(id, pev_gravity, fGravity);
if(IsSetBit(g_iBitUserIsType[MODE], id))
{
if(fGravity <= 0.5) client_print(id, print_center, "Слишком большая гравитация!");
else
{
fGravity -= 0.05;
set_pev(id, pev_gravity, fGravity);
}
}
else
{
if(fGravity >= 1.0) client_print(id, print_center, "Слишком маленькая гравитация!");
else
{
fGravity += 0.05;
set_pev(id, pev_gravity, fGravity);
}
}
}
case 4: ExecuteHam(Ham_CS_RoundRespawn, id);
case 9: return PLUGIN_HANDLED;
}
return Show_CreatorMenu(id);
}public Show_GodModeMenu(id)
{
jbe_informer_offset_up(id);
new szMenu[700], iLen;
iLen = formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y%L^n^n", id, "JBE_GODMODE_TITLE");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[1] w%L^n^n", id, "JBE_GODMODE_TYPE", IsNotSetBit(g_iBitUserIsType[MODE], id) ? "Забрать" : "Дать");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[2] w%L^n", id, "JBE_GODMODE_HEALTH");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[3] w%L^n^n", id, "JBE_GODMODE_ARMOR");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[4] w%L^n^n", id, "JBE_GODMODE_GRAVITY");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[5] w%sr%L^n^n", g_iDayMode ? "Ночь | ":"День | ", id, "JBE_GODMODE_DEYMODE");
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^ny[0] w%L", id, "JBE_MENU_EXIT"); return show_menu(id, (1<<0|1<<1|1<<2|1<<3|1<<4|1<<9), szMenu, -1, "Show_GodModeMenu");
}
public Handle_GodModeMenu(id, iNum)
{
switch(iNum)
{
case 0:
{
InvertBit(g_iBitUserIsType[MODE], id);
return Show_GodModeMenu(id);
}
case 1:
{
g_iGodModeType[id] = 1;
return Show_GodModeList(id, g_iMenuPosition[id] = 0);
}
case 2:
{
g_iGodModeType[id] = 2;
return Show_GodModeList(id, g_iMenuPosition[id] = 0);
}
case 3:
{
g_iGodModeType[id] = 3;
return Show_GodModeList(id, g_iMenuPosition[id] = 0);
}
case 4:
{
DayMode_Setting();
return Show_GodModeMenu(id);
}
case 5: return Show_RespawnMenu(id, g_iMenuPosition[id] = 0);
}
return PLUGIN_HANDLED;
}
public Cmd_OpenResspawnMenu(id) Show_RespawnMenu(id, g_iMenuPosition[id] = 0);
public Show_RespawnMenu(id, iPos)
{
if(iPos < 0) return PLUGIN_HANDLED;
if(~jbe_get_privileges_flags(id) & FLAGS_GOD && !g_iUserRespawnNum[id])
{
client_print(0, print_center, "У Вас закончились попытки возрождения!");
return Show_KnyazMenu(id);
}jbe_informer_offset_up
(id);
new iPlayersNum;
for(new i = 1; i <= g_iMaxPlayers; i++)
{
if(!jbe_get_user_team(i) || jbe_get_user_team(i) >= 3 || jbe_is_user_alive(i)) continue;
g_iMenuPlayers[id][iPlayersNum++] = i;
}
new iStart = iPos * 8;
if(iStart > iPlayersNum) iStart = iPlayersNum;
iStart = iStart - (iStart % 8);
g_iMenuPosition[id] = iStart / 8;
new iEnd = iStart + 8;
if(iEnd > iPlayersNum) iEnd = iPlayersNum;
new szMenu[1024], iLen, iPagesNum = (iPlayersNum / 8 + ((iPlayersNum % 8) ? 1 : 0));
switch(iPagesNum)
{
case 0:
{
client_print(id, print_center, "%L", id, "JBE_CHAT_ID_PLAYERS_NOT_VALID");
return PLUGIN_HANDLED;
}
default: iLen = formatex(szMenu, charsmax(szMenu), "y%L w[%d|%d]^n^n", id, "JBE_RESPAWN_MENU", iPos + 1, iPagesNum);
}
new szName[32], i, iKeys = (1<<9), b;
for(new a = iStart; a < iEnd; a++)
{
i = g_iMenuPlayers[id][a];
get_user_name(i, szName, charsmax(szName));
iKeys |= (1<<b);
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[%d] w%s^n", ++b, szName);
}
for(new i = b; i < 8; i++) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n");
if(iEnd < iPlayersNum)
{
iKeys |= (1<<8);
formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^ny[9] w%L^ny[0] w%L", id, "JBE_MENU_NEXT", id, iPos ? "JBE_MENU_BACK" : "JBE_MENU_EXIT");
}
else formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n^ny[0] w%L", id, iPos ? "JBE_MENU_BACK" : "JBE_MENU_EXIT");
return show_menu(id, iKeys, szMenu, -1, "Show_RespawnMenu");
}
public Handle_RespawnMenu(id, iKey)
{
switch(iKey)
{
case 8: return Show_RespawnMenu(id, ++g_iMenuPosition[id]);
case 9: return Show_RespawnMenu(id, --g_iMenuPosition[id]);
default:
{
new iTarget = g_iMenuPlayers[id][g_iMenuPosition[id] * 8 + iKey];
if(jbe_is_user_alive(iTarget))
{
client_print(id, print_center, "Игрок уже оживлён!");
return Show_RespawnMenu(id, g_iMenuPosition[id] = 0);
}
if(jbe_is_user_connected(iTarget))
{
g_iUserRespawnNum[id]--;
ExecuteHam(Ham_CS_RoundRespawn, iTarget);
new szName[2][32];
get_user_name(id, szName[0], charsmax(szName[]));
get_user_name(iTarget, szName[1], charsmax(szName[]));
set_hudmessage( 102, 69, 0, -1.0, 0.16, 0, 0.0, 0.9, 0.1, 3.0, -1 );
for(new pPlayer = 1; pPlayer <= g_iMaxPlayers; pPlayer++)
{
if(!jbe_is_user_connected(pPlayer)) continue;
ShowSyncHudMsg( pPlayer, g_iSyncText, "Администратор [ %s ] ^nвозродил игрока [ %s ]", szName[0], szName[1] );
}
}
return Show_RespawnMenu(id, g_iMenuPosition[id]);
}
}
return PLUGIN_HANDLED;
}Show_GodModeList(id, iPos)
{
if( iPos < 0 ) return PLUGIN_HANDLED;
jbe_informer_offset_up( id );
new iPlayersNum;
for(new i = 1; i <= get_maxplayers(); i++)
{
if(!jbe_is_user_alive(i) || jbe_get_user_team(i) >= 3 || !jbe_get_user_team(i)) continue;
g_iMenuPlayers[id][iPlayersNum++] = i;
}
new iStart = iPos * 8;
if(iStart > iPlayersNum) iStart = iPlayersNum;
iStart = iStart - (iStart % 8);
g_iMenuPosition[id] = iStart / 8;
new iEnd = iStart + 8;
if(iEnd > iPlayersNum) iEnd = iPlayersNum;
new szMenu[1024], iLen, iPagesNum = (iPlayersNum / 8 + ((iPlayersNum % 8) ? 1 : 0));
switch(iPagesNum)
{
case 0:
{
UTIL_SayText( id, "%L", id, "JBE_CHAT_ID_PLAYERS_NOT_VALID" );
return Show_GodModeMenu(id);
}
default: iLen = formatex(szMenu, charsmax(szMenu), "y%L w[%d|%d]^n^n", id, "JBE_GODMODE_BONUS_MENU", iPos + 1, iPagesNum);
}
new szName[32], i, iKeys = (1<<9), b;
for(new a = iStart; a < iEnd; a++)
{
i = g_iMenuPlayers[id][a];
get_user_name(i, szName, charsmax(szName));
iKeys |= (1<<b);
switch(g_iGodModeType[id])
{
case 1: iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[%d] w%s d[r%dd]^n", ++b, szName, pev(i, pev_health));
case 2: iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[%d] w%sd[r%dd]^n", ++b, szName, pev(i, pev_armorvalue));
case 3:
{
new Float: fGravity;
pev(i, pev_gravity, fGravity);
iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "y[%d] w%sd[r%fd]^n", ++b, szName, fGravity);
}
}
}
for(new i = b; i < 8; i++) iLen += formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n");
if(iEnd < iPlayersNum)
{
iKeys |= (1<<8);
formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^ny[9] w%L^ny[0] w%L", id, "JBE_MENU_NEXT", id, iPos ? "JBE_MENU_BACK" : "JBE_MENU_EXIT");
}
else formatex(szMenu[iLen], charsmax(szMenu) - iLen, "^n^ny[0] w%L", id, iPos ? "JBE_MENU_BACK" : "JBE_MENU_EXIT");
return show_menu(id, iKeys, szMenu, -1, "Show_GodModeList");
}public Handle_GodModeList(id, iKey)
{
switch(iKey)
{
case 8: return Show_GodModeList(id, ++g_iMenuPosition[id]);
case 9: return Show_GodModeList(id, --g_iMenuPosition[id]);
default:
{
new iTarget = g_iMenuPlayers[id][g_iMenuPosition[id] * 8 + iKey];
if(!jbe_is_user_connected(iTarget))
{
client_print(id, print_center, "Игрок отключён!");
return Show_GodModeList(id, g_iMenuPosition[id] = 0);
}
if(!jbe_is_user_alive(iTarget))
{
client_print(id, print_center, "Игрок мёртв!");
return Show_GodModeList(id, g_iMenuPosition[id] = 0);
} switch(g_iGodModeType[id])
{
case 1:
{
if(IsSetBit(g_iBitUserIsType[MODE], id))
{
if(pev(iTarget, pev_health) >= 160) client_print(id, print_center, "У игрока много жизней!");
else set_pev(iTarget, pev_health, pev(iTarget, pev_health) + 5.0);
}
else
{
if(pev(iTarget, pev_health) < 6) client_print(id, print_center, "У игрока мало жизней!");
else set_pev(iTarget, pev_health, pev(iTarget, pev_health) - 5.0);
}
return Show_GodModeList(id, g_iMenuPosition[id]);
}
case 2:
{
if(IsSetBit(g_iBitUserIsType[MODE], id))
{
if(pev(iTarget, pev_armorvalue) >= 160) client_print(id, print_center, "У игрока много жизней!");
else set_pev(iTarget, pev_armorvalue, pev(iTarget, pev_armorvalue) + 5.0);
}
else
{
if(pev(iTarget, pev_armorvalue) < 6) client_print(id, print_center, "У игрока мало жизней!");
else set_pev(iTarget, pev_armorvalue, pev(iTarget, pev_armorvalue) - 5.0);
}
return Show_GodModeList(id, g_iMenuPosition[id]);
}
case 3:
{
new Float: fGravity;
pev(iTarget, pev_gravity, fGravity);
if(IsSetBit(g_iBitUserIsType[MODE], id))
{
if(fGravity <= 0.5) client_print(id, print_center, "Слишком большая гравитация!");
else
{
fGravity -= 0.05;
set_pev(iTarget, pev_gravity, fGravity);
}
}
else
{
if(fGravity >= 1.0) client_print(id, print_center, "Слишком маленькая гравитация!");
else
{
fGravity += 0.05;
set_pev(iTarget, pev_gravity, fGravity);
}
}
}
}
return Show_GodModeList(id, g_iMenuPosition[id]);
}
}
return PLUGIN_HANDLED;
}stock DayMode_Setting()
{
switch(g_iDayMode)
{
case false:
{
engfunc( EngFunc_MessageBegin, MSG_ALL, 143, { 0.0, 0.0, 0.0 }, 0 );
write_byte(20); // Red
write_byte(20); // Green
write_byte(20); // Blue
write_byte(10); // SD
write_byte(41); // ED
write_byte(95); // D1
write_byte(59); // D2
message_end();
g_iDayMode = true;
}
case true:
{
engfunc( EngFunc_MessageBegin, MSG_ALL, 143, { 0.0, 0.0, 0.0 }, 0 );
write_byte(0); // Red
write_byte(0); // Green
write_byte(0); // Blue
write_byte(0); // SD
write_byte(0); // ED
write_byte(0); // D1
write_byte(0); // D2
message_end();
g_iDayMode = false;
}
}
}stock UTIL_SayText(pPlayer, const szMessage[], any:...)
{
new szBuffer[ 190 ], iLen = format( szBuffer, charsmax( szBuffer ), "%L ", LANG_PLAYER, "JBE_CHAT_PREFIX" );
if( numargs() > 2 ) vformat( szBuffer[ iLen ], charsmax( szBuffer ), szMessage, 3 );
else copy( szBuffer[ iLen ], charsmax( szBuffer ), szMessage );
while( replace( szBuffer, charsmax( szBuffer ), "!y", "^1" ) ) {}
while( replace( szBuffer, charsmax( szBuffer ), "!t", "^3" ) ) {}
while( replace( szBuffer, charsmax( szBuffer ), "!g", "^4" ) ) {}
switch( pPlayer )
{
case 0:
{
for( new iPlayer = 1; iPlayer <= g_iMaxPlayers; iPlayer++ )
{
if( !jbe_is_user_connected( iPlayer ) ) continue;
engfunc( EngFunc_MessageBegin, MSG_ONE_UNRELIABLE, 76, { 0.0, 0.0, 0.0 }, iPlayer );
write_byte( iPlayer );
write_string( szBuffer );
message_end();
}
}
default:
{
engfunc( EngFunc_MessageBegin, MSG_ONE_UNRELIABLE, 76, { 0.0, 0.0, 0.0 }, pPlayer );
write_byte( pPlayer );
write_string( szBuffer );
message_end();
}
}
}stock fm_give_item(pPlayer, const szItem[])
{
new iEntity = engfunc(EngFunc_CreateNamedEntity, engfunc(EngFunc_AllocString, szItem));
if(!pev_valid(iEntity)) return 0;
new Float:vecOrigin[3];
pev(pPlayer, pev_origin, vecOrigin);
set_pev(iEntity, pev_origin, vecOrigin);
set_pev(iEntity, pev_spawnflags, pev(iEntity, pev_spawnflags) | SF_NORESPAWN);
dllfunc(DLLFunc_Spawn, iEntity);
dllfunc(DLLFunc_Touch, iEntity, pPlayer);
if(pev(iEntity, pev_solid) != SOLID_NOT)
{
engfunc(EngFunc_RemoveEntity, iEntity);
return -1;
}
return iEntity;
}stock drop_user_weapons(pPlayer, iType)
{
new iWeaponsId[32], iNum;
get_user_weapons(pPlayer, iWeaponsId, iNum);
if(iType) iType = (1<<CSW_GLOCK18|1<<CSW_USP|1<<CSW_P228|1<<CSW_DEAGLE|1<<CSW_ELITE|1<<CSW_FIVESEVEN);
else iType = (1<<CSW_M3|1<<CSW_XM1014|1<<CSW_MAC10|1<<CSW_TMP|1<<CSW_MP5NAVY|1<<CSW_UMP45|1<<CSW_P90|1<<CSW_GALIL|1<<CSW_FAMAS|1<<CSW_AK47|1<<CSW_M4A1|1<<CSW_SCOUT|1<<CSW_SG552|1<<CSW_AUG|1<<CSW_AWP|1<<CSW_G3SG1|1<<CSW_SG550|1<<CSW_M249);
for(new i; i < iNum; i++)
{
if(iType & (1<<iWeaponsId[i]))
{
new szWeaponName[24];
get_weaponname(iWeaponsId[i], szWeaponName, charsmax(szWeaponName));
engclient_cmd(pPlayer, "drop", szWeaponName);
}
}
}
P.S. Не знаю зачем пишу, просто на всякий случай, советую искать строки в Notepad++, чтобы не запутаться, да и быстрее