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

 



 
          





Рекомендуем:





Последние Файлы 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
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
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
  • Страница 1 из 1
  • 1
Модератор форума: Dima-kun  
Форум SAMP о мультиплеерах для GTA. »   » Wiki-Samp-Rus » [TUT] Создание рандомного спавна
[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
и открываем там файл
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


Что же это?

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%
Статус:
Полезно. Для новичков впринципе пойдет (хоть и сложного ничего нет :D сложно для тех, кто основ языка не знает)
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
Форум SAMP о мультиплеерах для GTA. »   » Wiki-Samp-Rus » [TUT] Создание рандомного спавна
  • Страница 1 из 1
  • 1
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua