 |
|
 |
|
|
|
Последние Файлы GTA 4 |
Последние Файлы GTA-MP |
Реклама |
|
|
|
|
|
[TUT] Создание рандомного спавна
| |
| EmiGrant | Дата: Суббота, 08.10.2011, 20:04 | Сообщение # 1 |
|
Долгожитель
Группа:
Продвинутые
Сообщений: 1362
Награды: 34
Город: Пятигорск
Репутация: 1653
Замечания: 40%
Статус: 
| Этот урок покажет Вам, как создать рандомный (случайный) спавн игроков.
Шаг 1: Получение координат. Для начала нам нужны координаты спавна игроков, вот легкий способ узнать их: 1. Заходим в игру. 2. Идем на место, где будет спавн игроков 3. Набираем /save, стоя на каждой позиции спавна
Примечание: можно писать не просто /save а /save random, где слово random будет комментирован и вы легко найдете потом то, что вам нужно Шаг 2: Нахождение координат.
После того, как вы сохранили все координата, вам нужно найти их. Для этого заходим в папку:
Code ...\My Documents\GTA San Andreas User Files\SAMP и открываем там файл
Шаг 3: Конвентирование координат.
Открыв этот файл мы видим примерно следующее: Code AddPlayerClass(101,1249.7258,-2047.9263,59.9209,90.2055,0,0,0,0,0,0); // random AddPlayerClass(101,1241.2084,-2057.6521,60.0190,94.9352,0,0,0,0,0,0); // random AddPlayerClass(101,1241.0105,-2052.6873,59.9975,2.8144,0,0,0,0,0,0); // random AddPlayerClass(101,718.4906,-1477.3024,5.4688,357.9947,0,0,0,0,0,0); // random AddPlayerClass(101,722.3772,-1477.2856,5.4688,272.3814,0,0,0,0,0,0); // random
Что же это?
Code AddPlayerClass(skinid, x, y, z, angle, weapon1, weapon1_ammo, weapon2, weapon2_ammo, weapon3, weapon3_ammo)
Так как нам нужны только координаты берем отсюда только значения x, y, z,
У нас остается только:
Code 1249.7258, -2047.9263, 59.9209, 90.2055 // random 1241.2084, -2057.6521, 60.0190, 94.9352 // random 1241.0105, -2052.6873, 59.9975, 2.8144 // random 718.4906, -1477.3024, 5.4688, 357.9947 // random 722.3772, -1477.2856, 5.4688, 272.3814// random
Теперь создаем массив с координатами рандомного спавна:
Code new Float:RandomSpawns[][] = { {1249.7258, -2047.9263, 59.9209, 90.2055}, // random {1241.2084, -2057.6521, 60.0190, 94.9352}, // random {1241.0105, -2052.6873, 59.9975, 2.8144}, // random {718.4906, -1477.3024, 5.4688, 357.9947}, // random {722.3772, -1477.2856, 5.4688, 272.3814} // random };
Шаг 4: Создание самого спавна.
Находим в моде Code public OnPlayerSpawn(playerid) и вставляем это:
Code new Random = random(sizeof(RandomSpawns)); SetPlayerPos(playerid, RandomSpawns[Random][0], RandomSpawns[Random][1], RandomSpawns[Random][2]); SetPlayerFacingAngle(playerid, RandomSpawns[Random][3]);
Получается примерно следующее:
Code public OnPlayerSpawn(playerid) { new Random = random(sizeof(RandomSpawns)); SetPlayerPos(playerid, RandomSpawns[Random][0], RandomSpawns[Random][1], RandomSpawns[Random][2]); SetPlayerFacingAngle(playerid, RandomSpawns[Random][3]); return 1; }
Конец. Вот и все, мы сделали рандомный спавн. Если у Вас есть вопросы - задавайте.
Автор урока: FUNExtreme Перевод на понятный русский язык: Grant777 то есть я
Если человек несет бред, то здесь 2 варианта: либо он очень умный либо очень тупой © EmiGrant
Сообщение отредактировал Grant777 - Суббота, 08.10.2011, 20:06 |
| |
|
|
| Desert | Дата: Воскресенье, 09.10.2011, 14:34 | Сообщение # 2 |
|
Местный
Группа:
I'm V.I.P.
Сообщений: 669
Награды: 57
Город: Москва
Репутация: 1082
Замечания: 0%
Статус: 
| Полезный урок,спасибо
|
| |
|
|
| FlashMob | Дата: Воскресенье, 09.10.2011, 15:56 | Сообщение # 3 |
|
Уверенный в себе
Группа:
I'm V.I.P.
Сообщений: 255
Награды: 4
Город: Санкт Петербург
Репутация: 151
Замечания: 0%
Статус: 
| я думаю это даже новичок знает, очень просто
|
| |
|
|
| EmiGrant | Дата: Воскресенье, 09.10.2011, 16:04 | Сообщение # 4 |
|
Долгожитель
Группа:
Продвинутые
Сообщений: 1362
Награды: 34
Город: Пятигорск
Репутация: 1653
Замечания: 40%
Статус: 
| Я когда был новичком, я этого не знал
Если человек несет бред, то здесь 2 варианта: либо он очень умный либо очень тупой © EmiGrant
|
| |
|
|
| Desert | Дата: Воскресенье, 09.10.2011, 16:38 | Сообщение # 5 |
|
Местный
Группа:
I'm V.I.P.
Сообщений: 669
Награды: 57
Город: Москва
Репутация: 1082
Замечания: 0%
Статус: 
| Quote (Grant777) Я когда был новичком, я этого не знал Я тоже не знал, т.к некоторым это даже очень полезно будет
|
| |
|
|
| FlashMob | Дата: Воскресенье, 09.10.2011, 20:46 | Сообщение # 6 |
|
Уверенный в себе
Группа:
I'm V.I.P.
Сообщений: 255
Награды: 4
Город: Санкт Петербург
Репутация: 151
Замечания: 0%
Статус: 
| Новичкам вики в помощь, там это расписано
|
| |
|
|
| EmiGrant | Дата: Воскресенье, 09.10.2011, 20:57 | Сообщение # 7 |
|
Долгожитель
Группа:
Продвинутые
Сообщений: 1362
Награды: 34
Город: Пятигорск
Репутация: 1653
Замечания: 40%
Статус: 
| Quote (FlashMob) Новичкам вики в помощь, там это расписано Изволь тогда объяснить: тогда зачем сделали раздел форума wiki на samp-rus.com???
Если человек несет бред, то здесь 2 варианта: либо он очень умный либо очень тупой © EmiGrant
|
| |
|
|
| Michael_Star | Дата: Воскресенье, 09.10.2011, 20:59 | Сообщение # 8 |
|
Освоившийся
Группа:
I'm V.I.P.
Сообщений: 116
Награды: 1
Город: Киев
Репутация: -22
Замечания: 0%
Статус: 
| Самое первое что я учил по pawno:D
RoACh: Удалено, в след. раз будет бан, уважай других участников
|
| |
|
|
| Axelerator | Дата: Понедельник, 10.10.2011, 16:37 | Сообщение # 9 |
|
Уверенный в себе
Группа:
I'm V.I.P.
Сообщений: 237
Награды: 2
Город: Омск
Репутация: 159
Замечания: 40%
Статус: 
| Полезно. Для новичков впринципе пойдет (хоть и сложного ничего нет сложно для тех, кто основ языка не знает) Michael_Star, PAWN* а не Pawno
|
| |
|
|
| Ul_Boy228 | Дата: Воскресенье, 27.11.2011, 15:54 | Сообщение # 10 |
|
Освоившийся
Группа:
Пользователи
Сообщений: 76
Награды: 0
Город: Ulgrad
Репутация: 7
Замечания: 0%
Статус: 
| по мне так проще будет так: Code public OnPlayerSpawn(playerid) { new rand = random(5);//5 - количество спавнов. switch (rand) { case 0:SetPlayerPos(playerid,405.9053,2456.6348,16.5000);//думаю тут и дальше всё понятно, "405.9053,2456.6348,16.5000" - координаты case 1:SetPlayerPos(playerid,1318.2029,1284.1371,10.8203); case 2:SetPlayerPos(playerid,1978.5294,-2617.4849,19.0112); case 3:SetPlayerPos(playerid,-1454.7158,-162.1252,14.1484); case 4:SetPlayerPos(playerid,1958.3783, 1343.1572,15.3746); } return 1; } Добавлено (27.11.2011, 15:54) --------------------------------------------- по мне так проще будет так: Code public OnPlayerSpawn(playerid) { new rand = random(5);//5 - количество спавнов. switch (rand) { case 0:SetPlayerPos(playerid,405.9053,2456.6348,16.5000);//думаю тут и дальше всё понятно, "405.9053,2456.6348,16.5000" - координаты case 1:SetPlayerPos(playerid,1318.2029,1284.1371,10.8203); case 2:SetPlayerPos(playerid,1978.5294,-2617.4849,19.0112); case 3:SetPlayerPos(playerid,-1454.7158,-162.1252,14.1484); case 4:SetPlayerPos(playerid,1958.3783, 1343.1572,15.3746); } return 1; }
|
| |
|
|
| MarkeloFF | Дата: Воскресенье, 04.12.2011, 13:08 | Сообщение # 11 |
|
Советчик
Группа:
I'm V.I.P.
Сообщений: 1033
Награды: 14
Город: Калининград
Репутация: 191
Замечания: 80%
Статус: 
| А как сделать что-бы при определённой команде игрок спавнился в этих спавнах?
|
| |
|
|
| EmiGrant | Дата: Воскресенье, 04.12.2011, 13:32 | Сообщение # 12 |
|
Долгожитель
Группа:
Продвинутые
Сообщений: 1362
Награды: 34
Город: Пятигорск
Репутация: 1653
Замечания: 40%
Статус: 
| MarkeloFF,
Code new Random = random(sizeof(RandomSpawns)); SetPlayerPos(playerid, RandomSpawns[Random][0], RandomSpawns[Random][1], RandomSpawns[Random][2]); SetPlayerFacingAngle(playerid, RandomSpawns[Random][3]); это в команду кидай
Если человек несет бред, то здесь 2 варианта: либо он очень умный либо очень тупой © EmiGrant
|
| |
|
|
| ZiGGi | Дата: Воскресенье, 04.12.2011, 13:46 | Сообщение # 13 |
|
Мастер джэдай
Группа:
Продвинутые
Сообщений: 2652
Награды: 34
Город: St. Petersburg
Репутация: 2102
Замечания: 20%
Статус: 
| Quote (Ul_Boy228) по мне так проще будет так: Code public OnPlayerSpawn(playerid) { new rand = random(5);//5 - количество спавнов. switch (rand) { case 0:SetPlayerPos(playerid,405.9053,2456.6348,16.5000);//думаю тут и дальше всё понятно, "405.9053,2456.6348,16.5000" - координаты case 1:SetPlayerPos(playerid,1318.2029,1284.1371,10.8203); case 2:SetPlayerPos(playerid,1978.5294,-2617.4849,19.0112); case 3:SetPlayerPos(playerid,-1454.7158,-162.1252,14.1484); case 4:SetPlayerPos(playerid,1958.3783, 1343.1572,15.3746); } return 1; } Так не проще, а глупее.
Бложе [indent]Мой блог Уроки по Pawn[/indent]
Open-GTO [indent]Блог разработчиков GitHub: https://github.com/Open-GTO/Open-GTO Сборки мода с сервером тут[/indent]
|
| |
|
|
| psycho | Дата: Воскресенье, 04.12.2011, 18:19 | Сообщение # 14 |
|
16 | 13
Группа:
I'm V.I.P.
Сообщений: 327
Награды: 11
Репутация: 645
Замечания: 20%
Статус: 
| Quote (ZiGGi) Так не проще, а глупее. Согласен,нафига использовать switch конструкцию,если можно использовать только random?
|
| |
|
|
| EmiGrant | Дата: Воскресенье, 04.12.2011, 18:22 | Сообщение # 15 |
|
Долгожитель
Группа:
Продвинутые
Сообщений: 1362
Награды: 34
Город: Пятигорск
Репутация: 1653
Замечания: 40%
Статус: 
| Ul_Boy228, как проще? даже просто видно, что Quote (Grant777) public OnPlayerSpawn(playerid) { new Random = random(sizeof(RandomSpawns)); SetPlayerPos(playerid, RandomSpawns[Random][0], RandomSpawns[Random][1], RandomSpawns[Random][2]); SetPlayerFacingAngle(playerid, RandomSpawns[Random][3]); return 1; } лучше чем Quote (Ul_Boy228) public OnPlayerSpawn(playerid) { new rand = random(5);//5 - количество спавнов. switch (rand) { case 0:SetPlayerPos(playerid,405.9053,2456.6348,16.5000);//думаю тут и дальше всё понятно, "405.9053,2456.6348,16.5000" - координаты case 1:SetPlayerPos(playerid,1318.2029,1284.1371,10.8203); case 2:SetPlayerPos(playerid,1978.5294,-2617.4849,19.0112); case 3:SetPlayerPos(playerid,-1454.7158,-162.1252,14.1484); case 4:SetPlayerPos(playerid,1958.3783, 1343.1572,15.3746); } return 1; }
Сообщение отредактировал Grant777 - Воскресенье, 04.12.2011, 18:23 |
| |
|
|
|
 |
|
 | |
| |
|