00:22
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
        
[SA-MP] Hosted Tab (116)
DieSeL 17.05.2017 17:33
Физрук (15)
Lanablogger1 16.05.2017 16:00
 





Рекомендуем:
Добавить IP: 95.172.59.51:7777





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
Скачать GTA SAMP 0.3.7 - Кл... 20.07.2015
Страница 1 из 11
Модератор форума: AXE, Weddew 
Форум SAMP о мультиплеерах для GTA. » SAMP скачивание и обсуждение » Вопросы и Проблемы » Enum в аргументах (тест на знания)
Enum в аргументах (тест на знания)
AirKiteДата: Среда, 25.04.2012, 05:30 | Сообщение # 1
Долгожитель
Группа: I'm V.I.P.
Сообщений: 1671
Награды: 21
Город: Новосибирск
Репутация: 2070
Замечания: 0%
Статус:
Собственно стало интересно, насколько быстро можно получить ответ на такой простой вопрос, в русском сообществе. Только что задавал его на sa-mp.com. В качество ответа я получил целых 2 поста, на которые невозможно смотреть без facepalm. В итоге к ответу пришёл сам, интуитивно. Либо это где то у меня уже лежало в памяти, но я забыл.

Собственно вопрос решение задачи:
Code

enum enum_test{
    test,
    test_string[128],
    lol
};
new test[123][enum_test];

Simple_test_int(count, enum_c) {
    return test[count][enum_c];
}


Code

warning 213: tag mismatch // на строке: return test[playerid][enum_c]


UPD: Хах, далее опять наткнулся на мелочь, спасибо [RD]Chez, по ходу шуток натолкнулись на поправку ещё дополнительной проблемы :D Так что иногда идеи которые на первый взгляд выглядят CRAZY могут быть очень даже адекватными crazy



[1337GAMES] Easy RP
(SAMP SERVER, DEVELOPMENT, NOT SAMP-RP, SMART LIFE)


Jabber: airkite@qip.ru
[Addon] QuickBinder
[FS] Online Players Record


Сообщение отредактировал AirKite - Среда, 25.04.2012, 06:11
VagrantДата: Среда, 25.04.2012, 09:59 | Сообщение # 2
Уважаемый человек
Группа: I'm V.I.P.
Сообщений: 904
Награды: 21
Город: Находка
Репутация: 489
Замечания: 0%
Статус:
Вопрос хороший, просидел 20 минут, пока не догадался до такого способа. Кстати говоря, как-то давно видел такое в одном скрипте.
Quote (AirKite)
return test[playerid][enum_c]

return test[count][enum_test:enum_c]
Code
enum enum_test
{
       test,
       test_string[128],
       lol
};

new what[123][enum_test];

Simple_test_int(count, enum_c)
{
       return what[count][enum_test:enum_c];
}

Как я понял, это используется для указания определённой нумерации, то есть енума. При таком использовании даже удобнее, так как функцию можно уже писать: Simple_test_int(120, test);
Code
Simple_test_int(count, enum_test:enum_c) // Ну или указать вот так.
{
       return what[count][enum_c];
}



Человек учась ходить падает, и только падая, он учится ходить!
Мои работы:
[GM] W.F.S.A. V. 1.0 - 100%
[GM] San Fierro Enigmatic (TDM) V. 1.0 - 100%
[FS] Clan House V. 1.0 - 100%
[FS] Save Car Tun System V. 1.0 - 100%
[FS] Vagrant Anti-CapsLock V. 2.1 - 100%
[FS] Vagrant Anti-Advertise V. 1.1, V. 2.0 - 100%
[APP] SA-MP Interior Viewer V. 1.0 - 100%

Принимаю заказы на помощь в скриптинге!


Сообщение отредактировал Vagrant - Среда, 25.04.2012, 10:12
AirKiteДата: Среда, 25.04.2012, 10:11 | Сообщение # 3
Долгожитель
Группа: I'm V.I.P.
Сообщений: 1671
Награды: 21
Город: Новосибирск
Репутация: 2070
Замечания: 0%
Статус:
Vagrant, всё верно. Только я походу подогнался что Simple_test_int(count, const enum_c) нужен о_О. Я с просони, а [RD]Chez наоборот с засони crazy А казалось:
Quote (AirKite)
иногда идеи которые на первый взгляд выглядят CRAZY могут быть очень даже адекватными


Тема на sa-mp.com забавней: http://forum.sa-mp.com/showthread.php?p=1820449



[1337GAMES] Easy RP
(SAMP SERVER, DEVELOPMENT, NOT SAMP-RP, SMART LIFE)


Jabber: airkite@qip.ru
[Addon] QuickBinder
[FS] Online Players Record
VagrantДата: Среда, 25.04.2012, 10:19 | Сообщение # 4
Уважаемый человек
Группа: I'm V.I.P.
Сообщений: 904
Награды: 21
Город: Находка
Репутация: 489
Замечания: 0%
Статус:
AirKite, const? У меня был первый вариант именно с const. Но потом я подумал зачем здесь конст, если номер столбца никак не изменится в любом случае. Или может я что-то про const не знаю.
На sa-mp.com больше всего убил этот ответ:
Quote
enum enum_test{
test,
test_string[128],
lol
};
new test[123][enum_test];
Simple_test_int(count, enum_c) {
return test[count][enum_c];
{}
}

