Перейти к содержанию
An2d1s

Взрыв на определенных координатах.

Рекомендуемые сообщения

An2d1s

Дорогие форумчане,  подскажите как сделать по принципу:
 /fire и пишешь координаты, по принципу (/setpos), только на этих координатах образуется взрыв. Подскажите пожалуйста. Из скриптеров просто никто не хочет помочь, вся надежда на вас.

Пример:
 /fire (x, y, z).
 на x,y,z -взрыв

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Shao

CreateExplosion(если для определенного игрока CreateExplosionForPlayer) - это взрыв(с помощью него же и сделаешь /setpos(т.к в этой функции есть аргументы x, y, z).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
An2d1s

CMD:fire(playerid, params[])
        new Float:x, Float:y, Float:z;
        if(sscanf(params, "p<,>fff", x, y, z)) return SendClientMessage(playerid, -1, "Введи /fire [X] [Y] [Z]."); // Проверка, введены ли все координаты
        CreateExplosion(playerid, x,y,z)
}

Так?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Shao
1 час назад, An2d1s сказал:

CMD:fire(playerid, params[])
        new Float:x, Float:y, Float:z;
        if(sscanf(params, "p<,>fff", x, y, z)) return SendClientMessage(playerid, -1, "Введи /fire [X] [Y] [Z]."); // Проверка, введены ли все координаты
        CreateExplosion(playerid, x,y,z)
}

Так?

Так, но вот тебе мой вариант:

