HLFX.Ru Forum
Показать все 27 сообщений этой темы на одной странице

HLFX.Ru Forum (https://hlfx.ru/forum/index.php)
- Half-Life SDK (https://hlfx.ru/forum/forumdisplay.php?forumid=8)
-- Запрещения запуска через custom game, или что-то подобное. (https://hlfx.ru/forum/showthread.php?threadid=2523)


Отправлено Alex_Gordon 04-01-2011 в 13:47:

Запрещения запуска через custom game, или что-то подобное.

Если это не большой секрет, то расскажите пожалуйста, как это делается.
У меня просто на лаунчере обновления для мода, а если запускать через custom game, то юзер не будет обновляться.
Помнится, в HLFX:Single demo такое было.

__________________
Ха, тюремный автомобиль!!!

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



Отправлено XaeroX 04-01-2011 в 13:56:

Лаунчер копирует какой-нибудь файл, игра его проверяет. Если его нет - значит, запускали через кастом гейм. Если есть - игра его удаляет и продолжает работу.
Только советую позволить пользователю продолжить игру несмотря ни на что, как в хлфх-лбм. Иначе будет бесить. К тому же обновления обычно никому не нужны.

__________________

xaerox on Vivino


Отправлено Alex_Gordon 04-01-2011 в 14:46:

XaeroX, спасибо. А какой код проверки на кастом гейм? я имею ввиду что писать в
if (условие....)
{
Что тут писать?
}

__________________
Ха, тюремный автомобиль!!!

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



Отправлено Дядя Миша 04-01-2011 в 14:50:

Alex_Gordon
MessageBox(NULL, "Something bad happens", "Error", MB_OK|MB_SETFOREGROUND|MB_ICONSTOP );
exit( 1 );

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Alex_Gordon 04-01-2011 в 14:52:

Дядя Миша, еще один нубский вопрос: это в условии или замест его?

__________________
Ха, тюремный автомобиль!!!

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



Отправлено Government-Man 04-01-2011 в 14:55:

Цитата:
Дядя Миша писал:
MB_SETFOREGROUND


MB_SYSTEMMODAL лучше

Добавлено 04-01-2011 в 09:55:

Цитата:
Alex_Gordon писал:
еще один нубский вопрос: это в условии или замест его?


Гм... Ты написал лаунчер с системой обновления и задаешь такие вопросы?
Или я чота недопонял?


Отправлено Alex_Gordon 04-01-2011 в 14:57:

Government-Man ээ.. ну да)
Лаунчер-то на дельфи)

__________________
Ха, тюремный автомобиль!!!

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



Отправлено Дядя Миша 04-01-2011 в 15:11:

Цитата:
Alex_Gordon писал:
еще один нубский вопрос: это в условии или замест его?

ну а ты спрашивал про что?
Цитата:
Alex_Gordon писал:
if (условие....)
{
Что тут писать?
}

Или ты уже себе недоверяеш? )

Добавлено 04-01-2011 в 18:11:

Цитата:
Government-Man писал:
MB_SYSTEMMODAL лучше

армян лучше чем грузин?

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 04-01-2011 в 15:20:

Только не exit, а TerminateProcess(GetCurrentProcess(), 0);
Это ж дллке, а не в ехе.

__________________

xaerox on Vivino


Отправлено Alex_Gordon 04-01-2011 в 16:11:

Дядя Миша, со мной такое бывает иногда))

Добавлено 04-01-2011 в 21:11:

И еще: я как страннейший человек для проверки на существования файла пытался использовать if fileexists(...).
Но это же с C++ Builder!
Есть ли альтернатива для визуалки?

__________________
Ха, тюремный автомобиль!!!

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



Отправлено Government-Man 04-01-2011 в 16:35:

C++ Source Code:
1
#include <stdio.h>
2
 
3
...
4
 
5
bool fileexists( const char *filename )
6
{
7
  FILE *file = fopen( filename, "r" );
8
  if ( file )
9
  {
10
    fclose( file );
11
    return true;
12
  }
13
 
14
  return false;
15
}


Добавлено 04-01-2011 в 11:35:

Цитата:
Дядя Миша писал:
армян лучше чем грузин?


В данном случае ога


Отправлено Alex_Gordon 04-01-2011 в 16:42:

Привел функцию к виду

C++ Source Code:
1
bool fileexist( const char *filename )
2
{
3
  FILE *file = fopen( "main.txt", "r" );
4
  if ( file )
5
  {
6
    fclose( file );
7
    return true;
8
  }
9
  MessageBox(NULL, "Something bad happens", "Error", MB_OK|MB_SETFOREGROUND|MB_ICONSTOP );
10
  TerminateProcess(GetCurrentProcess(), 0);
11
  return false;
12
}

И вызвал ее из ClientConnect. Ноль реакции. В чем дело?

__________________
Ха, тюремный автомобиль!!!

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



Отправлено Government-Man 04-01-2011 в 17:04:

Цитата:
Alex_Gordon писал:
Привел функцию к виду


C++ Source Code:
1
if ( !fileexist( "main.txt" ) )
2
{
3
  MessageBox(NULL, "Something bad happens", "Error", MB_OK|MB_SETFOREGROUND|MB_ICONSTOP );
4
  TerminateProcess(GetCurrentProcess(), 0);
5
}


- так лучше будет.

По поводу эффекта: у тебя файл где должен лежать? В папке мода? Дык тогда тебе надо вызвать <не-помню-какую-функцию> для получения пути к папке мода, присобачить туда "\\main.txt" и потом уже проверять.

