Da ich gefragt wurde, wie man Funktionen über das UCP / Forum ausführen kann,
wollte ich hier mal ein kleinen Code Schnipsel releasen.
Es handelt sich um das Socket Plugin von BlueG
PHP
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);socket_connect($socket, '127.0.0.1' , 13377);$message = "SPAWN:xGreekz7x";socket_send($socket, $message, strlen($message), 0);$buffer = socket_read ($socket, 1024);if( intval($buffer) == true ) echo "Der Spieler konnte gespawnt werden!\n";else echo "Der Spieler konnte nicht gespawnt werden, Fehler: ". $buffer ."!\n";$message_ = "GIVEMONEY:xGreekz7x:-1200";socket_send($socket, $message_, strlen($message_), 0);$buffer = socket_read ($socket, 1024);if( intval($buffer) == true ) echo "Der Spieler hat das Geld erfolgreich erhalten!\n";else echo "Fehler beim vergeben des Geldes: Error: ". $buffer ." \n";
enum playerData {
pCash
}
new pInfo[MAX_PLAYERS][playerData],
Socket:_socket;
Socket:_socket;
main(){}
public OnGameModeInit()
{
SetGameModeText("Blank Script");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
_socket = socket_create( TCP );
if( is_socket_valid( _socket ) ) {
socket_set_max_connections( _socket, 10 );
socket_listen( _socket, 13377 );
}
return 1;
}
{
SetGameModeText("Blank Script");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
_socket = socket_create( TCP );
if( is_socket_valid( _socket ) ) {
socket_set_max_connections( _socket, 10 );
socket_listen( _socket, 13377 );
}
return 1;
}
public OnGameModeExit()
{
if(is_socket_valid(_socket))
socket_destroy(_socket);
}
{
if(is_socket_valid(_socket))
socket_destroy(_socket);
}
public onSocketReceiveData(Socket:id, remote_clientid, data[], data_len)
{
new command[20], ucp_command[34];
if( sscanf( data, "p<:>s[20]{}", command) )
return socket_sendto_remote_client(id, remote_clientid, "Fehlende Parameter!");
format( ucp_command, 34, "UCP_Function_%s", command );
CallRemoteFunction(ucp_command, "si", data, remote_clientid);
return 1;
}
{
new command[20], ucp_command[34];
if( sscanf( data, "p<:>s[20]{}", command) )
return socket_sendto_remote_client(id, remote_clientid, "Fehlende Parameter!");
format( ucp_command, 34, "UCP_Function_%s", command );
CallRemoteFunction(ucp_command, "si", data, remote_clientid);
return 1;
}
forward UCP_Function_SPAWN( data[], remote_clientid );
public UCP_Function_SPAWN( data[], remote_clientid ) {
print("Call -> Socket -> Spawn");
new
userID;
if( sscanf( data, "p<:>{s[20]}u", userID))
return socket_sendto_remote_client(_socket, remote_clientid, "Fehlende Parameter!");
if( !IsPlayerConnected( userID ) )
return socket_sendto_remote_client(_socket, remote_clientid, "Dieser Spieler ist offline!");
if(SpawnPlayer(userID))
return socket_sendto_remote_client(_socket, remote_clientid, "1");
return socket_sendto_remote_client(_socket, remote_clientid, "Unbekannter Fehler!");
}
public UCP_Function_SPAWN( data[], remote_clientid ) {
print("Call -> Socket -> Spawn");
new
userID;
if( sscanf( data, "p<:>{s[20]}u", userID))
return socket_sendto_remote_client(_socket, remote_clientid, "Fehlende Parameter!");
if( !IsPlayerConnected( userID ) )
return socket_sendto_remote_client(_socket, remote_clientid, "Dieser Spieler ist offline!");
if(SpawnPlayer(userID))
return socket_sendto_remote_client(_socket, remote_clientid, "1");
return socket_sendto_remote_client(_socket, remote_clientid, "Unbekannter Fehler!");
}
forward UCP_Function_GIVEMONEY( data[], remote_clientid );
public UCP_Function_GIVEMONEY( data[], remote_clientid ) {
print("Call -> Socket -> Givemoney");
new
userID, money;
if( sscanf( data, "p<:>{s[20]}ui", userID, money))
return socket_sendto_remote_client(_socket, remote_clientid, "Fehlende Parameter!");
public UCP_Function_GIVEMONEY( data[], remote_clientid ) {
print("Call -> Socket -> Givemoney");
new
userID, money;
if( sscanf( data, "p<:>{s[20]}ui", userID, money))
return socket_sendto_remote_client(_socket, remote_clientid, "Fehlende Parameter!");
if( !IsPlayerConnected( userID ) )
return socket_sendto_remote_client(_socket, remote_clientid, "Dieser Spieler ist offline!");
if( GivePlayerMoney(userID, money) )
return pInfo[userID][pCash] += money, socket_sendto_remote_client(_socket, remote_clientid, "1");
return socket_sendto_remote_client(_socket, remote_clientid, "Unbekannter Fehler!");
}
return socket_sendto_remote_client(_socket, remote_clientid, "Dieser Spieler ist offline!");
if( GivePlayerMoney(userID, money) )
return pInfo[userID][pCash] += money, socket_sendto_remote_client(_socket, remote_clientid, "1");
return socket_sendto_remote_client(_socket, remote_clientid, "Unbekannter Fehler!");
}
Viel Glück damit!