Форум программистов, компьютерный форум CyberForum.ru

Найти строку - C++

Восстановить пароль Регистрация
 
twista
0 / 0 / 0
Регистрация: 31.05.2010
Сообщений: 79
16.08.2010, 16:53     Найти строку #1
Помогите с кодом,мне нужна строка которая отправляет на сервер (чат,голосование и т.п.)сам код от исходника quake3,подскажите где она здесь
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
Cmd_CallVote_f
==================
*/
void Cmd_CallVote_f( gentity_t *ent ) {
    int     i;
    char    arg1[MAX_STRING_TOKENS];
    char    arg2[MAX_STRING_TOKENS];
 
    if ( !g_allowVote.integer ) {
        trap_SendServerCommand( ent-g_entities, "print \"Voting not allowed here.\n\"" );
        return;
    }
 
    if ( level.voteTime ) {
        trap_SendServerCommand( ent-g_entities, "print \"A vote is already in progress.\n\"" );
        return;
    }
    if ( ent->client->pers.voteCount >= MAX_VOTE_COUNT ) {
        trap_SendServerCommand( ent-g_entities, "print \"You have called the maximum number of votes.\n\"" );
        return;
    }
    if ( ent->client->sess.sessionTeam == TEAM_SPECTATOR ) {
        trap_SendServerCommand( ent-g_entities, "print \"Not allowed to call a vote as spectator.\n\"" );
        return;
    }
 
    // make sure it is a valid command to vote on
    trap_Argv( 1, arg1, sizeof( arg1 ) );
    trap_Argv( 2, arg2, sizeof( arg2 ) );
 
    if( strchr( arg1, ';' ) || strchr( arg2, ';' ) ) {
        trap_SendServerCommand( ent-g_entities, "print \"Invalid vote string.\n\"" );
        return;
    }
 
    if ( !Q_stricmp( arg1, "map_restart" ) ) {
    } else if ( !Q_stricmp( arg1, "nextmap" ) ) {
    } else if ( !Q_stricmp( arg1, "map" ) ) {
    } else if ( !Q_stricmp( arg1, "g_gametype" ) ) {
    } else if ( !Q_stricmp( arg1, "kick" ) ) {
    } else if ( !Q_stricmp( arg1, "clientkick" ) ) {
    } else if ( !Q_stricmp( arg1, "g_doWarmup" ) ) {
    } else if ( !Q_stricmp( arg1, "timelimit" ) ) {
    } else if ( !Q_stricmp( arg1, "fraglimit" ) ) {
    } else {
        trap_SendServerCommand( ent-g_entities, "print \"Invalid vote string.\n\"" );
        trap_SendServerCommand( ent-g_entities, "print \"Vote commands are: map_restart, nextmap, map <mapname>, g_gametype <n>, kick <player>, clientkick <clientnum>, g_doWarmup, timelimit <time>, fraglimit <frags>.\n\"" );
        return;
    }
 
    // if there is still a vote to be executed
    if ( level.voteExecuteTime ) {
        level.voteExecuteTime = 0;
        trap_SendConsoleCommand( EXEC_APPEND, va("%s\n", level.voteString ) );
    }
 
    // special case for g_gametype, check for bad values
    if ( !Q_stricmp( arg1, "g_gametype" ) ) {
        i = atoi( arg2 );
        if( i == GT_SINGLE_PLAYER || i < GT_FFA || i >= GT_MAX_GAME_TYPE) {
            trap_SendServerCommand( ent-g_entities, "print \"Invalid gametype.\n\"" );
            return;
        }
 
        Com_sprintf( level.voteString, sizeof( level.voteString ), "%s %d", arg1, i );
        Com_sprintf( level.voteDisplayString, sizeof( level.voteDisplayString ), "%s %s", arg1, gameNames[i] );
    } else if ( !Q_stricmp( arg1, "map" ) ) {
        // special case for map changes, we want to reset the nextmap setting
        // this allows a player to change maps, but not upset the map rotation
        char    s[MAX_STRING_CHARS];
 
        trap_Cvar_VariableStringBuffer( "nextmap", s, sizeof(s) );
        if (*s) {
            Com_sprintf( level.voteString, sizeof( level.voteString ), "%s %s; set nextmap \"%s\"", arg1, arg2, s );
        } else {
            Com_sprintf( level.voteString, sizeof( level.voteString ), "%s %s", arg1, arg2 );
        }
        Com_sprintf( level.voteDisplayString, sizeof( level.voteDisplayString ), "%s", level.voteString );
    } else if ( !Q_stricmp( arg1, "nextmap" ) ) {
        char    s[MAX_STRING_CHARS];
 
        trap_Cvar_VariableStringBuffer( "nextmap", s, sizeof(s) );
        if (!*s) {
            trap_SendServerCommand( ent-g_entities, "print \"nextmap not set.\n\"" );
            return;
        }
        Com_sprintf( level.voteString, sizeof( level.voteString ), "vstr nextmap");
        Com_sprintf( level.voteDisplayString, sizeof( level.voteDisplayString ), "%s", level.voteString );
    } else {
        Com_sprintf( level.voteString, sizeof( level.voteString ), "%s \"%s\"", arg1, arg2 );
        Com_sprintf( level.voteDisplayString, sizeof( level.voteDisplayString ), "%s", level.voteString );
    }
 
    trap_SendServerCommand( -1, va("print \"%s called a vote.\n\"", ent->client->pers.netname ) );
 
    // start the voting, the caller autoamtically votes yes
    level.voteTime = level.time;
    level.voteYes = 1;
    level.voteNo = 0;
 
    for ( i = 0 ; i < level.maxclients ; i++ ) {
        level.clients[i].ps.eFlags &= ~EF_VOTED;
    }
    ent->client->ps.eFlags |= EF_VOTED;
 
    trap_SetConfigstring( CS_VOTE_TIME, va("%i", level.voteTime ) );
    trap_SetConfigstring( CS_VOTE_STRING, level.voteDisplayString );    
    trap_SetConfigstring( CS_VOTE_YES, va("%i", level.voteYes ) );
    trap_SetConfigstring( CS_VOTE_NO, va("%i", level.voteNo ) );
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
16.08.2010, 16:53     Найти строку
Посмотрите здесь:

C++ Найти в матрице строку где сумма элементов минимальна и удалить эту строку
C++ ввести строку символов. Сформировать строку вдвое большей длины, где каждый символ предворяется пробелом. Вывести полученную строку.
C++ Массивы. Посчитать количество положительных, найти минимальное, удалить строку с минимальным (Не могу найти ошибку)
Как найти строку ? C++
Найти строку матрицы с максимальным нечетным элементом поменять эту строку местами с нулевой строкой. C++
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
16.08.2010, 17:10     Найти строку #2
Не оно: trap_SendServerCommand?
twista
0 / 0 / 0
Регистрация: 31.05.2010
Сообщений: 79
16.08.2010, 17:16  [ТС]     Найти строку #3
ну понятно что это она,но их тут много мне одна нужна конкретная что бы по ней я уже в ексешнике своем нашел......
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
16.08.2010, 17:19     Найти строку #4
Напиши конкретно, что именно она должна отправлять, а то что-то непонятно...
twista
0 / 0 / 0
Регистрация: 31.05.2010
Сообщений: 79
16.08.2010, 17:24  [ТС]     Найти строку #5
голосование к примеру (map)
Nameless One
Эксперт С++
 Аватар для Nameless One
5755 / 3404 / 255
Регистрация: 08.02.2010
Сообщений: 7,393
16.08.2010, 17:32     Найти строку #6
Судя по всему, в строке 54 - trap_SendConsoleCommand( EXEC_APPEND, va("%s\n", level.voteString ) );. Само голосование формируется в строках 57-92.
trap_SendServerCommand, похоже отправляет некоторое отладочное сообщение, которое не несет реальной смысловой нагрузки (т.е. сигнализирует об ошибках, введенных пользователем неверных данных и т.п.)
Yandex
Объявления
16.08.2010, 17:32     Найти строку
Ответ Создать тему
Опции темы

Текущее время: 05:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru