Закрыть Привет! Если вы читаете это - Вы еще не зарегистрированы. Это займет не больше минуты. Нажмите здесь, чтобы пройти регистрацию в несколько простых шагов, чтобы пользоваться всеми возможностями нашего форума. Обратите внимание, запрещены непристойные, матерные, бессмысленные (цифры, случайный набор букв) ники. Удачи!

Тема: Ииспользованию strtok

Показано с 1 по 10 из 27

  1. #1
    Пользователь

    Аватар для Andreq

    Статус: Оффлайн
    Регистрация:11.11.2010
    Сообщений:46
    Репутация:20 [+/-] 

    Хорошо Ииспользованию strtok

    strtok это функция, используемая чтобы определить пробел между командой и параметром. Вам кажется сложным отличать параметры от команды? Этот урок должен вам помочь.
    PHP код:
    public OnPlayerCommandText(playeridcmdtext[])
    {
        new 
    tmp[255], string[255], cmd[255], idxgiveplayeridsendernamegiveplayer;
        
    cmd strtok(cmdtextidx);
        
    GetPlayerName(playeridsendernamesizeof(sendername));
        if(
    strcmp(cmd"/akill"true) == 0)
        {
            if(!
    IsPlayerAdmin(playerid)) return SendClientMessage(playerid0x919191FF"Вы должны быть администратором чтобы использовать эту комманду.");
            
    tmp strtok(cmdtextidx);
            if(!
    strlen(tmp)) return SendClientMessage(playerid0x919191FF"Использование: \"/akill [ID]\"");
            
    giveplayerid strval(tmp);
            
    GetPlayerName(giveplayeridgiveplayersizeof(giveplayer));
            if(!
    IsPlayerConnected(giveplayerid))SendClientMessage(playerid0x919191FF"Игрок с данным ID не подключён.");
            
    SetPlayerHealth(giveplayerid0); 
            
    format(stringsizeof(string), "Админ %s[%i] убвл вас!"sendernameplayerid);
            
    SendClientMessage(giveplayerid0xE21D2CFFstring);
            
    format(stringsizeof(string), "Вы убили %s[%i]!"giveplayergiveplayerid);
            
    SendClientMessage(playerid0xE21D2CFFstring);
            return 
    1;
       }

    Обьяснение
    PHP код:
    giveplayerid strval(tmp); 
    Присвоение переменной 'giveplayerid', числовое значение 'tmp'.
    PHP код:
    if(!strlen(tmp)) return SendClientMessage(...); 
    Если 'giveplayerid' не был указан (То есть было написано /akill вместо /akill ID)
    PHP код:
    GetPlayerName(playeridsendernamesizeof(sendername));
    GetPlayerName(giveplayeridgiveplayersizeof(giveplayer)); 
    Чтобы вывести правильное сообщение (т.е: "Nickname1(ID:4) убил Nickname2(ID:2)") мы должны извлечь два никнейма в 2 переменные. P.S.: Извлекайте никнейм у 'giveplayerid' ПОСЛЕ того как вы связали его с 'tmp'.

    Все равно не очень понятно? Просмотрите это:
    PHP код:
    if(strcmp(cmd"/ban"true) == 0)
    {
        if(!
    IsPlayerAdmin(playerid)) 
        return 
    SendClientMessage(playerid0x919191FF"Вы не админ."); // проверка на админа
        
    tmp strtok(cmdtextidx); // Мы объявляем что мы используем strtok для переменной 'tmp'
        
    if(!strlen(tmp)) return SendClientMessage(playerid0x919191FF"Использование: /ban [id]"); // Если ID не был указан
        
    giveplayerid strval(tmp); // Связываем с переменной 'giveplayerid'
        
    if(!IsPlayerConnected(giveplayerid)) return SendClientMessage(playerid0x919191FF"Игрок с данным ID не подключен."); // если 'giveplayerid' не онлайн
        
    Ban(giveplayerid);
        return 
    1;

    Объяснение
    PHP код:
    if(!IsPlayerAdmin(playerid)) 
    Если игрок не RCON админ, вывод сообщения, и остановка процесса
    PHP код:
    tmp strtok(cmdtextidx); 
    Связываем strtok с 'tmp'
    PHP код:
    if(!strlen(tmp)) 
    Если параметр не был задан, вывод сообщения, и остановка процесса
    PHP код:
    giveplayerid strval(tmp); 
    Связываем 'giveplayerid' с числовым значением tmp
    PHP код:
    if(!IsPlayerConnected(giveplayerid)) 
    Если 'giveplayerid' не подключён, вывод сообщения, и остановка процесса
    PHP код:
    Ban(giveplayerid); 
    Конечный результат команды, каждому понятен. :)

    Переводил на русский язык MazaHACKa
    Урок взят из Википедии http://wiki.sa-mp.com
    Последний раз редактировалось Red_Ronnie; 10.08.2011 в 20:42.
  2. 9 пользователей сказали cпасибо Andreq за это полезное сообщение:

    Andrey_Kiryuhin (31.03.2011), Diman4ik (03.04.2011), Justin (07.01.2011), krik (01.12.2010), Саня210 (06.01.2011), Samuel_Myasniko (19.03.2011), Sergey (08.03.2011), [D]em[O]n (02.02.2011), __oFFmaN :3 (27.01.2013)

  3. #2
    Пользователь

    Аватар для Саня210

    Статус: Оффлайн
    Регистрация:24.12.2010
    Сообщений:204
    Репутация:19 [+/-] 
    Сообщение удалено.
    Последний раз редактировалось Саня210; 21.05.2013 в 23:42.
    Услуги скриптера (написание простых / сложных систем, исправление багов, помощь).
    Skype: sancheus210 (причина авторизации: "Нужна помощь pawn").
  4. #3
    Заблокирован

    Аватар для Geshan

    Статус: Оффлайн
    Регистрация:27.01.2011
    Сообщений:5
    Репутация:0 [+/-] 
    Спасибо
  5. #4
    Пользователь

    Аватар для [D]em[O]n

    Статус: Оффлайн
    Регистрация:02.02.2011
    Сообщений:186
    Репутация:6 [+/-] 
    Полезный урок для новичков,держи +
  6. #5
    Пользователь

    Аватар для Alfred_Nobel

    Статус: Оффлайн
    Регистрация:06.02.2011
    Адрес:Тирасполь
    Сообщений:141
    Репутация:7 [+/-] 
    норм урок!
  7. #6
    Пользователь

    Аватар для Scripter

    Статус: Оффлайн
    Регистрация:18.03.2011
    Адрес:Тюмень
    Сообщений:34
    Репутация:0 [+/-] 
    Хороший урок
  8. #7
    Пользователь

    Аватар для CycJluk

    Статус: Оффлайн
    Регистрация:23.03.2011
    Сообщений:56
    Репутация:0 [+/-] 
    Авторо красав)
  9. #8
    Заблокирован

    Аватар для Last

    Статус: Оффлайн
    Регистрация:28.03.2011
    Адрес:Челябинск
    Сообщений:992
    Репутация:376 [+/-] 
    Привет ,помогите мне я только начал изучать pawno и хотел написать команду : /otp id эта команда была отправляла игрока с нужынм id'ом на определенную позицию
    if(strcmp(cmdtext, "/otp", true, 10) == 0)
    {
    if(!IsPlayerAdmin(playerid))
    giveplayerid = strval(tmp);
    SetPlayerPos(giveplayerid, 2574.30, -2410.89, 22.49 );
    }
    else
    {
    SendClientMessage(playerid, 0xFF000099, "Вы не админ");
    }
  10. #9
    Пользователь

    Аватар для Mr. Oscar

    Статус: Оффлайн
    Регистрация:21.03.2011
    Адрес:Иркутск
    Сообщений:433
    Репутация:65 [+/-] 
    так попробуй
    PHP код:
        if(strcmp(cmd"/otp"true10) == 0)
        {
            if(!
    IsPlayerAdmin(playerid))
            {
                
    SendClientMessage(playeridCOLOR_GRAD1"Ты не админ ***а поганая");
                return 
    1;
            }
             if(
    IsPlayerConnected(playerid))
             {
                
    tmp strtok(cmdtextidx);
                if(!
    strlen(tmp))
                {
                    
    SendClientMessage(playeridCOLOR_GRAD1" Подсказка: /otp [IDигрока]");
                    return 
    1;
                }
                
    giveplayerid strval(tmp);
                
    SetPlayerPos(giveplayerid2574.30, -2410.8922.49 );
            }
            return 
    1;
        } 
    если же помог + не зажопь
  11. #10
    Заблокирован

    Аватар для Last

    Статус: Оффлайн
    Регистрация:28.03.2011
    Адрес:Челябинск
    Сообщений:992
    Репутация:376 [+/-] 
    Неполучается(
    PHP код:
    еrror 017undefined symbol "cmd"
     
    error 017undefined symbol "strtok"
     
    error 033: array must be indexed (variable "tmp"
Страница 1 из 3 123 Последняя
  • К странице:

Пользователи, которые читали эту тему: 0

В данный момент нет участников для отображения в списке.

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения
В обязанности Администрации не входит контроль легальности или нелегальности передаваемой информации (любой, включая, но не ограничиваясь, информацией передаваемой между пользователями, внутренней пересылки информации в виде различных ссылок, текстов или архивов), определение прав собственности или законности передачи, приема или использования этой информации.
Администрация не несёт никакой ответственности за пользователей и модер состав форума!
читы хаки samp-rp advanvce скачать pawn скриптинг моды скрипты гарант s0beit cs 1.6 0.3x читы World of Tanks Баги samp-rp,читы samp-rp,аккаунты самп-рп Скриптинг PAWNO SA-MP IV-MP MTA уроки помощь создание сервер моды скрипты плагины cleo читы читинг собейт s0beit sobeit моды для sa-mp скрипты для sa-mp pawno скриптинг pawno скрипты pawno моды iv-mp скриптинг iv-mp скрипты iv-mp моды мод godfather Моды SAMP как установить машины для gta 4 Моды гта 4 Моды GTA 4 скачать моды для GTA 4 скрипты и моды GTA 4 скачать скрипты SAMP моды SAMP на русском языке где можно скачать Pen1 LS скачать Pen1 Fugitive скачать The Godfather rp roleplay samp-rp скачать бесплатно создать sa-mp сервер создать мод sa-mp создать скрипт в pawno gta-iv gta-v gta-sa gta-3 gta-III gta-4 gta-5 gta-vc mta mta-dm mta-race mta-sa pawno инфо info информация ru помощь в pawno ошибки pawno сервер павно gta-iv крэк gta-iv патч gta-v демо gta-v трейлер gta-iv keygen скрипты gta sa gta 4 multiplayer gta san adnreas multiplayer sa-mp forum форум о sa-mp форум о pawno русский sa-mp русское pawno русификатор реклама раскрутка сервера пиар сервера sa-mp мониторинг gta-sa ошибки в pawno pawno errors sa-mp 0.3c SA-MP 0.3d Играть в гта по сети моды для сампа скрипты самп Моды гта 4 Моды GTA 4 скачать моды для GTA 4 скрипты и моды GTA 4 скачать скрипты SAMP моды SAMP на русском языке где можно скачать Pen1 LS скачать Pen1 Fugitive скачать The Godfather Все моды SAMP у нас взлом вк hack rat android instagram twitter хак хакер лайфхак рынок продажа ddos защита услуги администратор root linux ubuntu mac android андроид прошивка без ограничений advance arizona читы 4g безлимит