Вопросы

Спойлер

CMD:lock(playerid, params[])
{
    if(GetPVarInt(playerid, "logged") == 0) return 1;
	extract params -> new type; else return Send(playerid, 0xFFCC00AA, "•[Подсказка] {ffffff}Введите: /lock [тип]"),  Send(playerid, 0xFFCC00AA, "•[Подсказка] {ffffff}1 - личный транспорт | 2 - арендованнный транспорт");
	new vehicleid = -1;
	
	if(type == 1)
	{
		return LockOwnableCar(playerid);
	}
	else if(type == 2)	
	{
		if(player_job_vehicle_created[playerid] == -1) return Send(playerid, 0x999999FF, "У Вас нет арендованной машины");
	
		vehicleid = player_job_vehicle_created[playerid];
		PlayerPlaySound(playerid, 24600, 0.0, 0.0, 0.0);
	}
	else 
		return Send(playerid, 0xFFCC00AA, "•[Подсказка] {ffffff}Введите: /lock [номер транспорта]"), Send(playerid, 0xFFCC00AA, "•[Подсказка] {ffffff}1 - личный транспорт | 2 - рабочий транспорт");
	
	if(vehicleid == -1) return 1;
	
	new Float:x, Float:y, Float:z;
	GetVehiclePos(vehicleid, x, y, z);
	if(!IsPlayerInRangeOfPoint(playerid, 20.0, x, y, z)) return Send(playerid, 0x999999FF, "Вы должны стоять рядом с транспортом");
	
	new engine, lights, alarm, doors, bonnet, boot, objective, set_doors;
	GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
	
	SetVehicleParamsEx(vehicleid, engine, lights, alarm, set_doors, bonnet, boot, objective);

 	if(IsPlayerInAnyVehicle(playerid))
 		UpdatePlayerSpeedTD(playerid);

	return 1; 
}

 

 

Поделиться сообщением


Ссылка на сообщение

12 ответов на этот вопрос

  • 0

Помогите, пожалуйста.

Поделиться сообщением


Ссылка на сообщение
  • 0

@Gaiduk В следующий раз такая тема будет закрыта. Описывайте вопрос подробней, что именно не получается? Что, при вводе команды, отправляется в чат? 

Поделиться сообщением


Ссылка на сообщение
  • 0

@DEST Когда вводишь команду ничего не происходит. 

Поделиться сообщением


Ссылка на сообщение
  • 0

После 

В 07.07.2018 в 14:32, Gaiduk сказал:

CMD:lock(playerid, params[]) {

добавьте

printf("[#DEBUG] %d - logged", GetPVarInt(playerid, "logged")); 

после введите команду на сервере и скиньте логи. 

Поделиться сообщением


Ссылка на сообщение
  • 0

@DEST 

Спойлер

[21:20:06] [debug] Run time error 4: "Array index out of bounds"
[21:20:06] [debug]  Attempted to read/write array element at index 87 in array of size 50
[21:20:06] [debug] AMX backtrace:
[21:20:06] [debug] #0 0029c3c4 in public CreateOwnableCar (playerid=0, ownerid=1, number[]=@0043d858 "-1", modelid=401, color_1=1, color_2=0, Float:pos_x=1894.87964, Float:pos_y=2269.41895, Float:pos_z=15.53300, Float:angle=179.13541, lock=0, Float:mileage=0.00000, Float:fuel=100.00000, Float:health=1000.00000, weels=0, nitro=0, cost_car_=150000) at C:\Users\Windows\Desktop\ATTRACT RP v1\gamemodes\a_rp.pwn:25256
[21:20:06] [debug] #1 0029bbac in public LoadMyCar (playerid=0) at C:\Users\Windows\Desktop\ATTRACT RP v1\gamemodes\a_rp.pwn:25167
[21:20:19] [#DEBUG] 1 - logged
[21:20:19] [debug] Run time error 4: "Array index out of bounds"
[21:20:19] [debug]  Attempted to read/write array element at index 87 in array of size 50
[21:20:19] [debug] AMX backtrace:
[21:20:19] [debug] #0 0029663c in IsAOwnableCar (vehicleid=86) at C:\Users\Windows\Desktop\ATTRACT RP v1\gamemodes\a_rp.pwn:24542
[21:20:19] [debug] #1 00296844 in LockOwnableCar (playerid=0) at C:\Users\Windows\Desktop\ATTRACT RP v1\gamemodes\a_rp.pwn:24554
[21:20:19] [debug] #2 00214f0c in public pc_cmd_lock (playerid=0, params[]=@00439920 "1") at C:\Users\Windows\Desktop\ATTRACT RP v1 RP\gamemodes\a_rp.pwn:14581

 

 

Поделиться сообщением


Ссылка на сообщение
  • 0

@Gaiduk скидывайте функции 

3 часа назад, Gaiduk сказал:

IsAOwnableCar / 24542

 

3 часа назад, Gaiduk сказал:

LockOwnableCar / 24554

 и пометьте в них строки, которые указал выше. 

Поделиться сообщением


Ссылка на сообщение
  • 0

@DEST 

Спойлер

stock IsAOwnableCar(vehicleid)
{
	new index = vehicleid - ownable_car_id[0];
	printf("[#DEBUG] %d - logged", GetPVarInt(playerid, "logged"));
	return (ownable_car[index][oc_owner_id] != 1) ? (true) : (false);
}

stock LockOwnableCar(playerid)
{
	new vehicleid = player_ownable_car[playerid];

	new Float:x, Float:y, Float:z;
	GetVehiclePos(vehicleid, x, y, z);
	
	if(!IsPlayerInRangeOfPoint(playerid, 10.0, x, y, z)) return Send(playerid, 0x999999FF, "Âû äîëæíû ñòîÿòü ðÿäîì ñ òðàíñïîðòîì");
	printf("[#DEBUG] %d - logged", GetPVarInt(playerid, "logged"));
	if(!IsAOwnableCar(vehicleid)) return 1;
	
	new index = vehicleid - ownable_car_id[0];

	new set_doors;
	if(ownable_car[index][oc_lock_status])
	{
		set_doors = 0;
		ownable_car[index][oc_lock_status] = false;
		GameTextForPlayer(playerid, "~g~UNLOCK", 3, 3000);
		Send(playerid, -1, "unlock");
		PlayerPlaySound(playerid, 24600, 0.0, 0.0, 0.0);
	}
	else
	{
		set_doors = 1;
		ownable_car[index][oc_lock_status] = true;
		GameTextForPlayer(playerid, "~r~LOCK", 3, 3000);
		Send(playerid, -1, "lock");
		PlayerPlaySound(playerid, 24600, 0.0, 0.0, 0.0);
	}
	
	new engine, lights, alarm, doors, bonnet, boot, objective;
	GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
	SetVehicleParamsEx(vehicleid, engine, lights, alarm, set_doors, bonnet, boot, objective);
	return 1;
}
Спойлер


[01:05:22] [debug] Run time error 4: "Array index out of bounds"
[01:05:22] [debug]  Attempted to read/write array element at index 87 in array of size 50
[01:05:22] [debug] AMX backtrace:
[01:05:22] [debug] #0 0029c72c in public CreateOwnableCar (playerid=0, ownerid=1, number[]=@0043d868 "-1", modelid=401, color_1=1, color_2=0, Float:pos_x=1894.87964, Float:pos_y=2269.41895, Float:pos_z=15.53300, Float:angle=179.13541, lock=0, Float:mileage=0.00000, Float:fuel=100.00000, Float:health=1000.00000, weels=0, nitro=0, cost_car_=150000) at C:\Users\Windows\Desktop\ATTRACT RP v1\gamemodes\a_rp.pwn:25242
[01:05:22] [debug] #1 0029bf14 in public LoadMyCar (playerid=0) at C:\Users\Windows\Desktop\ATTRACT RP v1\gamemodes\a_rp.pwn:25153
[01:05:49] [#DEBUG] 1 - logged
[01:05:49] [#DEBUG] 1 - logged
[01:05:49] [debug] Run time error 4: "Array index out of bounds"
[01:05:49] [debug]  Attempted to read/write array element at index 87 in array of size 50
[01:05:49] [debug] AMX backtrace:
[01:05:49] [debug] #0 00296930 in IsAOwnableCar (vehicleid=86) at C:\Users\Windows\Desktop\ATTRACT RP v1\gamemodes\a_rp.pwn:24528
[01:05:49] [debug] #1 00296bac in LockOwnableCar (playerid=0) at C:\Users\Windows\Desktop\ATTRACT RP v1\gamemodes\a_rp.pwn:24540
[01:05:49] [debug] #2 002151e4 in public pc_cmd_lock (playerid=0, params[]=@00439930 "1") at C:\Users\Windows\Desktop\ATTRACT RP v1\gamemodes\a_rp.pwn:14577
[01:05:52] [debug] Run time error 4: "Array index out of bounds"
[01:05:52] [debug]  Attempted to read/write array element at index 87 in array of size 50
[01:05:52] [debug] AMX backtrace:
[01:05:52] [debug] #0 00194d88 in public SSCANF_OnPlayerDisconnect (playerid=0, reason=1) at C:\Users\Windows\Desktop\ATTRACT RP v1\gamemodes\a_rp.pwn:2044
[01:05:52] [debug] #1 native CallLocalFunction () from samp-server-cr.exe
[01:05:52] [debug] #2 000021b0 in public Iter_OnPlayerDisconnect (playerid=0, reason=1) at C:\Users\Windows\Desktop\ATTRACT RP v1\pawno\include\../include/sscanf2.inc:143
[01:05:52] [debug] #3 native CallLocalFunction () from samp-server-cr.exe
[01:05:52] [debug] #4 00001114 in public OnPlayerDisconnect (playerid=0, reason=1) at C:\Users\Windows\Desktop\ATTRACT RP v1\pawno\include\../include/foreach.inc:641

 

 

 

Поделиться сообщением


Ссылка на сообщение
  • 0

@DEST , скинул Вам, что Вы просили какие дальше указание ?

Поделиться сообщением


Ссылка на сообщение
  • 0

@Gaiduk зачем вы везде эту строку добавляли 

В 10.07.2018 в 01:08, Gaiduk сказал:

printf("[#DEBUG] %d - logged", GetPVarInt(playerid, "logged"));

если было указано, что ее нужно только в начало команды. Эту строку можно удалить. 

По поводу проблемы: команда не работает, так как в скинутых вами функциях выход за пределы массива. Скорее всего в строчках 

В 10.07.2018 в 01:08, Gaiduk сказал:

(ownable_car[index][oc_owner_id] != 1)

 

В 10.07.2018 в 01:08, Gaiduk сказал:

if(ownable_car[index][oc_lock_status])

 

В 10.07.2018 в 01:08, Gaiduk сказал:

ownable_car[index][oc_lock_status] = false;

 

В 10.07.2018 в 01:08, Gaiduk сказал:

ownable_car[index][oc_lock_status] = true;

 

Скиньте еще этот массив ownable_car

Поделиться сообщением


Ссылка на сообщение
  • 0

@DEST 

Спойлер

stock GetVehicleID(vehicleid)
{
	if(vehicleid < ownable_car_id[0]) return 0;
	return (vehicleid - ownable_car_id[0]);
}

 

 

Поделиться сообщением


Ссылка на сообщение
  • 0

@Gaiduk

Спойлер

forward CreateOwnableCar(playerid, ownerid, number[], modelid, color_1, color_2, Float: pos_x, Float: pos_y, Float: pos_z, Float: angle, lock, Float:mileage, Float:fuel, Float: health, weels, nitro, cost_car_);
public CreateOwnableCar(playerid, ownerid, number[], modelid, color_1, color_2, Float: pos_x, Float: pos_y, Float: pos_z, Float: angle, lock, Float:mileage, Float:fuel, Float: health, weels, nitro, cost_car_)
{
	player_ownable_car[playerid] = CreateVehicle(modelid, pos_x, pos_y, pos_z, angle, color_1, color_2, -1);
	
	new vehicleid = player_ownable_car[playerid];
	new index = vehicleid - ownable_car_id[0];

	if(1 <= vehicleid <= MAX_VEHICLES)
		vehicle_broken_engine[vehicleid] = false;
		
	ownable_car_id[index] = vehicleid;
	
	ownable_car[index][oc_owner_id] = 		ownerid;
	
	new n_text[32];
	format(n_text, sizeof n_text, "%s", number);
	
	if(strval(n_text) == -1) ownable_car[index][oc_number] = -1, ownable_car_label[index] = CreateDynamic3DTextLabel("[ НЕТ НОМЕРОВ]", 0xFFFFFFFF, 0.0, 0.0, 0.0, 15.0, _, vehicleid);		
	else format(ownable_car[index][oc_number], 32, "%s", number), ownable_car_label[index] = CreateDynamic3DTextLabel(ownable_car[index][oc_number], 0xFFFFFFFF, 0.0, 0.0, 0.0, 15.0, _, vehicleid);

	ownable_car[index][oc_modelid] = 	modelid;
	ownable_car[index][oc_color_1] = 	color_1;
	ownable_car[index][oc_color_2] = 	color_2;
	
	ownable_car[index][oc_lock_status] =	bool: lock;
	
	ownable_car[index][oc_mileage] =		mileage;
	
	ownable_car[index][tun_weels] =		weels;
	ownable_car[index][tun_nitro] = 	nitro;
	
	ownable_car[index][cost_car] =		cost_car_;
	
	if(ownable_car[index][tun_weels] != 0) AddVehicleComponent(vehicleid, ownable_car[index][tun_weels]);
	if(ownable_car[index][tun_nitro] != 0) AddVehicleComponent(vehicleid, ownable_car[index][tun_nitro]);

	new engine, lights, alarm, doors, bonnet, boot, objective;
	GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
	SetVehicleParamsEx(vehicleid, 0, lights, alarm, ownable_car[index][oc_lock_status], bonnet, boot, objective);

	if(fuel < 0.0)
		fuel = 0.0;
		
	if(health < 400)
		health = 400;
	
	vehicle[vehicleid][veh_fuel] = fuel;
	SetVehicleHealth(vehicleid, health);
	
	return vehicleid;
}
//=========================================================================================================================================================

 

 

Поделиться сообщением


Ссылка на сообщение
  • 0

@DEST,

Спойлер

forward CreateOwnableCar(playerid, ownerid, number[], modelid, color_1, color_2, Float: pos_x, Float: pos_y, Float: pos_z, Float: angle, lock, Float:mileage, Float:fuel, Float: health, weels, nitro, cost_car_);
public CreateOwnableCar(playerid, ownerid, number[], modelid, color_1, color_2, Float: pos_x, Float: pos_y, Float: pos_z, Float: angle, lock, Float:mileage, Float:fuel, Float: health, weels, nitro, cost_car_)
{
	player_ownable_car[playerid] = CreateVehicle(modelid, pos_x, pos_y, pos_z, angle, color_1, color_2, -1);
	
	new vehicleid = player_ownable_car[playerid];
	new index = vehicleid - ownable_car_id[0];

	if(1 <= vehicleid <= MAX_VEHICLES)
		vehicle_broken_engine[vehicleid] = false;
		
	ownable_car_id[index] = vehicleid;
	
	ownable_car[index][oc_owner_id] = 		ownerid;
	
	new n_text[32];
	format(n_text, sizeof n_text, "%s", number);
	
	if(strval(n_text) == -1) ownable_car[index][oc_number] = -1, ownable_car_label[index] = CreateDynamic3DTextLabel("[ НЕТ НОМЕРОВ]", 0xFFFFFFFF, 0.0, 0.0, 0.0, 15.0, _, vehicleid);		
	else format(ownable_car[index][oc_number], 32, "%s", number), ownable_car_label[index] = CreateDynamic3DTextLabel(ownable_car[index][oc_number], 0xFFFFFFFF, 0.0, 0.0, 0.0, 15.0, _, vehicleid);

	ownable_car[index][oc_modelid] = 	modelid;
	ownable_car[index][oc_color_1] = 	color_1;
	ownable_car[index][oc_color_2] = 	color_2;
	
	ownable_car[index][oc_lock_status] =	bool: lock;
	
	ownable_car[index][oc_mileage] =		mileage;
	
	ownable_car[index][tun_weels] =		weels;
	ownable_car[index][tun_nitro] = 	nitro;
	
	ownable_car[index][cost_car] =		cost_car_;
	
	if(ownable_car[index][tun_weels] != 0) AddVehicleComponent(vehicleid, ownable_car[index][tun_weels]);
	if(ownable_car[index][tun_nitro] != 0) AddVehicleComponent(vehicleid, ownable_car[index][tun_nitro]);

	new engine, lights, alarm, doors, bonnet, boot, objective;
	GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, bonnet, boot, objective);
	SetVehicleParamsEx(vehicleid, 0, lights, alarm, ownable_car[index][oc_lock_status], bonnet, boot, objective);

	if(fuel < 0.0)
		fuel = 0.0;
		
	if(health < 400)
		health = 400;
	
	vehicle[vehicleid][veh_fuel] = fuel;
	SetVehicleHealth(vehicleid, health);
	
	return vehicleid;
}
//=========================================================================================================================================================
 

 

 

 

Отредактировано пользователем Gaiduk

Поделиться сообщением


Ссылка на сообщение
Гость
Эта тема закрыта для публикации ответов.
  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

  • Похожий контент

    • Mister Odin
      От Mister Odin
       
      new
       g_teleport_list[39][E_TELEPORT_LIST] = {  {"Спавн пгт.Батырево", 1802.3612, 2508.4824, 15.8887},  {"Спавн г.Арзамас", -113.5887, 977.7222, 12.0346},     {"Спавн г.Южный", 2744.2770, -2446.7246, 21.8988},     {"Центральный банк", 1852.020385,2040.791381,15.892713},  {"Рублёвка", -837.7783, 888.6161, 12.7232},  {"Казино", 1332.4252, 2358.7014, 17.6641},  {"Битва за контейнеры", 614.5167, 1722.3566, 12.0709},  {"Автосалон низкого класса", 2493.9616, -722.9544, 12.3315},  {"Автосалон среднего класса", 1407.7449, 455.4801, 13.1630},  {"Автосалон высокого класса", -14.0637, 2614.5664, 10.9892},   {"Мотосалон Harley Davidson", 785.720153, 750.465087, 12.000024},  {"Автошкола", 1909.174438,2227.679687,15.708162},  {"Военкомат", 1916.778564,2302.411376,15.574637},  {"Правительство области", -139.140975,593.789611,12.145712},  {"Отдел полиции №1 (ГИБДД)", 1906.805786,-2234.382812,11.257631},  {"Отдел полиции №2 (УМВД)", 2581.309326,-2416.139892,21.960090},  {"Отдел ФСБ", 1823.904663,2095.636718,15.848405},  {"Городская больница г.Арзамас", -285.797210,581.851562,12.120290},   {"СМИ", -317.708038,821.221679,13.051450},  {"Воинская часть", 1703.197265,1678.025878,15.279437},  {"Арзамасская ОПГ", 438.705322,1046.505126,12.002637},  {"Батыревская ОПГ", 1941.203857,2161.006591,15.705187},  {"Лыткаринская ОПГ", -2346.002441,75.257041,21.002962},  {"Шахта", 2381.5727, 1726.4451, -2.1506},  {"Завод", -1062.6697, 2204.1894, 38.0964},  {"Инкосация", 1864.1374, 2011.7136, 15.8546},  {"Транспортная Компания", 2362.1115, 1972.5627, 15.5530},  {"База механиков", 1840.918090,-118.025146,15.695312},  {"Курьерская служба доставки", 2764.509765,-2396.882568,21.890625},  {"Аренда автобуса(Южный)", 2771.041992,-2454.780761,21.845964},  {"Аренда автобуса(Арзамас)", -127.487670,943.652648,12.142824},   {"Аренда автобуса(Батырево)", 1798.986328,2529.591552,15.664262},  {"Гоночная трасса", -1568.7784, 1611.8305, 36.3971},  {"Дом на горе", -789.5397, -456.7479, 741.1422},  {"СТО и тюнинг-ателье", 1856.1375, -122.3266, 15.6888},  {"Аренда транспорта пгт.Батырево", 1763.641723,2255.673339,15.865348},  {"Аренда транспорта г.Арзамас", -36.923530,1360.673583,12.002090},  {"Аренда транспорта г.Южный", 1966.599975,-2603.943603,10.820312},  {"Тайный интерьер в Лыткарино", -2424.5818, 2846.3291, 40.7908} };