Error 017 undefined symbol pinfo

Ошибки: gamemodesnew.pwn(26) : error 017: undefined symbol "pInfo" gamemodesnew.pwn(26) : error 009: invalid array size (negative...


#1

Пользователь офлайн
 

Отправлено 05 января 2014 — 16:30

  • Прохожий

Ошибки:

gamemodesnew.pwn(26) : error 017: undefined symbol "pInfo"
gamemodesnew.pwn(26) : error 009: invalid array size (negative, zero or out of bounds)
gamemodesnew.pwn(294) : error 017: undefined symbol "ReadPlayerPosition"
gamemodesnew.pwn(294) : error 001: expected token: ";", but found "]"
gamemodesnew.pwn(294) : error 029: invalid expression, assumed zero
gamemodesnew.pwn(294) : fatal error 107: too many error messages on one line

Вот строки:

new PlayerInfo[MAX_PLAYERS][pInfo];  //26 строка

enum pInfo{
//---------------------------
        pKey[128],
        pLevel,
        pAdmin,
        pReg,
        pSex,
        pOrigin,
        pExp,
        pMoney,
        pModel,
        pChar,
        pInt,
        pMember,
        pLeader,
        pWanted,
};
public ServerSetPlayerPos(playerid, Float:x, Float:y, Float:z)
{
                SetPlayerPos(playerid, x, y, z);
                ReadPlayerPosition[playerid][ReadX] = x;
                ReadPlayerPosition[playerid][ReadY] = y; // 294 строка
                ReadPlayerPosition[playerid][ReadZ] = z;
                return 1;
}

Заранее спасибо :smile:

0



#2

Отправлено 05 января 2014 — 16:46

  • The Lost World Forever
new PlayerInfo[MAX_PLAYERS][pInfo];  //26 строка

поставь это после enum pInfo

Скинь сюда ReadPlayerPosition

2



#3

Отправлено 06 января 2014 — 08:43

  • Прохожий

Цитата

gamemodesnew.pwn(26) : error 017: undefined symbol «pInfo»

Должно быть вот так

Цитата

enum pInfo{
//—————————
pKey[128],
pLevel,
pAdmin,
pReg,
pSex,
pOrigin,
pExp,
pMoney,
pModel,
pChar,
pInt,
pMember,
pLeader,
pWanted,
};
new PlayerInfo[MAX_PLAYERS][pInfo];

Цитата

gamemodesnew.pwn(294) : error 017: undefined symbol «ReadPlayerPosition»

А тут не хвотает

Цитата

public ServerSetPlayerPos(playerid, Float:x, Float:y, Float:z)
{
SetPlayerPos(playerid, x, y, z);
ReadPlayerPosition[playerid][ReadX] = x;
ReadPlayerPosition[playerid][ReadY] = y;
ReadPlayerPosition[playerid][ReadZ] = z;
return 1;
}

Вот этого — ReadY !!

Если помог то с тебя +.

2



#4

Отправлено 06 января 2014 — 11:42

  • The Lost World Forever

0


  • ← Предыдущая тема
  • Проблемы с компилированием
  • Следующая тема →

  • Вы не можете создать новую тему
  • Тема закрыта


1 человек читают эту тему
0 пользователей, 1 гостей, 0 скрытых пользователей

Pawno-Info.Ru — Портал о программировании №1

Присоединяйтесь к нам сейчас, чтобы получить доступ ко всем нашим функциям и ответы на все интересующие Вас вопросы. После регистрации Вы сможете создавать темы, публиковать ответы, влиять на репутацию пользователей форума, обмениваться личными сообщениями и многое другое. Это быстро и совершенно бесплатно, так чего же Вы ждете?

Маппинг для сервера

Если вы хотите обновить Ваш сервер новыми доработками — то зайдите в наш раздел. Большой выбор готовых решений от наших пользователей

Моды для сервера

Огромный выбор различных модификаций для Вашего сервера. Пролистайте эти темы! Возможно именно там Вы найдете то, что искали уже давно.

Программы для скриптера

Подборка удобных программ для скриптера

Статус
В этой теме нельзя размещать новые ответы.

Engels

Нуль

Регистрация
11 Сен 2017
Сообщения
2
Лучшие ответы
0
Репутация
0
Возраст
25

  • #1

Я весь форум перерыл, вроде и отвечают людям, но мне это не помогает никак. Вообщем проблема — вылезает ошибка и все. Незнаю уже куда писать и к кому обращаться. Вроде по логике делаю все как надо

C:UsersadminDesktopservergamemodesnew.pwn(10 3) : error 017: undefined symbol «pInfo»
C:UsersadminDesktopservergamemodesnew.pwn(10 3) : warning 215: expression has no effect
C:UsersadminDesktopservergamemodesnew.pwn(10 3) : error 001: expected token: «;», but found «]»
C:UsersadminDesktopservergamemodesnew.pwn(10 3) : error 029: invalid expression, assumed zero
C:UsersadminDesktopservergamemodesnew.pwn(10 3) : fatal error 107: too many error messages on one line

