Форумы на Наша-Life
Home user CP  
Календарь событий Найти других пользователей Часто задаваемые Вопросы Поиск  
Автор
Тема
Создать Новую Тему    Ответить
Megalan
(Мне нечего сказать :))

Зарегистрирован: Sep 2005
Проживает: Russian Federation/
Написал: 2234 сообщений

Оценка: 49 Votes 49 чел.

Добавление своей функции для клавиши.
Сообщение #505352
Что мне надо добавить в код чтобы я мог использовать клавишу указанную в конфигурации как определённую комманду? (Нужно создать новую клавишу которая будет отвечать за определённую комманду.)

Помогите плиз. Нигде найти не смог тутора
Old Post 12-01-2007 21:39
Megalan отсутствует Посмотреть данные 'Megalan' Отправить Приватное Сообщение для 'Megalan' Найти другие сообщения 'Megalan' Добавить Megalan в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Lolmen
(С++ Разработчик)

Зарегистрирован: Dec 2004
Проживает: Беларусь/Минск
Написал: 4515 сообщений

Оценка: 139 Votes 139 чел.

Старожил 
Сообщение #505426
Если на клиенте, то просто, можно так :

CON_COMMAND(mybutton_toggle, "toggles my button")
{
// Do something
}

Если на сервере, да и вообще на обоих видах, по идее также или же через поищи по проэкту поиском IN_ZOOM и посмотри как устроена кнопка и как сделать аналогию...
Зарание сорри за не солидарность!

Мой блог
Old Post 12-01-2007 23:18
Lolmen отсутствует Посмотреть данные 'Lolmen' Отправить Приватное Сообщение для 'Lolmen' Посетить домашнюю страничку Lolmen Найти другие сообщения 'Lolmen' Добавить Lolmen в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Megalan
(Мне нечего сказать :))

Зарегистрирован: Sep 2005
Проживает: Russian Federation/
Написал: 2234 сообщений

Оценка: 49 Votes 49 чел.

Сообщение #505668
Я попробывал так сделать.

Всё нормально. НО! Эта комманда у меня при поиске через консоль выводится раз 10 подряд.
Old Post 13-01-2007 13:28
Megalan отсутствует Посмотреть данные 'Megalan' Отправить Приватное Сообщение для 'Megalan' Найти другие сообщения 'Megalan' Добавить Megalan в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Lolmen
(С++ Разработчик)

Зарегистрирован: Dec 2004
Проживает: Беларусь/Минск
Написал: 4515 сообщений

Оценка: 139 Votes 139 чел.

Старожил 
Сообщение #505677
Цитата:
Оригинальное сообщение от Megalan
Я попробывал так сделать.

Всё нормально. НО! Эта комманда у меня при поиске через консоль выводится раз 10 подряд.


И как ты думаешь почему? потому что таймера нету

Она будет выводиться с максимальной скоростью нажатия кнопки

Таймер делаем так, незнаю где регим float m_flButtonToggleTimer;

далее хз де но в конструкторе класса декларируем его как

m_flButtonToggleTimer = gpGlobals->curtime


Теперь там где было

{

// Do something

}

Пишем, прямо в нутри

if ( m_flButtonToggleTimer > gpGlobals->curtime )
{
return;
}
else
{
// DO something
m_flButtonToggleTimer = gpGlobals->curtime + 0.5f;
}

Где m_flButtonToggleTimer = gpGlobals->curtime + 0.5f;
Будет ставить наш таймер на ожидание в 1/2 секунды,

другим образом мы просто получим время на разрешение нажатие кнопок в 1/2 секунды, грубо говоря, пока полсекунды не пройдёт хрен кнопка нажмётся
Зарание сорри за не солидарность!

Мой блог
Old Post 13-01-2007 13:42
Lolmen отсутствует Посмотреть данные 'Lolmen' Отправить Приватное Сообщение для 'Lolmen' Посетить домашнюю страничку Lolmen Найти другие сообщения 'Lolmen' Добавить Lolmen в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Megalan
(Мне нечего сказать :))

Зарегистрирован: Sep 2005
Проживает: Russian Federation/
Написал: 2234 сообщений

Оценка: 49 Votes 49 чел.

Сообщение #505691
Спасибо но я не это имел ввиду.

Предположим у меня комманда version_server

В консоле при наборе выводится так:
Version
version_server
version_server
version_server
version_server
version_server

Добавлял комманду version_server в файл convar.h
Old Post 13-01-2007 14:09
Megalan отсутствует Посмотреть данные 'Megalan' Отправить Приватное Сообщение для 'Megalan' Найти другие сообщения 'Megalan' Добавить Megalan в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Lolmen
(С++ Разработчик)

Зарегистрирован: Dec 2004
Проживает: Беларусь/Минск
Написал: 4515 сообщений

Оценка: 139 Votes 139 чел.

Старожил 
Сообщение #505756
Цитата:
Оригинальное сообщение от Megalan
Спасибо но я не это имел ввиду.

Предположим у меня комманда version_server

В консоле при наборе выводится так:
Version
version_server
version_server
version_server
version_server
version_server

Добавлял комманду version_server в файл convar.h


Тут либо потому что поиск обращается к комманде несоколько раз, причина цикличность или сам по себе цикл в виде while / for / do либо я не понял сути проблемы и попрошу редоставить полный код сиего чуда на немедленное корректирование...
Зарание сорри за не солидарность!

Мой блог
Old Post 13-01-2007 15:50
Lolmen отсутствует Посмотреть данные 'Lolmen' Отправить Приватное Сообщение для 'Lolmen' Посетить домашнюю страничку Lolmen Найти другие сообщения 'Lolmen' Добавить Lolmen в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
 
Megalan
(Мне нечего сказать :))

Зарегистрирован: Sep 2005
Проживает: Russian Federation/
Написал: 2234 сообщений

Оценка: 49 Votes 49 чел.

Сообщение #505769
//------------------------------
// Версия программы
//------------------------------
CON_COMMAND(Version_info, "Game version engine")
{
Msg("ProjectName Version 1.0.0 Developer edtion\n");
}

Полный код файла такой:

//========= Copyright © 1996-2005, Valve Corporation, All rights reserved. ============//
//
// Purpose:
//
// $Workfile: $
// $Date: $
//
//-----------------------------------------------------------------------------
// $NoKeywords: $
//=============================================================================//

#ifndef CONVAR_H
#define CONVAR_H
#if _WIN32
#pragma once
#endif

#include "tier0/dbg.h"

#ifdef _WIN32
#define FORCEINLINE_CVAR FORCEINLINE
#elif _LINUX
#define FORCEINLINE_CVAR __inline__ FORCEINLINE
#else
#error "implement me"
#endif

...........

//-----------------------------------------------------------------------------
// Purpose: Utility to quicky generate a simple console command
//-----------------------------------------------------------------------------
#define CON_COMMAND( name, description ) \
static void name(); \
static ConCommand name##_command( #name, name, description ); \
static void name()

//-----------------------------------------------------------------------------
// Purpose: Utility to quicky generate a simple console command
//-----------------------------------------------------------------------------
#define CON_COMMAND_F( name, description, flags ) \
static void name(); \
static ConCommand name##_command( #name, name, description, flags ); \
static void name()
//------------------------------
// Версия программы
//------------------------------
CON_COMMAND(Version_info, "Game version engine")
{
Msg("Projectname Version 1.0.0 Developer edition\n");
}

#endif // CONVAR_H

Поправил Megalan 13-01-2007 в 16:09

Old Post 13-01-2007 16:02
Megalan отсутствует Посмотреть данные 'Megalan' Отправить Приватное Сообщение для 'Megalan' Найти другие сообщения 'Megalan' Добавить Megalan в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Lolmen
(С++ Разработчик)

Зарегистрирован: Dec 2004
Проживает: Беларусь/Минск
Написал: 4515 сообщений

Оценка: 139 Votes 139 чел.

Старожил 
Сообщение #505792
А как ты её вызываешь?

По идее всё правильно. Просто физически 10 раз невозвожно...

А и да, эта комманда делает знаешь что?

Это как +command -command

т.е при обращении ты ставишь свой msg на выполнение и надо ввести еще раз чтобы прикратить, обходится простым счётчиком

внутри замест msg напиши static float counter = 0;

внуть засунь
if ( conter > 1 ){// UNPRESS CON_COMMAND counter = 0; }
else{ Msg( ... ); counter += 1; }

чтобы отжать я пока ненаю как но поидее просто её саму из себя вызвать
Зарание сорри за не солидарность!

Мой блог

Поправил Lolmen 13-01-2007 в 16:46

Old Post 13-01-2007 16:42
Lolmen отсутствует Посмотреть данные 'Lolmen' Отправить Приватное Сообщение для 'Lolmen' Посетить домашнюю страничку Lolmen Найти другие сообщения 'Lolmen' Добавить Lolmen в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Megalan
(Мне нечего сказать :))

Зарегистрирован: Sep 2005
Проживает: Russian Federation/
Написал: 2234 сообщений

Оценка: 49 Votes 49 чел.

Сообщение #505800
Цитата:
Оригинальное сообщение от Lolmen
А как ты её вызываешь?

По идее всё правильно. Просто физически 10 раз невозвожно...

А и да, эта комманда делает знаешь что?

Это как +command -command

т.е при обращении ты ставишь свой msg на выполнение и надо ввести еще раз чтобы прикратить, обходится простым счётчиком

внутри замест msg напиши static float counter = 0;

внуть засунь
if ( conter > 1 ){// UNPRESS CON_COMMAND counter = 0; }
else{ Msg( ... ); counter += 1; }

чтобы отжать я пока ненаю как но поидее просто её саму из себя вызвать


Ты наверное меня не правильно понял. Щас я ещё консольную комманду не забиндил на клавишу. У меня баг в самой консоли. Слишком много одной и той же комманды!
Прикрепленная картинка: [посмотреть в полный размер]
4661b2139c486def87e9b1e8c0145e88
Old Post 13-01-2007 16:53
Megalan отсутствует Посмотреть данные 'Megalan' Отправить Приватное Сообщение для 'Megalan' Найти другие сообщения 'Megalan' Добавить Megalan в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Lolmen
(С++ Разработчик)

Зарегистрирован: Dec 2004
Проживает: Беларусь/Минск
Написал: 4515 сообщений

Оценка: 139 Votes 139 чел.

Старожил 
Сообщение #505825
Йопт, ты ты не пиши её в хидере *.h а в *.cpp и вааще

и делать это лутше в clientmode_shared.cpp

мона еще вот так :

static CON_COMMAND( ... )
{
MSG( ... )
};


Да и это, version_info вроде уже есть, так как пишет первое пишет версию сорс энжына, второе чёто еще протокол или билд непонмю lol

потому и поисковик путается неная какой выводить, и выводит один за другим

короче нагони сперва в cpp и если се равно тогда напиши verion_of_mod точно не ошибёшся
Зарание сорри за не солидарность!

Мой блог
Old Post 13-01-2007 17:28
Lolmen отсутствует Посмотреть данные 'Lolmen' Отправить Приватное Сообщение для 'Lolmen' Посетить домашнюю страничку Lolmen Найти другие сообщения 'Lolmen' Добавить Lolmen в Список Друзей
Править/Удалить Сообщение Ответить с Цитированием
Все время в GMT . Сейчас 14:12.
Создать Новую Тему    Ответить

Быстрый ответ
Ваше Имя:
Хотите Зарегистрироваться?
Ваш Пароль:
Забыли свой Пароль?
Вы можете оставлять свои комментарии анонимно, просто введя свои имя и оставив пустым поле пароля.
Ваш ответ:

[проверить размер]
[транслит в win] | [?]
[русская клавиатура]

Дополнительно: Подтверждение по E-Mail


Быстрый переход:
 
Оцените эту Тему:
 

Правила форума:
Создание Тем не разрешено
Создание Сообщений разрешено
Создавать Вложения не разрешено
Редактирование Сообщений не разрешено
Коды HTML запрещены
Коды форума разрешены
Смайлики разрешены
Коды [IMG] запрещены