Перейти к содержанию

Formatter

Пользователи
  • Публикаций

    84
  • Зарегистрирован

  • Посещение

  • Победитель дней

    5
  • Отзывы

    0%

Сообщения, опубликованные Formatter


  1. 1 час назад, KpunToHuT сказал:

    Скинь пожалуйста ссылку, хотя бы на 1 пример. заранее спасибо))

    package blabla;
    
    import net.sf.l2j.gameserver.model.L2ItemInstance;
    import net.sf.l2j.gameserver.model.actor.instance.L2PlayableInstance;
    import scripts.items.IItemHandler;
    import scripts.items.ItemHandler;
    
    public class BlaBla implements IItemHandler {
    
    	// ид итема(ов)
    	private static final int[] ITEM = { 1111 };
    	
    	@Override
    	public int[] getItemIds() {
    		return ITEM;
    	}
    
    	@Override
    	public void useItem(L2PlayableInstance user, L2ItemInstance item, boolean ctrl) {
    		// действие при юзе итема
    	}
    
    	public static void main(String[] args) {
    		ItemHandler.getInstance().registerItemHandler(new BlaBla());
    	}
    }

     


  2. 3 часа назад, Saltfire сказал:

    Это дело не в шифрации паролей, а в том, что поле password, имеет меньшую длину, чем вы пытаетесь в нее засунуть.

    Это легко проверить, учитывая тип данных varchar и соответственно его длину.

    Эта ошибка будет тут-же, когда я сделаю varchar(10) к примеру, а буду писать строку с 11 символами.

    Бесполезно объяснять 

    • Haha 1

  3. 19 минут назад, SamsungGracia сказал:

    То есть онлайн показывает но пишит при этом ошибка базы данных 

    Порт открыл 3306 ,  айпи статическое прописал ,как связать сервер свой с хостингом ,если показывает онлайн значит связь устанавлена ,только почему не регистрирует аккаунты ,кто знает ?

    IMG_20240205_155701.jpg

    IMG_20240205_155602.jpg

    Вероятно запрос не подходит 


  4. Какой ответ тебе нужен? "Зачем и для чего"? - Захотелось вывести некоторую доп. информацию на окно клиента. Да и в общем интересно стало. Глупый не глупый текст: уж извини, но видя твои посты во всех темах - могу то же самое сказать.


  5. Ладно, своими силами разобрался, вывод текста/фигур получился, но при сворачивании/разворачивании окна - крит тот же.
    Может еще что-то хукать нужно помимо endScene? Как отследить это событие?
    Возможно кто-то рисовал в клиенте через Engine.Canvas? Нашел пример только для хроник выше - нашел аналогичную функцию (вроде как), но не знаю какие аргументы передать в функцию


  6. Кто-нибудь занимался хуком directx с клиентом игры (Interlude)?

    Пытался и после инициализации окна, и непосредственно при загрузке библиотеки - один и тот же крит.

     

    Быть может у кого-то есть готовый вариант.

     

    часть кода (C++):
     

    cMemory* MemHack;
    
    typedef HRESULT(WINAPI* oEndScene)(LPDIRECT3DDEVICE9 pDevice);
    oEndScene pEndScene = NULL;
    
    HRESULT APIENTRY myEndScene(LPDIRECT3DDEVICE9 pDevice)
    {
    	return pEndScene(pDevice);
    }
    
    int D3d9_Hook(void)
    {
    	printf("D3D hook");
    	DWORD* vtbl = 0;
    	DWORD hD3D9 = (DWORD)LoadLibraryA("d3d9.dll");
    	DWORD table = MemHack->FindPattern(hD3D9, 0x128000, (PBYTE)"\xC7\x06\x00\x00\x00\x00\x89\x86\x00\x00\x00\x00\x89\x86", "xx????xx????xx");
    	memcpy(&vtbl, (void*)(table + 2), 4);
    	pEndScene = (oEndScene)MemHack->Create_Hook((PBYTE)vtbl[42], (PBYTE)myEndScene, 5);
    	printf(" OK\n");
    	return 0;
    }

     

    Ошибка клиента

    1971271914_.thumb.PNG.933d8610f211636dac875dd7a7dfdd2c.PNG


  7. <?php
    
    class TopPvp {
    	
    	const PREFIX = 'top_pvp_';
    	
    	function getPrefix() {
            return self::PREFIX;
        }
        
        function getPath() {
            return "./cache";
        }
        
    	private function getOrSave() {
    		$path = $this->getPath();
    		$files = glob($path.'/'. $this->getPrefix() . '*');
    		if(count($files) > 0 && file_exists($files[0])) {
    			$a = explode("_", $files[0]);
    			$time = intval($a[count($a) - 1]);
    			//echo "diff: " . (time() - $time);
    			if(time() - $time >= 180) {
    				unlink( $files[0] );
    				return $this->loadDb();
    			} else {
    				return file_get_contents($files[0]);
    			}
    		} else {
    			return $this->loadDb();
    		}
    	}
    	
    	private function loadDb() {
    		require "db.php";
    		$sql = 'SELECT characters.char_name, characters.pvpkills, characters.pkkills, characters.onlinetime, clan_subpledges.name, char_templates.ClassName, character_subclasses.class_id, clan_data.crest, ally_data.crest as ally_crest, clan_data.ally_id, clan_data.clan_id '.
    		'FROM characters '.
    		'LEFT JOIN `clan_subpledges` ON characters.clanid = clan_subpledges.clan_id  AND clan_subpledges.type = 0 '.
    		'LEFT JOIN character_subclasses ON character_subclasses.char_obj_id = characters.obj_Id AND character_subclasses.active = 1 '.
    		'LEFT JOIN `char_templates` ON char_templates.ClassId = character_subclasses.class_id '.
    		'LEFT JOIN `clan_data` ON clan_data.clan_id = characters.clanid '.
    		'LEFT JOIN `ally_data` ON ally_data.ally_id = clan_data.ally_id '.
    		'ORDER BY pvpkills DESC LIMIT 10;';
    		$result = mysqli_query($db, $sql);
    		$content = "";
    		if(mysqli_num_rows($result) > 0) {
    			
    			foreach($result as $row) {
    				//var_dump($row);
    				$content .= "<tr>";
    				$content .= '<td>' . $row['char_name'] . '</td>';
    				$content .= '<td style="font-weight: bold;">' . $row['pvpkills'] . '</td>';
    				$content .= '<td>' . $row['pkkills'] . '</td>';
    				if(empty($row['name'])) {
    					$content .= '<td>-</td>';
    				} else {
    					$crest1 = base64_encode($row['crest']);
    					$crest2 = base64_encode($row['ally_crest']);
    					$content .= '<td><img src="/php/dds.php?data=' . $crest2 . '&id=' . $row['ally_id'] . '"><img src="/php/dds.php?data=' . $crest1 . '&id=' . $row['clan_id'] . '"> ' . $row['name'] . '</td>';
    				}
    				$content .= '<td>' . $row['ClassName'] . '</td>';
    				$online = intval($row['onlinetime']);
    				$content .= '<td>';
    				$hours = floor($online / 3600);
    				$minutes = floor(($online / 60) % 60);
    				$seconds = $online % 60;
    				$content .= "$hours ч. $minutes мин. $seconds сек.";
    				$content .= '</td>';
    				$content .= "</tr>";
    				//$content .= '<div class="quote">' . $row['char_name'] . ' - ' . $row['pvpkills'] . ' PVP</div>' . "\n";
    			}
    			
    		} else {
    			$content .= "<tr><td>-</td><td>-</td><td>-</td><td>-</td></tr>";
    		}
    		$result->close();
    		file_put_contents($this->getPath() . "/" . $this->getPrefix() . "" . time(), $content);
    		return $content;
    	}
    	
    	function get() {
    		$data = $this->getOrSave();
    		//foreach (explode("\n", $data) as $s) {
    		//	echo $s;
    		//}
    		return $data;
    	}
    }
    ?>

     

    • Haha 1

  8. 1 hour ago, Solt said:

    Для особо одаренных:

    
            <drops>
                <category id="1">
                    <drop itemid="848" min="1" max="1" chance="204"/>
                    <drop itemid="879" min="1" max="1" chance="321"/>
                    <drop itemid="911" min="1" max="1" chance="409"/>
                </category>
                <category id="2">
                    <drop itemid="1829" min="1" max="1" chance="15873"/>
                    <drop itemid="1832" min="1" max="1" chance="55556"/>
                    <drop itemid="1875" min="1" max="1" chance="4762"/>
                    <drop itemid="1879" min="1" max="1" chance="7353"/>
                    <drop itemid="1885" min="1" max="1" chance="5000"/>
                    <drop itemid="1900" min="1" max="1" chance="7092"/>
                    <drop itemid="5549" min="1" max="1" chance="4525"/>
                    <drop itemid="5550" min="1" max="1" chance="238"/>
                </category>
                <category id="0">
                    <drop itemid="57" min="226" max="451" chance="700000"/>
                </category>
                <category id="-1">
                    <drop itemid="1832" min="1" max="2" chance="25641"/>
                    <drop itemid="1936" min="1" max="1" chance="6882"/>
                    <drop itemid="2184" min="1" max="1" chance="58192"/>
                </category>
            </drops>

    Чтобы больше не кричали, что 1 категория = 1 итем.

    ... иди дропни с моба больше одного итема с группы 

    • Like 1

  9. Ну во-первых, делается это немного по-другому, судя по коду выше (как я понял onElapsed - это перемещение из зоны в зону (а зная как оно работает на таких сборках...)) - это вообще бубуйня какая то xD, но, если нет исходника, то вроде как только reflection (именно для pw) , либо же при входе чара (а это есть в пв) - запускаем задачу выдачи итемов(task), ну и кнч выключаем её при отключении/оффлайне


  10. On 4/14/2020 at 7:13 AM, lvipl said:

    Подскажите Скрипт Анонса Для Серверов Lineage 2 на хостинг от юкоз

    А знаю сейчас вы начнете срать за юкоз и т.д) Но срочно надо) Может есть у кого то

    тебе не скрипт нужен, а дизайн. Вместо скрипта можно использовать "доску объявлений" или как там оно называется.

×
×
  • Создать...