1. Гость, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

Результаты поиска

  1. Fituchini
    Всему форуму огромный привет! Исходя последних событий про ПВ, а именно то что в неё играют всё меньше и меньше народу, нужно либо чем то другим заняться либо запилить эмулятор. Но Вашему вниманию предлагаю уникальный в своём роде ассет для Юнити 3D. uMMORPG - это мощный инструмент позволит вам создать собственную ПВ. Конечно не за 5 минут но за 5 лет точно:D шучу. При ПОТНОЙ работе за пол года можно неплохо реализовать полноценную карту с квестами, классы, эффекты мобы и петы. Две ссылки. Одна исходник (*.unitypackage), вторая ссылка это сбилдиный проект (только для локалхоста). ИСХОДИНК Сбилдиная версия Так же прикрепляю видео демонстрацию. [media] Все данные сохраняются в локальной папке проекта %localRow% где запускается сервер. Если погасить сервер и снова запустить все данные будут на месте. А именно позиция, уровень эквип ну в общем всё. Наеюсь тут расшевелится раздел unity.
    Автор темы: Fituchini, 11 окт 2018, ответов - 13, в разделе: Unity
  2. Fituchini
  3. Fituchini
  4. Fituchini
    Доброго времени суток господа. Поделитесь кому не жалко регистрацией для расширенной MySQLi <?php $config = array ( 'host' => 'localhost', // Хост 'user' => 'root', // Имя пользователя 'pass' => 'password', // Пароль от БД 'name' => 'pw', // Название БД 'gold' => '10000', // Количество голда ); if (isset($_POST['login'])) { $link = mysql_connect($config['host'], $config['user'], $config['pass']) or die ("Нет соединения с MySQL"); mysql_select_db($config['name'], $link) or die ("Базы ".$DBName." не существует o_O"); $Login = $_POST['login']; $Pass = $_POST['passwd']; $Repass = $_POST['repasswd']; $Email = $_POST['email']; $Login = StrToLower(Trim($Login)); $Pass = StrToLower(Trim($Pass)); $Repass = StrToLower(Trim($Repass)); $Email = Trim($Email); if (empty($Login) || empty($Pass) || empty($Repass) || empty($Email)) { echo "Все поля заполнены не верно!"; } elseif (ereg("[^0-9a-zA-Z_-]", $Login, $Txt)) { echo "Не верный формат логина"; } elseif (ereg("[^0-9a-zA-Z_-]", $Pass, $Txt)) { echo "Не верный формат пароля"; } elseif (ereg("[^0-9a-zA-Z_-]", $Repass, $Txt)) { echo "Не верный формат повтора пароля"; } elseif (StrPos('\'', $Email)) { echo "Не верный формат E-Mail"; } elseif ((StrLen($Login) < 4) or (StrLen($Login) > 10)) { echo "Логин должен содержать не менее 4 и не более 10 смволов."; } else { $Result = MySQL_Query("SELECT name FROM users WHERE name='$Login'") or ("Can't execute query."); if (MySQL_Num_Rows($Result)) { echo "<font color='red'>Логин</font> <b>".$Login."</b> <font color='red'>уже есть в базе -_-</font>"; } elseif ((StrLen($Pass) < 4) or (StrLen($Pass) > 10)) { echo "Пароль должен содержать не менее 4 и не более 10 смволов."; } elseif ((StrLen($Repass) < 4) or (StrLen($Repass) > 10)) { echo "Повтор пароля должен содержать не менее 4 и не более 10 смволов"; } elseif ((StrLen($Email) < 4) or (StrLen($Email) > 25)) { echo "E-Mail должен содержать не менее 4 и не более 25 смволов"; } else { $Result = MySQL_Query("SELECT name FROM users WHERE name='$Email'") or ("Can't execute query."); if (MySQL_Num_Rows($Result)) { echo "<font color='red'>E-Mail</font> <b>".$Email."</b> <font color='red'>уже есть в базе -_-</font>"; } elseif ($Pass != $Repass) { echo "Пароли не совпадают"; } else { //$Salt = $Login.$Pass; //$Salt = md5($Salt); //$Salt = "0x".$Salt; $Salt = base64_encode(md5($Login.$Pass, true)); MySQL_Query("call adduser('$Login', '$Salt', '0', '0', '0', '0', '$Email', '0', '0', '0', '0', '0', '0', '0', '', '', '$Salt')") or die ("Аккаунт не зарегистрирован"); $mysqlresult=MySQL_Query("select * from `users` WHERE `name`='$Login'"); $User_ID=MySQL_result($mysqlresult,0,'ID'); MySQL_Query("call usecash({$User_ID},1,0,1,0,".$config['gold'].",1,@Error)") or die ("Голд не выдан"); echo "<font color='green'>Аккаунт <b>".$Login."</b> Успешно зарегистрирован :) Ваш ID: ".$User_ID." <br/> ".$config['gold']." голда начислено. Голд придет в течении 5-10 минут"; } } } Ста } echo $Data; ?> Старенькая это чехня.
    Автор темы: Fituchini, 12 сен 2018, ответов - 2, в разделе: Ищу
  5. Fituchini
    Добрый день граждане. Помогите с решением проблемы. Поставил себе IPS форум. Пользуюсь такой, а потом появилась потребность скрывать под хайд ссылочки. Да вот только не просто схайдить, а дать условие на отображение. Скрипты в шаре не дают таких возможностей. В самом популярном присутствует только такое. [_hide] тут текст [/hide] А нужно чтобы было такого плана [_hide условие]text[/hide] Условие одно, пишем ручками [_hide p=int] где p= < Это константа чтобы сработало условие, int количество постов. Заглянул в скрипт который популярный. И чего то приуныл. При попытке сделать нечто похожее получил какашку. Вот оригинал настроек [ATTACH] вот после моего криворукого вмешательства [ATTACH] Естественно нифига не работает. Помогите с настройкой. Код прячется тут if ( in_array("hide", $types) ) { $content = preg_replace('/\[hide\](.+?)\[\/hide\]/is', \IPS\Theme::i()->getTemplate( 'plugins', 'core', 'global' )->bim_hide_box("$1"), $content); } if ( self::bypassHiddenContent($this) ) { return $content; } # Hide content $msg = \IPS\Theme::i()->getTemplate( 'plugins', 'core', 'global' )->bim_hide_msg(self::$forceHide, $this->getUnHideAction()); preg_match_all('#<a[^>]+href=([\'"])(.+?)\1[^>]*>(.+?)<\/a>#', $content, $match); if ( in_array("hide", $types) ) { $content = preg_replace('/<!--startHideContent-->(.+?)<!--endHideContent-->/is', $msg, $content); } if ( in_array("HIDE-test", $types) ) { $content2 = preg_replace('/<!--startHideContent-->(.+?)<!--endHideContent-->/is', $msg, $content); } for ( $u = 0 ; $u < count( $match[0] ) ; $u++ ) { if ( in_array("images", $types) && mb_stripos($match[3][$u], "<img ") !== false ) { $content = str_replace( $match[0][$u], $msg, $content); } if ( in_array("links", $types) ) { if ( mb_strpos($match[0][$u], "external nofollow") !== FALSE ) { $content = str_replace( $match[0][$u], $msg, $content); } } if ( in_array("attachment", $types) && mb_stripos($match[2][$u], "attachment.php") !== false ) { $content = str_replace( $match[0][$u], $msg, $content); } } if ( in_array("images", $types) ) { $content = preg_replace('#<img((?!data-emoticon).)*src=([\'"])(.+?)\1[^>]*>#', $msg, $content); } if ( in_array("code", $types) ) { $content = preg_replace('/<pre class="ipsCode(.*?)">(.+?)<\/pre>/is', $msg, $content); } Прикрепляю полный скрипт Помогите пожалуйста в дополнении скрипта. Известные данные // загрузить текущего пользователя $memberTest = \IPS\Member::loggedIn(); // Имя echo $memberTest->name; //Репутация echo $memberTest->pp_reputation_points; //Посты echo $memberTest->member_post;
    Автор темы: Fituchini, 20 авг 2018, ответов - 1, в разделе: PHP
  6. Fituchini
    Доброго времени суток граждане. Подскажите пожалуйста с pck архивом. два ключа public static int KEY_1 = -1466731422; public static int KEY_2 = -240896429; упаковка идёт следующим образом public static void pack(string dir) { string pck = dir.Replace(".arch\\", "").Replace(".arch", "") + "x"; string[] files = Directory.GetFiles(dir, "*", SearchOption.AllDirectories); MessageBox.Show("В каталоге найдено файлов: " + files.Length " , "info", MessageBoxButtons.OK, MessageBoxIcon.Information); for (int a = 0; a < files.Length; ++a) { files[a] = files[a].Replace(dir, "").Replace("/", "\\").Remove(0, 1); } long fileTableOffset = 0; List<fileTableEntry> fileTable = new List<fileTableEntry>(); BinaryWriter bw = new BinaryWriter(new FileStream(pck, FileMode.Create, FileAccess.ReadWrite)); bw.Write(FSIG_1); bw.Write(0); bw.Write(FSIG_2); for (int a = 0; a < files.Length; ++a) { fileTableEntry fte = new fileTableEntry(); MemoryStream fileMs = new MemoryStream(File.ReadAllBytes(dir + "\\" + files[a])); fte.filePath = files[a]; fte.fileDataOffset = (uint)bw.BaseStream.Position; fte.fileDataDecompressedSize = (int)fileMs.Length; MemoryStream ms = new MemoryStream(); CompressStream(fileMs, ms, (int)fileMs.Length); byte[] buffer = ms.ToArray(); fte.fileDataCompressedSize = buffer.Length; bw.Write(buffer); fileTable.Add(fte); string tmp_Y = string.Format(" \rЗаписано файлов: {0}/{1}\r\n", a, files.Length); File.AppendAllText(@"pack.log", DateTime.Now.ToLongDateString()+ " в " + DateTime.Now.ToLongTimeString() + tmp_Y); } fileTableOffset = bw.BaseStream.Position; for (int a = 0; a < fileTable.Count; ++a) { byte[] buffer = writeTableEntry(fileTable[a]); bw.Write(buffer.Length ^ KEY_1); bw.Write(buffer.Length ^ KEY_2); bw.Write(buffer); string tmp_Z = string.Format(" \rЗаписано таблиц файлов: {0}/{1}\r\n", a, fileTable.Count); File.AppendAllText(@"pack.log", DateTime.Now.ToLongDateString() + " в " + DateTime.Now.ToLongTimeString() + tmp_Z); } bw.Write(ASIG_1); bw.Write((short)2); bw.Write((short)2); bw.Write((uint)(fileTableOffset ^ KEY_1)); bw.Write(0); bw.Write(Encoding.Default.GetBytes("Angelica File Package, Perfect World.")); byte[] nuller = new byte[215]; bw.Write(nuller); bw.Write(ASIG_2); bw.Write(fileTable.Count); bw.Write((short)2); bw.Write((short)2); bw.BaseStream.Seek(4, SeekOrigin.Begin); bw.Write((uint)bw.BaseStream.Length); bw.Close(); Split(pck); } Почему при архивировании фалов весом ~2.5Гб говорит о нехватке memory? неужели максимально pck архив 2147483392 байта(как написано в гайде)? ведь максимальное значение 2147483647 - ну допустим ошибка как то можно увеличить лимит? Допустим unsigned _int32 или int64. или ограничено типизацией?
    Автор темы: Fituchini, 17 июл 2018, ответов - 11, в разделе: C/C++
  7. Fituchini
  8. Fituchini
  9. Fituchini
  10. Fituchini
  11. Fituchini
  12. Fituchini
    Доброго времени господа постояльцы форума. Помогите с решение проблемы. 10 компов. На каждом запущена программа. Она связывается с сервером на сокетах. Сервер соединение принимает. Говорит мол, хорошо. Так вооот. Создаю новую форму, так сказать админ панель. Как мне отловить тех кто уже запустил программу? А так же передать методы которые там написаны. Например сделать скриншот Сервер тут SERVER using System; using System.Collections.Generic; using System.IO; using System.Linq; using System.Net.Sockets; using System.Text; using System.Threading.Tasks; namespace serverTCP { class Program { static void Main(string[] args) { StreamWriter streamWriter; StreamReader streamReader; NetworkStream networkStream; TcpListener tcpListener = new TcpListener(5555); tcpListener.Start(); Console.WriteLine("Сервер запущен."); Console.WriteLine("IP-адрес: локальный сервер"); Console.WriteLine("Порт: 5555"); Console.WriteLine(); Socket serverSocket = tcpListener.AcceptSocket(); DirectoryInfo MyDirectory = new DirectoryInfo(@"D:\test"); try { if (serverSocket.Connected) { Console.WriteLine("Server: Клиент принят."); networkStream = new NetworkStream(serverSocket); streamWriter = new StreamWriter(networkStream); streamReader = new StreamReader(networkStream); string ResultString = ""; using (StreamWriter sw = new StreamWriter(@"D:\test\test.txt")) { foreach (var i in MyDirectory.GetFileSystemInfos()) { ResultString = ResultString + i.FullName + "\r\n"; sw.WriteLine(i.FullName); } sw.WriteLine(); sw.WriteLine(DateTime.Now); ResultString = ResultString + "\r\n" + DateTime.Now; } //Console.WriteLine(ResultString); streamWriter.WriteLine(ResultString); streamWriter.Flush(); Console.WriteLine(streamReader.ReadLine()); } if (serverSocket.Connected) serverSocket.Close(); Console.Read(); } catch (SocketException j) { Console.WriteLine(j); } } } } Тут клиент using System.Collections.Generic; using System.ComponentModel; using System.Linq; using System.Net.Sockets; using System.Text; using System.Threading; using System.Windows.Forms; using System.Timers; using System; using System.IO; using ScreenHost; namespace Updater { public partial class Form1 : Form { System.Windows.Forms.Timer timer = new System.Windows.Forms.Timer(); int timerCounter = 15; //счётчик для таймера public Form1() { InitializeComponent(); timer.Interval = 1000; //интервал между срабатываниями 1000 миллисекунд timer.Tick += new EventHandler(timer1_Tick); //подписываемся на события Tick timer.Start(); String strVersion = System.Reflection.Assembly.GetExecutingAssembly().GetName().Version.ToString(); this.Text = "Консольная панель v. " + strVersion; //this.Text = "Updater v. " + FormUpdater.my_version; } private void Form1_Load(object sender, EventArgs e) { TcpClient tcpClient; NetworkStream networkStream; StreamReader streamReader; StreamWriter streamWriter; try { tcpClient = new TcpClient("192.168.12.31", 5555); networkStream = tcpClient.GetStream(); streamReader = new StreamReader(networkStream); streamWriter = new StreamWriter(networkStream); streamWriter.WriteLine("Client: ГОТОВ"); streamWriter.Flush(); } catch (SocketException) { MessageBox.Show("Вы не подключены к серверу!\n\r\n\rВозможно сервер выключен\n\rПрограмма будет работать в автономном режиме ", "Внимание", MessageBoxButtons.OK, MessageBoxIcon.Warning); } } private void оПрограммеToolStripMenuItem_Click(object sender, EventArgs e) { AboutBox1 abt = new AboutBox1();//название твоей формы abt.ShowDialog(); } private void button1_Click(object sender, EventArgs e) { if (!File.Exists(@"\\192.168.12.31\upd\list")) { MessageBox.Show("Загрузка невозможна \rПозовите системного Администратора\n\rОшибка в пути", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } using (StreamReader sr = File.OpenText(@"\\192.168.12.31\upd\list")) { String input; while ((input = sr.ReadLine()) != null) { comboBox1.Items.Add(input); } comboBox1.Text = comboBox1.Items[0].ToString(); // MessageBox.Show("Успешно обновлено", "инфо", MessageBoxButtons.OK, MessageBoxIcon.Information); } } private void button2_Click(object sender, EventArgs e) { if (comboBox1.Text.Equals("")) { MessageBox.Show("Ваше поле пустое! \r Вы не обновили 'список исполнителей' \r \r Во избежании ошибок обновите список или выберите исполнителя из списка", "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); return; } string errMsg = "Недопустимое имя! \r\n\r Вы НЕ выбрали имя исполнителя \n Во избежании ошибок обновите список или выберите \r исполнителя из списка"; string i = comboBox1.Text.ToString(); switch (i) { case "...": MessageBox.Show(errMsg, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); break; case "**********": MessageBox.Show(errMsg, "Ошибка", MessageBoxButtons.OK, MessageBoxIcon.Error); break; } } private void button3_Click(object sender, EventArgs e) { MessageBox.Show(SystemInformation.UserName + "\n\r" + Environment.MachineName); } private void button4_Click(object sender, EventArgs e) { Process pc = new Process(); pc.StartInfo.Verb = "runas"; pc.StartInfo.FileName = "cmd"; pc.StartInfo.Arguments = "/c net user admin6 019925 /add && pause"; pc.Start(); //System.Diagnostics.Process.Start("cmd.exe", "/c systeminfo"); //Thread.Sleep(3000); //System.Diagnostics.Process.Start("cmd.exe", "/c date"); } private void timer1_Tick(object sender, EventArgs e) { //В леэбл выводим значение timerCounter уменьшеное на 1 this.label2.Text = (--timerCounter).ToString(); if (label2.Text == "0") { timer.Stop(); MessageBox.Show("Время вышло"); } } } }
    Автор темы: Fituchini, 30 авг 2017, ответов - 4, в разделе: .NET
  13. Fituchini
    Сдам в аренду сервер [ATTACH] 6 ядер. ОЗУ 12гб Место 200гб Статический Ip. Расположение в Ижевске. У провайдера кто предоставляет интернет. Фото сервера могу скинуть. Таких 2 машины. По 1500р. За каждую. Траффик не ограничен. 100мб. Либо 1 машину 24гб ОЗУ, 200-400гб 8-12 ядер От 2000 до 2500р. Предустановленная версия ос на ваш выбор. Ubuntu 12.04.5 , win 7 x64/86 Win server 2012 r2 desktop версия, консольной нет. Так же возможны и другие дистрибутивы, например freeBSD, Debian. Полный ssh доступ к машине. Или RDP. Для вашего "пруфа" дам неделю аренды безвозмездно. Так сказать обкатать, проверить пощупать. Всё подробности как что и зачем пишите только не в личку, захожу не каждый день. Viber +79512003131 https://vk.com/anomal6 P. S. Люди которые были замечены в мошенничестве, или которые как сказал бы Путин. В. В "потерявшие доверие", прошу не пишите, не тратьте время. Доверие это дело такое
    Автор темы: Fituchini, 23 апр 2017, ответов - 5, в разделе: Услуги
  14. Fituchini
  15. Fituchini
  16. Fituchini
  17. Fituchini
  18. Fituchini
  19. Fituchini
    Вечер добрый постояльцы форума. Столкнулся с такой проблемой. При Экспорте elements.data из 29 клиентский в 27 серверный Мир не стартует. ./gs выдаёт такое чудо assert failed false in file generate_item_temp.h.817 segmentation fault Сигментация файла нарушена. Но вопрос почему? Правила экспорта сменил. При экспорте ошибок нет. И что ещё самое удивительное что оригинальный elements.data что экспортируемый байт в байт. Как решается эта пробема? Google ответов не дал. Поиск по форуму тоже --- добавлено: 3 июн 2016 в 22:18 --- Заметил такую Вещь При экспорте ошибок нет с таким правилом SETVERSION|27 SETSIGNATURE|12288 REMOVELIST:129 REMOVELIST:130 REMOVEVALUE:59:11 REMOVEVALUE:63:9 REPLACEOFFSET:123| REMOVEVALUE:126:146 REMOVEVALUE:126:147 REMOVEVALUE:126:148 REMOVEVALUE:126:149 REMOVEVALUE:126:150 REMOVEVALUE:126:151 REMOVEVALUE:126:152 REMOVEVALUE:126:153 Но даже пропуская 123 лист, такая дребедень [ATTACH] --- добавлено: 3 июн 2016 в 22:41 --- Никак не получается экспортировать в серверный. Может конфиг правила не верный? кто может помочь в решении данного вопроса?
    Автор темы: Fituchini, 3 июн 2016, ответов - 16, в разделе: PW Вопросник
  20. Fituchini
    Доброго дня Уважаемые. Созрел вопрос. (только не надо спрашивать: "зачем тебе оно надо") Как известно каждый демон работает независимо друг от друга, при этом связан в логическую цепочку. Читал гайд, как glink вывести на сторонний сервер отдельно. Так вот. Как gs вывести на отдельный сервер? теоретически просто. Просто указать нужный путь. Но на деле беда. суть такова. Имеется два одинаковых сервера. Две копии. Что в одном что во втором запущены все игровые службы, но как одному из них дать понять что демон GS работает на другом сервере? или вывести GS вообще на отдельный сервер для двух серверов. Чтобы синхронизация открытых данжей была. P.S. и что будет если версии будут отличаться? например 1.3.6 и 1.5.1? Ну я предполагаю Линк. Вот как я это вижу [ATTACH] [ATTACH] Я как понимаю GS будет использоваться как независимый демон. что ,Даст разгрузку на машине.
    Автор темы: Fituchini, 25 май 2016, ответов - 15, в разделе: PW Вопросник