Добро пожаловать на Pawno-Info.Ru - Портал о программировании v2.0

Присоединяйтесь к нам сейчас, чтобы получить доступ ко всем нашим функциям. После регистрации и входа в систему вы сможете создавать темы, публиковать ответы в существующих темах, давать репутацию своим коллегам, получать собственный личный мессенджер и многое другое. Это также быстро и совершенно бесплатно, так чего же вы ждете?

Маппинг для сервера

Если вы хотите обновить Ваш сервер новыми доработками - то зайдите в наш раздел. Большой выбор готовых решений от наших пользователей

Моды для сервера

Огромный выбор различных модификаций для Вашего сервера. пролистайте эти темы! Возможно именно там Вы найдете то, что искали уже давно.

Модификации SA

Хотите разнообразить свою игру в San Andrease? Смелее в наш раздел. Отличный сборник готовых решений. Играйте с удовольствием

  • Уважаемый Гость. Прежде чем создать свою тему, попробуй воспользоваться ПОИСКОМ !!!
    Примечание: Не создавайте темы с названиями "Помогите", "Плиз", "Ошибка", "Не могу найти", "Хелп".
    P.s. За игнор правил форума - будем блокировать доступ.

Короткие вопросы по PAWN'у

♥Martin♥Smit♥

Интересующийся
Пользователь
Регистрация
29 Сен 2020
Сообщения
51
Лучшие ответы
0
Реакции
0
Покажи stock AddStaticVehicleExEx.
C++:
stock AddStaticVehicleExEx(modelid, Float: X, Float: Y, Float: Z, Float: A, Color1, Color2, SpawnDelay, Addsiren)
{
    new idd = AddStaticVehicleEx(modelid, X, Y, Z, A, Color1, Color2, SpawnDelay, Addsiren);
    VEHICLE [ idd - 1 ][ v_X ] = X;
    VEHICLE [ idd - 1 ][ v_Y ] = Y;
    VEHICLE [ idd - 1 ][ v_Z ] = Z;
    VEHICLE [ idd - 1 ][ v_A ] = A;
    VEHICLE [ idd - 1 ][ vHealth ] = 1000.0;
    VEHICLE [ idd - 1 ][ vLock ] = 0;
    Iter_Add(valid_vehicles, idd);
    return idd;
}
 

20th century

Участник форума
Пользователь
Регистрация
10 Авг 2020
Сообщения
261
Лучшие ответы
13
Реакции
81
Адрес
St. Petersburg
C++:
stock AddStaticVehicleExEx(modelid, Float: X, Float: Y, Float: Z, Float: A, Color1, Color2, SpawnDelay, Addsiren)
{
    new idd = AddStaticVehicleEx(modelid, X, Y, Z, A, Color1, Color2, SpawnDelay, Addsiren);
    VEHICLE [ idd - 1 ][ v_X ] = X;
    VEHICLE [ idd - 1 ][ v_Y ] = Y;
    VEHICLE [ idd - 1 ][ v_Z ] = Z;
    VEHICLE [ idd - 1 ][ v_A ] = A;
    VEHICLE [ idd - 1 ][ vHealth ] = 1000.0;
    VEHICLE [ idd - 1 ][ vLock ] = 0;
    Iter_Add(valid_vehicles, idd);
    return idd;
}
В stock у тебя на два аргумента меньше. Либо поправить объявление и тело stock, либо убрать лишние аргументы.
 

♥Martin♥Smit♥

Интересующийся
Пользователь
Регистрация
29 Сен 2020
Сообщения
51
Лучшие ответы
0
Реакции
0
В stock у тебя на два аргумента меньше. Либо поправить объявление и тело stock, либо убрать лишние аргументы.
Я начинающий в этой теме , можно пожалуйста объяснить для моего уровня?
 

20th century

Участник форума
Пользователь
Регистрация
10 Авг 2020
Сообщения
261
Лучшие ответы
13
Реакции
81
Адрес
St. Petersburg
Можно.
C++:
stock AddStaticVehicleExEx(modelid, Float: X, Float: Y, Float: Z, Float: A, Color1, Color2, SpawnDelay, Addsiren)
Аргументы функции - всё то, что находится в скобках, начиная от modelid, заканчивая Addsiren. Здесь насчитывается 9 аргументов.

Ты пытаешься использовать эту же функцию с 11 аргументами.

C++:
AddStaticVehicleExEx(411,-2441.8047,546.1918,-11.0850,88.4151, 0,0, 13, 0,300,1); // 0

// modelid = 411
// float: X = -2441.8047
// float: Y = 546.1918
// float: Z = -11.0850
// float: A = 88.4151
// Color1 = 0
// Color2 = 0
// лишний аргумент 13
// лишний аргумент 0
// SpawnDelay = 300
// Addsiren = 1
То есть 8 и 9 аргументы у тебя лишние, если я правильно понимаю. У тебя есть stock AddStaticVehicleEx? Если есть (покажи), можно переделать лишь её, не трогая все остальное.
 

♥Martin♥Smit♥

Интересующийся
Пользователь
Регистрация
29 Сен 2020
Сообщения
51
Лучшие ответы
0
Реакции
0
Можно.
C++:
stock AddStaticVehicleExEx(modelid, Float: X, Float: Y, Float: Z, Float: A, Color1, Color2, SpawnDelay, Addsiren)
Аргументы функции - всё то, что находится в скобках, начиная от modelid, заканчивая Addsiren. Здесь насчитывается 9 аргументов.

Ты пытаешься использовать эту же функцию с 11 аргументами.

C++:
AddStaticVehicleExEx(411,-2441.8047,546.1918,-11.0850,88.4151, 0,0, 13, 0,300,1); // 0

// modelid = 411
// float: X = -2441.8047
// float: Y = 546.1918
// float: Z = -11.0850
// float: A = 88.4151
// Color1 = 0
// Color2 = 0
// лишний аргумент 13
// лишний аргумент 0
// SpawnDelay = 300
// Addsiren = 1
То есть 8 и 9 аргументы у тебя лишние, если я правильно понимаю. У тебя есть stock AddStaticVehicleEx? Если есть (покажи), можно переделать лишь её, не трогая все остальное.
Такого нет , но я нашёл вот это:

C++:
stock AddStaticVehicleExx(modelid, Float: X, Float: Y, Float: Z, Float: A, Color1, Color2)
{
    new idd = AddStaticVehicle(modelid, X, Y, Z, A, Color1, Color2);
    VEHICLE [ idd - 1 ][ v_X ] = X;
    VEHICLE [ idd - 1 ][ v_Y ] = Y;
    VEHICLE [ idd - 1 ][ v_Z ] = Z;
    VEHICLE [ idd - 1 ][ v_A ] = A;
    VEHICLE [ idd - 1 ][ vHealth ] = 1000.0;
    VEHICLE [ idd - 1 ][ vLock ] = 0;
    Iter_Add(valid_vehicles, idd);
    return idd;
}
 

20th century

Участник форума
Пользователь
Регистрация
10 Авг 2020
Сообщения
261
Лучшие ответы
13
Реакции
81
Адрес
St. Petersburg
C++:
stock AddStaticVehicleExEx(modelid, Float: X, Float: Y, Float: Z, Float: A, arg = -1, arg2 = -1, Color1, Color2, SpawnDelay, Addsiren)
{
    new idd = AddStaticVehicleEx(modelid, X, Y, Z, A, Color1, Color2, SpawnDelay, Addsiren);
    VEHICLE [ idd - 1 ][ v_X ] = X;
    VEHICLE [ idd - 1 ][ v_Y ] = Y;
    VEHICLE [ idd - 1 ][ v_Z ] = Z;
    VEHICLE [ idd - 1 ][ v_A ] = A;
    VEHICLE [ idd - 1 ][ vHealth ] = 1000.0;
    VEHICLE [ idd - 1 ][ vLock ] = 0;
    Iter_Add(valid_vehicles, idd);
    return idd;
}
Если лень менять аргументы во всех функциях, попробуй так.
 

♥Martin♥Smit♥

Интересующийся
Пользователь
Регистрация
29 Сен 2020
Сообщения
51
Лучшие ответы
0
Реакции
0
C++:
stock AddStaticVehicleExEx(modelid, Float: X, Float: Y, Float: Z, Float: A, arg = -1, arg2 = -1, Color1, Color2, SpawnDelay, Addsiren)
{
    new idd = AddStaticVehicleEx(modelid, X, Y, Z, A, Color1, Color2, SpawnDelay, Addsiren);
    VEHICLE [ idd - 1 ][ v_X ] = X;
    VEHICLE [ idd - 1 ][ v_Y ] = Y;
    VEHICLE [ idd - 1 ][ v_Z ] = Z;
    VEHICLE [ idd - 1 ][ v_A ] = A;
    VEHICLE [ idd - 1 ][ vHealth ] = 1000.0;
    VEHICLE [ idd - 1 ][ vLock ] = 0;
    Iter_Add(valid_vehicles, idd);
    return idd;
}
Если лень менять аргументы во всех функциях, попробуй так.
Спасибо , помогло удаление лишних аргументов
 

♥Martin♥Smit♥

Интересующийся
Пользователь
Регистрация
29 Сен 2020
Сообщения
51
Лучшие ответы
0
Реакции
0
Как разрешить определённое оружие , например 28ID и тд
Когда пытаюсь выдать говорит: Запрещённое оружие!
 

20th century

Участник форума
Пользователь
Регистрация
10 Авг 2020
Сообщения
261
Лучшие ответы
13
Реакции
81
Адрес
St. Petersburg

♥Martin♥Smit♥

Интересующийся
Пользователь
Регистрация
29 Сен 2020
Сообщения
51
Лучшие ответы
0
Реакции
0
Скопируй и скинь сюда команду выдачи оружия.
Вот:
C++:
CMD:givegun(playerid, params[])
{
    if(PlayerInfo[playerid][pAlcoInvenxua] < 5) return true;
    if(sscanf(params, "ddd",params[0],params[1],params[2])) return SendClientMessage(playerid, COLOR_WHITE, "Ââåäèòå: /givegun [id] [id îðóæèÿ] [ïàòðîíû]");
    if(!IsPlayerConnected(params[0])) return true;
    if(params[2] < 1 || params[2] > 9999) return SendClientMessage(playerid, COLOR_GRAD1, "Íåëüçÿ ìåíüøå 1 èëè áîëüøå 9999 ïàòðîíîâ!");
    if(params[1] < 1 || params[1] > 46) return SendClientMessage(playerid, COLOR_GREY, "ID îðóæèÿ îò 1 äî 46!");
    switch(params[1])
    {
        case 35..40,1,2,4,9,16..19,20..22,26..28,44,45: return SendClientMessage(playerid, COLOR_GRAD1, "Çàïðåùåííîå îðóæèå!");
    }
    GiveWeapon(params[0],params[1],params[2]);
    SendClientMessage(playerid, COLOR_GRAD1, "Îðóæèå Âûäàíî!");
    SendMes(params[0], -1, "Àäìèíèñòðàòîð %s âûäàë Âàì îðóæèå!", PlayerInfo[playerid][pNames]);
    return true;
}
 

♥Martin♥Smit♥

Интересующийся
Пользователь
Регистрация
29 Сен 2020
Сообщения
51
Лучшие ответы
0
Реакции
0
Скопируй и скинь сюда команду выдачи оружия.
C++:
CMD:givegun(playerid, params[])
{
    if(PlayerInfo[playerid][pAlcoInvenxua] < 5) return true;
    if(sscanf(params, "ddd",params[0],params[1],params[2])) return SendClientMessage(playerid, COLOR_WHITE, "Введите: /givegun [id] [id оружия] [патроны]");
    if(!IsPlayerConnected(params[0])) return true;
    if(params[2] < 1 || params[2] > 9999) return SendClientMessage(playerid, COLOR_GRAD1, "Нельзя меньше 1 или больше 9999 патронов!");
    if(params[1] < 1 || params[1] > 46) return SendClientMessage(playerid, COLOR_GREY, "ID оружия от 1 до 46!");
    switch(params[1])
    {
        case 35..40,1,2,4,9,16..19,20..22,26..28,44,45: return SendClientMessage(playerid, COLOR_GRAD1, "Запрещенное оружие!");
    }
    GiveWeapon(params[0],params[1],params[2]);
    SendClientMessage(playerid, COLOR_GRAD1, "Оружие Выдано!");
    SendMes(params[0], -1, "Администратор %s выдал Вам оружие!", PlayerInfo[playerid][pNames]);
    return true;
}
Чуть не так скопировал
 