Гениально мать его. :D
Ну следующий ответ в принципе и не удивил, особенно после первого этого стоило ожидать. Как по моему большинство американцев любит писать в стиле: new test [ 123 ] [ enum_test ] ;
Добавил:
Я думаю правильнее всё таки будет второй мой вариант:
Code
Simple_test_int(count, enum_test:enum_c)
{
      return what[count][enum_c];
}

Так как если написать:
Code
Simple_test_int(count, const enum_c)
{
      return what[count][enum_test:enum_c];
}

А потом далее использовать функцию так: Simple_test_int(120, 8); То компилятор промолчит. А иначе, как в первом варианте, будет такой же варнинг :) (warning 213: tag mismatch), что бы не допускать лишних ошибок в моде, это будет полезнее.



Человек учась ходить падает, и только падая, он учится ходить!
Мои работы:
[GM] W.F.S.A. V. 1.0 - 100%
[GM] San Fierro Enigmatic (TDM) V. 1.0 - 100%
[FS] Clan House V. 1.0 - 100%
[FS] Save Car Tun System V. 1.0 - 100%
[FS] Vagrant Anti-CapsLock V. 2.1 - 100%
[FS] Vagrant Anti-Advertise V. 1.1, V. 2.0 - 100%
[APP] SA-MP Interior Viewer V. 1.0 - 100%

Принимаю заказы на помощь в скриптинге!


Сообщение отредактировал Vagrant - Среда, 25.04.2012, 10:32
МолорищеДата: Среда, 25.04.2012, 10:55 | Сообщение # 5
Молор
Группа: Продвинутые
Сообщений: 427
Награды: 11
Город: Санкт Петербург
Замечания: 0%
Статус:
[off]
Quote (AirKite)
const

Объясните наконец, что это вообще значит?[/off]

Че то я не допер, что тебе вообще надо от этого enum'а, AirKite



Мне нечего делать.
AirKiteДата: Среда, 25.04.2012, 11:04 | Сообщение # 6
Долгожитель
Группа: I'm V.I.P.
Сообщений: 1671
Награды: 21
Город: Новосибирск
Репутация: 2070
Замечания: 0%
Статус:
Vagrant, смотря как использовать. твой вариант enum_test:enum_c не подойдёт для what[count][enum_c+1]
[off]
Quote (Fiskar)
const

Объясните наконец, что это вообще значит?

Тебя прям как в гугле забанили crazy

const помогает избежать перезаписи данных. погугли "const", почитай [/off]



[1337GAMES] Easy RP
(SAMP SERVER, DEVELOPMENT, NOT SAMP-RP, SMART LIFE)


Jabber: airkite@qip.ru
[Addon] QuickBinder
[FS] Online Players Record


Сообщение отредактировал AirKite - Среда, 25.04.2012, 11:10
GeryyДата: Среда, 25.04.2012, 11:10 | Сообщение # 7
Советчик
Группа: Ангел Хранитель
Сообщений: 1187
Награды: 24
Город: Москва
Репутация: 785
Замечания: 0%
Статус:
Quote (AirKite)
смотря как использовать. твой вариант enum_test:enum_c не подойдёт для what[count][enum_c+1]

не, ну в общем-то конечно пойдет, хоть ругаться и будет. Но зачем это надо вообще? енумы для того и сделаны, чтоб не париться с цифрами.



Добавить SAMP сервер в спец. вкладку HOSTED 450-500 р.
VagrantДата: Среда, 25.04.2012, 11:50 | Сообщение # 8
Уважаемый человек
Группа: I'm V.I.P.
Сообщений: 904
Награды: 21
Город: Находка
Репутация: 489
Замечания: 0%
Статус:
Quote (AirKite)
Vagrant, смотря как использовать. твой вариант enum_test:enum_c не подойдёт для what[count][enum_c+1]

В принципе тоже верно.
Quote (Geryy)
не, ну в общем-то конечно пойдет, хоть ругаться и будет. Но зачем это надо вообще? енумы для того и сделаны, чтоб не париться с цифрами.

Например при использовании циклов. Пример:
Quote
enum pweap
{
pWe1,
pAm1,
pWe2,
pAm2,
pWe3,
pAm3,
pWe4,
pAm4,
pWe5,
pAm5
};

new PlayerWeap[MAX_PLAYERS][pweap];

InfoAmmo(playerid, const enum_c)
{
return PlayerWeap[playerid][pweap:enum_c];
}

for(new playerid=0,i=0;i<11;i++)
{
printf("%d: %d",i,InfoAmmo(playerid,i+1));
i++;
}

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

Fiskar, const - это константа, то есть при объявлении константы const val = 100; это тоже самое что если ты напишешь #define val 100, при использовании позволяет избежать перезаписи данных. Так как константа не может быть изменена, на то она так и называется.
Quote (Википедия)

