//------------------------------------------------------------------------------ // // Scouter v0.1.4 // A location scouting filterscript for SA-MP v0.2.0+ // by uncajesse // // http://forum.sa-mp.com/index.php?topic=21961 // // // useage: /scout [notes] // logfile: scriptfiles\scouter_locations.txt // // notes: check for easily set options just below // //------------------------------------------------------------------------------ #include // ******************************* // * options * // ******************************* // log notes & location to file new LogNotesAndLocation = true; // also print location on screen new PrintLocationToScreen = true; // display join message new PrintJoinMessageToScreen = true; // * * // ******************************* public OnFilterScriptInit() { print("\n-----------------------------------------"); print(" Scouter v0.1.4 filterscript by uncajesse"); print(" usage: /scout [notes]"); print(" log: scriptfiles\\scouter_locations.txt"); print("-----------------------------------------\n"); // detect non-function of script due to options if(!PrintLocationToScreen && !LogNotesAndLocation) { print("NO OPTIONS ARE ENABLED IN SCOUTER!!!\n"); } return 1; } public OnPlayerConnect(playerid) { if(PrintJoinMessageToScreen) { SendClientMessage(playerid,0xFFFFFFFF,"* Scouter filterscript loaded"); SendClientMessage(playerid,0xFFFFFFFF,"* usage: /scout [notes]"); } return 1; } public OnPlayerCommandText(playerid, cmdtext[]) { if (strcmp("/scout", cmdtext, true, 6) == 0) { // Scouter Main Functions if(IsPlayerInAnyVehicle(playerid)) { // perform in-vehicle operations // get information new Float:vehiclex,Float:vehicley,Float:vehiclez,Float:vehiclezangle, Float:playerangle; new vehicleid = GetPlayerVehicleID(playerid); new vehiclemodel = GetVehicleModel(vehicleid); new interiorid = GetPlayerInterior(playerid); GetVehiclePos(vehicleid,vehiclex,vehicley,vehiclez); GetVehicleZAngle(vehicleid,Float:vehiclezangle); GetPlayerFacingAngle(playerid,playerangle); // print location to screen if(PrintLocationToScreen) { new sPrint[256]; format(sPrint, 256, "x:%f y:%f z:%f a:%f za:%f interior:%i vmodel:%i", vehiclex, vehicley, vehiclez, playerangle, vehiclezangle, interiorid, vehiclemodel); SendClientMessage(playerid,0xFFFFFFFF,sPrint); } // write information to log file if(LogNotesAndLocation) { new File:scouter_locations = fopen("scouter_locations.txt", io_append); if(scouter_locations) { // log file only variables/information new sWrite[256]; new playername[256]; GetPlayerName(playerid,playername,256); // timestamp new h, m, s, Y, M, D; getdate(Y, M, D); gettime(h, m, s); format(sWrite, 256, "[%s] %d-%d-%d %d:%d:%d\r\n", playername, Y, M, D, h, m, s); fwrite(scouter_locations, sWrite); // notes new tmpFormat[256]; strunpack(tmpFormat,cmdtext,256); strdel(tmpFormat,0,7); format(sWrite, 256, "* %s\r\n", tmpFormat); fwrite(scouter_locations, sWrite); // location format(sWrite, 256, "x:%f y:%f z:%f a:%f za:%f interior:%i vmodel:%i\r\n", vehiclex, vehicley, vehiclez, playerangle, vehiclezangle, interiorid, vehiclemodel); fwrite(scouter_locations, sWrite); // AddStaticVehicle format(sWrite, 256, "AddStaticVehicle(%i,%f,%f,%f,%f,0,0);\r\n\r\n", vehiclemodel, vehiclex, vehicley, vehiclez, vehiclezangle); fwrite(scouter_locations, sWrite); // close file fclose(scouter_locations); SendClientMessage(playerid,0xB0B0FFFF,"* Location added to scouter_locations.txt"); } else { // can't write to file SendClientMessage(playerid,0xB0B0FFFF,"* Failed to write to scouter_locations.txt"); } } } else { //perform on-foot operations // get information new Float:playerx,Float:playery,Float:playerz,Float:playerangle; GetPlayerPos(playerid,playerx,playery,playerz); GetPlayerFacingAngle(playerid,playerangle); new interiorid = GetPlayerInterior(playerid); // print location to screen if(PrintLocationToScreen) { new sPrint[256]; format(sPrint, 256, "x:%f y:%f z:%f a:%f interior:%i", playerx, playery, playerz, playerangle, interiorid); SendClientMessage(playerid,0xFFFFFFFF,sPrint); } if(LogNotesAndLocation) { // write information to log file new File:scouter_locations = fopen("scouter_locations.txt", io_append); if(scouter_locations) { // log file only variables/information new sWrite[256]; new playername[256]; GetPlayerName(playerid,playername,256); // timestamp new h, m, s, Y, M, D; getdate(Y, M, D); gettime(h, m, s); format(sWrite, 256, "[%s] %d-%d-%d %d:%d:%d\r\n", playername, Y, M, D, h, m, s); fwrite(scouter_locations, sWrite); // notes new tmpFormat[256]; strunpack(tmpFormat,cmdtext,256); strdel(tmpFormat,0,7); format(sWrite, 256, "* %s\r\n", tmpFormat); fwrite(scouter_locations, sWrite); // location format(sWrite, 256, "x:%f y:%f z:%f a:%f interior:%i\r\n", playerx, playery, playerz, playerangle, interiorid); fwrite(scouter_locations, sWrite); // AddPlayerClass format(sWrite, 256, "AddPlayerClass(modelid,%f,%f,%f,%f,0,0,0,0,0,0);\r\n\r\n", playerx, playery, playerz, playerangle); fwrite(scouter_locations, sWrite); // close file fclose(scouter_locations); SendClientMessage(playerid,0xB0B0FFFF,"* Location added to scouter_locations.txt"); //format(sWrite, 256, "// %d-%d-%d @ %d:%d:%d\r\n"); } else { SendClientMessage(playerid,0xB0B0FFFF,"* Failed to write to scouter_locations.txt"); } } } return 1; } return 0; } // the end