Русское сообщество по скриптингу

Сравнить прочитанный аргумент со строкой

Все вопросы по работе и настройке AMXX и его плагинов.

Модератор: liFe iS GoOD

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только вопросов по AMX Mod X и его плагинам.

Сравнить прочитанный аргумент со строкой

Сообщение Donnyanno » 13 апр 2018, 13:58

Добрый день! Хочу сравнить пароль с написаным с указаным,но почему-то не работает,пробывал через qual,но чатно

Код: Выделить всё
new PassAcces[] = "1544";

public Cmd_ReadPass(id) client_cmd(id, "messagemode ReadPass");

public Open_AcessMenu(id)
{
    new password[192];
    read_args(password, 191);
    new CP = containi(password, PassAcces);
    if(CP != -1)
    {
        Open_Menu(id);
    }

Название темы скорректировано // Subb98
Аватара пользователя
Donnyanno
 
Сообщения: 17
Зарегистрирован: 23 янв 2018, 16:21
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около года
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: Читание и сравнение

Сообщение RevCrew » 13 апр 2018, 14:01

Donnyanno, у вас где то ошибка. Для большей инфы нужен исх
Аватара пользователя
RevCrew
Скриптер
 
Сообщения: 1648
Зарегистрирован: 15 июл 2013, 20:45
Благодарил (а): 273 раз.
Поблагодарили: 357 раз.
Языки программирования: Unkown

Re: Читание и сравнение

Сообщение Donnyanno » 13 апр 2018, 14:02

Код: Выделить всё
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <hamsandwich>

#pragma semicolon 1

#define MAX_PLAYERS 32

#define PLAYERS_PER_PAGE 8

#define IKEY (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8|1<<9)

new g_iMaxPlayers;

new 
PassAcces[] = "1544";

public 
plugin_init()
{
 
register_plugin("LOL""1.0""LOPPI");
 
 
register_clcmd("say /oc""Cmd_ReadPass");
 
register_clcmd("ReadPass","Open_AcessMenu");
 
 
 
register_menucmd(register_menuid("Open_Menu"),IKEY,"Func_Menu");
 
 
 
 
g_iMaxPlayers get_maxplayers();
}

public 
Cmd_ReadPass(idclient_cmd(id"messagemode ReadPass");

public 
Open_AcessMenu(id)
{
    new 
password[192];
    
read_args(password191);
    new 
CP containi(passwordPassAcces);
    if(
CP != -1)
    {
        
Open_Menu(id);
    }


public 
Open_Menu(id)
{
    new 
menu[512], iKeys = (1<<0|1<<1|1<<2|1<<9),len;
    
len formatex(menucharsmax(menu), "\wМеню LOla^n^n");
    
len += formatex(menu[len], charsmax(menu) - len"\y[\d1\y] \wОткрыть^n");
    
len += formatex(menu[len], charsmax(menu) - len"\y[\d2\y] \wЧто может выпасть^n");
    
formatex(menu[len], charsmax(menu) - len"^n\y[0] \wВыход");
    return 
show_menu(idiKeysmenu, -1"Open_Menu");
}

public 
Func_Menu(idiKey)
{
    switch(
iKey)
    {
        case 
0client_cmd(id"ll");
    }
Аватара пользователя
Donnyanno
 
Сообщения: 17
Зарегистрирован: 23 янв 2018, 16:21
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около года
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: Читание и сравнение

Сообщение RevCrew » 13 апр 2018, 14:06

Donnyanno, ну для начала попробуйте прологировать код, типа

Код: Выделить всё
public Open_AcessMenu(id)
{
    new password[192];
    read_args(password, 191);
    new CP = containi(password, PassAcces);

    log_amx(" Value %s; Need %s", password, PassAcces)
    if(CP != -1)
    {
        Open_Menu(id);
    }
}


Добавлено спустя 38 секунд:
посмотрите что выведет
Аватара пользователя
RevCrew
Скриптер
 
Сообщения: 1648
Зарегистрирован: 15 июл 2013, 20:45
Благодарил (а): 273 раз.
Поблагодарили: 357 раз.
Языки программирования: Unkown

Re: Читание и сравнение

Сообщение Donnyanno » 13 апр 2018, 14:18

Код: Выделить всё
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <hamsandwich>

#pragma semicolon 1

#define MAX_PLAYERS 32

#define PLAYERS_PER_PAGE 8

#define IKEY (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8|1<<9)

new g_iMaxPlayers;

new PassAcces[] = "1544";

public plugin_init()
{
 register_plugin("g", "1.0", "LOPPI");
 
 register_clcmd
("say /oc", "Cmd_ReadPass");
 register_clcmd("ReadPass","Open_AcessMenu"); 
 
 g_iMaxPlayers 
= get_maxplayers();
}

public Cmd_ReadPass(id) client_cmd(id, "messagemode ReadPass");

public Open_AcessMenu(id)
{
    new password[192];
    read_args(password, 191);
    new CP = containi(password, PassAcces);

    log_amx(" Value %s; Need %s", password, PassAcces);
    if(CP != -1)
    {
        client_print(0,print_chat, "Подошёл");
    }
    else client_print(0,print_chat, "ytn");
        
}


Вот,сделал проверку на доходность функции и ничего,в чём проблема?
Аватара пользователя
Donnyanno
 
Сообщения: 17
Зарегистрирован: 23 янв 2018, 16:21
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около года
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: Читание и сравнение

Сообщение RevCrew » 13 апр 2018, 14:30

Donnyanno, возможно в вашей кс встроен протектор который мешает исполнению messagemode
Аватара пользователя
RevCrew
Скриптер
 
Сообщения: 1648
Зарегистрирован: 15 июл 2013, 20:45
Благодарил (а): 273 раз.
Поблагодарили: 357 раз.
Языки программирования: Unkown

Re: Читание и сравнение

Сообщение Donnyanno » 13 апр 2018, 14:34

Но если бы был протектор,то тогда бы вообще не открывалось бы messagemod
Аватара пользователя
Donnyanno
 
Сообщения: 17
Зарегистрирован: 23 янв 2018, 16:21
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Опыт программирования: Около года
Языки программирования: Pawn
SourcePawn
C++
Php
Ruby
Python
C#

Re: Сравнить прочитанный аргумент со строкой

Сообщение 1Fresh1MaLoY » 28 апр 2018, 19:40

Код: Выделить всё
if( equal( arg1, arg2, strlen(arg1) ))


Добавлено спустя 2 минуты 8 секунд:
Код: Выделить всё
#include <amxmodx>
#include <amxmisc>
#include <cstrike>
#include <fun>
#include <fakemeta>
#include <hamsandwich>

#pragma semicolon 1

#define MAX_PLAYERS 32

#define PLAYERS_PER_PAGE 8

#define IKEY (1<<0|1<<1|1<<2|1<<3|1<<4|1<<5|1<<6|1<<7|1<<8|1<<9)

new g_iMaxPlayers;

new 
PassAcces[] = "1544";

public 
plugin_init()
{
 
register_plugin("g""1.0""LOPPI");
 
 
register_clcmd("say /oc""Cmd_ReadPass");
 
register_clcmd("ReadPass","Open_AcessMenu"); 
 
 
g_iMaxPlayers get_maxplayers();
}

public 
Cmd_ReadPass(idclient_cmd(id"messagemode ReadPass");

public 
Open_AcessMenu(id)
{
    new 
password[192];
    
read_args(password191);
    new 
CP containi(passwordPassAcces);

    
log_amx(" Value %s; Need %s"passwordPassAcces);
    if( 
equalPassAccespasswordstrlen(PassAcces) ))
    {
        
client_print(0,print_chat"Подошёл");
    }
    else 
client_print(0,print_chat"ytn");
        

Пробуй
Аватара пользователя
1Fresh1MaLoY
 
Сообщения: 33
Зарегистрирован: 08 июл 2017, 06:19
Благодарил (а): 8 раз.
Поблагодарили: 2 раз.
Опыт программирования: Около года
Языки программирования: Counter-Strike 1.6
SA:MP
C#


Вернуться в Вопросы по AMXX и его плагинам

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 11