#include <a_samp> естественно объявлен

enum pInfo
{
pPass,
pCash,
pAdmin,
pKills,
pDeaths,
}
new PlayerInfo[MAX_PLAYERS][pInfo]

public OnPlayerDisconnect(playerid, reason)
{
new INI:File = INI_Open(UserPath(playerid));
INI_SetTag(File,»data»);
INI_WriteInt(File,»Cash»,GetPlayerMoney(playerid)) ;
INI_WriteInt(File,»Admin», pInfo[playerid][pAdmin]); — строка, в которой ошибка
INI_WriteInt(File,»Kills», pInfo[playerid][pKills]);
INI_WriteInt(File,»Deaths», pInfo[playerid][pDeaths]);
INI_Close(File);
return 1;
}

Прошу прощения, что тема уже есть, просто ответа для себя так и не могу найти.

Последнее редактирование: 11 Сен 2017

Статус
В этой теме нельзя размещать новые ответы.

  • #2

Brendon сказал(а):

А есть строка с енумератором enum pInfo?

Есть

  • #3

Brendon сказал(а):

Покажи енумератор полностью и строку с ошибкой.

​enum pInfo
{
pAdmin, pCash,
pScore,
pKills,
Muted,
Jailed,
SpecID[MAX_PLAYERS],
SpecType[MAX_PLAYERS],
Freeze,
Zhertva,
Spawned,
}

Строка: 

new Player[MAX_PLAYERS][pInfo];

Последнее редактирование модератором: 07.01.2015

  • #4

Brendon сказал(а):

new Player[MAX_PLAYERS][pInfo];  идёт после енумератора?

Добавь в конце кстати ;  Будет так 

enum pInfo
{
pAdmin,
pCash,
pScore,
pKills,
Muted,
Jailed,
SpecID[MAX_PLAYERS],
SpecType[MAX_PLAYERS],
Freeze,
Zhertva,
Spawned,
};

new Player[MAX_PLAYERS][pInfo]; — стоит над enum в строке с другими new

Alexandr сказал(а):

new Player[MAX_PLAYERS][pInfo]; — стоит над enum в строке с другими new

Спасибо, помог.

Содержание

  1. Форум Pawn.Wiki — Воплоти мечту в реальность!: error 017: undefined symbol «to_player» — Форум Pawn.Wiki — Воплоти мечту в реальность!
  2. Форум Pawn.Wiki — Воплоти мечту в реальность!: error 017: undefined symbol «playerid» — Форум Pawn.Wiki — Воплоти мечту в реальность!
  3. Pawno error 017 что это
  4. Маппинг для сервера
  5. Моды для сервера
  6. Программы для скриптера
  7. sakipovich
  8. Статистика форума
  9. Pawno error 017 что это
  10. Маппинг для сервера
  11. Моды для сервера
  12. Программы для скриптера
  13. Engels
  14. Pawno error 017 что это
  15. Вопросы

Форум Pawn.Wiki — Воплоти мечту в реальность!: error 017: undefined symbol «to_player» — Форум Pawn.Wiki — Воплоти мечту в реальность!

  • Pawn скриптинг
  • Первая помощь
  • Проблемы с компилированием
  • Правила форума
  • Просмотр новых публикаций

  • Группа: Активные пользователи
  • Сообщений: 76
  • Регистрация: 15 февраля 22

суть такая, хотел усовершенствовать свой код, в итоге ничего не получилось, так как опыта мало.
Ошибка:

Сам код, на который ругается павно:

поправте, если в коде есть ошибка.

Сообщение отредактировал Kirill_Babkin: 06 июня 2022 — 17:31

  • Группа: Активные пользователи
  • Сообщений: 1 041
  • Регистрация: 07 июня 21

Сообщение отредактировал Perdolinka: 06 июня 2022 — 17:55

Источник

Форум Pawn.Wiki — Воплоти мечту в реальность!: error 017: undefined symbol «playerid» — Форум Pawn.Wiki — Воплоти мечту в реальность!

  • Pawn скриптинг
  • Первая помощь
  • Проблемы с компилированием
  • Правила форума
  • Просмотр новых публикаций

  • Группа: Активные пользователи
  • Сообщений: 46
  • Регистрация: 21 января 21

Перенёс текстдравы в инклюд, теперь много варнингов на подобии этого.
error 017: undefined symbol «playerid»

Сообщение отредактировал skankhunt42: 08 марта 2021 — 06:23

  • Группа: Vip
  • Сообщений: 4 729
  • Регистрация: 14 марта 12

  • Группа: Активные пользователи
  • Сообщений: 46
  • Регистрация: 21 января 21

DeimoS (08 марта 2021 — 07:37) писал:

Спасибо, можешь ещё помочь, мне в этой строке пишет несоответствие тегов.

  • Группа: Vip
  • Сообщений: 4 729
  • Регистрация: 14 марта 12

Ну так ты создаёшь текстдрав для игрока, а функцию используешь, предназначенную для глобальных текстдравов.

Источник

Pawno error 017 что это

Быстрый переход в группу «Пользователи», без надобности написания постов и ожидания.

Покупка дает возможность:

Маппинг для сервера

Если вы хотите обновить Ваш сервер новыми доработками — то зайдите в наш раздел. Большой выбор готовых решений от наших пользователей

Моды для сервера

Огромный выбор различных модификаций для Вашего сервера. Пролистайте эти темы! Возможно именно там Вы найдете то, что искали уже давно.

Программы для скриптера

Подборка удобных программ для скриптера

sakipovich

Изучающий

И мне выдаёт ошибку error 017: undefined symbol «playerid»!
Что делать?!

———- Post added at 19:12 ———- Previous post was at 19:02 ———-

Статистика форума

Created by Giness

Уважаемый Гость.
Пожалуйста — воздержитесь от любых комментариев на форуме относительно ситуации в мире.
В личных сообщениях, в темах и где бы то не было.
Помните — это закончится в любом случае, а слова, сказанные (или написанные) Вами — не забудутся никогда.
МЫ ЗА МИР.
(Любые сообщения относительно ситуации в мире(не важно с каким смыслом) буду удаляться. А пользователи — блокироваться безвозвратно. )

Источник

Pawno error 017 что это

Быстрый переход в группу «Пользователи», без надобности написания постов и ожидания.

Покупка дает возможность:

Маппинг для сервера

Если вы хотите обновить Ваш сервер новыми доработками — то зайдите в наш раздел. Большой выбор готовых решений от наших пользователей

Моды для сервера

Огромный выбор различных модификаций для Вашего сервера. Пролистайте эти темы! Возможно именно там Вы найдете то, что искали уже давно.

Программы для скриптера

Подборка удобных программ для скриптера

Engels

Я весь форум перерыл, вроде и отвечают людям, но мне это не помогает никак. Вообщем проблема — вылезает ошибка и все. Незнаю уже куда писать и к кому обращаться. Вроде по логике делаю все как надо

C:UsersadminDesktopservergamemodesnew.pwn(10 3) : error 017: undefined symbol «pInfo»
C:UsersadminDesktopservergamemodesnew.pwn(10 3) : warning 215: expression has no effect
C:UsersadminDesktopservergamemodesnew.pwn(10 3) : error 001: expected token: «;», but found «]»
C:UsersadminDesktopservergamemodesnew.pwn(10 3) : error 029: invalid expression, assumed zero
C:UsersadminDesktopservergamemodesnew.pwn(10 3) : fatal error 107: too many error messages on one line

enum pInfo
<
pPass,
pCash,
pAdmin,
pKills,
pDeaths,
>
new PlayerInfo[MAX_PLAYERS][pInfo]

public OnPlayerDisconnect(playerid, reason)
<
new INI:File = INI_Open(UserPath(playerid));
INI_SetTag(File,»data»);
INI_WriteInt(File,»Cash»,GetPlayerMoney(playerid)) ;
INI_WriteInt(File,»Admin», pInfo[playerid][pAdmin]); — строка, в которой ошибка
INI_WriteInt(File,»Kills», pInfo[playerid][pKills]);
INI_WriteInt(File,»Deaths», pInfo[playerid][pDeaths]);
INI_Close(File);
return 1;
>

Прошу прощения, что тема уже есть, просто ответа для себя так и не могу найти.

Источник

Pawno error 017 что это

Вопрос от fulword , 2 ноября, 2017

