Добро пожаловать на Pro Pawn - Портал о PAWN-скриптинге.

Реклама


**Как получить V.I.P** (Перейти)
Чтобы заказать рекламу на Pro-Pawn.Ru, обращайтесь в Skype.
Баннерная реклама 200руб/мес, Текстовая 100руб/мес.
Показано с 1 по 8 из 8
  1. #1
    Аватар для Айболит
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.05.2014
    Сообщений
    133
    Репутация:
    1 ±

    Не правильно работает kick

    Здравствуйте форумчане п-п.р, Такая проблема, когда хочу кикнуть игрока, кикает меня вместо того кого указал... Вообще не знаю из за чего..

    PHP код:
    if(dialogid == 5)
    {
    if(!
    response) return 1;
    if(!
    IsPlayerConnected(strval(inputtext))) return SendClientMessage(playerid, -1"Игрок не найден");
    SendClientMessage(playerid,0xFF00000,"Вы кикнули игрока с сервера.");
    SendClientMessage(strval(inputtext),0xFF00000,"Администратор кикнул вас с сервера.");
    new 
    adm[MAX_PLAYER_NAME], user[MAX_PLAYER_NAME], mes[256];//
    GetPlayerName(playeridadmsizeof(adm));
    GetPlayerName(strval(inputtext), usersizeof(user));
    format(messizeof(mes), "Администратор %s кикнул игрока %s",adm,user);
    SendClientMessageToAll(0xFFFF00AAmes);
    SetTimerEx("kick",1000*1,0,"i",strval(inputtext));
    return 
    1;

    Код:
    forward kick(playerid,inputtext[]);
    public kick(playerid,inputtext[])
    {
    Kick(strval(inputtext));
    return 1;
    }

  2. #2
    Аватар для Flime
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.06.2014
    Адрес
    Москва
    Сообщений
    92
    Репутация:
    15 ±
    Наверное
    PHP код:
    forward kick(playerid);
    public 
    kick(playerid)
    {
    Kick(playerid);
    return 
    1;


  3. Пользователь сказал cпасибо:
    Айболит (02.07.2014)
  4. #3
    Аватар для Айболит
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.05.2014
    Сообщений
    133
    Репутация:
    1 ±
    Так ты кикнешь игрока, который кикает..

    - - - Добавлено - - -

    Цитата Сообщение от Flime Посмотреть сообщение
    Наверное
    PHP код:
    forward kick(playerid);
    public 
    kick(playerid)
    {
    Kick(playerid);
    return 
    1;

    А хотя, проверил работает.. ++ Спасибо

  5. #4
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Не проще ли в самое начало мода
    PHP код:
    forward KickPublic(playerid);
    public 
    KickPublic(playerid) return Kick(playerid);

    #define Kick(%0) SetTimerEx("KickPublic", 100, false, "i", %0) 
    использовать напрямую Kick и не мучиться?
    Связаться со мной можно в личных сообщениях этой группы

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

  6. Пользователь сказал cпасибо:
    Айболит (02.07.2014)
  7. #5
    Аватар для Flime
    Пользователь

    Статус
    Оффлайн
    Регистрация
    01.06.2014
    Адрес
    Москва
    Сообщений
    92
    Репутация:
    15 ±
    Цитата Сообщение от Айболит Посмотреть сообщение
    Так ты кикнешь игрока, который кикает..

    - - - Добавлено - - -



    А хотя, проверил работает.. ++ Спасибо

    В каждом паблике значения меняются. То есть strval(inputtext) в public kick станет playerid :)

    - - - Добавлено - - -

    Цитата Сообщение от DeimoS Посмотреть сообщение
    Не проще ли в самое начало мода
    PHP код:
    forward KickPublic(playerid);
    public 
    KickPublic(playerid) return Kick(playerid);

    #define Kick(%0) SetTimerEx("KickPublic", 100, false, "i", %0) 
    использовать напрямую Kick и не мучиться?
    Так тогда можно не вводить SetTimerEx а сделать еще проще. Через общий секундный таймер. Вопрос в другом заключается :)
    Вот так:
    В секундный
    PHP код:
    if(GetPVarInt(playerid"KickTimer") != && GetPVarInt(playerid"KickTimer") < GetTickCount()) return Kick(playerid); 
    И везде где кикать будешь писать

    PHP код:
    SetPVarInt(playerid"KickTimer",GetTickCount()+1000); 
    Последний раз редактировалось Flime; 02.07.2014 в 20:21.

  8. #6
    Аватар для Айболит
    Пользователь

    Статус
    Оффлайн
    Регистрация
    27.05.2014
    Сообщений
    133
    Репутация:
    1 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    Не проще ли в самое начало мода
    PHP код:
    forward KickPublic(playerid);
    public 
    KickPublic(playerid) return Kick(playerid);

    #define Kick(%0) SetTimerEx("KickPublic", 100, false, "i", %0) 
    использовать напрямую Kick и не мучиться?


    Ну я же учусь) а за совет спасибо..

  9. #7
    Аватар для OKStyle
    Заблокирован

    Статус
    Оффлайн
    Регистрация
    12.05.2013
    Сообщений
    205
    Репутация:
    49 ±
    Цитата Сообщение от DeimoS Посмотреть сообщение
    использовать напрямую Kick и не мучиться?
    А если надо другое время установить, через которое кикнуть игрока надо?

  10. #8
    Аватар для DeimoS
    Модератор?

    Статус
    Оффлайн
    Регистрация
    27.01.2014
    Адрес
    Восточный Мордор
    Сообщений
    3,931
    Репутация:
    1502 ±
    Для извращенцев могу предложить следующий код
    PHP код:
    forward KickPublic(playerid);
    public 
    KickPublic(playerid) return Kick(playerid);
    stock KickEx(playeridtime 100) return SetTimerEx("KickPublic"timefalse"i"playerid);
    #define Kick    KickEx 
    Это из самого элементарного. Использовать точно так же, как и ранее
    PHP код:
    Kick(playerid); 
    И так же можно указать время до кика
    PHP код:
    Kick(playerid50000); 
    В теории работать должно
    Связаться со мной можно в личных сообщениях этой группы

    Широко известно, что идеи стоят 0.8333 цента каждая (исходя из рыночной цены 10 центов за дюжину).
    Великих идей полно, на них нет спроса.
    Воплощение идеи в законченную игру требует долгой работы,
    таланта, терпения и креативности, не говоря уж о затратах денег, времени и ресурсов.
    Предложить идею просто, воплотить – вот в чём проблема

    Steve Pavlina

 

 

Информация о теме

Пользователи, просматривающие эту тему

Эту тему просматривают: 1 (пользователей: 0 , гостей: 1)

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
  •