Добавлено 04-01-2011 в 11:57:

Цитата:
Alex_Gordon писал:
И вызвал ее из ClientConnect


Ты на сервере это делаешь?

Добавлено 04-01-2011 в 12:04:

Цитата:
Alex_Gordon писал:
Лаунчер-то на дельфи


А что в делфи уже есть компонент "Half-Life Mod Updater"?


Отправлено XaeroX 04-01-2011 в 17:11:

Это надо делать на клиенте, в HUD_Init скажем.

__________________

xaerox on Vivino


Отправлено Alex_Gordon 04-01-2011 в 17:29:

XaeroX, вызываю твое условие из hud_init:
C:\Program Files\Half-Life3\ungr3\UnGr3_src\cl_dll\cdll_int.cpp(208) : error C2065: 'MessageBox' : undeclared identifier
C:\Program Files\Half-Life3\ungr3\UnGr3_src\cl_dll\cdll_int.cpp(208) : error C2065: 'MB_OK' : undeclared identifier
C:\Program Files\Half-Life3\ungr3\UnGr3_src\cl_dll\cdll_int.cpp(208) : error C2065: 'MB_SETFOREGROUND' : undeclared identifier
C:\Program Files\Half-Life3\ungr3\UnGr3_src\cl_dll\cdll_int.cpp(208) : error C2065: 'MB_ICONSTOP' : undeclared identifier
C:\Program Files\Half-Life3\ungr3\UnGr3_src\cl_dll\cdll_int.cpp(209) : error C2065: 'TerminateProcess' : undeclared identifier
C:\Program Files\Half-Life3\ungr3\UnGr3_src\cl_dll\cdll_int.cpp(209) : error C2065: 'GetCurrentProcess' : undeclared identifier
Error executing cl.exe.

__________________
Ха, тюремный автомобиль!!!

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



Отправлено XaeroX 04-01-2011 в 17:31:

А windows.h кто будет подключать? Дед-мороз?

Добавлено 04-01-2011 в 23:31:

Alex_Gordon
А зачем ты делаешь Half-Life 3?

__________________

xaerox on Vivino


Отправлено Alex_Gordon 04-01-2011 в 17:39:

Цитата:
Government-Man писал:
<не-помню-какую-функцию>

А это какая, кто-нибудь другой помнит?


Добавлено 04-01-2011 в 22:39:

XaeroX, у меня и Half-Life7 есть) это просто название папки)

__________________
Ха, тюремный автомобиль!!!

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



Отправлено XaeroX 04-01-2011 в 17:43:

Цитата:
Alex_Gordon писал:
А это какая, кто-нибудь другой помнит?

gEngfuncs.pfnGetGameDirectory

__________________

xaerox on Vivino


Отправлено Alex_Gordon 04-01-2011 в 17:54:

А как присобачить?

__________________
Ха, тюремный автомобиль!!!

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



Отправлено Government-Man 04-01-2011 в 18:59:

Alex_Gordon strcat

Добавлено 04-01-2011 в 13:59:

Хотя в данном случае логичнее sprintf заюзать.


Отправлено Alex_Gordon 04-01-2011 в 19:03:

Government-Man, впервые слышу. Синтаксис там какой?

__________________
Ха, тюремный автомобиль!!!

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



Отправлено Дядя Миша 04-01-2011 в 19:25:

Цитата:
XaeroX писал:
Это ж дллке, а не в ехе.

чуж! даже вальва юзает exit( -1 ) в клиентке (там де проверка на кол-во аттачментов).

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 04-01-2011 в 20:06:

Дядя Миша
Не видел. Я всегда юзал TerminateProcess. ExitProcess/exit у меня не срабатывали, хотя возможно я что-то делал неправильно.

__________________

xaerox on Vivino


Отправлено Дядя Миша 04-01-2011 в 20:23:

XaeroX следи за руками:

C++ Source Code:
1
void CStudioModelRenderer::StudioCalcAttachments( void )
2
{
3
  int i;
4
  mstudioattachment_t *pattachment;
5
 
6
  if ( m_pStudioHeader->numattachments > 4 )
7
  {
8
    gEngfuncs.Con_DPrintf( "Too many attachments on %s\n", m_pCurrentEntity->model->name );
9
    exit( -1 );
10
  }

Халфу вышибает только так )

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено XaeroX 04-01-2011 в 20:24:

Дядя Миша
Не знаю, не знаю. У меня халфу ни разу не вышибало.

__________________

xaerox on Vivino


Отправлено Дядя Миша 04-01-2011 в 20:38:

XaeroX модельку сделай с пятью аттачментами )

__________________
My Projects: download page

F.A.Q по XashNT
Блог разработчика в телеграме

Цитата:

C:\DOCUME~1\C4C5~1\LOCALS~1\Temp\a33328if(72) : see declaration of 'size_t'


Отправлено Alex_Gordon 05-01-2011 в 06:32:

Еще один вопрос: где находится проверка на модели? Если нет модели, то появляется сообщение:
<modelname> Not Found

__________________
Ха, тюремный автомобиль!!!

Ιερά λάμδα

Quisque moritur Gordon sinistram. Alex Gordon.



Временная зона GMT. Текущее время 22:08.
Показать все 27 сообщений этой темы на одной странице

На основе vBulletin версии 2.3.0
Авторское право © Jelsoft Enterprises Limited 2000 - 2002.
Дизайн и программирование: Crystice Softworks © 2005 - 2024