Вопросы

    • Пользователь Сообщений: 76
      Регистрация: 02.09.2017
      КПД: 0%

    C:UsersDesktopgamemodesnew.pwn(11215) : error 017: undefined symbol «COLOR_GRAY»
    C:UsersDesktopgamemodesnew.pwn(11226) : error 017: undefined symbol «COLOR_GRAY»
    C:UsersDesktopgamemodesnew.pwn(11230) : error 017: undefined symbol «CGRAY»

    case D_RENTROOM:
    <
    if(response)
    <
    if(PI[playerid][pCash] >= 500 && PI[playerid][pLevel] != 0 && PI[playerid][pHotelKey] == -1)
    <
    new «ROOMTORENT»);
    PI[playerid][pHotelKey] = id;
    MotelInfo[id][mOwned] = 1;
    SetPlayerPos(playerid, 2350.339843, -1181.649902, 1027.976562);
    SetPlayerInterior(playerid, 5);
    SetPlayerVirtualWorld(playerid, id + 10);
    GiveMoney(playerid, -500);
    SCM(playerid, COLOR_YELLOW, «Âû óñïåøíî ñíÿëè êîìíàòó.»);
    SCM(playerid, COLOR_GRAY, «Äëÿ ñäà÷è êëþ÷åé — íàæìèòå ‘N’ â íîìåðå.»);
    >
    else if(PI[playerid][pLevel] == 1 && PI[playerid][pHotelKey] == -1)
    <
    new «ROOMTORENT»);
    PI[playerid][pHotelKey] = id;
    MotelInfo[id][mOwned] = 1;
    SetPlayerPos(playerid, 2350.339843, -1181.649902, 1027.976562);
    SetPlayerInterior(playerid, 5);
    SetPlayerVirtualWorld(playerid, id + 10);
    SCM(playerid, COLOR_YELLOW, «Âû óñïåøíî ñíÿëè êîìíàòó.»);
    SCM(playerid, COLOR_GRAY, «Äëÿ ñäà÷è êëþ÷åé — íàæìèòå ‘N’ â íîìåðå.»);
    >
    else if(PI[playerid][pHotelKey] != -1)
    <
    SCM(playerid, CGRAY, «[!] Âû óæå ñíèìàåòå êîìíàòó. Äëÿ ñäà÷è êëþ÷åé — íàæìèòå ‘N’ â íîìåðå.»);
    return true;
    >
    >
    >

    Источник

  • Posts: 101
    Threads: 21
    Joined: Jun 2012

    Reputation:

    0

    pawn Код:

    C:Documents and SettingsAdministratorDesktop(1618) : error 017: undefined symbol "PlayerInfo"
    C:Documents and SettingsAdministratorDesktop(1618) : warning 215: expression has no effect
    C:Documents and SettingsAdministratorDesktop(1618) : error 001: expected token: ";", but found "]"
    C:Documents and SettingsAdministratorDesktop(1618) : error 029: invalid expression, assumed zero
    C:Documents and SettingsAdministratorDesktop(1618) : fatal error 107: too many error messages on one line

    Compilation aborted.Pawn compiler 3.2.3664          Copyright (c) 1997-2006, ITB CompuPhase

    4 Errors.

    Line 1618

    pawn Код:

    if (PlayerInfo[playerid][pAdmin] >= 3)

    and i have this line on line 1634 also..
    please help..

    Posts: 16
    Threads: 2
    Joined: Sep 2012

    Reputation:

    0

    PlayerInfo is not defined. Show us your enum if you have one.

    Posts: 101
    Threads: 21
    Joined: Jun 2012

    Reputation:

    0

    Posts: 3,934
    Threads: 353
    Joined: Jan 2010

    Reputation:

    0

    Make one then..

    pawn Код:

    enum pInfo {
    pAdmin
    };
    new PlayerInfo[MAX_PLAYERS][pInfo];

    Posts: 101
    Threads: 21
    Joined: Jun 2012

    Reputation:

    0

    and where exaclty should that go?

    Posts: 126
    Threads: 24
    Joined: Mar 2012

    Posts: 783
    Threads: 60
    Joined: Mar 2011

    Reputation:

    0

    You need to make a loading/saving system first before you start puttimg commands in.

    Posts: 53
    Threads: 6
    Joined: Mar 2017

    Reputation:

    0

    how to put loading/saving System

    Posts: 1,050
    Threads: 153
    Joined: Mar 2016

    Reputation:

    0

    Quote:

    Originally Posted by dopeboy1040
    Посмотреть сообщение

    how to put loading/saving System

    Congrats for bumping a 5 y old thread.

    , нашёл вот такое , и вот такое.

    new PI[MAX_PLAYERS][pInfo]; 
    enum pInfo {
    	pID,
    	pPassword[32],
    	pSecurityCode,
    	pCheckCode,
    	pInputCode,
    	pMail[64],
    	pMailConfirmed,
    	pIP[16],
    	pLastIP[16],
    	pRegIP[16],
    	pRegData[15],
    	pVhData[15],
    	pLevel,
    	pCash,
    	pBank,
    	pAdmin,
    	pTimeHour,
    	cVirtual[2],
    	pTimeDay,
    	pTimeLastDay,
    	pModel,
    	pMemberSkin,
    	pSex,
    	pAge,
    	pExp,
    	pMuted,
    	pWarn,
    	pLics[16],
    	pLic[4],
    	pGun[13],
    	pAmmo[13],
    	pGunSkill[8],
    	pLeader,
    	pTempLeader,
    	pRank,
    	pVoennik,
    	pMember,
    	pPick,
    	pCheckTime,
    	pNews,
    	Float:cX[2],
    	Float:cY[2],
    	Float:cZ[2],
    	Float:cA[2],
    	pBalon[7],
    	pRemontNabor,
    	pPhoneBalance,
    	pPhoneNumber,
    	pText[4],
    	pTexts[20],
    	pJail,
    	pJailTime,
    	pWanted,
    	pWantedTime,
    	pWantedWho[MAX_PLAYER_NAME],
    	pWantedReason[32],
    	Float:pHeal,
    	pDrugs,
    	pPatron,
    	pGunAmount,
    	pCrimes,
    	pJob,
    	pColor,
    	pMarried,
    	pWhoMarried[MAX_PLAYER_NAME],
    	pReferal[MAX_PLAYER_NAME],
    	pRefMoney,
    	pPayCheck,
    	pCharity,
    	pVip,
    	pVipTime,
    	pTime,
    	pBusTime,
    	pFightStyle,
    	pCredits,
    	pTotalCredits,
    	pSkin[3],
    	pSpawnChange,
    	pHunger,
    	Float:pHealthS,
    	pSportExp,
    	pOnline,
    	pZakon,
    	pCity,
    	pRepcars[16],
    	pRepcar[2],
    	pImproves[32],
    	pImprove[4],
    	pBed,
    	pWatch,
    	pCiggare,
    	pSprunk,
    	pAptechka,
    	pMusic,
    	pMask,
    	pTruckSkill,
    	pTaxiSkill,
       	pWorkSalary, 

    Форум Pawn.Wiki — Воплоти мечту в реальность!: error 017: undefined symbol «iniFile» — Форум Pawn.Wiki — Воплоти мечту в реальность!

    • Pawn скриптинг
    • Первая помощь
    • Проблемы с компилированием
    • Правила форума
    • Просмотр новых публикаций

    • Группа: Активные пользователи
    • Сообщений: 46
    • Регистрация: 27 января 16

    • Группа: Активные пользователи
    • Сообщений: 49
    • Регистрация: 16 ноября 15

    Сообщение отредактировал tAREA-: 28 января 2016 — 18:46

    • Группа: Активные пользователи
    • Сообщений: 46
    • Регистрация: 27 января 16

    • Группа: Активные пользователи
    • Сообщений: 49
    • Регистрация: 16 ноября 15

    • Группа: Активные пользователи
    • Сообщений: 46
    • Регистрация: 27 января 16

    tAREA- (28 января 2016 — 18:55) писал:

    Я это уже пробывал, компилятор просто зависает и всё.

    tAREA- (28 января 2016 — 18:55) писал:

    • Группа: Активные пользователи
    • Сообщений: 49
    • Регистрация: 16 ноября 15

    • Группа: Активные пользователи
    • Сообщений: 46
    • Регистрация: 27 января 16

    tAREA- (28 января 2016 — 18:57) писал:

    с одной ошибкой помогло, с другими нет.

    tAREA- (28 января 2016 — 18:57) писал:

    Всё, спасибо разобрался, +!

    tAREA- (28 января 2016 — 18:57) писал:

    Источник

    Форум Pawn.Wiki — Воплоти мечту в реальность!: Не могу понять ошибку — Форум Pawn.Wiki — Воплоти мечту в реальность!

    • Pawn скриптинг
    • Первая помощь
    • Вопросы по скриптингу
    • Правила форума
    • Просмотр новых публикаций

    Не могу понять ошибку

    • Группа: Пользователи
    • Сообщений: 4
    • Регистрация: 20 октября 14

    И вот на эти строках у меня ошибка:

    Сообщение отредактировал SmarTy: 02 ноября 2014 — 21:47

    • Группа: Vip
    • Сообщений: 4 729
    • Регистрация: 14 марта 12

    • Группа: Пользователи
    • Сообщений: 4
    • Регистрация: 20 октября 14

    DeimoS (03 ноября 2014 — 01:25) писал:

    Сообщение отредактировал SmarTy: 03 ноября 2014 — 07:23

    • Группа: Vip
    • Сообщений: 4 729
    • Регистрация: 14 марта 12

    Ищи вот такие строки и удаляй

    • Группа: Пользователи
    • Сообщений: 4
    • Регистрация: 20 октября 14

    DeimoS (03 ноября 2014 — 07:33) писал:

    Ищи вот такие строки и удаляй

    А так — огромнейшее спасибо, 2 дня мучился над этим, спасибку кинул.

    • Группа: Активные пользователи
    • Сообщений: 27
    • Регистрация: 03 ноября 14

    SmarTy (03 ноября 2014 — 07:59) писал:

    А так — огромнейшее спасибо, 2 дня мучился над этим, спасибку кинул.

    • Группа: Vip
    • Сообщений: 4 729
    • Регистрация: 14 марта 12

    Я же дал набор строк, которые надо найти и удалить. Паблики, возможно, уже были удалены, а вот макросы многие новички удалить забывают (в том числе и ты). Вбей в поиск каждую из этих строк:

    поочерёдно и удаляй все три.

    Сообщение отредактировал DeimoS: 03 ноября 2014 — 13:30

    • Группа: Активные пользователи
    • Сообщений: 27
    • Регистрация: 03 ноября 14

    DeimoS (03 ноября 2014 — 13:29) писал:

    Я же дал набор строк, которые надо найти и удалить. Паблики, возможно, уже были удалены, а вот макросы многие новички удалить забывают (в том числе и ты). Вбей в поиск каждую из этих строк:

    поочерёдно и удаляй все три.

    Проблемы в том что удалив все макросы я получаю вот это:

    Источник

    Форум Pawn.Wiki — Воплоти мечту в реальность!: Error 017 — Форум Pawn.Wiki — Воплоти мечту в реальность!

    • Pawn скриптинг
    • Первая помощь
    • Проблемы с компилированием
    • Правила форума
    • Просмотр новых публикаций

    • Группа: Активные пользователи
    • Сообщений: 29
    • Регистрация: 14 апреля 14

    Доброго времени суток. При создании регистрации (на mxINI) я что-то сделал не так, и выдало 5 ошибок 017. Что не пытался менять — не помогло.

    Вот код полностью:

    • Группа: Активные пользователи
    • Сообщений: 29
    • Регистрация: 14 апреля 14

    login666 (23 августа 2014 — 21:58) писал:

    перед iniFile new iniFile

    public SavePlayer(playerid)
    <
    for(new i=0; i new iniFile = ini_openFile(string);
    ini_setString(iniFile,»Pass»,PlayerInfo[playerid][pPass]);
    ini_setString(iniFile,»Level»,PlayerInfo[playerid][pLevel]);
    ini_setString(iniFile,»Admin»,PlayerInfo[playerid][pAdmin]);
    ini_closeFile(iniFile);
    >
    >

    Большое спасибо! Помогло. С меня +ик. Позже поставлю.

    Источник

    Форум Pawn.Wiki — Воплоти мечту в реальность!: Пишем мод с 0.(Урок 2) — Форум Pawn.Wiki — Воплоти мечту в реальность!

    • Pawn скриптинг
    • Школа скриптинга
    • Уроки
    • Правила форума
    • Просмотр новых публикаций
    • (7 Страниц)
    • 1
    • 2
    • 3
    • >
    • Последняя »
    • Вы не можете создать новую тему
    • Вы не можете ответить в тему

    • Группа: Активные пользователи
    • Сообщений: 250
    • Регистрация: 17 января 12

    В этом уроке мы создадим простую систему транспорта, создать, перекрасить, припарковать. Так же мы научимся сохранять, и загружать аккаунт игрока.

    Основа Мода.
    — Система Регистрации.
    — Загрузка сохранения аккаунта.
    — Система Домов.
    — Система Бизнесов.
    — Система Транспорта.
    — Система Банка.

    Действие первое. Сохранение данных аккаунта игрока:
    В первом уроке, мы создавали enum, с массивами для игрока. Найти его можно, нажав Ctrl + f => pInfo .
    Там мы видим массив:

    1.После него добавляем:

    Этот массив будет отвечать за Админ Уровень игрока.

    2.Теперь его надо загрузить. Делаем в OnPlayerLogin.
    Для этого ищем паблик OnPlayerLogin , и в нём ищем строку:

    3.Эта строка загружала наш пароль, после него вставляем:

    Тем самым мы загрузим админ уровень игрока, из файла.
    Если внимательно посмотреть, можно заметить различие между загрузкой пароля, и загрузкой админ уровня.
    Различие заключается в том, что пароль игрока может хранить буквенные, и числовые данные, а админ уровень, только числовые.

    4.Теперь нам надо сделать сохранение админ уровня, для этого ищем SavePlayer .
    В нём ищем строчку:

    Наш админ уровень будет сохранён, но вот что мы забыли..
    Для сохранения аккаунта, функцию сохранения, надо запускать, что мы сейчас и сделаем.
    Выгодней всего, сохранять аккаунт при изменении чего либо в аккаунте, но так же, можно сделать это и при выходе с сервера. Так мы и поступим.

    6.Ищем паблик OnPlayerDisconnect .
    В него вставляем:

    Вот и готово. При выходе с сервера, аккаунт игрока будет автоматически сохранён.
    Админ уровень готов. Так же вы можете добавить любой масив, аналогично с этим, пусть это будет возраст, или количество денег у вашего игрока.

    Действие второе. Создание основы системы транспорта:
    В этом действии, нам предстоит средняя по сложности работа, вникнув в которую, после, вы сможете самостоятельно, проявив свою фантазию украсить систему транспорта.

    7.Для начала, в конец мода, надо вставить необходимые функции, без которых не обходиться не один мод.

    Разбирать их мы не будем, но будем разбирать работу с ними.

    8.Начнём создавать систему авто, с enum .
    Перед enum pInfo , добавим:

    С этими массивами, мы и будем работать. Каждый из них подписан, и думаю понятен.

    9.Далее, для снижения нагрузки на сервер, в начало мода, после инклудов, добавить:

    Думаю пояснение не нужно.
    10.Теперь нам нужно загрузить машины из файла. Для этого, опускаемся в конец мода, и вставляем туда:

    11.Всё подписано, и я думаю что понятно. Для запуска загрузки, в начало паблика OnGameModeInit , необходимо вставить:

    12.Из файла в массив, загрузятся переменные, но надо их использовать, для этого,в паблик OnGameModeInit , ниже LoadVeh(); , вставляем:

    Загрузка готова, машины загружены, теперь нужно сохранение..

    13.Загрузка готова, машины загружены, теперь нужно сохранение:

    Все пояснения оставлены в комметарии к коду.
    Отлично, теперь наши машины будут сохраняться.
    Теперь создадим пару команд для действий с транспортом. И начнём с команды создания транспорта.

    14.Для этого, идём в паблик OnPlayerCommandText , и в начало паблика, вставляем:

    15.Это всё нам пригодится. В дальнейшем. Дальше вставляем в этот же паблик команду:

    C помощью этой команды, можно создать машину на сервере. Увы разбирать команду нет времени, но я всё подписал, должно быть понятно.

    16.Так же добавим команду, для смены цвета транспорта:

    17.Ну и на последок, добавим команду для сохранения позиции транспорта:

    Автор урока: Vovan228

    Сообщение отредактировал Fasters: 22 июля 2012 — 10:02

    Источник

    В общем, исправлял опечатки в скрипте, в итоге не могу скомпилировать
    Ошибки: Вы должны зарегистрироваться, чтобы видеть ссылки.

    Все ошибки связаны с 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<<);
        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, -);
                    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++, чтобы не запутаться, да и быстрее

    Понравилась статья? Поделить с друзьями:

    Читайте также:

  • Error 017 undefined symbol isvalidvehicle
  • Error 017 undefined symbol isvalidclient
  • Error 017 undefined symbol idx
  • Error 017 undefined symbol http
  • Error 017 undefined symbol help

  • 0 0 голоса
    Рейтинг статьи
    Подписаться
    Уведомить о
    guest

    0 комментариев
    Старые
    Новые Популярные
    Межтекстовые Отзывы
    Посмотреть все комментарии