20th century

Участник форума
Пользователь
Регистрация
10 Авг 2020
Сообщения
261
Лучшие ответы
13
Реакции
81
Адрес
St. Petersburg
Вот:
C++:
CMD:givegun(playerid, params[])
{
    if(PlayerInfo[playerid][pAlcoInvenxua] < 5) return true;
    if(sscanf(params, "ddd",params[0],params[1],params[2])) return SendClientMessage(playerid, COLOR_WHITE, "Ââåäèòå: /givegun [id] [id îðóæèÿ] [ïàòðîíû]");
    if(!IsPlayerConnected(params[0])) return true;
    if(params[2] < 1 || params[2] > 9999) return SendClientMessage(playerid, COLOR_GRAD1, "Íåëüçÿ ìåíüøå 1 èëè áîëüøå 9999 ïàòðîíîâ!");
    if(params[1] < 1 || params[1] > 46) return SendClientMessage(playerid, COLOR_GREY, "ID îðóæèÿ îò 1 äî 46!");
    switch(params[1])
    {
        case 35..40,1,2,4,9,16..19,20..22,26..28,44,45: return SendClientMessage(playerid, COLOR_GRAD1, "Çàïðåùåííîå îðóæèå!");
    }
    GiveWeapon(params[0],params[1],params[2]);
    SendClientMessage(playerid, COLOR_GRAD1, "Îðóæèå Âûäàíî!");
    SendMes(params[0], -1, "Àäìèíèñòðàòîð %s âûäàë Âàì îðóæèå!", PlayerInfo[playerid][pNames]);
    return true;
}
C++:
switch(params[1])
 {
    case 35..40,1,2,4,9,16..19,20..22,26..28,44,45: return..
}
Удали из этого перечисления ID, который хочешь разрешить.
 

Dmitriy Makarov

Участник форума
Пользователь
Регистрация
12 Июн 2020
Сообщения
241
Лучшие ответы
0
Реакции
7
Возраст
19
Чем SetPlayerPos(playerid, x, y, z) отличается от Streamer_UpdateEx(playerid, Float:x, Float:y, Float:z, worldid = -1, interiorid = -1, type = -1, compensatedtime = -1, freezeplayer = 1.
Я так понял, что они выполняют одно и то же действие - телепорт игрока.
Понимаю, что стример всегда лучше, но именно тут чем стримерский телепорт будет лучше обычного?
P.S: Нашел тему, где человек жаловался на то, что он при выходе из интерьера проваливается под текстуры, ему посоветовали использовать стримерский телепорт, поэтому и задаю этот вопрос здесь.)
 

Nike_Samp

• Модератор 3 lvl •
Команда форума
Moderator
Регистрация
5 Дек 2014
Сообщения
396
Лучшие ответы
9
Реакции
90
Адрес
Минск, Беларусь
  • OLD
  • Помощник
@Dmitriy Makarov, это функция стримера для обновления объектов в потоке и ее описание есть на github в документации к плагину. Это не телепорт, а просто мгновенная прорисовка в определенных координатах.

А проблема прогрузки связана с настройкой стримера.
 

Dmitriy Makarov

Участник форума
Пользователь
Регистрация
12 Июн 2020
Сообщения
241
Лучшие ответы
0
Реакции
7
Возраст
19
@Dmitriy Makarov, это функция стримера для обновления объектов в потоке и ее описание есть на github в документации к плагину. Это не телепорт, а просто мгновенная прорисовка в определенных координатах.

А проблема прогрузки связана с настройкой стримера.
Я неправильно тогда понял.) Он, наверное, хотел сказать, чтобы после телепортации человек обновлял объекты сразу.
Чтобы видеть скрытое содержание Зарегистрируйтесь на форуме!

Но если даже так, то как себя поведёт эта функция в случае, если у игрока будет плохой интернет?
 

Nike_Samp

• Модератор 3 lvl •
Команда форума
Moderator
Регистрация
5 Дек 2014
Сообщения
396
Лучшие ответы
9
Реакции
90
Адрес
Минск, Беларусь
  • OLD
  • Помощник
@Dmitriy Makarov, скорее всего так себе. Смотря насколько высокая задержка будет. Лучше всего использовать макрос заморозки по пингу при входе в ин-ту.
 

