Контакты Поиск

[ вход ]
[ последние сообщения ]

  • Страница 1 из 2
  • 1
  • 2
  • »
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » Random (Как использовать?)
Random
pro-health Дата: Суббота, 11.10.2014, 06:58:24 | Сообщение # 1
Сообщений: 188
Репутация: 5 [ +/- ]
Как использовать?
Код
new String:sTextureList[][] = {   
      "effects/gunshipmuzzle.vmt",   
      "effects/yellowflare.vmt",   
      "effects/combineshield/comshieldwall.vmt",   
      "effects/combine_binocoverlay.vmt",   
      "effects/bluespark.vmt"  
};  
 
хвостег Дата: Суббота, 11.10.2014, 12:26:35 | Сообщение # 2
Сообщений: 161
Репутация: 53 [ +/- ]
как-то так.
sTextureList[GetRandomInt(0, sizeof(sTextureList)-1)]
 
Sallcom Дата: Суббота, 11.10.2014, 18:12:08 | Сообщение # 3
Сообщений: 206
Репутация: 31 [ +/- ]
Я уже писал об этом вот в этой теме:
http://world-source.ru/forum/102-3707-23766-16-1412159822

P.S. Прежде чем создавать новую тему, прочитайте внимательно другие, ибо список .vmt файлов явно скопирован из той темы.


Сообщение отредактировал Sallcom - Суббота, 11.10.2014, 19:11:16
 
pro-health Дата: Воскресенье, 12.10.2014, 06:26:23 | Сообщение # 4
Сообщений: 188
Репутация: 5 [ +/- ]
Sallcom, я знаю но как их применить рандомно?

Добавлено (12.10.2014, 06:26:23)
---------------------------------------------

Цитата
DispatchKeyValue(ent, "Material", sTextureList[GetRandomInt(0, sizeof(sTextureList)-1)]);

Не робит.
 
king(rus) Дата: Воскресенье, 12.10.2014, 08:16:21 | Сообщение # 5
Сообщений: 109
Репутация: 2 [ +/- ]
Цитата pro-health ()
Sallcom, я знаю но как их применить рандомно?
Добавлено (12.10.2014, 06:26:23)
---------------------------------------------
Цитата
DispatchKeyValue(ent, "Material", sTextureList[GetRandomInt(0, sizeof(sTextureList)-1)]);

Не робит.


Конечно. Потому что ты не делаешь PrecacheModel для своих vmt файлов.
 
Sallcom Дата: Воскресенье, 12.10.2014, 15:06:47 | Сообщение # 6
Сообщений: 206
Репутация: 31 [ +/- ]
Цитата king(rus) ()
Конечно. Потому что ты не делаешь PrecacheModel для своих vmt файлов.

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

Если так и не понял, как вызвать строку, то вот думаю на этом примере поймешь:
Код

#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 - Понедельник, 13.10.2014, 00:11:04
 
king(rus) Дата: Воскресенье, 12.10.2014, 15:35:11 | Сообщение # 7
Сообщений: 109
Репутация: 2 [ +/- ]
PrintToChatAll("%s", sTextureList[GetRandomInt(0, sizeof(sTextureList)-1)]);

Тут есть ошибка. Ну не ошибка, а незнание того, чего ты делаешь.
GetRandomInt резервирует уже \O и -1 делать не нужно.

И прекеш делать нужно!!!


Сообщение отредактировал king(rus) - Воскресенье, 12.10.2014, 15:38:58
 
хвостег Дата: Воскресенье, 12.10.2014, 21:33:22 | Сообщение # 8
Сообщений: 161
Репутация: 53 [ +/- ]
king(rus), ты сам понимаешь что чушь несешь?
Цитата king(rus) ()
Тут есть ошибка. Ну не ошибка, а незнание того, чего ты делаешь.
GetRandomInt резервирует уже \O и -1 делать не нужно.


1 - Ошибок тут нет.
2 - Что это за бред - GetRandomInt резервирует уже \O. GetRandomInt - возвращает целое число из диапазона! Ничего он не резервирует!
3 - -1 делать не нужно. еще одна чушь. sizeof() - возвращает длину массива будь то строковый или числовой или строка(строка - массив байт),
в этом примере 5 строк!!!!! считаем по порядку
new String:sTextureList[][] = {
"effects/gunshipmuzzle.vmt", 1
"effects/yellowflare.vmt", 2
"effects/combineshield/comshieldwall.vmt", 3
"effects/combine_binocoverlay.vmt", 4
"effects/bluespark.vmt" 5
};

sizeof(sTextureList) - вернет нам 5!

возвращаемся к нашим баранам.

индексирование в массиве начинается с НУЛЯ это значит что последний индекс 4
отсюда следует выражение GetRandomInt(0, sizeof(sTextureList)-1) после выполнения мы получим целое число от 0 до 4 включительно!
ВСЕ КОНЕЦ.

Цитата king(rus) ()
а незнание того, чего ты делаешь.

вот если не знаешь, лучше не пиши вообще.
 
«SeReGa»☆ Дата: Воскресенье, 12.10.2014, 23:00:14 | Сообщение # 9
Сообщений: 395
Репутация: 37 [ +/- ]
Код
GetRandomInt(0, sizeof(sTextureList)-1)

ет для того чтоб в ручную не щитать, автоматом от 0 до последнего.

Добавлено (12.10.2014, 23:00:14)
---------------------------------------------
если не нравится подобное ,не спорь сделай в ручную.
Код
GetRandomInt(0, 4)


