LuxurY forum (scripting SA-MP)

Объявление

с 29 марта 2007 года
LuxurY forum - крупнейший российский форум скриптинга в PAWNO
Новый форум
Задавайте свои вопросы

Архив скриптов


Наша кнопка:
LuxurY forum :: Scripting SA-MP
Код:

Информация о пользователе

Привет, Гость! Войдите или зарегистрируйтесь.


Вы здесь » LuxurY forum (scripting SA-MP) » Вопросы по созданию скриптов » Вопросы по созданию гейммодов


Вопросы по созданию гейммодов

Сообщений 91 страница 120 из 703

91

Я отправил тебе на мыло неработающий скрипт. Посмотри. Пожалусто.
Не злись на меня =)

0

92

Supra написал(а):

Я отправил тебе на мыло неработающий скрипт. Посмотри. Пожалусто.
Не злись на меня =)

у тебя там очень много зазновидностей автомобилей

Разновидности:

    AddStaticVehicle(541,2495.7810,-1755.7356,13.0948,1.4169,13,8); //
    AddStaticVehicle(542,2390.0823,-1718.2603,13.3459,180.7811,119,113); //
    AddStaticVehicle(568,2409.7957,-1695.8822,13.4920,271.6661,41,29); //
    AddStaticVehicle(573,2383.0417,-1927.9628,14.0328,0.8403,77,18); //
    AddStaticVehicle(587,2492.2576,-1952.5856,13.1605,359.2161,53,1); //
    AddStaticVehicle(406,2457.3613,-1785.6232,15.0693,270.4230,1,1); //

!!!ЗАПОМНИ!!!

МАКСИМАЛЬНОЕ КОЛИЧЕСТВО РАЗНОВИДНОСТЕЙ !!!50!!!

исправляй сам я не знаю какие тебе машины нужны, а какие нет.

Скрипт

0

93

Понял пасибо!!! Буду делать. А как сделать так чтобы при заходи в игру было написано:
Ну примерно так:
1.Здравствуйте. Добро пожаловать на наш сервер
2.наберите /pravila чтобы ознокомится с правилами поведения на нашем сервере
3.Наберите /help...

*****

Потом ты набираеш /pravila и тебе точно также (текст тока другой) как и выше отображаются правила игры и тоже самое с /help

?????

0

94

Supra написал(а):

Понял пасибо!!! Буду делать. А как сделать так чтобы при заходи в игру было написано:
Ну примерно так:
1.Здравствуйте. Добро пожаловать на наш сервер
2.наберите /pravila чтобы ознокомится с правилами поведения на нашем сервере
3.Наберите /help...

*****

Потом ты набираеш /pravila и тебе точно также (текст тока другой) как и выше отображаются правила игры и тоже самое с /help

?????

при входе в игру:

Код:
public OnPlayerConnect(playerid)
{
new string[256];
new playername[24]; GetPlayerName(playerid,playername,24);
format(string, sizeof(string), "* Добро пожаловать %s",playername);
SendClientMessage(playerid,0x33FF33AA,string);
SendClientMessage(playerid,0x33FF33AA,"Наберите /pravila чтобы посмотреть правила");
SendClientMessage(playerid,0x33FF33AA,"Наберите /help чтобы получить помощь");
    return 1;
    }

команды

Код:
public OnPlayerCommandText(playerid, cmdtext[])
{
if (strcmp(cmdtext, "/pravila", true)==0)
{
SendClientMessage(playerid,0x33FF33AA,"=======Правила=======");
SendClientMessage(playerid,0x33FF33AA,"Правило 1");
SendClientMessage(playerid,0x33FF33AA,"Правило 2");
return 1;
}
if (strcmp(cmdtext, "/help", true)==0)
{
SendClientMessage(playerid,0x33FF33AA,"=======Помощь=======");
SendClientMessage(playerid,0x33FF33AA,"Помощь 1");
SendClientMessage(playerid,0x33FF33AA,"Помощь 2");
return 1;
}
return 0;
}

0

95

Все работает. Большое человеческое Пасибо!!!
Но у меня еще куча вопросов.
Я так и непонял как сделать так чтоб игроки не могли выехать ДОПУСТИМ из 1 города или 2?? Ну короче игра шла в 1 городе (Еси смотреть на карту, то он находится в правом нижнем углу.

Да я нашел ошибку =)

Код:
Код:
public OnPlayerConnect(playerid)
{
new string[256];
new playername[24]; GetPlayerName(playerid,playername,24);
format(string, sizeof(string), "* Добро пожаловать %s",playername);
SendClientMessage(playerid,0x33FF33AA,string);
SendClientMessage(playerid,0x33FF33AA,"Наберите /pravila чтобы посмотреть правила");
SendClientMessage(playerid,0x33FF33AA,"Наберите /help чтобы получить помощь");); - ВОТ ОНА должно быть одна ); а не 2 (в конце).
    return 1;
    }

