1. Соблюдайте Правила форума и проявляйте уважение к другим участникам беседы.

OpenSource [GHostOne][Patch] Autohost Random Game Names

Тема в разделе 'Кодинг/Собственные решения', создана пользователем Deals, 10 окт 2010.

  1. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    И так. Сидя и думая что одно и тоже имя для автохоста не интересно, мне в голову пришла мысль что нужно сделать рандомные имена для автохостинга. А еще лучше если эти имена буду вписаны в файл, откуда их бот будет брать и выбирать одно из имен для создания игры. Данная функция основана на векторе и рандома C++.

    Описание:
    1. bot_autohostrandomgamename = 0 - добавить в конфиг. 1 - для включения.
    2. Комманда !random включает\выключает функцию (только в пм боту или на канале).
    3. randomgamenames.txt - файл с рандомными названиями игры. Каждая новая строка - название игры.
    4. Данная функция заменяет bot_autohostgamename ... поэтому если вы в файле рандомных игр впишите 1 название - лучше используйте bot_autohostgamename, а данную функцию выключите. Иначе будет работать название игры из данной функции.

    Файл патча (*.patch).

    Doterok и fenlod нравится это.
  2. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Многим пригодится данный патч...
    Видал сегодня на алькаре 4 ботов с разными модами...
    Данный патч еще сыроват в плане рандомности. Может выпасть одно и тоже имя несколько раз.
    Ну и конечно же одновременно невозможно создать игры. Т.е. сначала создалась одна с рандомным именем, стартонула, далее вторая с рандомным именем, стартонула и т.д.
    Хотя даже лучше по последнему пункту. Т.к. ночью людей мало. И они бегают на каждый мод и не могут решится в какой зайти. А так пока 1 игра не старт 2 не создастся. Ну и самый важный + данного патча - запущен 1 бот.
    Еще поработаю над тем чтоб организовать непостоянность названия игры.
    Update (22\11\2010):
    Патч переделан.
    Теперь повторения одинаковых названий уменьшено до 2. Т.е. максимально сколько раз может повторится название - два раза. Шанс повторения названия напрямую зависит от количества названий игр в файле. Чем их больше - тем меньше нас выпасть два раза названию.
    Ввел дополнительный вектор. Который содержит временные имена игр. По мере создания игр он из вектора удаляет уже созданную. И так пока вектор не опустошится. После опустошения он опять наполняется вектором имен игр который заполнен после чтения файла. Выпадание двух названий связано с тем что когда в векторе было последнее название например -sd и после наполнения вектора рандомно первым выпадает -sd. После чего уже из заполненного вектора -sd удаляется и таким образом далее повторение не возможно.
  3. Zarj Старожила

    Сообщения:
    1.007
    Спасибы:
    23
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.1992
    Хороший патч для дотеров, Только ты забыл упомянуть что моды вписывать в файл randomgamenames.txt =)
  4. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    В патче видно какой файл :-D
  5. Zarj Старожила

    Сообщения:
    1.007
    Спасибы:
    23
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.1992
    Не каждый додумается прочитать ) Есть кто просто применит патч и всё )
    Ты его давно начар разрабатывать? revision 249
  6. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    Если бы ты знал ревизии оригинального бота (исходников) ты бы не спрашивал почему 249 или 256.
    А написал за 2 часа.

    P.S.: А вообще написал 2 дня назад еще... тестировал. Скоро займусь за счетчиком игр автохоста. Т.к. он плюсуется в невероятных количествах. За день 200+... и уже знаю как решить только еще протестировать нужно будет.
  7. Zarj Старожила

    Сообщения:
    1.007
    Спасибы:
    23
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.1992
    Последние исходники 256, причём достаточно долго уже.
    Чтото не понял что за идея по поводу автохоста.
  8. MeGaLeX Знакомый модера

    Сообщения:
    62
    Спасибы:
    0
    Помогите реализовать функцию , которая есть в автохосте, которая отвечает за увеличение номера игры. Т.е.
    gamename #1 , gamename #2, в команде .pub, т.е. я пишу например .pub asdf и бот создаёт игру asdf #1, если другой игрок после меня создаёт игру командой .pub gogogo posoni, то бот должен создать игру с названием gogogo posoni #2, ребята, это очень важно, т.к. без этой функции, игры накладываются друг на друга и исчезают в списке созданных игр. :opasnoste:

    P.S. Ghost++ 17.1
  9. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
  10. MeGaLeX Знакомый модера

    Сообщения:
    62
    Спасибы:
    0
    Поможешь? )
  11. fake Старожила

    Сообщения:
    1.624
    Спасибы:
    19
    Дата начала использования бота:
    11.11.11
    качай ghost one и либо юзай его либо от туда копируй....
  12. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    MeGaLeX, а ты уже что-то делал в исходниках?

    Added:
    Ого. Я сразу и не заметил что GHost++
    Это тогда One нужен.
  13. MeGaLeX Знакомый модера

    Сообщения:
    62
    Спасибы:
    0
    Какой One :facepalm: Если боты запущены на сервере. А отдавать часть производительности какому-то GhostOne неочень и хочется. Неужели вы не можете подсказать, где какую переменную скопировать или добавить. Ведь можно взять из области автохоста мб, но пока я не нашёл этой функциии. :newcry:

    -----------
    Нашёл и добавил, спасибо за внимание :spydance:
  14. Zarj Старожила

    Сообщения:
    1.007
    Спасибы:
    23
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.1992
    уан можно без оболочки запускать(ghost.exe), если так жалко ресов =)
  15. MeGaLeX Знакомый модера

    Сообщения:
    62
    Спасибы:
    0
    Считаю Ghost++ более оптимизированным нежели GhostOne. GhostOne является неким подобием "игрушки для детей " , которым нужно только тыкать галочки и следить за результатами). Да и куча ненужных функций One.
  16. Zarj Старожила

    Сообщения:
    1.007
    Спасибы:
    23
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.1992
    Кста заметил верно, игрушка просто охрененная =)))
    Так его переделывать весело, и особенно радует глаз когда то что задумал - работает =)
  17. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    А еще крутой фикс:
    Код:
    string CGHost :: IncreaseGameName ( string name)
    {
    	string GameName;
    	string GameNr = string();
    	uint32_t idx = 0;
    	uint32_t Nr = 0;
    	
    	GameName = name;
    
    	idx = GameName.length()-1;
    	if (idx>=2)
    	if (GameName.at(idx-2)=='#')
    		idx = idx-1;
    	else
    		if (GameName.at(idx-1)=='#')
    			idx = idx;
    		else
    			idx = 0;
    
    	// idx = 0, no Game Nr found in gamename
    	if (idx == 0)
    	{
    		GameNr = "0";
    		GameName = name + " #";
    	}
    	else
    	{
    		GameNr = GameName.substr(idx,GameName.length()-idx);
    		GameName = GameName.substr(0,idx);
    	}
    	stringstream SS;
    	SS << GameNr;
    	SS >> Nr;
    	Nr ++;
    	if (Nr>20)
    		Nr = 1;
    	GameNr = UTIL_ToString(Nr);
    	GameName = GameName + GameNr;
    	return GameName;
    }
    Код:
     /*		if (m_AutoStartPlayers!=0)
     			m_GHost->m_HostCounter++;*/
     		ReCalculateTeams();
    -		m_GameName = m_GHost->IncGameNr(m_GameName);
    -		m_GHost->m_HostCounter++;
    -		m_GHost->SaveHostCounter();
    -		if (m_GHost->m_MaxHostCounter>0)
    -		if (m_GHost->m_HostCounter>m_GHost->m_MaxHostCounter)
    -			m_GHost->m_HostCounter = 1;
    -		m_HostCounter = m_GHost->m_HostCounter;
    +		m_GameName = m_GHost->IncreaseGameName(m_GameName);
     		m_GHost->m_QuietRehost = true;
     		m_RefreshError = false;
     		m_Rehost = true;
    - (минус) строки к удалению.
    + (плюс) строки к добавлению

    Этот фикс убирает бешеную нарутку HostCounter при автохосте авторехосте.
    Еще в комманде PUB и PRIV такое-же сделать нужно... хотя там оно уже есть... просто убрать m_GHost->m_HostCounter++;

    :avtoradolf: :crazy:
  18. Zarj Старожила

    Сообщения:
    1.007
    Спасибы:
    23
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.1992
    Смотрю у тебя тут максимум счётчик до 20, но это пох, можно в конф вывести
    Чем твой счётчик лучше обычного? Чем он лучше обычного когда к примеру рехост раз в 30 сек, и твой и обычный накрутит +1 к игре.
  19. Deals Старожила

    Сообщения:
    784
    Спасибы:
    21
    Сборка бота GHost:
    Ghost One 1.7.266
    Skype:
    Мой статус
    А потому что будет в игре добавлять #999 #1 (#2 #3 #4...#n), а при следующем создании игры #1000
    Счетчик я скопировал. Переделывать лень. Мне хватит этого.
    Я его убрал. И именно хост каунтер накручивать не будет.
  20. Zarj Старожила

    Сообщения:
    1.007
    Спасибы:
    23
    Сборка бота GHost:
    Ghost One 1.7.266
    Дата начала использования бота:
    01.01.1992
    Я понял, неправильно выразился, кароч чем отличается обычный +1 от твоего?