Этот урок покажет Вам, как создать рандомный (случайный) спавн игроков.
Шаг 1: Получение координат. Для начала нам нужны координаты спавна игроков, вот легкий способ узнать их: 1. Заходим в игру. 2. Идем на место, где будет спавн игроков 3. Набираем /save, стоя на каждой позиции спавна
Примечание: можно писать не просто /save а /save random, где слово random будет комментирован и вы легко найдете потом то, что вам нужно Шаг 2: Нахождение координат.
После того, как вы сохранили все координата, вам нужно найти их. Для этого заходим в папку:
Code
...\My Documents\GTA San Andreas User Files\SAMP
и открываем там файл
Code
savedpositions.txt
Шаг 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
Так как нам нужны только координаты берем отсюда только значения 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 то есть я
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; }
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 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; }
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