CMD:fire(playerid, params[])
{
    if(sscanf(params,"fff",params[0], params[1], params[2])) return SCM(playerid, -1, "Используйте: /fire [x], [y], [z]);
    CreateExplosion(playerid, params[0], params[1], params[2]);
    return true;
}

 

Изменено пользователем Shao

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
An2d1s

CreateExplosion(playerid, params[0], params[1], params[2]);

:\Users\79010\Downloads\Cr-Mp 0.3e Server\gamemodes\Survival.pwn(9242) : warning 202: number of arguments does not match definition
ошибка в данной строчке

Изменено пользователем An2d1s

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Shao
15 минут назад, An2d1s сказал:

if(sscanf(params,"fff",params[0], params[1], params[2])) return SCM(playerid, -1, "Используйте: /fire [x], [y], [z]);

C:\Users\79010\Downloads\Cr-Mp 0.3e Server\gamemodes\Survival.pwn(9231) : error 037: invalid string (possibly non-terminated string)
C:\Users\79010\Downloads\Cr-Mp 0.3e Server\gamemodes\Survival.pwn(9231) : error 029: invalid expression, assumed zero
C:\Users\79010\Downloads\Cr-Mp 0.3e Server\gamemodes\Survival.pwn(9231) : error 029: invalid expression, assumed zero
C:\Users\79010\Downloads\Cr-Mp 0.3e Server\gamemodes\Survival.pwn(9231) : fatal error 107: too many error messages on one line

ошибки в данной строчке

#define SCM SendClientMessage(если нет).

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
An2d1s

Эти 4-ре ошибки пофиксил, там кавычек не было кое где) одна вот ошибка осталась

CreateExplosion(playerid, params[0], params[1], params[2]);

:\Users\79010\Downloads\Cr-Mp 0.3e Server\gamemodes\Survival.pwn(9242) : warning 202: number of arguments does not match definition
ошибка в данной строчке

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Shao

Несовпадения аргументов, значит делаем следующее:

CMD:fire(playerid, params[])
{
    if(sscanf(params,"fffuf",params[0], params[1], params[2], params[3], params[4]) return SCM(playerid, -1, "Используйте: /fire [x], [y], [z]);
    CreateExplosion(playerid, params[0], params[1], params[2], params[3], params[4]);
    return true;
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
An2d1s

Всё также: C:\Users\79010\Downloads\Cr-Mp 0.3e Server\gamemodes\Survival.pwn(9243) : warning 202: number of arguments does not match definition
9243: CreateExplosion(playerid, params[0], params[1], params[2], params[3], params[4]);

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Weishaypt
CMD:fire(playerid, params[])
{
    if(sscanf(params,"fffuf",params[0], params[1], params[2], params[3], params[4]) return SCM(playerid, -1, "Используйте: /fire [x], [y], [z]);
    CreateExplosion(params[0], params[1], params[2], params[3], params[4]);
    return true;
}

Вот рабочий пример. playerid - для этой функции не требуется, если хотите для определённого игрока, то тогда используйте функцию CreateExplosionForPlayer, но она была добавлена только в SAMP 0.3z, так что в CRMP 0.3e не прокатит.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Shao
Только что, An2d1s сказал:

Всё также: C:\Users\79010\Downloads\Cr-Mp 0.3e Server\gamemodes\Survival.pwn(9243) : warning 202: number of arguments does not match definition
9243: CreateExplosion(playerid, params[0], params[1], params[2], params[3], params[4]);

CMD:fire(playerid, params[])
{
    if(sscanf(params,"fffuf",params[0], params[1], params[2], params[3], params[4]) return SCM(playerid, -1, "Используйте: /fire [x],[y],[z] [ид взрыва);// ещё для удобства радиус допиши.
    GetPlayerPos(playerid, params[0], params[1], params[2]);
    CreateExplosion(playerid, params[0], params[1], params[2], params[3], params[4]);
    return true;
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
An2d1s

C:\Users\79010\Downloads\Cr-Mp 0.3e Server\gamemodes\Survival.pwn(9243) : warning 213: tag mismatch
C:\Users\79010\Downloads\Cr-Mp 0.3e Server\gamemodes\Survival.pwn(9243) : warning 213: tag mismatch
C:\Users\79010\Downloads\Cr-Mp 0.3e Server\gamemodes\Survival.pwn(9243) : warning 213: tag mismatch
C:\Users\79010\Downloads\Cr-Mp 0.3e Server\gamemodes\Survival.pwn(9244) : warning 202: number of arguments does not match definition 

=9

9243:    GetPlayerPos(playerid, params[0], params[1], params[2]);
9244:    CreateExplosion(playerid, params[0], params[1], params[2], params[3], params[4]);

Изменено пользователем An2d1s

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Shao
18 минут назад, An2d1s сказал:

C:\Users\79010\Downloads\Cr-Mp 0.3e Server\gamemodes\Survival.pwn(9243) : warning 213: tag mismatch
C:\Users\79010\Downloads\Cr-Mp 0.3e Server\gamemodes\Survival.pwn(9243) : warning 213: tag mismatch
C:\Users\79010\Downloads\Cr-Mp 0.3e Server\gamemodes\Survival.pwn(9243) : warning 213: tag mismatch
C:\Users\79010\Downloads\Cr-Mp 0.3e Server\gamemodes\Survival.pwn(9244) : warning 202: number of arguments does not match definition 

=9

9243:    GetPlayerPos(playerid, params[0], params[1], params[2]);
9244:    CreateExplosion(playerid, params[0], params[1], params[2], params[3], params[4]);

CMD:fire(playerid, params[])
{
	new Float:coordi[3];
    if(sscanf(params,"fffuf",params[0], params[1], params[2], params[3], params[4])) return SCM(playerid, -1, "Используйте: /fire [x],[y],[z] [ид взрыва]");
    GetPlayerPos(playerid, coordi[0], coordi[1], coordi[2]);
    CreateExplosion(params[0], params[1], params[2], params[3], params[4]);
    return true;
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
An2d1s

Ошибок не выбило, но когда пишу эту команду в чате, прописываю все данные и координаты, просто в чате пишется:
 

Используйте: /fire [x],[y],[z] [ид взрыва]

а взрывов самих нет

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Shao
14 минут назад, An2d1s сказал:

Ошибок не выбило, но когда пишу эту команду в чате, прописываю все данные и координаты, просто в чате пишется:
 


Используйте: /fire [x],[y],[z] [ид взрыва]

а взрывов самих нет

CMD:fire(playerid, params[])
{
	new Float:coordi[4];
    if(sscanf(params,"fffuf",coordi[0], coordi[1], coordi[2], params[3], coordi[3])) return SCM(playerid, -1, "Используйте: /fire [x],[y],[z] [ид взрыва] [радиус]");
    GetPlayerPos(playerid, coordi[0], coordi[1], coordi[2]);
    CreateExplosion(coordi[0], coordi[1], coordi[2], params[3], coordi[3]);
    return true;
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
An2d1s

Чувствую на финишной прямой, взрыв образуется, команда работает. Но взрыв появляется не на тех координатах, которые вписал я, а на том месте, где я стою.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
Shao
1 час назад, An2d1s сказал:

Чувствую на финишной прямой, взрыв образуется, команда работает. Но взрыв появляется не на тех координатах, которые вписал я, а на том месте, где я стою.

CMD:fire(playerid, params[])
{
	new Float:coordi[4];
    if(sscanf(params,"fffuf",coordi[0], coordi[1], coordi[2], params[3], coordi[3])) return SCM(playerid, -1, "Используйте: /fire [x],[y],[z] [ид взрыва] [радиус]");
    SetPlayerPos(playerid, coordi[0], coordi[1], coordi[2]);
    CreateExplosion(coordi[0], coordi[1], coordi[2], params[3], coordi[3]);
    return true;
}

 

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
An2d1s

Взрыв на координатах появляется, только телепортирует персонажа еще на это место, а нужно, чтобы на месте оставался.  Если получится, заплачу, очень помогаешь)

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
An2d1s

Уже исправил, можешь пожалуйста дать свой КИВИ, очень помог) Спасибо огромное

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

Мы разместили cookie-файлы на ваше устройство, чтобы помочь сделать этот сайт лучше. Вы можете изменить свои настройки cookie-файлов, или продолжить без изменения настроек.