This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Show posts MenuQuote from: maxorator on Apr 25, 2016, 07:47 PMA major update has been released for VC:MP. This version brings new features that require both the server and client to be updated for it to work, so the version is bumped to 04rel004.
Server Owners: Server and plugin updates can be found in this thread.
Client Update 04rel004
- Added client-side GUIs and scripting. The client now has a Squirrel core for running GUI management scripts, and has a few basic client-side events, detailed below.
- Added support for custom radar map. The minimap sections go to store/maps/radar/section<00-63>.png and the menu map sections go to store/maps/radar/region<00-08>.png
- Added option to disable backface culling. This makes maps designed for GTA 3 look better since they weren't made considering backface culling used by VC.
- Added option to disable helicopter blade damage.
All information about new scripting features, both server and client side, can be found in the topic about server update.
Credits to Juppi for the GUI library and Stormeus for integrating it with VC:MP. And me for implementing client side scripts!
function onConsoleInput(cmd,text) {
if ( cmd == "createdatabase" ) {
try
{
print("Creating... please wait a few seconds")
CreateVehicleDatabase()
print("Success!")
}
catch (e)
{
print("Error: "+e)
}
}
}
function CreateVehicleDatabase() {
for ( local i=0; i <=2600; i++) {
local vehicles = FindVehicle(i)
if ( vehicles ) {
WriteIniInteger("vdb.ini","Vehicle"+vehicles.ID,"Price",rand()%100000)
WriteIniString("vdb.ini","Vehicle"+vehicles.ID,"Owner","Liberty City")
WriteIniString("vdb.ini","Vehicle"+vehicles.ID,"Model",GetVehicleName(vehicles))
}
}
}
function onPlayerCommand(player,cmd,text) {
if ( cmd == "buycar" )
{
if ( !player.Vehicle ) {
MessagePlayer("[#ff0000]You must be in a vehicle",player)
return 0;
}
local model = ReadIniString("vdb.ini","Vehicle"+player.Vehicle.ID,"Model")
local price = ReadIniInteger("vdb.ini","Vehicle"+player.Vehicle.ID,"Price")
local owner = ReadIniString("vdb.ini","Vehicle"+player.Vehicle.ID,"Owner")
if ( owner == player.Name ) {
MessagePlayer("[#ff0000]This vehicle already is bought by you!",player)
return false;
}
if ( owner == "Liberty City" ) {
if ( price > player.Cash ) {
MessagePlayer("[#ff0000]You dont have enought money to buy this vehicle",player)
return false;
}
player.Cash -= price;
WriteIniString("vdb.ini","Vehicle"+player.Vehicle.ID,"Owner",player.Name)
MessagePlayer("[#00ff00]Congratulations, you bought this vehicle! you can now get it by using /getcar vehicleid",player)
}
}
if ( cmd == "gimmecash" )
{
player.Cash += 10000
}
if ( cmd == "getcar" )
{
if ( player.Vehicle ) return false;
if ( !text ) {
MessagePlayer("[#ff0000]You dont have included vehicle id in /getcar",player)
return false;
}
local targetcar = FindVehicle(text.tointeger())
if ( targetcar ) {
if ( ReadIniString("vdb.ini","Vehicle"+targetcar.ID, "Owner") != player.Name ) {
MessagePlayer("[#ff0000]This vehicle does not belong to you",player)
return false;
}
if ( ReadIniString("vdb.ini","Vehicle"+targetcar.ID,"Owner") == player.Name ) {
targetcar.Pos = Vector(player.Pos.x+3,player.Pos.y,player.Pos.z)
player.EnterVehicle(targetcar,DOOR_DRIVER)
}
}
}
}
function onPlayerEnteredVehicle(player,vehicle,seat) {
local model = ReadIniString("vdb.ini","Vehicle"+player.Vehicle.ID,"Model")
local price = ReadIniInteger("vdb.ini","Vehicle"+player.Vehicle.ID,"Price")
local owner = ReadIniString("vdb.ini","Vehicle"+player.Vehicle.ID,"Owner")
MessagePlayer("[#ffffff]You entered a "+model+", Owner: "+owner+", Price: "+price+", ID: "+player.Vehicle.ID,player)
}
if ( cmd == "m4" ) {
if ( player.Pos.Distance(Vector(-64.0652,-1482.05,10.4961)) || player.Pos.Distance(Vector(-677.717,1205.67,11.1087)) < 5 ) {
if ( player.Cash < 2200 ) {
RedMessage("You dont have enought money to buy m4, need $2200",player)
return 0;
}
player.Cash -= 2200
player.GiveWeapon(26,100)
GreenMessage("M4 purchased ( $2200 ) ",player)
}
else {
RedMessage("You must be in ammunation",player)
return 0;
}
}
if ( cmd == "pvp" )
{
if ( !text ) MessagePlayer("[#ff0000] [ERROR] [#ffffff]You need to specify a player, and weapon id",player);
else
{
local pTemp = split(text, " "), p = GetPlayer( pTemp[ 0 ] );
if ( p )
{
local weapon = text.slice( pTemp[ 0 ].len() + 1 );
I need a command, to /pvp player weaponid function onScriptLoad()
{
g_Sender <- "[email protected]";
g_Rcver <- "[email protected]";
g_Subject <- "idk";
g_Message <- "works or not";
SendMail();
print("done")
}
function SendMail()
{
g_MailSocket <- NewSocket( "ProcessMail" );
g_MailSocket.SetNewConnFunc( "ConnEstablished" );
g_MailSocket.SetLostConnFunc( "CloseConnection" );
g_MailSocket.Connect( "-clip-", 25 );
g_Timer <- NewTimer( "CloseConnection", 2500, 1 );
}
function ConnEstablished()
{
g_MailSocket.Send( "HELO localhost\n" );
g_MailSocket.Send( "MAIL FROM: " + g_Sender + "\n" );
g_MailSocket.Send( "RCPT TO: " + g_Rcver + "\n" );
g_MailSocket.Send( "DATA\n" );
g_MailSocket.Send( "SUBJECT: " + g_Subject + "\n" );
g_MailSocket.Send( "\n" );
g_MailSocket.Send( g_Message + "\n" );
g_MailSocket.Send( ".\n" );
g_MailSocket.Send( "QUIT\n" );
}
function CloseConnection()
{
if ( g_MailSocket ) g_MailSocket.Delete();
g_Timer.Delete();
}
the email wasnt sent, i checked. but prints "done"