SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Русский/Russian

Reply
 
Thread Tools Display Modes
Old 16/06/2011, 06:34 AM   #1
temka1993
Big Clucker
 
Join Date: Feb 2011
Posts: 62
Reputation: 0
Default Ерундит игровой мод

Привет всем. Сегодня решил протестить свое творение и обнаружил очень большую неприятность.

Вообщем при компилировании у меня выдавало

PHP Code:
Pawn compiler 3.2.3664              Copyright (c1997-2006ITB CompuPhase

Header size
:           4024 bytes
Code size
:           147604 bytes
Data size
:           871920 bytes
Stack
/heap size:      16384 bytesestimated maxusageunknowndue to recursion
Total requirements
1039932 bytes 
но вылечил эту проблему так:
PHP Code:
#pragma dynamic 145000 
После как все скомпилировалось, я зашел на сервер ввел свой пароль и т.п. но у меня игрок падает на центр карты ни одна команда не работает, и вообще ничего из того что я написал в моде не функционирует. Скриптов никаких не подключено, Плагинов никаких не подключено, обьектов не используется. Загрузка машин из файла взял из Grand Larency.

Трабла началась после как я дописал еще парочку диалоговых окон, все тысячу раз перепроверил, написаны они как положено. Есть одна мысль на которую я грешу дк это массив и strins, которые использую в длинных диалоговых окон, таких окон у у меня порядка десяти. Как быть?
temka1993 is offline   Reply With Quote
Old 16/06/2011, 06:51 AM   #2
Stepashka
Godfather
 
Stepashka's Avatar
 
Join Date: Jul 2008
Location: near PC
Posts: 5,763
Reputation: 142
Default Re: Ерундит игровой мод

попробуй заккомментировать свою писанину и посмотри как будет себя вести мод.
__________________
Клятва Страуструпа: "Я обязуюсь прилежно комментировать свой код, не использовать goto и следить за состоянием своих потоков и выделяемой памяти. Я обязуюсь не оставлять мусора в системе и избегать однобуквенных переменных. Ресет." © Куч
M&M GM
Status: ON HOLD

Stepashka is online now   Reply With Quote
Old 16/06/2011, 07:10 AM   #3
temka1993
Big Clucker
 
Join Date: Feb 2011
Posts: 62
Reputation: 0
Default Re: Ерундит игровой мод

когда закоментил все стало нормально, но мне необходимы эти окна, вот как они построены:

вызов окна:
PHP Code:
    /*if (strcmp("/инфо", cmdtext, true, 10) == 0)
    {
        ShowPlayerDialog(playerid, INFODIALOG, DIALOG_STYLE_LIST, "Информация",
        "[1] Правила сервера\n\
        [2] Раработчики мода\n\
        [3] Информация о V.I.P.\n\
        [3] Администрация\n\
        [4] Команды сервера","Выбор","Отмена");
        return true;
    }*/ 
обработка окна:

PHP Code:
    /*new rulesstring[1024];
       strins(rulesstring,"\n",strlen(rulesstring));
    strins(rulesstring,"{CCFFFF}=========================================================================================================\n",strlen(rulesstring));
    strins(rulesstring,"{FF0000}1. {CCFFFF}Запрещаются любые скрипты/читы/моды/программы которые имеют приемущества над игроками.\n",strlen(rulesstring));
    strins(rulesstring,"{FF0000}2. {99FFFF}Запрещается мат в общий чат в адрес игроков или администрации, а так же флуд.\n",strlen(rulesstring));
    strins(rulesstring,"{FF0000}3. {66FFFF}Запрещается реклама посторонних ресурсов/порталов/групп/IP адресов и т.п.\n",strlen(rulesstring));
    strins(rulesstring,"{FF0000}4. {33FFFF}Не приветствуется Spawn-Kill (убийство игрока на месте его появления)\n",strlen(rulesstring));
    strins(rulesstring,"{FF0000}5. {00FFFF}На сервере разрешено DB (убийство игроков с помощью автомобилей/транспорта)\n",strlen(rulesstring));
    strins(rulesstring,"{FF0000}6. {00CCCC}Все вопросы касающиеся работы сервера необходимо задавать в группу или на форум.\n",strlen(rulesstring));
    strins(rulesstring,"{FF0000}7. {009999}Если Вы увидели читера, писать нужно в /жб [ID] [причина], а не в общий чат или ЛС!\n",strlen(rulesstring));
    strins(rulesstring,"{009999}=========================================================================================================\n",strlen(rulesstring));
    strins(rulesstring,"{FF0000}* {009999}За любое нарушение из вышеперечисленных правил аккаунт может быть заблокирован на время или забанен!",strlen(rulesstring));

    new aboutstring[1024];
    strins(aboutstring,"\n",strlen(aboutstring));
    strins(aboutstring,"{CCFFFF}========================================================\n",strlen(aboutstring));
    strins(aboutstring,"{99FFFF}Игровой мод {FF0000}SF-DM V1.0 By BURN, {99FFFF}обновление от {FF0000}16.06.2011\n",strlen(aboutstring));
    strins(aboutstring,"{99FFFF}Rainbow Tab By OKStyle и REALman, Русские ники By Roman1us\n",strlen(aboutstring));
    strins(aboutstring,"{66FFFF}Обо всех замеченных багах просьба сообщить разработчику\n",strlen(aboutstring));
    strins(aboutstring,"{33FFFF}или в группу ВКонтакте или же офф. форум.\n",strlen(aboutstring));
    strins(aboutstring,"\n",strlen(aboutstring));
    strins(aboutstring,"{00FFFF}Группа ВКонтакте: {FF0000}http://vkontakte.ru/******\n",strlen(aboutstring));
    strins(aboutstring,"{00CCCC}Адрес Офф. Форума: {FF0000}http://*****.listbb.ru/\n",strlen(aboutstring));
    strins(aboutstring,"{009999}========================================================",strlen(aboutstring));
    
    new helpvip[1024];
    strins(helpvip,"\n",strlen(helpvip));
    strins(helpvip,"{FFFFFF}====================={FF0000}Справка по V.I.P. Аккаунтам{FFFFFF}=========================\n",strlen(helpvip));
    strins(helpvip,"{FF0000}V.I.P. {FFFFFF}- это не просто игроки, а игроки которые могут:\n",strlen(helpvip));
    strins(helpvip,"1. Изменить себе скин с любого на любой\n",strlen(helpvip));
    strins(helpvip,"2. Получить себе любой автомобиль\n",strlen(helpvip));
    strins(helpvip,"3. Прикрепить себе 3D Текст, и изменять его, по умолчанию {FF0000}[V.I.P.] {FFFFFF}над ником игрока\n",strlen(helpvip));
    strins(helpvip,"4. Наблюдать за любым игроком на сервере\n",strlen(helpvip));
    strins(helpvip,"5. Починить себе машину, в любом месте и в любое время\n",strlen(helpvip));
    strins(helpvip,"6. Затюнить машину, в любом месте одним нажатием кнопки\n",strlen(helpvip));
    strins(helpvip,"7. Восстановить себе здоровье в любом месте\n",strlen(helpvip));
    strins(helpvip,"8. Восстанавливать себе броню в любом месте\n",strlen(helpvip));
    strins(helpvip,"9. Получить практически любое оружие из меню в любом месте\n",strlen(helpvip));
    strins(helpvip,"10. В чате появляется тег {FF0000}[V.I.P.] {FFFFFF}а после текст сообщения\n",strlen(helpvip));
    strins(helpvip,"11. {FF0000}V.I.P. {FFFFFF}Аккаунтам разрешено Ламо оружие т.е. в двух руках\n",strlen(helpvip));
     strins(helpvip,"\n",strlen(helpvip));
    strins(helpvip,"Для того чтобы получить {FF0000}V.I.P. {FFFFFF}Аккаунт, поговорите с Гл. Администратором сервера",strlen(helpvip));
    
    
    if(dialogid == INFODIALOG)
    {
        if(response)
        {
            if(listitem == 0)
            {
                ShowPlayerDialog(playerid, PRAVILADIALOG, DIALOG_STYLE_MSGBOX, "Правила сервера",rulesstring,"Nice","");
                return true;
            }
              if(listitem == 1)
            {
                   ShowPlayerDialog(playerid, ABOUTDIALOG, DIALOG_STYLE_MSGBOX, "Разработчики",aboutstring,"Nice","");
                   return true;
            }
            if(listitem == 2)
            {
                ShowPlayerDialog(playerid,HELPVIPDIALOG, DIALOG_STYLE_MSGBOX, "Справка по V.I.P.",helpvip,"Ок","Отмена");
                return true;
            }
            if(listitem == 3){}
              if(listitem == 4)
            {
                ShowPlayerDialog(playerid, HELPDIALOG, DIALOG_STYLE_MSGBOX, "Основные команды сервера",
                "{FF0000}/тп                {FFFFFF}- посмотреть списки телепортов\n\
                {FF0000}/анимы            {FFFFFF}- посмотреть список анимаций\n\
                {FF0000}/стиль                {FFFFFF}- посмотреть список стилей боя\n\
                {FF0000}/умереть            {FFFFFF}- совершить самоубийство\n\
                {FF0000}/лс [id] [текст]            {FFFFFF}- написать в личку игроку\n\
                {FF0000}/дать [id] [сумма]        {FFFFFF}- передать денег игроку\n\
                {FF0000}/правила            {FFFFFF}- посмотреть правила сервера\n\
                {FF0000}/дополнительно        {FFFFFF}- посмотреть дополнительные команды", "Ок", "");
                return true;
            }
        }
    }*/ 
тут все верно...имхо
temka1993 is offline   Reply With Quote
Old 16/06/2011, 07:15 AM   #4
OKStyle
High-roller
 
OKStyle's Avatar
 
Join Date: May 2008
Location: Russia, Orenburg Money: GTA$ 999,999,999
Posts: 3,125
Reputation: 142
Default Re: Ерундит игровой мод

А разве strlen места назначения надо брать? Разве не текста, вводимого в переменную?
__________________
O.K.Style™ Laboratory
Kalcor: "... it's makes the game look like it's not GTA. This mod is called San Andreas Multiplayer. It's not a custom game engine which you can script..."
OKStyle is offline   Reply With Quote
Old 16/06/2011, 07:35 AM   #5
temka1993
Big Clucker
 
Join Date: Feb 2011
Posts: 62
Reputation: 0
Default Re: Ерундит игровой мод

OKStyle дело в том что и вот так вот работало...да и работает...)

Quote:
места назначения надо брать
эт как?
temka1993 is offline   Reply With Quote
Old 16/06/2011, 07:38 AM   #6
OKStyle
High-roller
 
OKStyle's Avatar
 
Join Date: May 2008
Location: Russia, Orenburg Money: GTA$ 999,999,999
Posts: 3,125
Reputation: 142
Default Re: Ерундит игровой мод

А, я не увидел, что 4го параметра нет, да, в этом случае верно написно.
__________________
O.K.Style™ Laboratory
Kalcor: "... it's makes the game look like it's not GTA. This mod is called San Andreas Multiplayer. It's not a custom game engine which you can script..."
OKStyle is offline   Reply With Quote
Old 16/06/2011, 07:47 AM   #7
Stepashka
Godfather
 
Stepashka's Avatar
 
Join Date: Jul 2008
Location: near PC
Posts: 5,763
Reputation: 142
Default Re: Ерундит игровой мод

  1. избався от 3 огромных массивов, сделай 1, а их заполнение перенеси внутрь If'ов, прямо перед выводом каждого диалога.
  2. if(listitem == 0) замени на switch(listitem){case 0:{}...}
ты уверен что твои тексты не превышают 1024 символа?
__________________
Клятва Страуструпа: "Я обязуюсь прилежно комментировать свой код, не использовать goto и следить за состоянием своих потоков и выделяемой памяти. Я обязуюсь не оставлять мусора в системе и избегать однобуквенных переменных. Ресет." © Куч
M&M GM
Status: ON HOLD

Stepashka is online now   Reply With Quote
Old 16/06/2011, 07:48 AM   #8
temka1993
Big Clucker
 
Join Date: Feb 2011
Posts: 62
Reputation: 0
Default Re: Ерундит игровой мод

Stepashka уверен, есть и подлиннее диалог) работает нормально, как у меня будет работать 1 массив, раздельно для каждого диалога? я хотел все "по полочкам"
temka1993 is offline   Reply With Quote
Old 16/06/2011, 07:55 AM   #9
OKStyle
High-roller
 
OKStyle's Avatar
 
Join Date: May 2008
Location: Russia, Orenburg Money: GTA$ 999,999,999
Posts: 3,125
Reputation: 142
Default Re: Ерундит игровой мод

У тебя маленький размер переменных строковых... Сейчас в фс накидал твой код, при выборе пункта диалога не выводилось окно с информацией... Сделай > 2000, а не 1024... Я поставил 3072 вообще.. И #pragma dynamic 14000
__________________
O.K.Style™ Laboratory
Kalcor: "... it's makes the game look like it's not GTA. This mod is called San Andreas Multiplayer. It's not a custom game engine which you can script..."
OKStyle is offline   Reply With Quote
Old 16/06/2011, 07:58 AM   #10
temka1993
Big Clucker
 
Join Date: Feb 2011
Posts: 62
Reputation: 0
Default Re: Ерундит игровой мод

OKStyle именно, диалоглист вылазит. а вот информационные диалоги не хотят...после чего диалоглист вызываемый командой не появляется вообще, а лишь сообщение: SERVER: unknown command

щас буду шарудить

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

кстати, пробелы за символы считаются?
temka1993 is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off



All times are GMT. The time now is 08:36 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2020, Jelsoft Enterprises Ltd.