Random
| |
pro-health
|
Дата: Понедельник, 13.10.2014, 15:34:48 | Сообщение # 16 |
![Пользователь](http://world-source.ru/groupicon/user_icon.jpg) |
Сообщений: 188
Репутация: 5 [ +/- ]
|
|
Может хватит выяснять отношения?Добавлено (13.10.2014, 15:34:48) ---------------------------------------------
Цитата pro-health ( ![Ссылка на цитируемый текст](http://s9.ucoz.net/img/fr/ic/2/lastpost.gif) ) Цитата Sallcom писал(а): #include <sourcemod>
new String:sTextureList[][] = { "effects/gunshipmuzzle.vmt", "effects/yellowflare.vmt", "effects/combineshield/comshieldwall.vmt", "effects/combine_binocoverlay.vmt", "effects/bluespark.vmt" };
public OnMapStart(){ PrintToChatAll("%s", sTextureList[GetRandomInt(0, sizeof(sTextureList)-1)]); }
Sallcom, понял а как сделать это с командой r_screenoverlay Так как то вроде.... Код FakeClientCommand("r_screenoverlay %s", sTextureList[GetRandomInt(0, sizeof(sTextureList)-1)]);
|
|
| |
king(rus)
|
Дата: Понедельник, 13.10.2014, 15:50:39 | Сообщение # 17 |
![Пользователь](http://world-source.ru/groupicon/user_icon.jpg) |
Сообщений: 109
Репутация: 2 [ +/- ]
|
|
Цитата BarD ( ![Ссылка на цитируемый текст](http://s9.ucoz.net/img/fr/ic/2/lastpost.gif) ) king(rus), R1KO передает:
Прикрепления: 9980089.jpg(33Kb)
Эх.. и сасать вам
Гости не могут скачивать файлы
|
Сообщение отредактировал king(rus) - Понедельник, 13.10.2014, 16:48:51 |
|
| |
Sallcom
|
Дата: Понедельник, 13.10.2014, 17:04:58 | Сообщение # 18 |
![Пользователь](http://world-source.ru/groupicon/user_icon.jpg) |
Сообщений: 205
Репутация: 31 [ +/- ]
|
|
Цитата king(rus) ( ![Ссылка на цитируемый текст](http://s9.ucoz.net/img/fr/ic/2/lastpost.gif) ) Эх.. и сасать вам Удачи тебе и "быдло" кодеру, который даже не знает, как работает функция sizeof(...).
А для наглядности, держи скрины. Как мы уже знаем sizeof(sTextureList) вернет нам 5, то есть:
Так как ты и твой "знакомый" говорит, что -1 делать не нужно, тогда представим, что рандомом нам выпал sizeof, который в конечном итоге будет равен 5, то пробуем скомпилировать вызов 5 элемента. Для тех, кто не знает, в ошибке написано: "Индекс выходит за границы массива".
И на счет зарезервированного символа '\0', данный символ есть именно в строке и явно его вызвать нельзя, т.е. если у тебя будет вот так: Код new String:sValue[8];
Ты не сможешь скомпилировать плагин, если там будет вот такая запись: Код PrintToServer("%s", sValue[8]); Ибо выведет такую же ошибку.
Я, думаю, что R1KO имел в виду то, что при цикле for, почти всегда пишется просто sizeof(...) без минуса, потому что зачастую там условие i < sizeof(...).
Холивар на этом окончен. Идите учите теорию, и прежде чем доказывать что-либо, сначала попробуйте реализовать то, о чем говорите.
Гости не могут скачивать файлы
|
Сообщение отредактировал Sallcom - Понедельник, 13.10.2014, 17:23:08 |
|
| |
king(rus)
|
Дата: Понедельник, 13.10.2014, 17:29:19 | Сообщение # 19 |
![Пользователь](http://world-source.ru/groupicon/user_icon.jpg) |
Сообщений: 109
Репутация: 2 [ +/- ]
|
|
Да, верно.
Сообщение отредактировал king(rus) - Понедельник, 13.10.2014, 17:32:28 |
|
| | |
хвостег
|
Дата: Понедельник, 13.10.2014, 18:21:25 | Сообщение # 21 |
![Пользователь](http://world-source.ru/groupicon/user_icon.jpg) |
Сообщений: 161
Репутация: 53 [ +/- ]
|
|
Цитата king(rus) ( ![Ссылка на цитируемый текст](http://s9.ucoz.net/img/fr/ic/2/lastpost.gif) ) На счёт sizeof(). Написал бы ты на хлмод - тебя бы разнесли в пух и прах. Для тех кто в танке засел намертво, повторю еще раз. sizeof(...) - возвращает длину массива, будь то строковый, числовой или строка (строка - массив байт). И в завершении кури исходник.
Код new String:Str[10];
new String:Array[][] = { "1", "2", "3", "4", "5", "6", "7", "8", "9", "10" };
new NumArray[] = { 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
public OnPluginStart() { PrintToServer("******************Stage 1*********************"); Str = "12345"; PrintToServer("String: %s", Str); PrintToServer("sizeof(Str): %d | strlen(Str): %d", sizeof(Str), strlen(Str)); for(new i = 0; i < sizeof(Str); i++) { PrintToServer("Byte[%d] Hex: %02X", i, (Str[i] & 0xFF)); } PrintToServer("******************Stage 2*********************"); Str = "0123456789" PrintToServer("String: %s", Str); PrintToServer("sizeof(Str): %d | strlen(Str): %d", sizeof(Str), strlen(Str)); for(new i = 0; i < sizeof(Str); i++) { PrintToServer("Byte[%d] Hex: %02X", i, (Str[i] & 0xFF)); } PrintToServer("******************Stage 3*********************"); PrintToServer("sizeof(Array): %d", sizeof(Array)); for(new i = 0; i < sizeof(Array); i++) { PrintToServer("String Array Item[%d]: %s", i, Array[i]); } PrintToServer("******************Stage 4*********************"); PrintToServer("sizeof(NumArray) : %d", sizeof(NumArray)); for(new i = 0; i < sizeof(NumArray); i++) { PrintToServer("Number Array Item[%d]: %d", i, NumArray[i]); } PrintToServer("********************End***********************"); }
|
|
| |
Sallcom
|
Дата: Понедельник, 13.10.2014, 18:31:41 | Сообщение # 22 |
![Пользователь](http://world-source.ru/groupicon/user_icon.jpg) |
Сообщений: 205
Репутация: 31 [ +/- ]
|
|
Цитата хвостег ( ![Ссылка на цитируемый текст](http://s9.ucoz.net/img/fr/ic/2/lastpost.gif) ) sizeof(...) - возвращает длину массива Хвостег, второй раз уже так пишешь))) Мне кажется, правильней будет сказать, что sizeof(...) возвращается размер массива, ибо длину строки(это тоже массив) мы узнаем при помощи strlen(...).
Сообщение отредактировал Sallcom - Понедельник, 13.10.2014, 18:32:18 |
|
| |
pro-health
|
Дата: Понедельник, 13.10.2014, 18:50:51 | Сообщение # 23 |
![Пользователь](http://world-source.ru/groupicon/user_icon.jpg) |
Сообщений: 188
Репутация: 5 [ +/- ]
|
|
Народ а мне чё кто то поможет?
|
|
| |
Sallcom
|
Дата: Понедельник, 13.10.2014, 18:53:55 | Сообщение # 24 |
![Пользователь](http://world-source.ru/groupicon/user_icon.jpg) |
Сообщений: 205
Репутация: 31 [ +/- ]
|
|
Цитата pro-health ( ![Ссылка на цитируемый текст](http://s9.ucoz.net/img/fr/ic/2/lastpost.gif) ) Народ а мне чё кто то поможет?
Код new String:sTextureList[][] = { "effects/gunshipmuzzle.vmt", "effects/yellowflare.vmt", "effects/combineshield/comshieldwall.vmt", "effects/combine_binocoverlay.vmt", "effects/bluespark.vmt" };
Чтобы вызвать случайный элемент из этого списка, пиши sTextureList[GetRandomInt(0, sizeof(sTextureList)-1)]
|
|
| |
хвостег
|
Дата: Понедельник, 13.10.2014, 21:43:40 | Сообщение # 25 |
![Пользователь](http://world-source.ru/groupicon/user_icon.jpg) |
Сообщений: 161
Репутация: 53 [ +/- ]
|
|
Цитата Sallcom ( ![Ссылка на цитируемый текст](http://s9.ucoz.net/img/fr/ic/2/lastpost.gif) ) Мне кажется, правильней будет сказать, что sizeof(...) возвращается размер массива, ибо длину строки(это тоже массив) мы узнаем при помощи strlen(...). Как не перефразируй, смысл один sizeof() - вернет длину\размер массива, а strlen() - количество байт до нуль-терминатора. хепи енд.
Сообщение отредактировал хвостег - Понедельник, 13.10.2014, 21:50:18 |
|
| |
|