Posts: 1,241
Threads: 304
Joined: May 2012
Reputation:
0
i’m using blueg mysql r7, then after compiling iHouse v2 filtersript by Brandon_More it shows «error 017: undefined symbol «mysql_query»
Is there any way to fix it, to make it compatible with mysql r7? because if I tried to changing my mysql r7 to mysql r6 then after compiling my gamemode it shows hundreds of warnings.
EDIT: Did they change mysql_query to something?
EDIT2: I tried changing mysql_query to mysql_function_query but it shows «error 035: argument type mismatch (argument 1)»
Posts: 3,133
Threads: 71
Joined: Dec 2013
Reputation:
0
It’s easy to upgrade to r33+. Just use the a_mysql from r33 and show us the errors, and we’ll be able to help you.
Posts: 17
Threads: 2
Joined: Jun 2010
Reputation:
0
Instead of mysql_query i use
Код:
mysql_format(mysql, sql, sizeof(sql), "SELECT * FROM yourtable"); mysql_tquery(mysql, sql, "", "");
Posts: 1,241
Threads: 304
Joined: May 2012
Reputation:
0
Quote:
Originally Posted by Abagail
It’s easy to upgrade to r33+. Just use the a_mysql from r33 and show us the errors, and we’ll be able to help you.
Okay thanks, so after upgrading then compiling this errors shows below
Quote:
error 017: undefined symbol «mysql_debug» <= mysql_debug(1);
error 035: argument type mismatch (argument 1) <= all the mysql_query — 20+ error lines
Posts: 1,241
Threads: 304
Joined: May 2012
Reputation:
0
Quote:
Originally Posted by Nightkill
Instead of mysql_query i use
Код:
mysql_format(mysql, sql, sizeof(sql), "SELECT * FROM yourtable"); mysql_tquery(mysql, sql, "", "");
which version of mysql you’re using?
coz my gamemode is only compatible for mysql r7 if I upgraded to the latest version it shows hundreds of errors and the filterscript that I’am using is compatible with mysql r6.
Posts: 17
Threads: 2
Joined: Jun 2010
Reputation:
0
I’m using R39-2 which I think it’s the latest.
Posts: 1,241
Threads: 304
Joined: May 2012
Reputation:
0
Quote:
Originally Posted by Nightkill
I’m using R39-2 which I think it’s the latest.
cool! I hope someone help me with this. I tried using R39-2 but it shows warning
Quote:
warning 206: redundant test: constant expression is non-zero
warning 215: expression has no effect
line:
Posts: 17
Threads: 2
Joined: Jun 2010
Reputation:
0
On main() I have something like this for debug
Код:
mysql_log(LOG_ERROR | LOG_WARNING | LOG_DEBUG); mysql = mysql_connect(host, user, db, pass);
so everytime I start the server a file named mysql_log.txt will be created and there I have the full debugging
Posts: 507
Threads: 29
Joined: Jul 2014
Reputation:
0
Quote:
Originally Posted by Nightkill
Instead of mysql_query i use
Код:
mysql_format(mysql, sql, sizeof(sql), "SELECT * FROM yourtable"); mysql_tquery(mysql, sql, "", "");
just : mysql_tquery(mysql, sql);
will work
Содержание
- Error 017 undefined symbol connect mysql
- Маппинг для сервера
- Моды для сервера
- Программы для скриптера
- vanya43291
- Статистика форума
- Форум Pawn.Wiki — Воплоти мечту в реальность!: Error 017 — Форум Pawn.Wiki — Воплоти мечту в реальность!
- Форум Pawn.Wiki — Воплоти мечту в реальность!: Ошибка при компилировании — Форум Pawn.Wiki — Воплоти мечту в реальность!
- Форум Pawn.Wiki — Воплоти мечту в реальность!: Выдает ошибку — Форум Pawn.Wiki — Воплоти мечту в реальность!
- Форум Pawn.Wiki — Воплоти мечту в реальность!: Как исправить ошибку 017? — Форум Pawn.Wiki — Воплоти мечту в реальность!
Error 017 undefined symbol connect mysql
Быстрый переход в группу «Пользователи», без надобности написания постов и ожидания.
Покупка дает возможность:
Маппинг для сервера
Если вы хотите обновить Ваш сервер новыми доработками — то зайдите в наш раздел. Большой выбор готовых решений от наших пользователей
Моды для сервера
Огромный выбор различных модификаций для Вашего сервера. Пролистайте эти темы! Возможно именно там Вы найдете то, что искали уже давно.
Программы для скриптера
Подборка удобных программ для скриптера
vanya43291
Статистика форума
Created by Giness
Уважаемый Гость.
Пожалуйста — воздержитесь от любых комментариев на форуме относительно ситуации в мире.
В личных сообщениях, в темах и где бы то не было.
Помните — это закончится в любом случае, а слова, сказанные (или написанные) Вами — не забудутся никогда.
МЫ ЗА МИР.
(Любые сообщения относительно ситуации в мире(не важно с каким смыслом) буду удаляться. А пользователи — блокироваться безвозвратно. )
Источник
Форум Pawn.Wiki — Воплоти мечту в реальность!: Error 017 — Форум Pawn.Wiki — Воплоти мечту в реальность!
- Pawn скриптинг
- Первая помощь
- Проблемы с компилированием
- Правила форума
- Просмотр новых публикаций
- Группа: Пользователи
- Сообщений: 8
- Регистрация: 20 мая 18
Не могу понять, в чем дело.
В начале все обозначил.
- Группа: Vip
- Сообщений: 3 654
- Регистрация: 24 июня 17
- Группа: Пользователи
- Сообщений: 8
- Регистрация: 20 мая 18
Sonic X (20 мая 2018 — 13:47) писал:
спасибо! появились варнинги, но это не сильно страшно.
- Группа: Vip
- Сообщений: 3 654
- Регистрация: 24 июня 17
nipen (20 мая 2018 — 18:57) писал:
Источник
Форум Pawn.Wiki — Воплоти мечту в реальность!: Ошибка при компилировании — Форум Pawn.Wiki — Воплоти мечту в реальность!
- Pawn скриптинг
- Первая помощь
- Проблемы с компилированием
- Правила форума
- Просмотр новых публикаций
- Группа: Пользователи
- Сообщений: 3
- Регистрация: 30 мая 22
Версия mysql: R41-4
Ошибка:
(53) : error 017: undefined symbol «MYSQL_HOST»
(53) : warning 204: symbol is assigned a value that is never used: «dbHandle»
(53 — 256) : warning 203: symbol is never used: «player_info»
СТРОКА ГДЕ ОШИБКА: dbHandle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_BASE);
Код:
main()<>
#if defined FILTERSCRIPT
#define MYSQL_HOST «localhost»
#define MYSQL_USER «root»
#define MYSQL_PASS «»
#define MYSQL_BASE «project»
public OnGameModeInit()
<
ConnectMySQL();
return 1;
>
stock ConnectMySQL()
<
dbHandle = mysql_connect(MYSQL_HOST, MYSQL_USER, MYSQL_PASS, MYSQL_BASE);
switch(mysql_errno())
<
case 0: print(«Подключение к mySQL успешно»);
default: print(«Подключение к mySQL НЕ успешно»);
>
mysql_log(ERROR | WARNING);
mysql_set_charset(«cp1251»);
>
public OnGameModeExit()
<
return 1;
>
public OnPlayerRequestClass(playerid, classid)
<
SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
return 1;
>
public OnPlayerConnect(playerid)
<
return 1;
>
public OnPlayerDisconnect(playerid, reason)
<
return 1;
>
public OnPlayerSpawn(playerid)
<
return 1;
>
public OnPlayerDeath(playerid, killerid, reason)
<
return 1;
>
public OnVehicleSpawn(vehicleid)
<
return 1;
>
public OnVehicleDeath(vehicleid, killerid)
<
return 1;
>
public OnPlayerText(playerid, text[])
<
return 1;
>
public OnPlayerCommandText(playerid, cmdtext[])
<
if (strcmp(«/mycommand», cmdtext, true, 10) == 0)
<
// Do something here
return 1;
>
return 0;
>
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
<
return 1;
>
public OnPlayerExitVehicle(playerid, vehicleid)
<
return 1;
>
public OnPlayerStateChange(playerid, newstate, oldstate)
<
return 1;
>
public OnPlayerEnterCheckpoint(playerid)
<
return 1;
>
public OnPlayerLeaveCheckpoint(playerid)
<
return 1;
>
public OnPlayerEnterRaceCheckpoint(playerid)
<
return 1;
>
public OnPlayerLeaveRaceCheckpoint(playerid)
<
return 1;
>
public OnRconCommand(cmd[])
<
return 1;
>
public OnPlayerRequestSpawn(playerid)
<
return 1;
>
public OnObjectMoved(objectid)
<
return 1;
>
public OnPlayerObjectMoved(playerid, objectid)
<
return 1;
>
public OnPlayerPickUpPickup(playerid, pickupid)
<
return 1;
>
public OnVehicleMod(playerid, vehicleid, componentid)
<
return 1;
>
public OnVehiclePaintjob(playerid, vehicleid, paintjobid)
<
return 1;
>
public OnVehicleRespray(playerid, vehicleid, color1, color2)
<
return 1;
>
public OnPlayerSelectedMenuRow(playerid, row)
<
return 1;
>
public OnPlayerExitedMenu(playerid)
<
return 1;
>
public OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid)
<
return 1;
>
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
<
return 1;
>
public OnRconLoginAttempt(ip[], password[], success)
<
return 1;
>
public OnPlayerUpdate(playerid)
<
return 1;
>
public OnPlayerStreamIn(playerid, forplayerid)
<
return 1;
>
public OnPlayerStreamOut(playerid, forplayerid)
<
return 1;
>
public OnVehicleStreamIn(vehicleid, forplayerid)
<
return 1;
>
public OnVehicleStreamOut(vehicleid, forplayerid)
<
return 1;
>
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
<
return 1;
>
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
<
return 1;
>
Источник
Форум Pawn.Wiki — Воплоти мечту в реальность!: Выдает ошибку — Форум Pawn.Wiki — Воплоти мечту в реальность!
- Pawn скриптинг
- Первая помощь
- Проблемы с компилированием
- Правила форума
- Просмотр новых публикаций
- Группа: Активные пользователи
- Сообщений: 34
- Регистрация: 25 сентября 16
Доброго времени суток, обновил Инклуды, и плагины. Плагин mysql r39-5 Стоит, раньше стояла, не знаю какая.
В общем компилирую мод, и выдает ошибка, раньше их много было, но сейчас одна.
Подскажите, как её исправить, вот чувствую, что проблема не очень серьезная, но понять не могу в чем дело.
Вот строчка Warninga
Вот строчка Error
Жду помощи уважаемые кодеры.
Сообщение отредактировал Alexey.Marsel: 30 сентября 2016 — 17:17
- Группа: Vip
- Сообщений: 5 581
- Регистрация: 09 января 13
Пометил бы строки.
warning 213: tag mismatch — неверный формат переменной
error 017: undefined symbol «mysql_insert_id» — отсутствует ID подключения. Это выглядит так:
Ищи в OnGameModeInit.
- Группа: Активные пользователи
- Сообщений: 34
- Регистрация: 25 сентября 16
m1n1vv (30 сентября 2016 — 17:15) писал:
Пометил бы строки.
warning 213: tag mismatch — неверный формат переменной
error 017: undefined symbol «mysql_insert_id» — отсутствует ID подключения. Это выглядит так:
Ищи в OnGameModeInit.
Вот здесь где то искать?
У меня один public OnGameModeInit()
Источник
Форум Pawn.Wiki — Воплоти мечту в реальность!: Как исправить ошибку 017? — Форум Pawn.Wiki — Воплоти мечту в реальность!
- Pawn скриптинг
- Первая помощь
- Проблемы с компилированием
- Правила форума
- Просмотр новых публикаций
- (2 Страниц)
- 1
- 2
- >
- Вы не можете создать новую тему
Тема закрыта
- Группа: Пользователи
- Сообщений: 6
- Регистрация: 22 ноября 14
- Группа: Активные пользователи
- Сообщений: 128
- Регистрация: 15 октября 14
- Группа: Пользователи
- Сообщений: 6
- Регистрация: 22 ноября 14
- Группа: Пользователи
- Сообщений: 6
- Регистрация: 22 ноября 14
Maxim_Black (23 ноября 2014 — 11:51) писал:
- Группа: Активные пользователи
- Сообщений: 1 521
- Регистрация: 11 декабря 11
- Группа: Пользователи
- Сообщений: 6
- Регистрация: 22 ноября 14
PorayJ (23 ноября 2014 — 12:14) писал:
Так надо?
OnDialogResponse if(dialogid == 111)
- Группа: Активные пользователи
- Сообщений: 128
- Регистрация: 15 октября 14
Найди в моде public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
и туда вставляй
- Группа: Пользователи
- Сообщений: 6
- Регистрация: 22 ноября 14
Maxim_Black (23 ноября 2014 — 12:27) писал:
Найди в моде public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
и туда вставляй
Как вот-это исправить?
C:UsersvladDesktopServer SAMPgamemodesSRP.pwn(248) : error 017: undefined symbol «query»
C:UsersvladDesktopServer SAMPgamemodesSRP.pwn(248) : error 017: undefined symbol «query»
Вот эта строка:
format(query, sizeof(query), «SELECT * FROM «TABLE_ACCOUNT» WHERE name = ‘%s’», pname); // Эта фун-ция выбирает аккаун из таблицы в базе данных.
- Группа: Активные пользователи
- Сообщений: 128
- Регистрация: 15 октября 14
- Группа: Пользователи
- Сообщений: 6
- Регистрация: 22 ноября 14
Maxim_Black (23 ноября 2014 — 13:39) писал:
Источник
- Регистрация
- 23 Фев 2013
- Сообщения
- 280
- Лучшие ответы
- 0
- Репутация
- 28
- Адрес
-
Сочи
-
#1
Здраствуйте дорогие пользователи pawno-info!
Я обновил плагин MySQL R6 до MySQL R7
И вылезли такие ероры как их исправить?
PHP:
C:UsersAspire V3DesktopВсе что касаеться сервовСерверыZalman Rpgamemodesnew.pwn(3322) : error 017: undefined symbol "mysql_query"
C:UsersAspire V3DesktopВсе что касаеться сервовСерверыZalman Rpgamemodesnew.pwn(3793) : error 017: undefined symbol "mysql_query"
C:UsersAspire V3DesktopВсе что касаеться сервовСерверыZalman Rpgamemodesnew.pwn(4853) : error 017: undefined symbol "mysql_query"
C:UsersAspire V3DesktopВсе что касаеться сервовСерверыZalman Rpgamemodesnew.pwn(5059) : error 017: undefined symbol "mysql_query"
C:UsersAspire V3DesktopВсе что касаеться сервовСерверыZalman Rpgamemodesnew.pwn(6937) : error 017: undefined symbol "mysql_query"
C:UsersAspire V3DesktopВсе что касаеться сервовСерверыZalman Rpgamemodesnew.pwn(6954) : error 017: undefined symbol "mysql_query"
C:UsersAspire V3DesktopВсе что касаеться сервовСерверыZalman Rpgamemodesnew.pwn(6971) : error 017: undefined symbol "mysql_query"
C:UsersAspire V3DesktopВсе что касаеться сервовСерверыZalman Rpgamemodesnew.pwn(7003) : error 017: undefined symbol "mysql_query"
C:UsersAspire V3DesktopВсе что касаеться сервовСерверыZalman Rpgamemodesnew.pwn(7020) : error 017: undefined symbol "mysql_query"
C:UsersAspire V3DesktopВсе что касаеться сервовСерверыZalman Rpgamemodesnew.pwn(7037) : error 017: undefined symbol "mysql_query"
C:UsersAspire V3DesktopВсе что касаеться сервовСерверыZalman Rpgamemodesnew.pwn(7054) : error 017: undefined symbol "mysql_query"
C:UsersAspire V3DesktopВсе что касаеться сервовСерверыZalman Rpgamemodesnew.pwn(7071) : error 017: undefined symbol "mysql_query"
C:UsersAspire V3DesktopВсе что касаеться сервовСерверыZalman Rpgamemodesnew.pwn(9573) : error 017: undefined symbol "mysql_query"
C:UsersAspire V3DesktopВсе что касаеться сервовСерверыZalman Rpgamemodesnew.pwn(9610) : error 017: undefined symbol "mysql_query"
C:UsersAspire V3DesktopВсе что касаеться сервовСерверыZalman Rpgamemodesnew.pwn(9963) : error 017: undefined symbol "mysql_query"
C:UsersAspire V3DesktopВсе что касаеться сервовСерверыZalman Rpgamemodesnew.pwn(10824) : error 017: undefined symbol "mysql_query"
C:UsersAspire V3DesktopВсе что касаеться сервовСерверыZalman Rpgamemodesnew.pwn(21213) : error 017: undefined symbol "mysql_query"
C:UsersAspire V3DesktopВсе что касаеться сервовСерверыZalman Rpgamemodesnew.pwn(21936) : error 017: undefined symbol "mysql_query"
C:UsersAspire V3DesktopВсе что касаеться сервовСерверыZalman Rpgamemodesnew.pwn(21939) : error 017: undefined symbol "mysql_query"
C:UsersAspire V3DesktopВсе что касаеться сервовСерверыZalman Rpgamemodesnew.pwn(22107) : error 017: undefined symbol "mysql_query"
C:UsersAspire V3DesktopВсе что касаеться сервовСерверыZalman Rpgamemodesnew.pwn(22434) : error 017: undefined symbol "mysql_query"
C:UsersAspire V3DesktopВсе что касаеться сервовСерверыZalman Rpgamemodesnew.pwn(27210) : error 017: undefined symbol "mysql_query"
C:UsersAspire V3DesktopВсе что касаеться сервовСерверыZalman Rpgamemodesnew.pwn(40169) : error 017: undefined symbol "mysql_query"
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
23 Errors.
Очень прошу помощи!
@Саша55555, функция format записывает нужный Вам текст в переменную.
Например, Вы хотите вывести в чат свой nick-name и level. У функции вывода текста в чат всего 3 аргумента: ID игрока (которому отправляем), цвет, текст. Но аргументы здесь использовать нельзя. Поэтому используем format.
Структура такова: format(куда записываем, какой размер, что записываем, аргументы);
Например, format(string, 128, «Здесь ваш текст %d», a);
Таким образом, мы записали в переменную string текст, максимальная длина которого 128 символов, использовав аргумент a. Можно, чтобы длину подсчитывала система, использовать функцию sizeof. Результат будет следующий:
format(string, sizeof(string), «Здесь ваш текст %d», a);
Далее, переменная string у нас осталась не объявлена. То есть компилятору она неизвестна. Соответственно, нужно ее объявить.
new string[];
В квадратных скобках Вы должны указать количество символов, которое будете записывать в эту переменную. Можно считать вручную, а можно использовать тот же notepad++. У меня длина текста составляет 56 символов (при условии, что переменная a содержит не больше трех знаков (то есть двух- или однозначное число). Но стоит учесть еще запас, грубо говоря, прибавляйте всегда 5 символов и будет Вам радость. 56+5 = 51. В строке выше я указал 65, поскольку делал все на глаз (прикидывал длину).
@Antoxa39 Помогло, но немножко. Вылезла новая проблема
public OnPlayerPickUpPickupEx(playerid, pickupid, action_type, action_id) { if(pickupid == narad1) { if(!PlayerInfo[playerid][pWork]) ShowPlayerDialog(playerid,NARAD1,0,"????? ??????????","{FFFFFF} ?? ?????????? ??? ?????? {FFA500}????????.n{FFFFFF} ???? ?????? ??????? ? ???, ????? ?????? ??????? n ? ?????? ????? ?? ???????????.nntt{FFFFFF} ?? ?????????n","??","???") else if(PlayerInfo[playerid][pWork] == 1) ShowPlayerDialog(playerid,NARAD1,0,"?????????? ??????.","?? ?????? ????????? ?????? ? ??????? ???????","??","???"); }
F:mod crmpМодыFriendlygamemodesnew.pwn(11670) : warning 217: loose indentation
F:mod crmpМодыFriendlygamemodesnew.pwn(11693) : warning 217: loose indentation
F:mod crmpМодыFriendlygamemodesnew.pwn(12159) : error 017: undefined symbol «PlayerInfo»
F:mod crmpМодыFriendlygamemodesnew.pwn(12159) : warning 215: expression has no effect
F:mod crmpМодыFriendlygamemodesnew.pwn(12159) : error 001: expected token: «;», but found «]»
F:mod crmpМодыFriendlygamemodesnew.pwn(12159) : error 029: invalid expression, assumed zero
F:mod crmpМодыFriendlygamemodesnew.pwn(12159) : fatal error 107: too many error messages on one line
Compilation aborted.
Pawn compiler 3.10.20150531 Copyright (c) 1997-2006, ITB CompuPhase
4 Errors.
if(PlayerToPoint(2.0, playerid, -744.4242,-151.5473,66.9441)) { DisablePlayerCheckpoint(playerid); SetPlayerAttachedObject(playerid,0,341,6); ApplyAnimation(playerid,"CHAINSAW","WEAPON_csaw",1.0,1,0,0,0,6000,0); SetTimerEx("WoodLoaded",6000,false,"i",playerid); } if(PlayerToPoint(2.0, playerid, -725.6015,-135.8018,67.9834)) { DisablePlayerCheckpoint(playerid); SetPlayerAttachedObject(playerid,0,341,6); ApplyAnimation(playerid,"CHAINSAW","WEAPON_csaw",1.0,1,0,0,0,6000,0); SetTimerEx("WoodLoaded",6000,false,"i",playerid); } if(PlayerToPoint(2.0, playerid, -742.5336,-141.1515,66.6351)) { DisablePlayerCheckpoint(playerid); SetPlayerAttachedObject(playerid,0,341,6); ApplyAnimation(playerid,"CHAINSAW","WEAPON_csaw",1.0,1,0,0,0,6000,0); SetTimerEx("WoodLoaded",6000,false,"i",playerid); } if(PlayerToPoint(2.0, playerid, -725.7032,-157.2504,66.8221)) { DisablePlayerCheckpoint(playerid); SetPlayerAttachedObject(playerid,0,341,6); ApplyAnimation(playerid,"CHAINSAW","WEAPON_csaw",1.0,1,0,0,0,6000,0); SetTimerEx("WoodLoaded",6000,false,"i",playerid); } if(PlayerToPoint(2.0, playerid, -712.8016,-153.0406,66.2967)) { DisablePlayerCheckpoint(playerid); SetPlayerAttachedObject(playerid,0,341,6); ApplyAnimation(playerid,"CHAINSAW","WEAPON_csaw",1.0,1,0,0,0,6000,0); SetTimerEx("WoodLoaded",6000,false,"i",playerid); } new action_type = GetPlayerCPInfo(playerid, CP_ACTION_TYPE); if(IsPlayerInCheckpoint(playerid)) { switch(action_type) { case CP_ACTION_TYPE_LOADER_JOB_TAKE: { if(GetPlayerTempJob(playerid) == TEMP_JOB_LOADER) { if(GetPlayerTempJobState(playerid) == TEMP_JOB_STATE_LOADER_LOAD) { if(!IsPlayerInAnyVehicle(playerid)) { ac_work_time[playerid] = gettime(); DisablePlayerCheckpoint(playerid); ClearAnimations(playerid); ApplyAnimationEx(playerid, "CARRY", "liftup", 4.0, 0, 0, 0, 0, 0, 0, USE_ANIM_TYPE_NONE - 1); SetTimerEx("SetPlayerLoaderJobLoad", 1000, false, "i", playerid); } } } }
I’ll look into it, but I’m unsure of what is supposed to be the correct output in such situations.
Should we suggest «var<state_a>» for the above example (which, IMHO, would be kind of misleading, because if the user types that instead of just «var», it will only cause a bunch of new errors), or rather don’t suggest anything?
@Y-Less @YashasSamaga ?
Maybe something like undefined symbol "var"; state symbol not in scope
?
Is the code in the example even valid? As far as I can recall, in Pawn only functions may have states, not variables.
Even if we do something similar with a function instead of a variable
func() <automaton_1:STATE_1> {} main() { func(); }
the compiler doesn’t print any warnings/errors (though the generated code raises AMX_ERR_INVSTATE
as function func()
isn’t implemented for the default state).
Maybe we should close this issue as invalid?
Yes, variables can have states as well. And two variables in different states may share a memory location, which is quite nice.
Yes, you’re right, I just haven’t seen this feature used in the wild. I’ll see what I can do about incorrect suggestions for state variables.
This issue has been automatically marked as stale because it has not had recent activity.
От
D.Frolovskiy
Ошибка:
C:Users????? ??????DesktopGreenTechgamemodesNewGT.pwn(2520) : error 017: undefined symbol «gPlayerLogged»
C:Users????? ??????DesktopGreenTechgamemodesNewGT.pwn(2520) : warning 215: expression has no effect
C:Users????? ??????DesktopGreenTechgamemodesNewGT.pwn(2520) : error 001: expected token: «;», but found «]»
C:Users????? ??????DesktopGreenTechgamemodesNewGT.pwn(2520) : error 029: invalid expression, assumed zero
C:Users????? ??????DesktopGreenTechgamemodesNewGT.pwn(2520) : fatal error 107: too many error messages on one line
Строки:
2520: if(gPlayerLogged[playerid] == 0) return true; // Проверка на авторизацию. (Может быть другая)
Команда вся :
{
if(gPlayerLogged[playerid] == 0) return true; // Проверка на авторизацию. (Может быть другая)
if(PlayerInfo[playerid][pLevel] < 3) return SendClientMessage(playerid, -1, «Выкладывать деньги можно с 3-ого уровня.»); // Можете убрать проверку на то,с какого уровня выкидывать деньги. (PlayerInfo[playerid][pLeve] меняем под себя)
if(GetPVarInt(playerid, «PlayerCase») == 0) return SendClientMessage(playerid, -1, «У Вас нет чемодана для денег!»); // Проверка на чемодан. (Сделайте покупку в магазине или уберите проверку).
if(TOTALCASE >= MAX_CASE) return SendClientMessage(playerid, -1, «Превышен лимит выбрасываемых кейсов.»); // Проверка на лимт кейсов.
if(GetPVarInt(playerid,»AntiFlood») > gettime()) return SendClientMessage(playerid, -1, «Нельзя так часто выкидывать деньги!»); // Антифлуд
if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, «Взять деньги находясь в машине — нельзя.»); // Проверка на нахождение игрока в машине
if(sscanf(params, «d», params[0])) return SendClientMessage(playerid, -1, «Используйте: /putmoney [сумма]»);
if(params[0] < 1 || params[0] > PlayerInfo[playerid][pMoney]) return SendClientMessage(playerid, -1,»У Вас недостаточно денег на руках.»); // Проверка на деньги (PlayerInfo[playerid][pMoney] меняйте под себя).
new i = TOTALCASE,string[128];
TOTALCASE++;
GetPlayerPos(playerid, CaseInfo[i][csX], CaseInfo[i][csY], CaseInfo[i][csZ]); // УЗнаём позицию
CaseInfo[i][csObject] = CreateDynamicObject(1210, CaseInfo[i][csX], CaseInfo[i][csY]+1.0, CaseInfo[i][csZ]-0.87, 0.0, 0.0, 0.0, -1, -1, -1, 300.0), RemovePlayerAttachedObject(playerid, 4); // Создаём кейс
RemovePlayerAttachedObject(playerid, 5); // Удаляем кейс из рук
PlayerInfo[playerid][pMoney] -= params[0], CaseInfo[i][csMoney] = params[0]; // Снимаем деньги (PlayerInfo[playerid][pMoney] меняйте под себя)
if(CaseInfo[i][csMoney] >= 100000) format(string, sizeof(string), «[A] Игрок %s[%d] только что положил чемодан с %d$», Player[playerid][pName], playerid, CaseInfo[i][csMoney]), ABroadCast(0xAAAAAAFF, string, 1); // Если игрок выкинул чемодан с боле чем 100.000$ то оповещаем администрацию. (ABroadCast у вас может быть другой).
SetPVarInt(playerid,»AntiFlood»,gettime() + 30), DeletePVar(playerid, «PlayerCase»); // Создаём антифлуд + удаляем значение что у нас есть чемодан.
format(string,sizeof(string),»Вы положили чемодан с %d$», params[0]),SendClientMessage(playerid, -1, string);
return true;
}
CMD:pickmoney(playerid, params[])
{
if(gPlayerLogged[playerid] == 0) return true; // Проверка на авторизацию. (Может быть другая)
if(IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, -1, «Положить деньги находясь в машине — нельзя.»); // Проверка на нахождение игрока в машине
new cas,string[128]; // Создаём переменные
for(new i = 0; i <= TOTALCASE; i++) // Создаём цикл
{
if(IsPlayerInRangeOfPoint(playerid, 3.0, CaseInfo[i][csX], CaseInfo[i][csY], CaseInfo[i][csZ])) // Создаём проверку на нахождение рядом с кейсом
{ // Если кейсов рядом,то продолжаем.
cas++,TOTALCASE—,SetPlayerAttachedObject(playerid, 5, 1210, 5, 0.272000,0.073000,-0.045000, 0.000000,-83.099998,0.000000),SetPVarInt(playerid, «PlayerCase», 1), DestroyDynamicObject(CaseInfo[i][csObject]); // Функции)
format(string,sizeof(string),»Вы подобрали чемодан с %d$», CaseInfo[i][csMoney]),SendClientMessage(playerid, -1, string);
if(CaseInfo[i][csMoney] >= 100000) format(string, sizeof(string), «[A] Игрок %s[%d] только что подобрал чемодан с %d$», PlayerInfo[playerid][pName], playerid, CaseInfo[i][csMoney]), ABroadCast(0xAAAAAAFF, string, 1); // Если игрок поднял чемодан с более чем 100.000$ то оповещаем администрацию. (Вместо ABroadCast может быть SendAdminMessage и т.д),а также вместо PlayerInfo[playerid][pName] ставим своё.
PlayerInfo[playerid][pMoney] += CaseInfo[i][csMoney]; // ПРибавляем кол-во денег с кейса. PlayerInfo[playerid][pMoney] меняем под себя.
CaseInfo[i][csX] = 0.0, CaseInfo[i][csY] = 0.0, CaseInfo[i][csZ] = 0.0; // Убираем найденный кейс.
break;
} // Если кейса рядом нет,то ничего не делаем
}
if(cas == 0) SendClientMessage(playerid, -1, «Рядом с вами нет чемодана!»);
return true;
}
В общем, исправлял опечатки в скрипте, в итоге не могу скомпилировать
Ошибки: Вы должны зарегистрироваться, чтобы видеть ссылки.
Все ошибки связаны с 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++, чтобы не запутаться, да и быстрее