Сообщение отредактировал «SeReGa»☆ - Воскресенье, 12.10.2014, 23:01:02
 
Sallcom Дата: Воскресенье, 12.10.2014, 23:52:06 | Сообщение # 10
Сообщений: 206
Репутация: 31 [ +/- ]
Цитата king(rus) ()
И прекеш делать нужно!!!

Ты вообще не понимаешь суть данного примера.
А я объясню, код выше при старте карты пишет случайную строку из списка, который, в свою очередь, может быть любой, не обязательно список .vmt файлов.

sTextureList[GetRandomInt(0, sizeof(sTextureList)-1)], использовано sizeof(...), потому что предусмотрен вариант, когда мы не знаем количество элементов в массиве.


Сообщение отредактировал Sallcom - Понедельник, 13.10.2014, 00:06:30
 
king(rus) Дата: Понедельник, 13.10.2014, 06:58:00 | Сообщение # 11
Сообщений: 109
Репутация: 2 [ +/- ]
Цитата хвостег ()
king(rus), ты сам понимаешь что чушь несешь?
Цитата king(rus писал(а):)
Тут есть ошибка. Ну не ошибка, а незнание того, чего ты делаешь.
GetRandomInt резервирует уже \O и -1 делать не нужно.

1 - Ошибок тут нет.
2 - Что это за бред - GetRandomInt резервирует уже \O. GetRandomInt - возвращает целое число из диапазона! Ничего он не резервирует!
3 - -1 делать не нужно. еще одна чушь. sizeof() - возвращает длину массива будь то строковый или числовой или строка(строка - массив байт),
в этом примере 5 строк!!!!! считаем по порядку
new String:sTextureList[][] = {
"effects/gunshipmuzzle.vmt", 1
"effects/yellowflare.vmt", 2
"effects/combineshield/comshieldwall.vmt", 3
"effects/combine_binocoverlay.vmt", 4
"effects/bluespark.vmt" 5
};

sizeof(sTextureList) - вернет нам 5!

возвращаемся к нашим баранам.

индексирование в массиве начинается с НУЛЯ это значит что последний индекс 4
отсюда следует выражение GetRandomInt(0, sizeof(sTextureList)-1) после выполнения мы получим целое число от 0 до 4 включительно!
ВСЕ КОНЕЦ.

Цитата king(rus писал(а):)
а незнание того, чего ты делаешь.

вот если не знаешь, лучше не пиши вообще.

Цитата Sallcom ()
Цитата king(rus писал(а):)
И прекеш делать нужно!!!

Ты вообще не понимаешь суть данного примера.
А я объясню, код выше при старте карты пишет случайную строку из списка, который, в свою очередь, может быть любой, не обязательно список .vmt файлов.

sTextureList[GetRandomInt(0, sizeof(sTextureList)-1)], использовано sizeof(...), потому что предусмотрен вариант, когда мы не знаем количество элементов в массиве.


Вы хотите сказать, что надо тупо выбрать строчку? И всё? С ней больше ничего не делать? Зачем так? В этом нету логики. Если тренироваться, то сначала на числах.

На счёт sizeof(). Написал бы ты на хлмод - тебя бы разнесли в пух и прах.

sizeof() -1 можно не делать
потому что функции всё равно резервируют 1 символ под \0 конец строки
© Reiko.
 
Sallcom Дата: Понедельник, 13.10.2014, 08:01:48 | Сообщение # 12
Сообщений: 206
Репутация: 31 [ +/- ]
Ну давай, вызови мне 5 элемен из данного массива, раз -1 делать не нужно.

Почему ты думаешь, что на хлмодe люди умнее тех, кто публикует темы на этом форуме?

И вообще я и большинство других людей с этого форума, тоже сидят на хлмоде, т.е. получается ты говоришь, что мы "тупые" и умные одновременно.

P.S. Как же мне нравится видеть лицо целовека, когда он после нескольких попыток доказания чего-либо, понимает, что был не прав, а сейчас как раз такая ситуация. Так что остается только ждать, пока ты сам не попробуешь сделать так, как ты пишешь.


Сообщение отредактировал Sallcom - Понедельник, 13.10.2014, 08:07:43
 
pro-health Дата: Понедельник, 13.10.2014, 12:49:50 | Сообщение # 13
Сообщений: 188
Репутация: 5 [ +/- ]
Цитата 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, 13:56:50 | Сообщение # 14
Сообщений: 109
Репутация: 2 [ +/- ]
Цитата Sallcom ()
Ну давай, вызови мне 5 элемен из данного массива, раз -1 делать не нужно.

Почему ты думаешь, что на хлмодe люди умнее тех, кто публикует темы на этом форуме?

И вообще я и большинство других людей с этого форума, тоже сидят на хлмоде, т.е. получается ты говоришь, что мы "тупые" и умные одновременно.

P.S. Как же мне нравится видеть лицо целовека, когда он после нескольких попыток доказания чего-либо, понимает, что был не прав, а сейчас как раз такая ситуация. Так что остается только ждать, пока ты сам не попробуешь сделать так, как ты пишешь.



Давай пойдём от примитивного. Зачем ты пишешь -1?
 
BarD Дата: Понедельник, 13.10.2014, 15:02:12 | Сообщение # 15
Сообщений: 942
Репутация: 133 [ +/- ]
king(rus), R1KO передает:

Прикрепления: 9980089.jpg(33.2 Kb)
 
Форум » SourceMod >> CS:Source >> CSGO » Обсуждение » Random (Как использовать?)
  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск: