All pastes #1509449 Raw Edit

Save and Load

public cpp v1 · immutable
#1509449 ·published 2009-07-27 23:12 UTC
rendered paste body
#include <a_samp>enum savePosData{	bool:s_check, // zmienna sprawdzajaca czy jakakolwiek pozycja zostala zapisana	s_vid, // id pojazdu	Float:s_x, // pozycja na osi X	Float:s_y, // pozycja na osi Y	Float:s_z, // pozycja na osi Z	Float:s_a, // obrot	s_v, // numer wirtualnego swiata (virtual world)	s_i // numer 'wymiaru' (interior)}new savedPositions[MAX_PLAYERS][savePosData];public OnPlayerConnect(playerid){	savedPositions[playerid][s_check] = false;	return 1;}public OnPlayerCommandText(playerid,cmdtext[]){	if(!strcmp(cmdtext,"/s",true))	{		GetPlayerPos(playerid,savedPositions[playerid][s_x],savedPositions[playerid][s_y],savedPositions[playerid][s_z]);		savedPositions[playerid][s_v] = GetPlayerVirtualWorld(playerid);		savedPositions[playerid][s_i] = GetPlayerInterior(playerid);		savedPositions[playerid][s_vid] = GetPlayerState(playerid) == PLAYER_STATE_DRIVER ? GetPlayerVehicleID(playerid) : -1;		if(savedPositions[playerid][s_vid] != -1)			GetVehicleZAngle(savedPositions[playerid][s_vid],savedPositions[playerid][s_a]);		else			GetPlayerFacingAngle(playerid,savedPositions[playerid][s_a]);		savedPositions[playerid][s_check] = true;		SendClientMessage(playerid,0x008000FF,"Zapisales pozycje! Wpisz /l aby ja wczytac!");		return 1;	}	if(!strcmp(cmdtext,"/l",true))	{		new			p_vehicle,			p_driver;		if(!savedPositions[playerid][s_check])		{			SendClientMessage(playerid,0xFF0000FF,"Nie zapisales jeszcze pozycji! Wpisz /s aby ja zapisac");			return 1;		}		p_driver = GetPlayerState(playerid) == PLAYER_STATE_DRIVER;		p_vehicle = p_driver ? GetPlayerVehicleID(playerid) : private_IsVehicleInUse(savedPositions[playerid][s_vid]);		SetPlayerInterior(playerid,savedPositions[playerid][s_i]);		SetPlayerVirtualWorld(playerid,savedPositions[playerid][s_v]);		if(p_vehicle != -1)		{			SetVehicleVirtualWorld(p_vehicle,savedPositions[playerid][s_v]);			LinkVehicleToInterior(p_vehicle,savedPositions[playerid][s_i]);			SetVehiclePos(p_vehicle,savedPositions[playerid][s_x],savedPositions[playerid][s_y],savedPositions[playerid][s_z]);			SetVehicleZAngle(p_vehicle,savedPositions[playerid][s_a]);			if(!p_driver)				PutPlayerInVehicle(playerid,p_vehicle,0);		}		else		{			SetPlayerPos(playerid,savedPositions[playerid][s_x],savedPositions[playerid][s_y],savedPositions[playerid][s_z]);			SetPlayerFacingAngle(playerid,savedPositions[playerid][s_a]);		}		SetCameraBehindPlayer(playerid);		SendClientMessage(playerid,0x008000FF,"Wczytales zapisana pozycje!");		return 1;	}	return 0;}stock private_IsVehicleInUse(vehicleid){	if(vehicleid == -1 || !GetVehicleModel(vehicleid))		return -1;	for(new i; i < MAX_PLAYERS; i++)		if(IsPlayerConnected(i) && IsPlayerInVehicle(i,vehicleid))			return -1;	return vehicleid;}