All pastes #850599 Raw Edit

CoordsSave

public cpp v1 · immutable
#850599 ·published 2008-01-11 09:11 UTC
rendered paste body
//Function PlayerName(playerid) added, DCMD and strtok added#include <a_samp>new SaveMode;new SaveFile[32];#define COLOR_MODE 0x024EFDFF#define respawn_delay 180#define FILTERSCRIPT//------------------------------------------------------------------------------//=====FILTERSCRIPT=============================================================//------------------------------------------------------------------------------#if defined FILTERSCRIPTpublic OnFilterScriptInit(){	print("\n--------------------------------------");	print(" Coords-Saver by Rafelder");	print("--------------------------------------\n");	SendClientMessageToAdmins(COLOR_MODE, "Coords-Saver loaded. Tipe '/savemode [1-7]' to select your savemode.");	return 1;}public OnFilterScriptExit(){	SendClientMessageToAdmins(COLOR_MODE, "Coords-Saver unloaded.");	return 1;}#elsemain(){	print("\n----------------------------------");	print(" Blank Gamemode by your name here");	print("----------------------------------\n");}#endif//------------------------------------------------------------------------------//=====(DIS)CONNECT=============================================================//------------------------------------------------------------------------------public OnPlayerConnect(playerid){	return 1;}//------------------------------------------------------------------------------//=====CMDS+TEXT================================================================//------------------------------------------------------------------------------public OnPlayerText(playerid, text[]){	return 1;}public OnPlayerCommandText(playerid, cmdtext[]){    new cmd[256], idx;	cmd = strtok(cmdtext, idx);		if (strcmp(cmd, "/savemode", true) == 0) {	new string[256], mode[256];	mode = strtok(cmdtext, idx);	if (!strlen(mode)) {		SendClientMessage(playerid, COLOR_MODE, "[USAGE]: '/savemode [1-7]'");	    SendClientMessage(playerid, COLOR_MODE, "[1 = PlayerClass, 2 = Vehicle, 3 = Pickup, 4 = Explosion, 5 = PlayerCheckpoint, 6 = RaceCheckpoint, 7 = Blank Coords]");	    return 1;	}	new gmode = strval(mode);	if ((gmode < 1) || (gmode > 7)) {	    SendClientMessage(playerid, COLOR_MODE, "[ERROR]: Savemode must between 1-7");	    SendClientMessage(playerid, COLOR_MODE, "[1 = PlayerClass, 2 = Vehicle, 3 = Pickup, 4 = Explosion, 5 = PlayerCheckpoint, 6 = RaceCheckpoint, 7 = Blank Coords]");	    return 1;	}	SaveMode = gmode;	switch(SaveMode) {	    case 1: SaveFile = "player_coords.txt";	    case 2: SaveFile = "car_coords.txt";	    case 3: SaveFile = "pickup_coords.txt";	    case 4: SaveFile = "xplode_coords.txt";	    case 5: SaveFile = "playercp_coords.txt";	    case 6: SaveFile = "racecp_coords.txt";	    case 7: SaveFile = "blank_coords.txt";	}	format(string, 256, "Savemode %d activated.", SaveMode);	SendClientMessageToAdmins(COLOR_MODE, string); 	SendClientMessageToAdmins(COLOR_MODE, "[1 = PlayerClass, 2 = Vehicle, 3 = Pickup, 4 = Explosion, 5 = PlayerCheckpoint, 6 = RaceCheckpoint, 7 = Blank Coords]");	return 1;	}		if (strcmp(cmd, "/c", true) == 0) {	if ((!SaveMode) || (SaveMode < 1) || (SaveMode > 7)) {	    SendClientMessage(playerid, COLOR_MODE, "[ERROR]: No '/savemode' activated!");	    return 1;	}	new text[256];	text = strtok(cmdtext, idx);	if (!strlen(text)) {	SendClientMessage(playerid, COLOR_MODE, "[USAGE]: '/c [text]'");	return 1;	}	new string[256], File:handle;	handle = fopen(SaveFile, io_append);	if (handle) {	    format(string, sizeof(string), "//%s\r\n", text);	    SendClientMessageToAdmins(COLOR_MODE, string);		print(string);		fwrite(handle, string);		fclose(handle);	}	return 1;	}		if (strcmp(cmd, "/del", true) == 0) {	if ((!SaveMode) || (SaveMode < 1) || (SaveMode > 7)) {	    SendClientMessage(playerid, COLOR_MODE, "[ERROR]: no /savemode activated!");	    return 1;	}	new string[256], string2[256], File:handle = fopen(SaveFile, io_readwrite);	if (handle) {	new File:handle2 = fopen("tmp.txt", io_readwrite);	while (fread(handle, string)) {	if (string2[0]) fwrite(handle2, string2);	string2 = string;	}  	fclose(handle);	fclose(handle2);	handle = fopen(SaveFile, io_write);	handle2 = fopen("tmp.txt", io_read);	while (fread(handle2, string)) {		fwrite(handle, string);   	}   	fclose(handle);	fclose(handle2);	fremove("tmp.txt");	SendClientMessageToAdmins(COLOR_MODE, "Last line deleted");	}	return 1;	}		if (strcmp(cmd, "/savepos", true) == 0) {		if ((!SaveMode) || (SaveMode < 1) || (SaveMode > 7)) {	    SendClientMessage(playerid, COLOR_MODE, "[ERROR]: No '/savemode' activated!");	    return 1;	}	    new Float:X, Float:Y, Float:Z, Float:angle;    new string[256];    new File:handle = fopen(SaveFile, io_append);	switch(SaveMode) {	    case 1: {		    if (handle) {		    if (!IsPlayerInAnyVehicle(playerid)) {			    GetPlayerPos(playerid, X, Y, Z);			    GetPlayerFacingAngle(playerid, angle);			    format(string, sizeof(string), "AddPlayerClass( %d, %f, %f, %f, %f, 0, 0, 0, 0, 0, 0);\r\n", GetPlayerSkin(playerid), X, Y, Z, angle);			    SendClientMessageToAdmins(COLOR_MODE, string);			    print(string);		    	fwrite(handle, string);		    	fclose(handle);				return 1;				} else SendClientMessage(playerid, COLOR_MODE, "[ERROR]: You have to be outside a vehicle!");			return 1;			}		}		case 2: {			if (handle) {   			if (IsPlayerInAnyVehicle(playerid)) {			    new vehicleid = GetPlayerVehicleID(playerid);		    	GetVehiclePos(vehicleid, X, Y, Z);		    	GetVehicleZAngle(vehicleid, angle);		    	format(string, sizeof(string), "CreateVehicle( %d, %f, %f, %f, %f, -1, -1, %d);\r\n", GetVehicleModel(vehicleid), X, Y, Z, angle, respawn_delay);		    	SendClientMessageToAdmins(COLOR_MODE, string);		    	print(string);		    	fwrite(handle, string);		    	fclose(handle);		    	return 1;				} else SendClientMessage(playerid, COLOR_MODE, "[ERROR]: You have to sit in a vehicle!");			return 1;			}		}		case 3: {		    new modelid = strval(strtok(cmdtext,idx));		    new type = strval(strtok(cmdtext,idx));		    if (!modelid || !type) {		    SendClientMessage(playerid, COLOR_MODE, "[USAGE]: '/savepos [modelid][type]'");		    return 1;		    }		    if (handle) {			    GetPlayerPos(playerid, X, Y, Z);			    format(string, sizeof(string), "CreatePickup(%d, %d, %f, %f, %f);\r\n", modelid, type, X, Y, Z);			    SendClientMessageToAdmins(COLOR_MODE, string);			    print(string);		    	fwrite(handle, string);		    	fclose(handle);			}		}		case 4: {		    new type = strval(strtok(cmdtext,idx));		    new radius = strval(strtok(cmdtext,idx));		    if (!type || !radius) {		    SendClientMessage(playerid, COLOR_MODE, "[USAGE]: '/savepos [type][radius]'");		    return 1;		    }		    if (handle) {			    GetPlayerPos(playerid, X, Y, Z);			    format(string, sizeof(string), "CreateExplosion(%f, %f, %f, %d, %d);\r\n", X, Y, Z, type, radius);			    SendClientMessageToAdmins(COLOR_MODE, string);			    print(string);		    	fwrite(handle, string);		    	fclose(handle);			}		}		case 5: {		    new size = strval(strtok(cmdtext,idx));		    if (!size) {		    SendClientMessage(playerid, COLOR_MODE, "[USAGE]: '/savepos [size]'");		    return 1;		    }		    if (handle) {			    GetPlayerPos(playerid, X, Y, Z);			    format(string, sizeof(string), "SetPlayerCheckpoint(playerid, %f, %f, %f, %d);\r\n", X, Y, Z, size);			    SendClientMessageToAdmins(COLOR_MODE, string);			    print(string);		    	fwrite(handle, string);		    	fclose(handle);			}		}		case 6: {		    new type = strval(strtok(cmdtext,idx));		    new size = strval(strtok(cmdtext,idx));		    if (!type || !size) {		    SendClientMessage(playerid, COLOR_MODE, "[USAGE]: '/savepos [type][size]'");		    return 1;		    }		    if (handle) {			    GetPlayerPos(playerid, X, Y, Z);			    format(string, sizeof(string), "SetPlayerRaceCheckpoint(playerid, %d, %f, %f, %f, 0.0, 0.0, 0.0, %d);\r\n", type, X, Y, Z, size);			    SendClientMessageToAdmins(COLOR_MODE, string);			    print(string);		    	fwrite(handle, string);		    	fclose(handle);			}		}		case 7: {		    if (handle) {		        if (IsPlayerInAnyVehicle(playerid)) {		        new vehicleid = GetPlayerVehicleID(playerid);		        GetVehiclePos(vehicleid, X, Y, Z);		        GetVehicleZAngle(vehicleid, angle);		        } else {			    GetPlayerPos(playerid, X, Y, Z);			    GetPlayerFacingAngle(playerid, angle);			    }			    format(string, sizeof(string), "[Coords: %f, %f, %f] [Angle: %f] [Interior: %d]", X, Y, Z, angle, GetPlayerInterior(playerid));			    SendClientMessageToAdmins(COLOR_MODE, string);			    print(string);		    	fwrite(handle, string);		    	fclose(handle);			}		}	}	return 1;	}	return 0;}//------------------------------------------------------------------------------//=====MENUS====================================================================//------------------------------------------------------------------------------public OnPlayerSelectedMenuRow(playerid, row){	return 1;}public OnPlayerExitedMenu(playerid){	return 1;}//------------------------------------------------------------------------------//=====KEYS=====================================================================//------------------------------------------------------------------------------public OnPlayerKeyStateChange(playerid, newkeys, oldkeys){	return 1;}//------------------------------------------------------------------------------//=====STRTOK===================================================================//------------------------------------------------------------------------------strtok(const string[], &index){	new length = strlen(string);	while ((index < length) && (string[index] <= ' ')) {		index++;	}	new offset = index;	new result[20];	while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1))) {		result[index - offset] = string[index];		index++;	}	result[index - offset] = EOS;	return result;}//------------------------------------------------------------------------------//=====STOCK====================================================================//------------------------------------------------------------------------------stock SendClientMessageToAdmins(COLOR, const message[]){    	for(new a=0; a<MAX_PLAYERS; a++) {        if(IsPlayerConnected(a)) {        if(IsPlayerAdmin(a)) {        	SendClientMessage(a, COLOR, message);        }        }		}}