/**
*
* 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 .
*
* 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 5
// 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
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's
new 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 permissions
new 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()
{
printf("call OGMI");
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
native
native 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
}