/* =================================================================== If you uncomment the following line YSI will be compiled with filterscript options, this is VERY important if you do use it as one, otherwise certain features may not work =================================================================== */ //#define FILTERSCRIPT /* =================================================================== If you uncomment one of the following lines YSI will not include, those files in compiling. So if you E.G. dont use objects in your script, you could uncomment the line #define YSI_NO_OBJECTS, and it would leave the Object files out. Note: Not every combination has been tested (there are currently 131072 combinations, if you find one which doesn't compile due to cross-file dependencies please say. Also note that excluding either checkpoints or areas will exclude properties instantly. You can also exclude all unwritten new libraries for future compatability using: #define YSI_VERSION Where version is the version you are compiling against, current ids are: 2 - YSI 0.2 or earlier 3 - YSI 0.3 =================================================================== */ #define YSI_NO_USERS //#define YSI_NO_TEXT //#define YSI_NO_COMMANDS //#define YSI_NO_MODULES //#define YSI_NO_OBJECTS //#define YSI_NO_CHECKPOINTS //#define YSI_NO_AREAS //#define YSI_NO_SYSTEM //#define YSI_NO_RACES //#define YSI_NO_ZONES //#define YSI_NO_TRACKING //#define YSI_NO_CALLBACKS #define YSI_NO_MASTER //#define YSI_NO_CLASSES //#define YSI_NO_PICKUPS //#define YSI_NO_GROUPS //#define YSI_NO_PROPERTIES //#define YSI_NO_STANDARD //#define YSI_NO_LOADER #include //#include forward ReadTeleport_category(playerid, identifier[], text[]); forward ReadTeleport_teleport(playerid, identifier[], text[]); forward ReadRace_global(identifier[], text[]); forward ReadTeleportXML_category(playerid); forward ReadTeleportXML_teleport(playerid); forward ReadRace_user(playerid, identifier[], text[]); forward Timer_StartRace(raceid); new Float:teleport_x[32], Float:teleport_y[32], Float:teleport_z[32], Float:teleport_a[32], bool:teleport_done[32], chk1_id, race1_id, race1area, raceids[32], raceareas[32], racechks[32][32], racemoneys[32], racenames[32][256], racecoords[32][256], raceteles[32][256], inrace[32] = -1, rrace, inrrace[32] = -1, racetypes[32], bool:racetimer[32] = false; main() { print("\n--------------------------------"); print(" dotbas.net game mode of uberness "); print("--------------------------------\n"); } Text_RegisterTag(tag_with_MY_KILL_HELP); Text_RegisterTag(join_messages); forward ycmd_kill(playerid, params[], help); public ycmd_kill(playerid, params[], help) { if (help) Text_Send(playerid, "MY_KILL_HELP"); else SetPlayerHealth(playerid, 0.0); return 1; } Script_OnGameModeInit() { // Don't use these lines if it's a filterscript #if !defined FILTERSCRIPT SetGameModeText("drive&walk&shoot"); /*AddStaticVehicleEx(487, 2040.0568, 1343.4222, 10.6719, 0.0, 0, 0, 20); AddStaticVehicleEx(435, 2040.0568, 1354.4222, 10.6719, 0.0, 0, 0, 20); // long trailer - 1 AddStaticVehicleEx(515, 2040.0568, 1365.4222, 10.6719, 0.0, 0, 0, 20); // roadtrain*/ Class_Add(287, 380.2110, 2537.7800, 16.5390, 180.144900, 0, 0, 0, 0, 0, 0); Class_Add(105, 2490.8242,-1686.4448,13.5115,336.6955, 0, 0, 0, 0, 0, 0); ycmd(kill); ycmd("mycommand"); ycmd("join"); Langs_AddLanguage("EN", "English"); Langs_AddFile("core", "YSI"); Langs_AddFile("ons", "YSI"); AddStaticVehicle(401,2497.1003,-1680.7183,13.1310,13.6480,52,52); // grove kogel AddStaticVehicle(401,2501.0657,-1679.3571,13.1468,30.9119,74,74); // groove kogeltje AddStaticVehicle(401,2504.2368,-1676.6273,13.1499,45.3661,91,91); // hugo AddStaticVehicle(541,2505.8491,-1673.6685,12.9945,62.6800,13,8); // gkgjghjhkjfs AddStaticVehicle(401,2507.1990,-1670.2736,13.1569,86.9792,41,41); // fdos AddStaticVehicle(401,2506.6328,-1666.5868,13.1677,110.3215,52,52); // poppupupppupupu AddStaticVehicle(401,2505.6252,-1663.1409,13.1799,123.9137,74,74); // tttttttttttttttttt AddStaticVehicle(401,2502.8933,-1661.2855,13.1693,151.9534,91,91); // ghfjdllllllllllllk AddStaticVehicle(522,2496.6604,-1656.5496,12.9452,163.8024,3,8); // de grove moter AddStaticVehicle(522,2495.3494,-1656.4653,12.9320,164.4875,6,25); // gjh AddStaticVehicle(522,2494.2300,-1656.6781,12.9245,162.8361,7,79); // moter AddStaticVehicle(522,2493.2253,-1656.4930,12.9394,154.3358,8,82); // moh AddStaticVehicle(522,2497.9822,-1656.2952,12.9311,175.3533,36,105); // moters AddStaticVehicle(541,413.1923,2505.4507,16.1094,87.9514,60,1); // temp bullet - verdant AddStaticVehicle(522,1544.2839,-1349.6510,329.0564,272.8220,36,105); // lsw motor 1 AddStaticVehicle(522,1548.1707,-1350.3246,329.0409,268.2199,6,25); // lsw motor 2 AddStaticVehicle(522,1544.5780,-1356.9700,329.0456,262.4000,39,106); // lsw motor 3 AddStaticVehicle(522,1540.4432,-1356.8123,329.0456,98.8530,8,82); // lsw motor 4 AddStaticVehicle(522,-1993.0729,703.1144,44.9999,185.1253,7,79); // nrg 1 AddStaticVehicle(522,-1994.3813,703.0639,45.0099,170.3963,8,82); // nrg 2 AddStaticVehicle(522,-1992.6554,698.2300,45.0072,178.2475,36,105); // nrg 3 // MTA editor map - ban.map - verdant meadows 3 ramp hangar stunt CreateDynamicObject(1632, 90.614510, 2503.529541, 16.784487, 0.0000, 0.0000, 90.0000); // CreateDynamicObject(1632, 87.490181, 2503.601563, 20.168983, 26.6425, 0.0000, 88.2811); // maybe 90.0000? CreateDynamicObject(1632, 87.490181, 2503.601563, 20.168983, 26.6425, 0.0000, 90.0000); CreateDynamicObject(1632, 85.837112, 2503.588379, 24.450691, 47.2690, 0.0000, 90.0000); CreateDynamicObject(16409, 72.287506, 2503.013184, 15.481729, 0.0000, 0.0000, 0.0000); // race - verdante meduwes stunt ^ // chk1_id = CreateCheckpoint(354.5163, 2503.9058, 16.4844, 30); /* race1area = Area_AddBox(341.9820,2495.0444, 373.8308,2518.4214); race1_id = Race_Create(.laps = 0, .exitTime = 1000, .restart = true); Race_AddStart(race1_id, 354.5163,2503.9058,16.4844,90.0000); Race_AddCheckpoint(race1_id, 356.6641,2506.8628,16.1159); Race_AddCheckpoint(race1_id,313.0037,2507.0623,16.1168); // rmp-chk2 Race_AddCheckpoint(race1_id,257.5923,2504.3242,16.1090); // rmp-chk3 Race_AddCheckpoint(race1_id,194.1096,2503.8203,16.1089); // rmp-chk4 Race_AddCheckpoint(race1_id,138.8831,2503.4329,16.1094); // rmp-chk5 Race_AddCheckpoint(race1_id,87.2906,2503.8606,24.1212); // rmp-chk5 Race_AddCheckpoint(race1_id,52.6758,2498.5151,16.1092); // rmp-fnsh Race_SetPrize(race1_id, 0, 3000);*/ LoadRaces(); #endif return 1; } LoadRaces() { INI_ParseFile("races.ini", "ReadRace_global", false, false, 0, true); } public ReadRace_global(identifier[], text[]) { // new dbgh[255]; // valstr(dbgh, rrace); // print(dbgh); if (!strcmp(identifier, "areacoord", true)) { new tmp[40], idx, banana[255]; new Float:MinX, Float:MinY, Float:MaxX, Float:MaxY; tmp = strtokd(text, idx); print(tmp); MinX = floatstr(tmp); tmp = strtokd(text, idx); print(tmp); format(banana, 255, "%f", MinX); print(banana); MinY = floatstr(tmp); tmp = strtokd(text, idx); print(tmp); MaxX = floatstr(tmp); tmp = strtokd(text, idx); print(tmp); MaxY = floatstr(tmp); raceareas[rrace] = Area_AddBox(MinX, MinY, MaxX, MaxY); } else if (!strcmp(identifier, "laps", true)) { raceids[rrace] = Race_Create(.laps = strval(text), .exitTime = 1000, .restart = true); } else if (!strcmp(identifier, "start", true)) { new tmp[40], idx; new Float:X, Float:Y, Float:Z, Float:A; tmp = strtokd(text, idx); X = floatstr(tmp); tmp = strtokd(text, idx); Y = floatstr(tmp); tmp = strtokd(text, idx); Z = floatstr(tmp); tmp = strtokd(text, idx); A = floatstr(tmp); // strcpy(racecoords[rrace], text, 255); Race_AddStart(raceids[rrace], X, Y, Z, A); } else if (!strcmp(identifier, "coords", true)) { strcpy(racecoords[rrace], text, 255); } else if (!strcmp(identifier, "chkpoint", true)) { new tmp[40], idx; new Float:X, Float:Y, Float:Z; tmp = strtokd(text, idx); X = floatstr(tmp); tmp = strtokd(text, idx); Y = floatstr(tmp); tmp = strtokd(text, idx); Z = floatstr(tmp); Race_AddCheckpoint(raceids[rrace], X, Y, Z); } else if (!strcmp(identifier, "type", true)) { racetypes[rrace] = strval(text); } else if (!strcmp(identifier, "money", true)) { racemoneys[rrace] = strval(text); Race_SetPrize(raceids[rrace], 0, 3000); } else if (!strcmp(identifier, "name", true)) { strcpy(racenames[rrace], text, 255); // racenames[rrace] = text; } else if (!strcmp(identifier, "tele", true)) { strcpy(raceteles[rrace], text, 255); // racenames[rrace] = text; } else if (!strcmp(identifier, "race", true)) { rrace++; } return 1; } public ReadRace_user(playerid, identifier[], text[]) { print(identifier); if (!strcmp(identifier, "marker", true)) { new dbgh[255]; valstr(dbgh, rrace); print(racecoords[rrace]); print(dbgh); new tmp[40], idx; new Float:X, Float:Y, Float:Z; tmp = strtokd(racecoords[rrace], idx); X = floatstr(tmp); tmp = strtokd(racecoords[rrace], idx); Y = floatstr(tmp); tmp = strtokd(racecoords[rrace], idx); Z = floatstr(tmp); SetPlayerMapIcon( playerid, rrace, X, Y, Z, strval(text), 0 ); } else if (!strcmp(identifier, "race", true)) { racechks[rrace][playerid] = 99999; rrace++; } return 1; } Command_(mycommand) { // Your code here return 1; } Command_(join) { if (inrace[playerid] != -1) { SendClientMessage(playerid, 0xFFFF82FF, "welcome to the race ;-)"); Race_PlayerJoin(playerid, inrace[playerid]); if (racetypes[inrrace[playerid]] == 1) { Race_Start(inrace[playerid]); } else { if (!racetimer[inrrace[playerid]]) { new message[255]; format(message, 255, "Race %s starts at //%s in 30 seconds", racenames[inrrace[playerid]], raceteles[inrace[playerid]]); SendClientMessageToAll(0xFFFF82FF, message); racetimer[inrrace[playerid]] = true; SetTimerEx("Timer_StartRace", 30000, false, "i", inrrace[playerid]); } } } else { SendClientMessage(playerid, 0xFFFF82FF, "go to the race ;-)"); } return 1; } public Timer_StartRace(raceid) { racetimer[raceid] = false; Race_Start(raceid); } Script_OnGameModeExit() { return 1; } Script_OnPlayerRequestClass(playerid, classid) { SetPlayerPos(playerid, 1503.5924,-2459.6384,13.5547); SetPlayerCameraPos(playerid, 1510.8149,-2459.2192,13.5547); SetPlayerCameraLookAt(playerid, 1503.5924,-2459.6384,13.5547); return 1; } Script_OnPlayerRequestSpawnEx(playerid, classid) { return 1; } Script_OnPlayerConnect(playerid) { Text_Send(playerid, "WELCOME_MESSAGE"); // SetPlayerMapIcon( playerid, 12, 354.5163, 2503.9058, 16.4844, 38, 0 ); rrace = 0; INI_ParseFile("races.ini", "ReadRace_user", false, true, playerid, true); return 1; } Script_OnPlayerDisconnect(playerid, reason) { #pragma unused playerid, reason 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[]) { return 1; } Script_OnPlayerPrivmsg(playerid, recieverid, text[]) { return 1; } Script_OnPlayerCommandText(playerid, cmdtext[]) { if(strfind(cmdtext, "//", true) == 0) { strdel(cmdtext, 0, 2); if (fexist(cmdtext)) { // ReadTeleport_category(playerid, "banana", "express"); // INI_ParseFile(cmdtext, "ReadTeleport_category", .bExtra = true, .extra = playerid, .bLocal = true); if (INI_ParseFile(cmdtext, "ReadTeleport_%s", false, true, playerid, true)) { print("INI gelukt"); print("\n"); } else { print("INI niet gelukt :/"); print("\n"); } // CallLocalFunction("ReadTeleport_category", "iss", playerid, "banana", "express"); /* new XML:xRules = XML_New(); // Check it created if (xRules != NO_XML_FILE) { // Add a function to handle the tag XML_AddHandler(xRules, "category", "ReadTeleportXML_category", playerid); XML_AddHandler(xRules, "teleport", "ReadTeleportXML_teleport", playerid); XML_Parse(xRules, cmdtext); }*/ } else { // Text_Send(playerid, "WELCOME_MESSAGE"); } return 1; } Text_SendFormat(playerid, "SHOW_COMMAND", cmdtext); return 0; } public ReadTeleportXML_category(playerid) { static key[MAX_XML_ENTRY_NAME], val[MAX_XML_ENTRY_TEXT]; while (XML_GetKeyValue(key, val)) { Text_SendFormat(playerid, "TELEPORT", key, val); } return 1; } public ReadTeleportXML_teleport(playerid) { static identifier[MAX_XML_ENTRY_NAME], text[MAX_XML_ENTRY_TEXT]; while (XML_GetKeyValue(identifier, text)) { if (!strcmp(identifier, "xcoord", true)) { teleport_x[playerid] = floatstr(text); } else if (!strcmp(identifier, "ycoord", true)) { teleport_y[playerid] = floatstr(text); } else if (!strcmp(identifier, "zcoord", true)) { teleport_z[playerid] = floatstr(text); } else if (!strcmp(identifier, "acoord", true)) { teleport_a[playerid] = floatstr(text); SetPlayerPos(playerid, teleport_x[playerid], teleport_y[playerid], teleport_z[playerid]); SetPlayerFacingAngle(playerid, teleport_a[playerid]); } } return 1; } public ReadTeleport_category(playerid, identifier[], text[]) { print("wakwakwakwak\n"); print(identifier); print("\n"); new banana[255]; // valstr(banana, playerid); // print(banana); // print("\n"); format(banana, 255, "//%s - %s", identifier, text); // Text_SendFormat(playerid, "TELEPORT", identifier, text); // Text_Send(playerid, "WELCOME_MESSAGE"); SendClientMessage(playerid, 0xFFFF82FF, banana); return 1; } public ReadTeleport_teleport(playerid, identifier[], text[]) { print("WAKZORZDITWERKTDUSOOK?!"); if (!strcmp(identifier, "xcoord", true)) { print("Xyz"); teleport_x[playerid] = floatstr(text); } else if (!strcmp(identifier, "ycoord", true)) { print("xYz"); teleport_y[playerid] = floatstr(text); } else if (!strcmp(identifier, "zcoord", true)) { print("xyZ"); teleport_z[playerid] = floatstr(text); } else if (!strcmp(identifier, "acoord", true)) { print("AAAAA"); teleport_a[playerid] = floatstr(text); } else if (!strcmp(identifier, "go", true)) { print("jeej"); SetPlayerPos(playerid, teleport_x[playerid], teleport_y[playerid], teleport_z[playerid]); SetPlayerFacingAngle(playerid, teleport_a[playerid]); } return 1; } 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) { /* if (cpid == chk1_id) { // join race1 Race_PlayerJoin(playerid, race1_id); Race_Start(race1_id); }*/ new banana[255]; for (new i = 0; i < rrace; i++) { print("STARTOUTPUT"); valstr(banana, rrace); print(banana); valstr(banana, cpid); print(banana); print("Checkpoint ID:"); valstr(banana, racechks[i][playerid]); print(banana); // print("gogogo-1"); // SendClientMessage(playerid, 0x00FF82FF, racenames[i]); print("FOUNDRACE"); if (cpid == racechks[i][playerid]) { // print("gogogo-6"); inrace[playerid] = raceids[i]; inrrace[playerid] = i; valstr(banana, i); print(banana); valstr(banana, raceids[i]); print(banana); print(racenames[i]); // print("gogogo-7"); new temp[40]; // print("gogogo-8"); valstr(temp, racemoneys[i]); // print("gogogo-9"); // SendClientMessage(playerid, 0xAFFF82FF, racenames[i]); Text_SendFormat(playerid, "RACE_SPAM", racenames[i], temp); break; // print("gogogo-10"); } } return 1; } Script_OnPlayerLeaveCheckpointEx(playerid, cpid) { inrace[playerid] = -1; 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) { return 1; } Script_OnPlayerExitedMenu(playerid) { 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) { return 1; } Script_OnPlayerLogout(playerid, yid) { return 1; }*/ Script_OnPlayerEnterArea(playerid, areaid) { // print("gogogo-bla"); // SendClientMessage(playerid, 0xFFFF82FF, racenames[rrace - 1]); // print("gogogo-0"); new banana[255]; for (new i = 0; i < rrace; i++) { print("STARTareaOUTPUT"); valstr(banana, rrace); print(banana); valstr(banana, areaid); print(banana); valstr(banana, raceareas[i]); print(banana); // print("gogogo-1"); // SendClientMessage(playerid, 0x00FF82FF, racenames[i]); print("FOUNDRACE"); if (areaid == raceareas[i]) { // print("gogogo-2"); new tmp[40], idx; new Float:X, Float:Y, Float:Z; // print("gogogo-3"); tmp = strtokd(racecoords[i], idx); X = floatstr(tmp); // print("gogogo-4"); tmp = strtokd(racecoords[i], idx); Y = floatstr(tmp); tmp = strtokd(racecoords[i], idx); Z = floatstr(tmp); // print("gogogo-5"); racechks[i][playerid] = CreateCheckpoint(X, Y, Z, 10); Checkpoint_AddPlayer(racechks[i][playerid], playerid); // print("gogogo-6"); // inrace[playerid] = raceids[i]; // inrrace[playerid] = i; print("Race rrace/i:"); valstr(banana, i); print(banana); print("Race ID:"); valstr(banana, raceids[i]); print(banana); print("Checkpoint ID:"); valstr(banana, racechks[i][playerid]); print(banana); print("Name:"); print(racenames[i]); // print("gogogo-7"); // new temp[40]; // print("gogogo-8"); // valstr(temp, racemoneys[i]); // print("gogogo-9"); // SendClientMessage(playerid, 0xAFFF82FF, racenames[i]); // Text_SendFormat(playerid, "RACE_SPAM", racenames[i], temp); // print("gogogo-10"); } } /* if (areaid == race1area) { chk1_id = CreateCheckpoint(354.5163, 2503.9058, 16.4844, 30); inrace[playerid] = race1_id; Text_SendFormat(playerid, "RACE_SPAM", "vm-toohigh", "$3000"); }*/ return 1; } Script_OnPlayerLeaveArea(playerid, areaid) { DestroyCheckpoint(racechks[inrrace[playerid]][playerid]); racechks[inrrace[playerid]][playerid] = 99999; inrace[playerid] = -1; // if (IsPlayerXAdmin(playerid)) { ResetPlayerWeapons(playerid); // } 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; } strtokd( const string[], &index, const seperator[] = "," ) { new index2, result[ 30 ]; index2 = strfind(string, seperator, false, index); if(index2 == -1) { if(strlen(string) > index) { strmid(result, string, index, strlen(string), 30); index = strlen(string); } return result; // This string is empty, probably, if index came to an end } if(index2 > (index + 29)) { index2 = index + 29; strmid(result, string, index, index2, 30); index = index2; return result; } strmid(result, string, index, index2, 30); index = index2 + 1; return result; }