All pastes #926743 Raw Edit

ydbg2

public cpp v1 · immutable
·published 2008-03-03 20:39 UTC
rendered paste body
/****       YDBG.pwn*       2008 (c) LexSoftware Foundation, Alexander de Jong (mrdejong)*       2008 (c) Alex "Y_Less" cole**       Version 1.0.0 BETA**       YDBG comes with two lang files English and Dutch:*       YDBG.en*       YDBG.nl*       YDBG_format.YSI**       All the files can be found in:*       scriptfiles/YSI/***       This file need to make all the property's, ammunation's, bank's.*       This file can save also Area's and much more. With this file you can create your server*       In a minute. It works allmost automatically that means that you don't need to*       use much commands. No it's simple thinking, simple use thought**       This file saves all information in to an xml file "scriptfiles/YSI/YDBG" there you can find everything you need.**       This file loads every property's, ammunation's, bank's all what you want automatically.**       This file also uses an administration system, thats linked to the user system of YSI.*       It's not really an adminisrator system, but i call him "BUILDERS" you can give people some rights*       and they can use only the commands they have rights to :) simple?***       I wish you all good luck with it. And keep SIMPLE THINKING if not you make it your self so dificult!**       cya arround homi's**       Alexander de Jong (mrdejong).**       This file is copyrighted and protected by the GNU General Public License*       You can do all you want in this file, that will say if you don't like the working of something, easely edit it to your hand**       License:**       This program is free software: you can redistribute it and/or modify*	    it under the terms of the GNU General Public License as published by*	    the Free Software Foundation, either version 3 of the License, or*	    (at your option) any later version.**	    This program is distributed in the hope that it will be useful,*	    but WITHOUT ANY WARRANTY; without even the implied warranty of*	    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the*		GNU General Public License for more details.**	    You should have received a copy of the GNU General Public License*	    along with this program.  If not, see <http://www.gnu.org/licenses/>.**       Complete license: (please read them)**       http://www.gnu.org/licenses/gpl.html**       If you don't agree with this license please don't use IT!**/// We are building a filterscript, that means we need to let know the system that it is a filterscript. So it is a child of the gamemode.#define FILTERSCRIPT#define _DEBUG 4// Setup all the defines we need:/***   Options*/	// Load options// #define NO_VEHICLE_LOAD// #define NO_PROPERTYS_LOAD// #define NO_MONEYPOINT_LOAD// #define NO_BANK_LOAD#define MAX_XML_FILES 30#include <YSI>enum binfo{	blevel,	Float:spos_x,	Float:spos_y,	Float:spos_z,	Float:spos_a,	sinterior,}new userinfo[MAX_PLAYERS][binfo];new userLoged[MAX_PLAYERS] = {-1, ...};// Menu var'snew Menu:propertyMenu;new Menu:vehicleSpawn;new Menu:saveMenu;new Menu:propertyOptionsMenu;new propertyOption = 0;new SaveOption = 0;new MoneyOption = 0;new bankOption = 0;new	popos[256];new	pnames[256];new	setup1[256];new	setup2[256];// vars for the command permissionsnew spos;new lpos;new mkprop;new giveright;new veh;new savepos;new c_menu;new builder;new superbuilder;/*** forwards*/forward ycmd_spos(playerid, params[], help);forward ycmd_lpos(playerid, params[], help);forward ycmd_kill(playerid, params[], help);forward ycmd_mkprop(playerid, params[], help);forward ycmd_giveright(playerid, params[], help);forward ycmd_gr(playerid, params[], help);forward ycmd_veh(playerid, params[], help);forward ycmd_menu(playerid, params[], help);forward ycmd_savepos(playerid, params[], help);forward ycmd_explain(playerid, params[], help);forward ycmd_hexplain(playerid, params[], help);forward ycmd_bgmx(playerid, params[], help);forward MkProp(playerid, prop1[], prop2[], prop3[], prop4[]);forward SpawnVehicle(playerid, vehicleid);forward LoadCars();forward LoadProp();forward Load_MoneyPoint();forward LoadBank();forward LoginDat_YDBG(playerid, identifier[], text[]);/*** Register tags for the lang files*/Text_RegisterTag(info);Text_RegisterTag(complete);Text_RegisterTag(error);Script_OnFilterScriptInit(){	print("\n------------------------------------");	print(" YDBG Ysi DeBuG tool.");	print(" 2008 (c) LexSoftware Foundation, Alexander de Jong");	print(" 2008 (c) Alex \"Y_Less\" Cole");	print(" Alex \"Y_Less\" Cole is also the founder of YSI");	print("------------------------------------\n");	// Set groups	builder = Group_Create("Builder");	superbuilder = Group_Create("Superbuilder");    load_functions();		Langs_AddLanguage("EN", "English");    Langs_AddLanguage("NL", "Nederlands");	Langs_AddFile("core", "YSI");	Langs_AddFile("YDBG", "YSI");	// ** Create the menu's	/// Make the propertyOptionsMenu	propertyOptionsMenu = CreateMenu("Property options", 2, 150.0, 150.0, 170.0, 200.0);	AddMenuItem(propertyOptionsMenu, 0, "1. Bussinus"); // 0	AddMenuItem(propertyOptionsMenu, 0, "2. Bank"); // 1	AddMenuItem(propertyOptionsMenu, 0, "3. Ammunation"); // 2	AddMenuItem(propertyOptionsMenu, 0, "4. Money area"); // 3	AddMenuItem(propertyOptionsMenu, 0, "5. Money point"); // 4	AddMenuItem(propertyOptionsMenu, 0, "6. Teleport"); // 5	AddMenuItem(propertyOptionsMenu, 0, "7. Forbidden Area"); // 6	AddMenuItem(propertyOptionsMenu, 0, "8. Houses"); // 7	AddMenuItem(propertyOptionsMenu, 0, "9. Cancel"); // 8		AddMenuItem(propertyOptionsMenu, 1, "CreateProperty");	AddMenuItem(propertyOptionsMenu, 1, "CreateBank");	AddMenuItem(propertyOptionsMenu, 1, "CreateAmmunation");	AddMenuItem(propertyOptionsMenu, 1, "CreateMoneyArea");	AddMenuItem(propertyOptionsMenu, 1, "CreateMoneyPoint");	AddMenuItem(propertyOptionsMenu, 1, "CreateTeleport");	AddMenuItem(propertyOptionsMenu, 1, "CreateForbiddenArea");		/// Make property menu:	propertyMenu = CreateMenu("Property builder", 1, 10.0, 150.0, 225.0);	AddMenuItem(propertyMenu, 0, "1. Make property");	AddMenuItem(propertyMenu, 0, "2. Give a name");	AddMenuItem(propertyMenu, 0, "3. Setup 1");	AddMenuItem(propertyMenu, 0, "4. Setup 2");	AddMenuItem(propertyMenu, 0, "5. Cancel");		// /savep menu	saveMenu = CreateMenu("Save options", 1, 200.0, 150.0, 200.0);	AddMenuItem(saveMenu, 0, "1. Save vehicles");	AddMenuItem(saveMenu, 0, "2. Save custom positions");	AddMenuItem(saveMenu, 0, "3. Save pickups");	AddMenuItem(saveMenu, 0, "4. Save arrea's");	AddMenuItem(saveMenu, 0, "5. Cancel");		/**	* Make a vehicle menu;	* This is used if the builder doesn't have add a vulue when typing /veh	*/	vehicleSpawn = CreateMenu("Vehicle Menu", 2, 200.0, 100.0, 100.0, 125.0);	AddMenuItem(vehicleSpawn, 0, "521 Bike :"); // FCR-900	AddMenuItem(vehicleSpawn, 0, "522 Bike :"); // NRG-500	AddMenuItem(vehicleSpawn, 0, "463 Bike :"); // Freeway	AddMenuItem(vehicleSpawn, 0, "541 Car :"); // Bullet	AddMenuItem(vehicleSpawn, 0, "411 Car :"); // Invernus 	AddMenuItem(vehicleSpawn, 0, "482 Bus :"); // Buritto 	AddMenuItem(vehicleSpawn, 0, "487 Heli :"); // Maverick 	 	AddMenuItem(vehicleSpawn, 1, "FCR-900"); 	AddMenuItem(vehicleSpawn, 1, "NRG-500"); 	AddMenuItem(vehicleSpawn, 1, "Freeway"); 	AddMenuItem(vehicleSpawn, 1, "Bullet"); 	AddMenuItem(vehicleSpawn, 1, "Invernus"); 	AddMenuItem(vehicleSpawn, 1, "Buritto"); 	AddMenuItem(vehicleSpawn, 1, "Maverick"); 	 	/** 	* Load xml init 	*/	load_xml_init();	return 1;}/*** This command is only for testing*/public ycmd_menu(playerid, params[], help){	#pragma unused params, help	ShowMenu(propertyOptionsMenu, playerid);		return 1;}Script_OnFilterScriptExit(){	return 1;}Script_OnGameModeInit(){	return 1;}Script_OnGameModeExit(){    Master_@Master();	return 1;}Script_OnPlayerRequestClass(playerid, classid){	return 1;}Script_OnPlayerRequestSpawnEx(playerid, classid){	return 1;}Script_OnPlayerConnect(playerid){	Command_SetPlayerUseByID(spos, playerid, 0);	Command_SetPlayerUseByID(lpos, playerid, 0);	Command_SetPlayerUseByID(mkprop, playerid, 0);	Command_SetPlayerUseByID(giveright, playerid, 0);	Command_SetPlayerUseByID(veh, playerid, 0);	Command_SetPlayerUseByID(savepos, playerid, 0);	Command_SetPlayerUseByID(c_menu, playerid, 0);	return 1;}Script_OnPlayerDisconnect(playerid, reason){	#pragma unused reason, playerid	return 1;}Script_OnPlayerSpawn(playerid){	return 1;}Script_OnPlayerDeath(playerid, killerid, reason){	return 1;}Script_OnVehicleSpawn(vehicleid){	return 1;}Script_OnVehicleDeath(vehicleid, killerid){	return 1;}Script_OnPlayerText(playerid, text[]){ 	if(propertyOption >= 1)	{	    new str[256]; // This is for the format lines   	    switch(propertyOption)	    {	        case 1:	        {	            if(!FindText(text, "yes", 3))	            {          		    new						Float:x,						Float:y,						Float:z;					GetPlayerPos(playerid, x, y, z);		            format(str, sizeof(str), "%f, %f, %f", x, y, z);		            popos = str;		            Text_Send(playerid, "YDBG_PROP_ADD_1");		            					propertyOption = 0;		            return 0;				}			}			case 2:			{				new name[60];				if(GetText(text, 60, name))				{					pnames = name;										Text_Send(playerid, "YDBG_PROP_ADD_2");										propertyOption = 0;				    				    return 0;				}			}			case 3:			{			    new opt[125];			    if(GetText(text, 125, opt))			    {					setup1 = opt;										Text_Send(playerid, "YDBG_PROP_ADD_3");										propertyOption = 0;										return 0;				}			}			case 4:			{			    new opt2[125];			    if(GetText(text, 125, opt2))			    {					setup2 = opt2;										Text_Send(playerid, "YDBG_PROP_ADD_4");					Text_Send(playerid, "YDBG_PROP_ADD_5");										propertyOption = 522;					return 0;				}			}		}	}		if(!FindText(text, "save", 4) && propertyOption == 522)	{	    propertyOption = 0;	    MkProp(playerid, popos, pnames, setup1, setup2);	    return 0;	}		if(MoneyOption >= 1)	{	    switch(MoneyOption)	    {	        case 1:	        {	            if(!FindText(text, "yes", 4))	            {					Text_Send(playerid, "YDBG_MP_INFO_1.1");	                Text_Send(playerid, "YDBG_MP_INFO_1.2");	                Text_Send(playerid, "YDBG_MP_INFO_1.3");	                Text_Send(playerid, "YDBG_MP_INFO_1.4");	                Text_Send(playerid, "YDBG_MP_INFO_1.5");	                Text_Send(playerid, "YDBG_MP_INFO_1.6");	                Text_Send(playerid, "YDBG_MP_INFO_1.7");	                Text_Send(playerid, "YDBG_MP_INFO_1.8");	                MoneyOption = 2;	                return 0;				}			}						case 2:			{			    new options[125];			    new str[256];			    GetText(text, 125, options);			    			    new xmlMpoint = XML_AddItem("moneypoint");			    new Float:x, Float:y, Float:z;			    			    GetPlayerPos(playerid, x, y, z);			    			    XML_AddParameter(xmlMpoint, "options", options);				format(str, sizeof(str), "%f, %f, %f", x, y, z);				XML_AddParameter(xmlMpoint, "position", str);								XML_WriteItem("YSI/YDBG/moneypoint.xml", xmlMpoint);								Text_Send(playerid, "YDBG_MP_ADD");				MoneyOption = 255;				return 0;			}		}	}		if(bankOption >= 1)	{	    switch(bankOption)	    {	        case 1:	        {	            if(!FindText(text, "yes", 3))	            {	                Text_Send(playerid, "YDBG_BANK_INFO_1");	                Text_Send(playerid, "YDBG_BANK_INFO_2");	                bankOption = 2;	                	                return 0;				}			}			case 2:			{			    new name[125];			    new str[256];			    			    GetText(text, 125, name);			    			    new xmlBank = XML_AddItem("bank");			    			    new Float:x, Float:y, Float:z;			    GetPlayerPos(playerid, x, y, z);			    			    format(str, sizeof(str), "%f, %f, %f", x, y, z);			    			    XML_AddParameter(xmlBank, "position", str);			    XML_AddParameter(xmlBank, "name", name);			    			    XML_WriteItem("YSI/YDBG/bank.xml", xmlBank);			    			    Text_Send(playerid, "YDBG_BANK_ADD");			    				bankOption = 255;				return 0;			}		}	}	return 1;}Script_OnPlayerPrivmsg(playerid, recieverid, text[]){	return 1;}Script_OnPlayerCommandText(playerid, cmdtext[]){	return Command_Process(playerid, cmdtext);}Script_OnPlayerInfoChange(playerid){	return 1;}Script_OnPlayerEnterVehicle(playerid, vehicleid, ispassenger){	return 1;}Script_OnPlayerExitVehicle(playerid, vehicleid){	return 1;}Script_OnPlayerStateChange(playerid, newstate, oldstate){	return 1;}Script_OnPlayerEnterCheckpointEx(playerid, cpid){	return 1;}Script_OnPlayerLeaveCheckpointEx(playerid, cpid){	return 1;}Script_OnPlayerEnterRaceCheckpoint(playerid){	return 1;}Script_OnPlayerLeaveRaceCheckpoint(playerid){	return 1;}Script_OnRconCommand(cmd[]){	return 1;}Script_OnPlayerPickUpPickup(playerid, pickupid){	return 1;}Script_OnPlayerSelectedMenuRow(playerid, row){	new Menu:PlayerMenu = GetPlayerMenu(playerid);		// Property Option menu	if(PlayerMenu == propertyOptionsMenu)	{	    switch(row)	    {	        case 0:	        {	            ShowMenu(propertyMenu, playerid);			}			case 1:			{			    Text_Send(playerid, "YDBG_BANK_INFO_3");			    Text_Send(playerid, "YDBG_BANK_INFO_4");			    bankOption = 1;			}			case 4:			{			    MoneyOption = 1;			    Text_Send(playerid, "YDBG_MP_INFO_2.1");			    Text_Send(playerid, "YDBG_MP_INFO_2.2");			}			case 7:			{			    new Float:x, Float:y, Float:z;			    GetPlayerPos(playerid, x, y, z);			    			    new xmlHouse = XML_AddItem("house");			    new str[256];			    format(str, sizeof(str), "%f, %f, %f", x, y, z);			    XML_AddParameter(xmlHouse, "position", str);			    			    XML_WriteItem("propertys/houses.xml", xmlHouse);			}						default:			{			    Text_Send(playerid, "YDBG_MENU_NOT_EXIST");			}		}		TogglePlayerControllable(playerid, 1);	}		// PorpertyMenu	if(PlayerMenu == propertyMenu)	{	    switch(row)		{		    case 0:		    {		        Text_Send(playerid, "YDBG_PROP_INFO_1");		        Text_Send(playerid, "YDBG_PROP_INFO_2");		        Text_Send(playerid, "YDBG_PROP_INFO_3");		        propertyOption = 1;			}			case 1:			{			    Text_Send(playerid, "YDBG_PROP_INFO_4");			    propertyOption = 2;			}			case 2:			{			    Text_Send(playerid, "YDBG_PROP_INFO_5");			    Text_Send(playerid, "YDBG_PROP_INFO_6");			    Text_Send(playerid, "YDBG_PROP_INFO_7");			    Text_Send(playerid, "YDBG_PROP_INFO_8");			    Text_Send(playerid, "YDBG_PROP_INFO_9");			    Text_Send(playerid, "YDBG_PROP_INFO_10");			    Text_Send(playerid, "YDBG_PROP_INFO_11");			    Text_Send(playerid, "YDBG_PROP_INFO_12");			    propertyOption = 3;			}			case 3:			{			    Text_Send(playerid, "YDBG_PROP_INFO_13");			    Text_Send(playerid, "YDBG_PROP_INFO_14");                Text_Send(playerid, "YDBG_PROP_INFO_15");                Text_Send(playerid, "YDBG_PROP_INFO_16");                Text_Send(playerid, "YDBG_PROP_INFO_17");                Text_Send(playerid, "YDBG_PROP_INFO_18");                Text_Send(playerid, "YDBG_PROP_INFO_19");                Text_Send(playerid, "YDBG_PROP_INFO_20");                Text_Send(playerid, "YDBG_PROP_INFO_21");                Text_Send(playerid, "YDBG_PROP_INFO_22");                propertyOption = 4;			}		}		TogglePlayerControllable(playerid, 1);	}	// Vehicle menu 	if(PlayerMenu == vehicleSpawn) 	{ 	    switch(row)		{			case 0:			{			    SpawnVehicle(playerid, 521);			}						case 1:			{			    SpawnVehicle(playerid, 522);			}						case 2:			{			    SpawnVehicle(playerid, 463);			}			case 3:			{			    SpawnVehicle(playerid, 541);			}						case 4:			{			    SpawnVehicle(playerid, 411);			}						case 5:			{			    SpawnVehicle(playerid, 482);			}						case 6:			{			    SpawnVehicle(playerid, 487);			}		}		TogglePlayerControllable(playerid, 1);	}		if(PlayerMenu == saveMenu)	{	    switch(row)	    {	        case 0:	        {	            SaveOption = 1;	            SendClientMessage(playerid, 0x00FF00AA, "Gebruik nu /savepos om de auto's op te slaan");			}						case 1:			{				SaveOption = 2;			    SendClientMessage(playerid, 0x00FF00AA, "Costum position selected use /savepos");			}						case 2:			{			    SaveOption = 3;			    SendClientMessage(playerid, 0x00FF00AA, "Pickups gebruik nu /savepos [pickupid]");			}						case 3:			{			    SaveOption = 4;			    SendClientMessage(playerid, 0x00FF00AA, "DEZE OPTIE IS NOG NIET INGEBOUWD");			}						case 4:			{				HideMenuForPlayer(saveMenu, playerid);			}		}		TogglePlayerControllable(playerid, 1);	}	return 1;}Script_OnPlayerExitedMenu(playerid){	TogglePlayerControllable(playerid, 1);	return 1;}Script_OnVehicleMod(vehicleid, componentid){	return 1;}Script_OnVehiclePaintjob(vehicleid, paintjobid){	return 1;}Script_OnVehicleRespray(vehicleid, color1, color2){	return 1;}Script_OnPlayerLogin(playerid, yid){	userLoged[playerid] = 1;	return 1;}Script_OnPlayerLogout(playerid, yid){	Debug_Print_1("Script_OnPlayerLogout");    userLoged[playerid] = 0;        if(Group_HasPlayer(builder, playerid))	{	    Group_RemovePlayer(builder, playerid);	}	if(Group_HasPlayer(superbuilder, playerid))	{	    Group_RemovePlayer(superbuilder, playerid);	}	new playersIp[20];	GetPlayerIp(playerid, playersIp, 20);    // Write the user information	Player_SetTag("YDBG");	Player_WriteInt("blevel", userinfo[playerid][blevel]);	Player_WriteFloat("spos_x", userinfo[playerid][spos_x]);	Player_WriteFloat("spos_y", userinfo[playerid][spos_y]);	Player_WriteFloat("spos_z", userinfo[playerid][spos_z]);	Player_WriteFloat("spos_a", userinfo[playerid][spos_a]);	Player_WriteInt("sinterior", userinfo[playerid][sinterior]);	return 1;}Script_OnPlayerEnterArea(playerid, areaid){	return 1;}Script_OnPlayerLeaveArea(playerid, areaid){	return 1;}Script_OnRaceEnd(raceid){	return 1;}Script_OnPlayerExitRace(playerid, raceid){	return 1;}Script_OnPlayerFinishRace(playerid, raceid, position, prize, time){	return 1;}Script_OnDynamicObjectMoved(objectid){	return 1;}Script_OnPlayerKeyStateChange(playerid, newkeys, oldkeys){	return 1;}Script_OnPlayerInteriorChange(playerid, newinteriorid, oldinteriorid){	return 1;}Script_OnPlayerKeyPress(playerid, key){	return 1;}Script_OnPlayerKeyRelease(playerid, key){	return 1;}Script_OnGangWarCapture(zoneid, attacker, defender){	return 1;}Script_OnGangWarStart(zoneid, attacker, defender){	return 1;}Script_OnGangWarDefend(zoneid, attacker, defender){	return 1;}/*** Commands*/public ycmd_kill(playerid, params[], help){	#pragma unused help, params	SetPlayerHealth(playerid, 0.0);	return 1;}public ycmd_spos(playerid, params[], help){	#pragma unused help, params	new Float:x, Float:y, Float:z, Float:a;	GetPlayerPos(playerid, x, y, z);	GetPlayerFacingAngle(playerid, a);	new intid;	intid = GetPlayerInterior(playerid);	userinfo[playerid][spos_x] = x;	userinfo[playerid][spos_y] = y;	userinfo[playerid][spos_z] = z;	userinfo[playerid][spos_a] = a;	userinfo[playerid][sinterior] = intid;	return 1;}public ycmd_lpos(playerid, params[], help){    #pragma unused help, params	SetPlayerPos(playerid, userinfo[playerid][spos_x], userinfo[playerid][spos_y], userinfo[playerid][spos_z]);	SetPlayerFacingAngle(playerid, userinfo[playerid][spos_a]);	SetPlayerInterior(playerid, userinfo[playerid][sinterior]);	return 1;}public ycmd_mkprop(playerid, params[], help){	#pragma unused help, params	ShowMenu(propertyMenu, playerid);	return 1;}public ycmd_giveright(playerid, params[], help){	#pragma unused help	new	    bblevel,	    giveid;	if(sscanf(params, "i", bblevel)) SendClientMessage(playerid, 0xff0000AA, "USAGE: /giveright [playerid] [builder] (1 = builder 2 = sbuilder)");	else	{		switch(bblevel)		{		    case 1:		    {		        userinfo[playerid][blevel] = 1;				Group_AddPlayer(builder, giveid);			}						case 2:			{			    userinfo[playerid][blevel] = 2;			    Group_AddPlayer(superbuilder, giveid);			}		}	}	return 1;}public ycmd_gr(playerid, params[], help){    #pragma unused help, params    if(IsPlayerAdmin(playerid))    {        userinfo[playerid][blevel] = 2;        Group_AddPlayer(superbuilder, playerid);		SendClientMessage(playerid, 0x00FF00AA, "You are now SuperBuilder");	}	return 1;}public ycmd_veh(playerid, params[], help){	#pragma unused help	new vehicle;	if(sscanf(params, "i", vehicle)) ShowMenu(vehicleSpawn, playerid);	else	{	    SpawnVehicle(playerid, vehicle);	}	return 1;}public ycmd_savepos(playerid, params[], help){	#pragma unused help	new menushoww;	sscanf(params, "i", menushoww);	if(menushoww == 522) ShowMenu(saveMenu, playerid);	else	{		switch(SaveOption)		{		    case 1:		    {		        new command[256];		        sscanf(params, "z", command);		        new vehicle = GetPlayerVehicleID(playerid);		        new Float:x, Float:y, Float:z, Float:a;		        GetVehiclePos(vehicle, x, y, z);		        GetVehicleZAngle(vehicle, a);				new str[256];				format(str, sizeof(str), "%s", command);				new xml_cars = XML_AddItem("vehicle", str);				format(str, sizeof(str), "%f, %f, %f, %f", x, y, z, a);				XML_AddParameter(xml_cars, "position", str);				format(str, sizeof(str), "%i", GetVehicleModel(vehicle));				XML_AddParameter(xml_cars, "model", str);				XML_WriteItem("YSI/YDBG/cars.xml", xml_cars);			}			case 2:			{			    new command[256];			    sscanf(params, "z", command);			    new Float:x, Float:y, Float:z, Float:a;			    GetPlayerPos(playerid, x, y, z);			    GetPlayerFacingAngle(playerid, a);			}			default:			{			    ShowMenu(saveMenu, playerid);			}		}	}	return 1;}new Text:showTxt;public ycmd_explain(playerid, params[], help){	#pragma unused params, help		showTxt = TextDrawCreate(130, 50, "Welkom,\	~n~~n~\	you want some explaining, here you GOOOO!\	~n~~n~\	this sytem....");	 	TextDrawFont(showTxt, 1);	TextDrawSetShadow(showTxt, 2);	TextDrawUseBox(showTxt, 1);	TextDrawLetterSize(showTxt, 0.3, 0.3);	TextDrawTextSize(showTxt, 430, 350);	TextDrawBoxColor(showTxt, 0x00000AA);	TextDrawShowForPlayer(playerid, showTxt);		return 1;}public ycmd_hexplain(playerid, params[], help){    #pragma unused params, help	TextDrawHideForPlayer(playerid, showTxt);	return 1;}/*** Functions*/stock IsBuilder(playerid, level){	if(userinfo[playerid][blevel] == level)	{	    return 1;	}	return 0;}stock IsBuilderEx(playerid, from, to){	if(userinfo[playerid][blevel] >= from && userinfo[playerid][blevel] <= to)	{	    return 1;	}	return 0;}stock IsValidVehicle(carid){	if(carid >= 400 && carid <= 611)	{	    return 1;	}	return 0;}public SpawnVehicle(playerid, vehicleid){	if(IsPlayerInAnyVehicle(playerid)) SendClientMessage(playerid, 0xFF0000AA, "Get off the vehicle please ...");	else if(!IsValidVehicle(vehicleid)) SendClientMessage(playerid, 0xFF0000AA, "Invallid vehicle");	else	{		new Float:x, Float:y, Float:z, Float:a;				GetPlayerPos(playerid, x, y, z);		GetPlayerFacingAngle(playerid, a);				new spcar;				spcar = CreateVehicle(vehicleid, x+2.0, y, z, a, -1, -1, 100000);				PutPlayerInVehicle(playerid, spcar, 0);				Debug_Print_1("%i is spawned", vehicleid);	}}stock ShowMenu(Menu:smenu, playerid){	TogglePlayerControllable(playerid, 0);	ShowMenuForPlayer(smenu, playerid);	return 1;}public MkProp(playerid, prop1[], prop2[], prop3[], prop4[]){	new xml_prop = XML_AddItem("property", prop2);	XML_AddParameter(xml_prop, "position", prop1);	XML_AddParameter(xml_prop, "name", prop2);	XML_AddParameter(xml_prop, "options_1", prop3);	XML_AddParameter(xml_prop, "options_2", prop4);	XML_WriteItem("YSI/YDBG/prop.xml", xml_prop);	Text_Send(playerid, "YDBG_PROP_ADD_6");	return 1;}/**native YDBG_FUNCTIONS	nativenative FindText(text[], find[], maxlength, &output = '', outp = false);native GetText(text[], &output);*/stock FindText(text[], find[], maxlength){	if(strlen(text) <= maxlength)	{	    if(strfind(text, find))		{			return 1;		}	} 	return 0;}stock GetText(text[], maxlength, output[]){	if(strlen(text) <= maxlength)	{	    format(output, maxlength, "%s", text);	    return 1;	}	return 0;}/*** Call the builder login* Load data functions*/public LoginDat_YDBG(playerid, identifier[], text[]){	Debug_Print_1("LoginDat_YDBG");	if(!strcmp(identifier, "blevel")) userinfo[playerid][blevel] = strval(text);	else if(!strcmp(identifier, "spos_x")) userinfo[playerid][spos_x] = floatstr(text);	else if(!strcmp(identifier, "spos_y")) userinfo[playerid][spos_y] = floatstr(text);	else if(!strcmp(identifier, "spos_z")) userinfo[playerid][spos_z] = floatstr(text);	else if(!strcmp(identifier, "spos_a")) userinfo[playerid][spos_a] = floatstr(text);	else if(!strcmp(identifier, "sinterior")) userinfo[playerid][sinterior] = strval(text);		if(userinfo[playerid][blevel] == 1)	{	    SetPlayerColor(playerid, 0x12bddbAA);     	SendClientMessage(playerid, 0x00FF00AA, "You are as builder loged in");     	Group_AddPlayer(builder, playerid);	}	if(userinfo[playerid][blevel] == 2)	{		SetPlayerColor(playerid, 0x017a8cAA);		SendClientMessage(playerid, 0x00FF00AA, "You are as Superbuilder loged in");		Group_AddPlayer(superbuilder, playerid);	}		return 1;}public LoadCars(){    static		key[MAX_XML_ENTRY_NAME],		val[MAX_XML_ENTRY_TEXT];	new     	model,    	pos[256];	while (XML_GetKeyValue(key, val))	{		if(!strcmp(key, "model")) model = strval(val);		else if(!strcmp(key, "position")) pos = val;	}	new dest[4][256];	explode(pos, dest, ',');	// printf("Model: %i x: %f  y: %f  z: %f  a: %f", model, floatstr(dest[0]), floatstr(dest[1]), floatstr(dest[2]), floatstr(dest[3]));	CreateVehicle(model, floatstr(dest[0]), floatstr(dest[1]), floatstr(dest[2]), floatstr(dest[3]), -1, -1, 1000);}public LoadProp(){	static	    key[MAX_XML_ENTRY_NAME],	    val[MAX_XML_ENTRY_TEXT];	new	    options_1[256],	    options_2[256],	    name[256],	    pos[256];	while (XML_GetKeyValue(key, val))	{	    if(!strcmp(key, "options_2")) options_2 = val;	    else if(!strcmp(key, "options_1")) options_1 = val;	    else if(!strcmp(key, "name")) name = val;	    else if(!strcmp(key, "position")) pos = val;	}		new opt1[3][30];	new opt2[5][30];	new dest[3][30];		explode(options_1, opt1, ',');	explode(options_2, opt2, ',');	explode(pos, dest, ',');		// printf("Setups: 1: %i 2: %i 3: %i 4: %i 5: %i 6: %i 7: %i 8: %i", strval(opt1[0]), strval(opt1[1]), strval(opt1[2]), strval(opt2[0]), strval(opt2[1]), strval(opt2[2]), strval(opt2[3]), strval(opt2[4])); 	// printf("Name: %s Position: %f, %f, %f", name, floatstr(dest[0]), floatstr(dest[1]), floatstr(dest[2]));		CreateProperty(name, floatstr(dest[0]), floatstr(dest[1]), floatstr(dest[2]), strval(opt1[0]), strval(opt1[1]), strval(opt1[2]), strval(opt2[0]), strval(opt2[1]), strval(opt2[2]), strval(opt2[3]), strval(opt2[4]));}public Load_MoneyPoint(){    static		key[MAX_XML_ENTRY_NAME],		val[MAX_XML_ENTRY_TEXT];	new     	pos[256],    	options[256];	while (XML_GetKeyValue(key, val))	{		if(!strcmp(key, "position")) pos = val;		else if(!strcmp(key, "options")) options = val;	}		new posdest[3][30];	new optdest[2][30];	explode(pos, posdest, ',');	explode(options, optdest, ',');	// printf("POS: %f, %f, %f OPTIONS: %i, %i", floatstr(posdest[0]), floatstr(posdest[1]), floatstr(posdest[2]), strval(optdest[0]), strval(optdest[1]));	CreateMoneyPoint(floatstr(posdest[0]), floatstr(posdest[1]), floatstr(posdest[2]), 2.0, strval(optdest[0]), strval(optdest[1]));}public LoadBank(){    static		key[MAX_XML_ENTRY_NAME],		val[MAX_XML_ENTRY_TEXT];	new     	posi[256],    	name[256];	while (XML_GetKeyValue(key, val))	{		if(!strcmp(key, "name")) name = val;		else if(!strcmp(key, "position")) posi = val;	}		new posidest[3][30];	explode(posi, posidest, ',');	printf("POS: %f, %f, %f NAME: %s", floatstr(posidest[0]), floatstr(posidest[1]), floatstr(posidest[2]), name);	CreateBank(floatstr(posidest[0]), floatstr(posidest[1]), floatstr(posidest[2]), name);}stock load_functions(){	ycmd(kill);	ycmd(gr);	ycmd(explain);	ycmd(hexplain);	c_menu = ycmd(menu);	spos = ycmd(spos);	lpos = ycmd(lpos);	mkprop = ycmd(mkprop);	giveright = ycmd(giveright);	veh = ycmd(veh);	savepos = ycmd(savepos);	Group_SetDefaultCommandByID(spos, 0);	Group_SetDefaultCommandByID(lpos, 0);	Group_SetDefaultCommandByID(mkprop, 0);	Group_SetDefaultCommandByID(c_menu, 0);	Group_SetDefaultCommandByID(giveright, 0);	Group_SetDefaultCommandByID(veh, 0);	Group_SetDefaultCommandByID(savepos, 0);	// Set the bulder commands	Group_SetCommandByID(builder, spos, 1);	Group_SetCommandByID(builder, lpos, 1);	Group_SetCommandByID(builder, mkprop, 1);	Group_SetCommandByID(builder, savepos, 1);	// Set the Superbuilder commands	Group_SetCommandByID(superbuilder, spos, 1);	Group_SetCommandByID(superbuilder, lpos, 1);	Group_SetCommandByID(superbuilder, mkprop, 1);	Group_SetCommandByID(superbuilder, giveright, 1);	Group_SetCommandByID(superbuilder, veh, 1);	Group_SetCommandByID(superbuilder, c_menu, 1);	Group_SetCommandByID(superbuilder, savepos, 1);	Command_SetDeniedReturn(1);	Command_UseDeniedMessage(1);	Command_SetDisconnectReturn(1);}stock load_xml_init(){	#if !defined NO_VEHICLE_LOAD	 	new			XML:xCars = XML_New();		if (xCars != NO_XML_FILE)		{			XML_AddHandler(xCars, "vehicle", "LoadCars");			XML_Parse(xCars, "YSI\\YDBG\\cars.xml");		}	#endif	#if !defined NO_PROPERTYS_LOAD	    new			XML:xProps = XML_New();		if(xProps != NO_XML_FILE)		{		    XML_AddHandler(xCars, "property", "LoadProp");			XML_Parse(xCars, "YSI\\YDBG\\prop.xml");		}	#endif	#if !defined NO_MONEYPOINT_LOAD	    new	        XML:xMPoint = XML_New();		if(xMPoint != NO_XML_FILE)		{		    XML_AddHandler(xMPoint, "moneypoint", "Load_MoneyPoint");		    XML_Parse(xMPoint, "YSI\\YDBG\\moneypoint.xml");		}	#endif	#if !defined NO_BANK_LOAD	    new	        XML:xBank = XML_New();		if(xBank != NO_XML_FILE)		{		    XML_AddHandler(xBank, "bank", "LoadBank");		    XML_Parse(xBank, "YSI\\YDBG\\bank.xml");		}	#endif}