darkydragon

• Зарегистрированный •
Регистрация
24 Окт 2020
Сообщения
1
Лучшие ответы
0
Реакции
0
Не работает команда Что с ней делать?


C++:
CMD:giverub(playerid, params[])

{

    if(FULL_1 || FULL_2 || FULL_3)

    {

        if(sscanf(params, "dd", params[0], params[1])) return SendClientMessage(playerid, COLOR_WHITE, ""#INFO"Èñïîëüçóéòå /giverub [ID][ÊÎË-ÂÎ (0 - îòîáðàòü)]");

        if(!params[1])

        {

            PlayerInfo[params[0]][pRubInfo] = 0;

            SCMF(params[0], COLOR_GREY, "Àäìèíèñòðàòîð: %s îòîáðàë ó Âàñ âñå ðóáëè",PlayerInfo[playerid][pNames]);

            SCMF(playerid, COLOR_GREY, "Âû îòîáðàëè ó: %s âñå ðóáëè", PlayerInfo[params[0]][pNames]);

            UpdatePlayerData(params[0], "pRubDon", PlayerInfo[params[0]][pRubInfo]);

        }

        PlayerInfo[params[0]][pRubInfo] += params[1];

        PlayerInfo[params[0]][pRubDonateTotal][1] += params[1];

        UpdatePlayerData(params[0], "pRubDonateTotal1", PlayerInfo[params[0]][pRubDonateTotal][1]);

        SCMF(params[0], COLOR_BLUE, "Àäìèíèñòðàòîð: %s âûäàë Âàì %i äîíàò ðóáëåé.", PlayerInfo[playerid][pNames], params[1]);

        SCMF(playerid, COLOR_BLUE, "Âû óñïåøíî âûäàëè äîíàò ðóáëè %s", PlayerInfo[params[0]][pNames]);

        UpdatePlayerData(params[0], "pRubDon", PlayerInfo[params[0]][pRubInfo]);

    }

    return 1;

}
 
Последнее редактирование модератором:

NoneBlue

Интересующийся
Пользователь
Регистрация
17 Авг 2020
Сообщения
38
Лучшие ответы
1
Реакции
6
Веб-сайт
pawno-info.ru
Не работает команда Что с ней делать?


C++:
CMD:giverub(playerid, params[])

{

    if(FULL_1 || FULL_2 || FULL_3)

    {

        if(sscanf(params, "dd", params[0], params[1])) return SendClientMessage(playerid, COLOR_WHITE, ""#INFO"Èñïîëüçóéòå /giverub [ID][ÊÎË-ÂÎ (0 - îòîáðàòü)]");

        if(!params[1])

        {

            PlayerInfo[params[0]][pRubInfo] = 0;

            SCMF(params[0], COLOR_GREY, "Àäìèíèñòðàòîð: %s îòîáðàë ó Âàñ âñå ðóáëè",PlayerInfo[playerid][pNames]);

            SCMF(playerid, COLOR_GREY, "Âû îòîáðàëè ó: %s âñå ðóáëè", PlayerInfo[params[0]][pNames]);

            UpdatePlayerData(params[0], "pRubDon", PlayerInfo[params[0]][pRubInfo]);

        }

        PlayerInfo[params[0]][pRubInfo] += params[1];

        PlayerInfo[params[0]][pRubDonateTotal][1] += params[1];

        UpdatePlayerData(params[0], "pRubDonateTotal1", PlayerInfo[params[0]][pRubDonateTotal][1]);

        SCMF(params[0], COLOR_BLUE, "Àäìèíèñòðàòîð: %s âûäàë Âàì %i äîíàò ðóáëåé.", PlayerInfo[playerid][pNames], params[1]);

        SCMF(playerid, COLOR_BLUE, "Âû óñïåøíî âûäàëè äîíàò ðóáëè %s", PlayerInfo[params[0]][pNames]);

        UpdatePlayerData(params[0], "pRubDon", PlayerInfo[params[0]][pRubInfo]);

    }

    return 1;

}
Вы бы хоть написали для начала "что не работает" и "как должно работать" + логи
 
shape1
shape2
shape3
shape4
shape7
shape8
Сверху Снизу