ВСЕ РАВНО СПАСИБО!!!

0

96

http://v.foto.radikal.ru/0704/60/91b14365e1dd.png

Значит так:
1. Заходим в редактор Samp_debug
2. Перемещаемся в точку 1.
3. Сохраняемся (/save)
4. Перемещаемся в точку 2.
5. Сохраняемся (/save)
6. Перемещаемся в точку 3.
7. Сохраняемся (/save)
8. Перемещаемся в точку 4.
9. Сохраняемся (/save)
10. Выходим из редактора
11. В папке с GTA найдем файл savedpositions.txt
12. Открываем его
13. Видим 4 строчки с нашими сохранениями, например: (точки к рисунку не относятся)

Код:
AddPlayerClass(0,1840.3711,-1335.8097,13.5625,282.8615,0,0,0,0,0,0); // 
AddPlayerClass(0,1839.3379,-1472.0779,13.5643,267.1947,0,0,0,0,0,0); // 
AddPlayerClass(0,1994.9497,-1472.2440,13.5625,0.2555,0,0,0,0,0,0); // 
AddPlayerClass(0,1993.8376,-1333.2124,23.9844,114.9366,0,0,0,0,0,0); //

Общая команда этих строчек:

Код:
AddPlayerClass(modelid, Float:spawn_x, Float:spawn_y, Float:spawn_z, Float:z_angle, weapon1, weapon1_ammo, weapon2, weapon2_ammo, weapon3, weapon3_ammo);

14. Общая команда ограничения игрового мира:

Код:
SetPlayerWorldBounds(playerid,Float:x_max,Float:x_min,Float:y_max,Float:y_min);

15. Ищем в наших сохраненных точках максимальное и минимальные значения X и Y
16. Подставляем их в команду:

Код:
SetPlayerWorldBounds(playerid,Float:x_max,Float:x_min,Float:y_max,Float:y_min);

17. Получается команда:

Код:
SetPlayerWorldBounds(playerid,1994.9497,1839.3379,-1333.2124,-1472.2440);

18. Вставляем полученную команду в скрипт (обычно в ставляется в функцию OnPlayerSpawn)
Пример:

Код:
public OnPlayerSpawn(playerid)
{
    SetPlayerInterior(playerid,0);
    SetPlayerWorldBounds(playerid,1994.9497,1839.3379,-1333.2124,-1472.2440);
    return 1;
}

Данные координаты ограничения соответствуют границам BMX парка с рампами в Лос Сантосе

0

97

ПАСИБО БУДУ ПРОБОВАТЬ.

0

98

А моно сделать как-нибудь телепортацию? Из одного места в другое??????? =)
Допустим из 1 города в 3? Ну или что-то подобное.

Да пасибо с картой. все получилось.

0

99

Supra написал(а):

А моно сделать как-нибудь телепортацию? Из одного места в другое??????? =)
Допустим из 1 города в 3? Ну или что-то подобное.

Да пасибо с картой. все получилось.

можно.
в samp_debug портаешься в место, куда ты хочешь портнуться
пишешь /save
в файле savedpositions.txt ищешь сохраненные координаты
запихиваешь их в команду SetPlayerPos

Например:

Телепорт в Лас Вентурас Аэропорт

Код:
if (strcmp(cmdtext, "/LVA", true)==0)
{
        SetPlayerPos(playerid,304.9069,2499.9163,500.4844);
        GivePlayerWeapon(playerid,46,1);
        SendClientMessage(playerid,COLOR_LIGHTBLUE,"You have been teleported to the Las Venturas Airport");
        GameTextForPlayer(playerid, "~g~Las Venturas Airport", 5000, 1);
        return 1;
	    }

Телепорт в Лос Сантос Аэропорт

Код:
if (strcmp(cmdtext, "/LSA", true)==0)
{
        SetPlayerPos(playerid,1728.7621,-2539.6914,600.5469);
        GivePlayerWeapon(playerid,46,1);
        SendClientMessage(playerid,COLOR_LIGHTBLUE,"You have been teleported to the Los Santos Airport");
        GameTextForPlayer(playerid, "~g~Los Santos Airport", 5000, 1);
        return 1;
	    }

Телепорт в Сан Фиеро Аэропорт

Код:
if (strcmp(cmdtext, "/SFA", true)==0)
{
        SetPlayerPos(playerid,-1254.3024,34.1786,500.1484);
        GivePlayerWeapon(playerid,46,1);
        SendClientMessage(playerid,COLOR_LIGHTBLUE,"You have been teleported to the San Fiero Airport");
        GameTextForPlayer(playerid, "~g~San Fiero Airport", 5000, 1);
        return 1;
	    }

