MyBB Internal: One or more warnings occurred. Please contact your administrator for assistance.
MyBB Internal: One or more warnings occurred. Please contact your administrator for assistance.
MyBB Internal: One or more warnings occurred. Please contact your administrator for assistance.
MyBB Internal: One or more warnings occurred. Please contact your administrator for assistance.
MyBB Internal: One or more warnings occurred. Please contact your administrator for assistance.
MyBB Internal: One or more warnings occurred. Please contact your administrator for assistance.
MyBB Internal: One or more warnings occurred. Please contact your administrator for assistance.
MyBB Internal: One or more warnings occurred. Please contact your administrator for assistance.
MyBB Internal: One or more warnings occurred. Please contact your administrator for assistance.
MyBB Internal: One or more warnings occurred. Please contact your administrator for assistance.
MyBB Internal: One or more warnings occurred. Please contact your administrator for assistance.
MyBB Internal: One or more warnings occurred. Please contact your administrator for assistance.
MyBB Internal: One or more warnings occurred. Please contact your administrator for assistance.
MyBB Internal: One or more warnings occurred. Please contact your administrator for assistance.
MyBB Internal: One or more warnings occurred. Please contact your administrator for assistance.
MyBB Internal: One or more warnings occurred. Please contact your administrator for assistance.
MyBB Internal: One or more warnings occurred. Please contact your administrator for assistance.
MyBB Internal: One or more warnings occurred. Please contact your administrator for assistance.
MyBB Internal: One or more warnings occurred. Please contact your administrator for assistance.
MyBB Internal: One or more warnings occurred. Please contact your administrator for assistance.
MyBB Internal: One or more warnings occurred. Please contact your administrator for assistance.
MyBB Internal: One or more warnings occurred. Please contact your administrator for assistance.
MyBB Internal: One or more warnings occurred. Please contact your administrator for assistance.
HLTV controled by php
SRCDS Steam group


Thread Rating:
  • 0 Vote(s) - 0 Average
  • 1
  • 2
  • 3
  • 4
  • 5
HLTV controled by php
#1
I'm not good at working with sockets, but I search some websites and try to create php script, which will send commands to hltv(half life 1) via php. But something seems to be wrong because hltv on my pc doesn't do anything when I send some command.

So here is my code:

PHP Code:
<?php 
//get challenge from HLTV
$cmd = "\xFF\xFF\xFF\xFF"."challenge rcon"."\n";
$getchallenge = getServerData($cmd, '89.173.135.189', '27020');
$getchallenge = substr($getchallenge, 5);
$getchallenge = trim($getchallenge);

HalfLife_Rcon('myHLTVIPadress', 'myHLTVport', 'myHLTVrcon', 'record test.dem', $getchallenge);

function
GetServerData($command, $ip, $port)
{

$data = '';
if (!
$server_connection = fsockopen('udp://'.$ip, $port))
return
false;

socket_set_blocking($server_connection, 1);
# Time out after 5 seconds
socket_set_timeout($server_connection, 5);
fwrite($server_connection, $command, strlen($command));

# This must time out first to make sure the right arguement is returned
# The above timeout is just to make sure it doesn't go over 4 seconds
$timeout = microtime();
$timeout += 4;
$i = 0;
$packets = 0;
do
{
do
{
$data .= fread($server_connection, 8192);
if (
microtime() > $timeout)
{
# Connection timed out
fclose($server_connection);
return
false;
}
$data_status = socket_get_status($server_connection);
}
while (
$data_status['unread_bytes']);
if (
GetInt8($data, $tmp = 0) == 254)
{
# We have a split packet!
$tmp = 0;
# Get rid of the crap at the start
GetInt32($data, $tmp);
GetInt32($data, $tmp);
$split_packet = str_pad(DecBin(GetInt8($data, $tmp)), 8, 0, STR_PAD_LEFT);
$packet_num = bindec(substr($split_packet, 0, 4));
$packets = bindec(substr($split_packet, 4));
$data = substr($data, $tmp);
$packet_data[$packet_num] = $data;
$data = '';
}
elseif (
$packets > 0)
{
# Silly rcon problems
$tmp = 5;
# Get rid of the crap at the start
$data = substr($data, $tmp);
$packet_data[] = $data;
}

$i++;
}
while (
$i < $packets);
fclose($server_connection);

if (
$packets > 1)
{
ksort($packet_data);
$data = implode('', $packet_data);;
}
if (
strlen($data) == 0)
{
# We got no data?! Something must have gone wrong
return false;
}

return
$data;
};

function
HalfLife_Rcon ($ip, $port, $rcon, $command, $challenge)
{

$cmd = "\xFF\xFF\xFF\xFFrcon ".$challenge." ".$rcon." ".$command;

if (!
$serverdata = getServerData($cmd, $ip, $port))
return
false;

$serverdata = substr($serverdata, 5);
$serverdata = trim($serverdata);

return
$serverdata;
};

function
getInt8($pos,$string) {
if (
strlen($string) > $pos) {
$packarray = unpack('Ci',substr($string,$pos,1));
return
$packarray["i"];
} else {
return
0;
}
};

I only tryed to re-programm code to control hlds server, but when I run this php script, it will show no error but also hltv will not responding for my messages. (sorry for my bad english)

Thanks for help.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)