Конста́нта в программировании — способ адресования данных, изменение которых рассматриваемой программой запрещено.



Человек учась ходить падает, и только падая, он учится ходить!
Мои работы:
[GM] W.F.S.A. V. 1.0 - 100%
[GM] San Fierro Enigmatic (TDM) V. 1.0 - 100%
[FS] Clan House V. 1.0 - 100%
[FS] Save Car Tun System V. 1.0 - 100%
[FS] Vagrant Anti-CapsLock V. 2.1 - 100%
[FS] Vagrant Anti-Advertise V. 1.1, V. 2.0 - 100%
[APP] SA-MP Interior Viewer V. 1.0 - 100%

Принимаю заказы на помощь в скриптинге!


Сообщение отредактировал Vagrant - Среда, 25.04.2012, 11:56
LatronДата: Среда, 25.04.2012, 13:15 | Сообщение # 9
Группа: I'm V.I.P.
Сообщений: 2115
Награды: 22
Город: Орел
Репутация: 1604
Замечания: 0%
Статус:
Fiskar, Конста́нта в программировании — способ адресования данных, изменение которых рассматриваемой программой запрещено. ( вики )
const - ( константа ) - постоянное значение которое не может меняться.
Например: new const array[ ] = "Lorem Ipsum";

Добавлено (25.04.2012, 13:15)
---------------------------------------------
Оу, Vagrant, не заметил что ты уже дал ответ))


Моё портфолио

Мои работы:
[ Lesson ] Операторы в PAWN.
[ Lesson ] Переменная.
[ GM ] RegSys. ( Last update: 21.04.2012 )




Улыбайся всем как можно шире - =)) Они должны быть уверены,что ты холодная лицемерная сволочь. © Виктор Пелевин


Сообщение отредактировал Latron - Среда, 25.04.2012, 13:15
AirKiteДата: Среда, 25.04.2012, 17:09 | Сообщение # 10
Долгожитель
Группа: I'm V.I.P.
Сообщений: 1671
Награды: 21
Город: Новосибирск
Репутация: 2070
Замечания: 0%
Статус:
Quote (Vagrant)
const val = 100; это тоже самое что если ты напишешь #define val 100

Максимум только с точки зрения перезаписи, но вещи совсем разные. new const var = 100; создаёт var со значением 100, не позволяет. define обработчик компилятором равный тому же что если вы бы пробежались по исходнику заменив VAR на 100 (#define VAR 100).

Quote (Geryy)
Но зачем это надо вообще? енумы для того и сделаны, чтоб не париться с цифрами.

Так циферки никто и не предлагает использовать. Пример: Simple_test_int(123, blablabla);
В моём случае это пригодилось для создания функции, идеология которой требовала использовать постоянно 2 enum-а.
Типа:
Code
enum blabla{
      test,
      test_two,
      test2,
      test2_two,
      lol,
      lol_two
}

Используем в качестве аргумента enum Simple_test_int(test); а внутри уже обрабатываем enum_c и enum_c+1 как нам нужно.

Я мог подобное сделать #define-ом, однако как уже выше я говорил, это всего лишь автозамена. В данном случае же, я сделал не только удобность кода но и его оптимизацию.



[1337GAMES] Easy RP
(SAMP SERVER, DEVELOPMENT, NOT SAMP-RP, SMART LIFE)


Jabber: airkite@qip.ru
[Addon] QuickBinder
[FS] Online Players Record


Сообщение отредактировал AirKite - Среда, 25.04.2012, 17:11
VagrantДата: Среда, 25.04.2012, 17:37 | Сообщение # 11
Уважаемый человек
Группа: I'm V.I.P.
Сообщений: 904
Награды: 21
Город: Находка
Репутация: 489
Замечания: 0%
Статус:
Quote (AirKite)
define обработчик компилятором равный тому же что если вы бы пробежались по исходнику заменив VAR на 100 (#define VAR 100).

Позор мне, я это знаю но почему-то отложилось в моей памяти как нужная и верная информация:
Quote (Vagrant)
return test[count][enum_test:enum_c]

Так и не верная:
Quote (Vagrant)
это тоже самое что если ты напишешь #define val 100



Человек учась ходить падает, и только падая, он учится ходить!
Мои работы:
[GM] W.F.S.A. V. 1.0 - 100%
[GM] San Fierro Enigmatic (TDM) V. 1.0 - 100%
[FS] Clan House V. 1.0 - 100%
[FS] Save Car Tun System V. 1.0 - 100%
[FS] Vagrant Anti-CapsLock V. 2.1 - 100%
[FS] Vagrant Anti-Advertise V. 1.1, V. 2.0 - 100%
[APP] SA-MP Interior Viewer V. 1.0 - 100%

Принимаю заказы на помощь в скриптинге!
Форум SAMP о мультиплеерах для GTA. » SAMP скачивание и обсуждение » Вопросы и Проблемы » Enum в аргументах (тест на знания)
Страница 1 из 11
Поиск:





 


 


 
Хостинг от uCoz SAMP-RUS.COM