Команды вставляются в функцию:

Код:
public OnPlayerCommandText(playerid, cmdtext[])
{

СЮДА

return 0;
}

можно использовать чекпойнты, но это уже сложнее

0

100

Supra написал(а):

А так понимаю чекпоинты это ты входиш в красный круг и телепортируешся? Если это то, то мне как раз это и нужно, тоесть чекпоинт.
Как его сделать? Да пасибо за ТЕЛЕПОРТАЦИЮ без чекпоинта! Буду пробовать.

так.

в начале скрипта пишешь:

Код:
#define CHECKPOINT_NONE 0
#define CHECKPOINT_A 1

в функцию OnPlayerSpawn вставляешь:

Код:
SetPlayerCheckpoint(playerid, Float:x, Float:y, Float:z, Float:size);

где
Float:x, - координата X
Float:y, - координата Y
Float:z, - координата Z
Float:size - размер чекпойнта

и далее пишешь отдельную функцию

Код:
new PlayerCheckpointStatus[MAX_PLAYERS];

public OnPlayerEnterCheckpoint(playerid) {
	SetPlayerPos(playerid,-2310.3523,-1648.3457,800.7031);
	GivePlayerWeapon(playerid,46,1);
 	SendClientMessage(playerid,COLOR_LIGHTBLUE,"!!!TELEPORT!!!");
	switch (PlayerCheckpointStatus[playerid]) {
case CHECKPOINT_A:
    {
 SetPlayerPos(playerid,-2310.3523,-1648.3457,800.7031);
                 }
	}
	return 1;
}

это мой старый вариант я его вырезал откуда то
позже в обучении напишу как сразу много чекпойнтов поставить
в этом случае будет только один

0

101

Ок буду пробовать. но мне надо чтоб было как минимум 3. А где взять ID'е оружия?? Мне надо оружия на карте разбросать.

0

102

ID оружия:
0 Ничего
2 Гольф клюшка
3 Night Stick
4 нож
5 Бейсбольная бита
6 Лопата
7 Бильярдный кий
8 Катана
9 Бензопила
10 Фиолетовый фаллоимитатор
11 Белый фаллоимитатор
12 Длинный белый фаллоимитатор
13 Белый фаллоимитатор 2
14 Букет цветов
15 Трость
22 Пистолет
23 Пистолет с глушителем
24 Пустынный орёл (пистолет)
25 Ружьё
26 Обрезы
27 Боевое ружьё
28 Микро узи (Mac 10)
29 MP5
30 Калашников
31 M4
32 Tec9
33 Винтовка
41 Баллончик краски
42 Огнетушитель
44 Очки ночного видения
45 Инфракрасные очки
46 Парашют

0

103

А как "положить" оружие на карту?

0

104

Вставлять в функцию OnGameModeInit

AddStaticPickup(model,type,Float:X,Float:Y,Float:Z);

0

105

Е-мое, что ж это за поколение программистов растет, что им нужно так все разжевывать?
http://wiki.sa-mp.com/ Флаг тебе в руки.

0

106

Блин... прикольный сайт, правдо по английски. Немного понимаю

0

107

Supra написал(а):

Блин... прикольный сайт, правдо по английски. Немного понимаю

там и русский раздел есть поищи в навигации сайта
кстати практически все статьи про SAMP выложены в разделе "Обучение"

0

108

Ок Неплохо много знакомых слов =)

0

109

Supra написал(а):

Ок Неплохо много знакомых слов =)

учись учись в будущем станешь великим скриптером  :P

0

110

(playerid,money)

playerid ID игрока.

money Число денег, которые вы хотите дать/отнять.

GivePlayerMoney(playerid, 10000);

Вот я немного не понимаю.
Эта команда позволяет дать или отнять денег у игрока. Немного непонятно! Когда дать, где дать, как дать денег?
И куда её вписывать??
П-А-С-И-Б-О

0

111

Supra написал(а):

(playerid,money)

playerid ID игрока.

money Число денег, которые вы хотите дать/отнять.

GivePlayerMoney(playerid, 10000);

Вот я немного не понимаю.
Эта команда позволяет дать или отнять денег у игрока. Немного непонятно! Когда дать, где дать, как дать денег?
И куда её вписывать??
П-А-С-И-Б-О

писать ее надо в любую функцию
обычно пишут
в
OnPlayerSpawn (при заходе игрока в ГТА даются деньги)
OnPlayerCommandText (команда)

Можно сделать с таймером (т.е. за каждый промежуток времени игроку будут даваться деньги)
что тебе нужно?
скажи я напишу пример

0

112

Я не пойму как происходит передача денег? Сервер должен прописать какую-то команду ? Вроде нет.
Если тока определенное время... Но больше подходит 1 вариант. Какие еше варианты будут??

0

113

ты скажи что ты хочешь сделать

0

114

Ну вот я хочу допустим игроку под ником Uranit передать, в данный момент, денег? Как? я играю вместе с ним на севере.

0

115

Supra написал(а):

Ну вот я хочу допустим игроку под ником Uranit передать, в данный момент, денег? Как? я играю вместе с ним на севере.

В начале скрипта напиши:
#include <dini>

Используй команду: (вставлять в OnPlayerCommandText)

Код:
new moneys;
new playername[24]; GetPlayerName(playerid,playername,24);
new string[100];
new playermoney;
new cmd[256];
new sendername[MAX_PLAYER_NAME];
new giveplayer[MAX_PLAYER_NAME];
new giveplayerid, idx;
cmd = strtok(cmdtext, idx);
    
    if(strcmp(cmdtext, "/givemoney", true) == 0) {
       new tmp[256];
      tmp = strtok(cmdtext, idx);

      if(!strlen(tmp)) {
         SendClientMessage(playerid, COLOR_RED, "Usage: /givemoney [playerid] [amount]");
         return 1;
      }
      giveplayerid = strval(tmp);

      tmp = strtok(cmdtext, idx);
      if(!strlen(tmp)) {
         SendClientMessage(playerid, COLOR_RED, "Usage: /givemoney [playerid] [amount]");
         return 1;
      }

       moneys = strval(tmp);
      if (IsPlayerConnected(giveplayerid)) {
         GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
         GetPlayerName(playerid, sendername, sizeof(sendername));
         playermoney = GetPlayerMoney(playerid);
         if (moneys > 0 && playermoney >= moneys) {
            GivePlayerMoney(playerid, (0 - moneys));
            GivePlayerMoney(giveplayerid, moneys);
            format(string, sizeof(string), "You have sent %s (id: %d), $%d.", giveplayer,giveplayerid, moneys);
            SendClientMessage(playerid, 0xFFFF00AA, string);
            format(string, sizeof(string), "You have recieved $%d from %s (id: %d).", moneys, sendername, playerid);
            SendClientMessage(giveplayerid, 0xFFFF00AA, string);
            printf("%s(playerid:%d) has transfered %d to %s(playerid:%d)",sendername, playerid, moneys, giveplayer, giveplayerid);
         }
         else {
            SendClientMessage(playerid, 0xFFFF00AA, "Invalid transaction amount.");
         }
      }
      else {
            format(string, sizeof(string), "%d is not an active player.", giveplayerid);
            SendClientMessage(playerid, 0xFFFF00AA, string);
         }
      return 1;
   }

0

116

Ну и потом прописывать в чате /givemoney?  А еси я хочу дать денег этому игроку (Uranit) и еще другому?

0

117

Supra написал(а):

Ну и потом прописывать в чате /givemoney?  А еси я хочу дать денег этому игроку (Uranit) и еще другому?

КОМАНДА:

/givemoney [playerid] [amount]

смотришь ID игрока с ником Uranit
и пишешь /givemoney [ID Uranit'a] [Количество денег, которое ты хочешь ему передать]

0

118

ок буду пробовать ПАСИБО

0

119

Supra написал(а):

GivePlayerMoney(playerid, 10000);

Вот я немного не понимаю.
Эта команда позволяет дать или отнять денег у игрока. Немного непонятно! Когда дать, где дать, как дать денег?

дать: GivePlayerMoney(playerid, 10000)
отнять: GivePlayerMoney(playerid, -10000)
Простейшая программистская логика.

Supra написал(а):

Ну и потом прописывать в чате /givemoney?  А еси я хочу дать денег этому игроку (Uranit) и еще другому?

Вводишь /givemoney и ID игрока, а не имя. Можно конечно сделать, чтобы была идентификация по нику, но зачем нужно все усложнять?
STiLeTT молодец конечно, не мог посложнее код выложить. ^_^ Нафиг только dini подключать? Он тут нигде не используется. Только проблем лишних создаешь новичку.

0

120

Блин! Делаю все как написано то мельчайшей точки, а он мне выдает ошибку:
...: fatal error 100: cannot read from file: "dini"
Почему, я вставил строку #include <dini> в самое начало, вроде больше негде это "слово" не упоминается.
Как исправить ошибку??

0


Вы здесь » LuxurY forum (scripting SA-MP) » Вопросы по созданию скриптов » Вопросы по созданию гейммодов