shape1
shape2
shape3
shape4
shape7
shape8

Помогите исправить ошибки 017,219,001,029,107


Статус
Закрыто для дальнейших ответов.

Joker777

Новичок
Пользователь
13.10.2015
418
1
6
0
Здравствуйте, появились ошибки в моде когда вставил спидометр, помогите пожалуйста исправить вот сами ошибки:

Код:
C:\Users\Игорь\Desktop\Сервер\gamemodes\cream1.2.pwn(21229) : error 017: undefined symbol "COLOR_BOX"
C:\Users\Игорь\Desktop\Сервер\gamemodes\cream1.2.pwn(62163) : warning 219: local variable "ST" shadows a variable at a preceding level
C:\Users\Игорь\Desktop\Сервер\gamemodes\cream1.2.pwn(62175) : error 017: undefined symbol "IsLocked"
C:\Users\Игорь\Desktop\Сервер\gamemodes\cream1.2.pwn(62175) : error 001: expected token: ";", but found "]"
C:\Users\Игорь\Desktop\Сервер\gamemodes\cream1.2.pwn(62175) : error 029: invalid expression, assumed zero
C:\Users\Игорь\Desktop\Сервер\gamemodes\cream1.2.pwn(62175) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


5 Errors.
Код:
Box = TextDrawCreate(395.0, 354.0, "_");
    LBorder = TextDrawCreate(286.0,354.0,"_");
    RBorder = TextDrawCreate(504.0,354.0,"_");
        BBorder = TextDrawCreate(395.0,416.0,"_");
    TBorder = TextDrawCreate(395.0,354.0,"_");

    Speed = TextDrawCreate(377.000000,370.000000,"SPEED:");
    Health = TextDrawCreate(295.000000,370.000000,"HEAL:");
    Fuelll = TextDrawCreate(295.000000,391.000000,"FUEL:");

    TextDrawLetterSize(Speed,0.259999,1.110000);
    TextDrawLetterSize(Health,0.245999,1.110000);
        TextDrawLetterSize(Fuelll,0.259999,1.010000);

        TextDrawFont(Fuelll,2);
        TextDrawFont(Speed,2);
    TextDrawFont(Health,2);

    TextDrawBackgroundColor(Fuelll,COLOR_BLACK);
    TextDrawBackgroundColor(Speed,COLOR_BLACK);
        TextDrawBackgroundColor(Health,COLOR_BLACK);

    TextDrawColor(Fuelll,COLOR_BLUE);
    TextDrawColor(Speed,COLOR_BLUE);
        TextDrawColor(Health,COLOR_BLUE);

        TextDrawSetOutline(Fuelll,1);
        TextDrawSetOutline(Speed,1);
        TextDrawSetOutline(Health,1);

        TextDrawSetProportional(Fuelll,1);
        TextDrawSetProportional(Speed,1);
        TextDrawSetProportional(Health,1);

        TextDrawSetShadow(Fuelll,1);
        TextDrawSetShadow(Speed,1);
        TextDrawSetShadow(Health,1);

    TextDrawUseBox(Box, 1);
    TextDrawBoxColor(Box, COLOR_BOX);
    TextDrawTextSize(Box, 0.0, 215.0);
    TextDrawLetterSize(Box, 0.0, 6.7);
    TextDrawAlignment(Box, 2);

    TextDrawUseBox(LBorder, 1);
    TextDrawBoxColor(LBorder,COLOR_BORDER);
    TextDrawTextSize(LBorder, 0.0, -2.0);
    TextDrawLetterSize(LBorder, 0.0, 6.7);
    TextDrawAlignment(LBorder, 2);

    TextDrawUseBox(RBorder, 1);
    TextDrawBoxColor(RBorder,COLOR_BORDER);
    TextDrawTextSize(RBorder, 0.0, -2.0);
    TextDrawLetterSize(RBorder, 0.0, 6.7);
    TextDrawAlignment(RBorder, 2);

    TextDrawUseBox(BBorder, 1);
    TextDrawBoxColor(BBorder, COLOR_BORDER);
    TextDrawTextSize(BBorder, 0.0, 215.0);
    TextDrawLetterSize(BBorder, 0.0, -0.2);
    TextDrawAlignment(BBorder, 2);

    TextDrawUseBox(TBorder, 1);
    TextDrawBoxColor(TBorder, COLOR_BORDER);
    TextDrawTextSize(TBorder, 0.0, 215.0);
    TextDrawLetterSize(TBorder, 0.0, -0.2);
    TextDrawAlignment(TBorder, 2);
Код:
stock SpeedVehicle(playerid)
{
    new Float:ST[4];
        if(IsPlayerInAnyVehicle(playerid)) GetVehicleVelocity(GetPlayerVehicleID(playerid),ST[0],ST[1],ST[2]);
        else GetPlayerVelocity(playerid,ST[0],ST[1],ST[2]);
    ST[3] = floatsqroot(floatpower(floatabs(ST[0]), 2.0) + floatpower(floatabs(ST[1]), 2.0) + floatpower(floatabs(ST[2]), 2.0)) * 213.3;
    return floatround(ST[3]);
}
Код:
public UpdateSpeedometr(playerid)
{
    if(GetPlayerState(playerid) == 2)
        {
                new locked[32],str[64],str2[64],str3[64],str4[64]
, str5[64], str6[64], Float:vehhel, vehh[20], vehs[20], vehe[20], veher[20];
            if(IsLocked[GetPlayerVehicleID(playerid)] == true) locked = "~r~LOCK";
                else locked = "~g~UNLOCK";

                GetVehicleHealth(GetPlayerVehicleID(playerid), vehhel);
                if(vehhel <= 500) vehh = "~r~";
                else vehh = "";
                if(Fuell[GetPlayerVehicleID(playerid)] <= 30) vehs = "~r~";
                else vehs = "";
                if(zavodis[playerid] == true) vehe = "~g~ON";
                else vehe = "~r~OFF";
                format(str, sizeof(str),"%d KM/H",SpeedVehicle(playerid) / 2);
                if(vehhel <= 300) format(str3, sizeof(str3),"%s30%",vehh); else format(str3, sizeof(str3),"%s%.0f%",vehh,vehhel / 10);
                format(str2, sizeof(str2), "%s", locked);
            format(str4, sizeof(str4), "%s%.0f", vehs,Fuell[GetPlayerVehicleID(playerid)]);
                format(str5, sizeof(str5), "%s", vehe);
                format(str6, sizeof(str6), "%s", veher);

                TextDrawSetString(FuelShow[playerid],str4);
                TextDrawSetString(HealthShow[playerid],str3);
                TextDrawSetString(SpeedShow[playerid],str);
                TextDrawSetString(StatusShow[playerid],str2);
                TextDrawSetString(Speed2Show[playerid],str6);
                TextDrawSetString(EngineShow[playerid],str5);
                UnSurfCar(GetPlayerVehicleID(playerid));
        }
        return 0;
}
 

Basis

chto tut doljno bit`!?
Пользователь
24.06.2014
824
1
271
0
25
1. #define COLOR_BOX 0x00000070
2. Уже где-то используется,просто замени в функции SpeedVehicle везде ST на SV или что-то подобное
3. Неизвестное значение,скорее всего функция проверки открыта ли машина отсутствует,смотри где вырезал,а лучше под себя переделай

 

Joker777

Новичок
Пользователь
13.10.2015
418
1
6
0
@Basis, вот остались только эти ошибки, да это функция вроде бы открытия машины, но я незнаю как переделать

Код:
C:\Users\Игорь\Desktop\Сервер\gamemodes\cream1.2.pwn(62176) : error 017: undefined symbol "IsLocked"
C:\Users\Игорь\Desktop\Сервер\gamemodes\cream1.2.pwn(62176) : error 001: expected token: ";", but found "]"
C:\Users\Игорь\Desktop\Сервер\gamemodes\cream1.2.pwn(62176) : error 029: invalid expression, assumed zero
C:\Users\Игорь\Desktop\Сервер\gamemodes\cream1.2.pwn(62176) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.
 
 
Последнее редактирование модератором:

Basis

chto tut doljno bit`!?
Пользователь
24.06.2014
824
1
271
0
25
тут нужно смотреть что отвечает за двери машины,попробуй

if(CarInfo[GetPlayerVehicleID(playerid)][cLock] == 1) locked = "~r~LOCK";
                else locked = "~g~UNLOCK";
а можно вообще не заводить отдельных значений и заменить locked на

Код:
((CarInfo[GetPlayerVehicleID(playerid)][cLock] == 0) ? ("~g~UNLOCK"):("~r~LOCK"))
 

Joker777

Новичок
Пользователь
13.10.2015
418
1
6
0
@Basis,  поставил 1-ое, вот выдало ошибки, пробовал ставить 2-ое, там уже 5 ошибок вылазит

C:\Users\Игорь\Desktop\Сервер\gamemodes\cream1.2.pwn(62181) : error 017: undefined symbol "Fuell"
C:\Users\Игорь\Desktop\Сервер\gamemodes\cream1.2.pwn(62181) : error 001: expected token: ";", but found "]"
C:\Users\Игорь\Desktop\Сервер\gamemodes\cream1.2.pwn(62181) : error 029: invalid expression, assumed zero
C:\Users\Игорь\Desktop\Сервер\gamemodes\cream1.2.pwn(62181) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.


Вот команду /lock если она здесь чем-то нужна

Код:
if(strcmp(cmd, "/lock", true) == 0)
	{
		new newcar = -1;
	    if(IsPlayerConnected(playerid))
	    {
	        GetPlayerName(playerid,sendername,sizeof(sendername));
			for(new cars = 1; cars < CAR_AMOUNT; cars ++)
			{
			    if(IsAOwnableVehicle(cars))
			    {
				    if(!strcmp(CarInfo[cars-SIMPLECARS-1][cOwner],sendername,true))
				    {
				        new Float:lcx,Float:lcy,Float:lcz;
				        GetVehiclePos(cars, lcx,lcy,lcz);
				        if(IsPlayerInRangeOfPoint(playerid,4,lcx,lcy,lcz))
				        {
				            newcar = cars-SIMPLECARS-1;
				        }
				    }
				}
			}
			if(newcar == -1)
			{
			    SendClientMessage(playerid,COLOR_GREY," Ты должен быть возле своего автомобиля!");
			    return 1;
			}
			if(CarInfo[newcar][cLock] == 1)
			{
                if(PlayerInfo[playerid][pMask] == 1)
                {
			    format(string, sizeof(string), "* Незнакомец открывает центральный замок.");
		        }
			    else
		        {
			    format(string, sizeof(string), "* %s открывает центральный замок.", sendername);
		        }
		        ProxDetector(15.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
				format(string, sizeof(string), "~w~ABЏO–OЂ…‡’ ~g~OЏKP‘Џ");
				GameTextForPlayer(playerid, string, 5000, 5);
				UnLockCar(newcar+1+SIMPLECARS);
				CarInfo[newcar][cLock] = 0;
				SaveCars();
				return 1;
			}
			else if(CarInfo[newcar][cLock] == 0)
			{
				if(PlayerInfo[playerid][pMask] == 1)
                {
			    format(string, sizeof(string), "* Незнакомец закрывает центральный замок..");
		        }
			    else
		        {
			    format(string, sizeof(string), "* %s закрывает центральный замок.", sendername);
		        }
		        ProxDetector(15.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
				format(string, sizeof(string), "~w~ABЏO–OЂ…‡’ ~r~€AKP‘Џ");
				GameTextForPlayer(playerid, string, 5000, 5);
				LockCar(newcar+1+SIMPLECARS);
				CarInfo[newcar][cLock] = 1;
				SaveCars();
				return 1;
			}
		}
		return 1;
	}
 

Basis

chto tut doljno bit`!?
Пользователь
24.06.2014
824
1
271
0
25
1 вариант рабочий,пора бы уже понять,что просто вставить код в мод это ересь,нужно много чего менять,тут к примеру нужно смотреть какая переменная отвечает за бензин и заменять

 

Joker777

Новичок
Пользователь
13.10.2015
418
1
6
0
@Basis, вроде эта: new NoFuel[MAX_PLAYERS]; ? 

Дополнение к сообщению:
@Basis, изменил на NoFuel

C:\Users\Игорь\Desktop\Сервер\gamemodes\cream1.2.pwn(62183) : error 017: undefined symbol "zavodis"
C:\Users\Игорь\Desktop\Сервер\gamemodes\cream1.2.pwn(62183) : warning 215: expression has no effect
C:\Users\Игорь\Desktop\Сервер\gamemodes\cream1.2.pwn(62183) : error 001: expected token: ";", but found "]"
C:\Users\Игорь\Desktop\Сервер\gamemodes\cream1.2.pwn(62183) : error 029: invalid expression, assumed zero
C:\Users\Игорь\Desktop\Сервер\gamemodes\cream1.2.pwn(62183) : fatal error 107: too many error messages on one line

Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


4 Errors.


Не подскажите что может отвечать за заводку? (Примерно)

Дополнение к сообщению:
@Basis, заменил всё что смог, не подскажите что с этим делать?

Код:
C:\Users\Игорь\Desktop\Сервер\gamemodes\cream1.2.pwn(62183) : warning 213: tag mismatch
C:\Users\Игорь\Desktop\Сервер\gamemodes\cream1.2.pwn(62198) : error 017: undefined symbol "UnSurfCar"
Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase


1 Error. 
Код:
public UpdateSpeedometr(playerid)
{
    if(GetPlayerState(playerid) == 2)
        {
                new locked[32],str[64],str2[64],str3[64],str4[64], str5[64], str6[64], Float:vehhel, vehh[20], vehs[20], vehe[20], veher[20];
            	if(CarInfo[GetPlayerVehicleID(playerid)][cLock] == 1) locked = "~r~LOCK";
                else locked = "~g~UNLOCK";

                GetVehicleHealth(GetPlayerVehicleID(playerid), vehhel);
                if(vehhel <= 500) vehh = "~r~";
                else vehh = "";
                if(NoFuel[GetPlayerVehicleID(playerid)] <= 30) vehs = "~r~";
                else vehs = "";
                if(engine_start[playerid] == true) vehe = "~g~ON";
                else vehe = "~r~OFF";
                format(str, sizeof(str),"%d KM/H",SpeedVehicle(playerid) / 2);
                if(vehhel <= 300) format(str3, sizeof(str3),"%s30%",vehh); else format(str3, sizeof(str3),"%s%.0f%",vehh,vehhel / 10);
                format(str2, sizeof(str2), "%s", locked);
            	format(str4, sizeof(str4), "%s%.0f", vehs,NoFuel[GetPlayerVehicleID(playerid)]);
                format(str5, sizeof(str5), "%s", vehe);
                format(str6, sizeof(str6), "%s", veher);

                TextDrawSetString(FuelShow[playerid],str4);
                TextDrawSetString(HealthShow[playerid],str3);
                TextDrawSetString(SpeedShow[playerid],str);
                TextDrawSetString(StatusShow[playerid],str2);
                TextDrawSetString(Speed2Show[playerid],str6);
                TextDrawSetString(EngineShow[playerid],str5);
                UnSurfCar(GetPlayerVehicleID(playerid));
        }
        return 0;
} 
 

Basis

chto tut doljno bit`!?
Пользователь
24.06.2014
824
1
271
0
25
1.Вряд ли переменная NoFuel отвечает за бензин в машине,так как относится к игрокам
2.За двигатель нужно смотреть в коде заводки машины
3.покажи строку 62183
4.Я даже не знаю за что может отвечать эта функция,просто удали 62198 строку

 

Joker777

Новичок
Пользователь
13.10.2015
418
1
6
0
@Basis, 1. Может вы найдете в этом коде что отвечает за бензин?

if(strcmp(cmd, "/fill", true) == 0)
{
if(IsPlayerConnected(playerid))
{
if(IsAtGasStation(playerid))
{
GameTextForPlayer(playerid,"~r~~n~~n~~n~~n~~n~~n~~n~~n~~n~Авто заправляется,пожалуйсто подождите",2000,3);
TogglePlayerControllable(playerid, 0);
SetTimer("Fillup",RefuelWait,0);
Refueling[playerid] = 1;
}
else
{
SendClientMessage(playerid,COLOR_GREY,"Вы не на заправке!");
}
}
return 1;
}

2. Может в этом коде?

if(strcmp(CarInfo[carid-SIMPLECARS-1][cOwner],"The State",true))
{
if(CarInfo[carid-SIMPLECARS-1][cKey] == 0)
{
SendClientMessage(playerid,COLOR_GREY," Сначала нужно вставить ключи!");
return 1;
}
if(!strcmp(CarInfo[carid-SIMPLECARS-1][cOwner],sendername,true))
{
if(PlayerInfo[playerid][pMask] == 1)
{
format(string, sizeof(string), "* Незнакомец заводит двигатель.");
}
else
{
format(string, sizeof(string), "* %s заводит двигатель.", sendername);
}
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
GetVehicleParamsEx(vid, engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(vid, true, lights, alarm, doors, bonnet, boot, objective);
VehInfo[vid][vEngine] = 1;
return 1;
}
if(PlayerInfo[playerid][pMask] == 1)
{
format(string, sizeof(string), "* Незнакомец заводит двигатель.");
}
else
{
format(string, sizeof(string), "* %s заводит двигатель.", sendername);
}
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
GetVehicleParamsEx(vid, engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(vid, true, lights, alarm, doors, bonnet, boot, objective);
VehInfo[vid][vEngine] = 1;
}
}
else
{
if(PlayerInfo[playerid][pMask] == 1)
{
format(string, sizeof(string), "* Незнакомец заводит двигатель.");
}
else
{
format(string, sizeof(string), "* %s заводит двигатель.", sendername);
}
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
GetVehicleParamsEx(vid, engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(vid, true, lights, alarm, doors, bonnet, boot, objective);
VehInfo[vid][vEngine] = 1;
}
}
else if(VehInfo[vid][vEngine] == 1)
{
if(PlayerInfo[playerid][pMask] == 1)
{
format(string, sizeof(string), "* Незнакомец глушит двигатель.");
}
else
{
format(string, sizeof(string), "* %s глушит двигатель.", sendername);
}
ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
GetVehicleParamsEx(vid, engine, lights, alarm, doors, bonnet, boot, objective);
SetVehicleParamsEx(vid, false, lights, alarm, doors, bonnet, boot, objective);
VehInfo[vid][vEngine] = 0;
}

3. строка 62183

if(engine_start[playerid] == true) vehe = "~g~ON";


Дополнение к сообщению:
4.Убрал строку и сразу осталась 1 ошибка

Код:
C:\Users\Игорь\Desktop\Сервер\gamemodes\cream1.2.pwn(62183) : warning 213: tag mismatch
Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase

Header size:          11052 bytes
Code size:          3522784 bytes
Data size:          7509360 bytes
Stack/heap size:      16384 bytes; estimated max. usage: unknown, due to recursion
Total requirements:11059580 bytes

1 Warning.
 
Последнее редактирование модератором:

Basis

chto tut doljno bit`!?
Пользователь
24.06.2014
824
1
271
0
25
1. покажи таймер fillup
2.

if(VehInfo[GetPlayerVehicleID(playerid)][vEngine] == 1) vehe = "~g~ON";                else vehe = "~r~OFF";
3.Я выше код скинул как должно быть
4.смотри 1 пункт

 

Joker777

Новичок
Пользователь
13.10.2015
418
1
6
0
@Basis,

PUBLIC: Fillup()
{
for(new i=0; i<MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
new VID;
new FillUp;
new price = 50;
new string[256];
VID = GetPlayerVehicleID(i);
FillUp = GasMax - Gas[VID];
if(FillUp > price) price = FillUp;
if(Refueling == 1)
{
if(GetPlayerMoney(i) >= price)
{
Gas[VID] += FillUp;
format(string,sizeof(string),"* Машина заправлена! Вы заплатили $%d.",price);
SendClientMessage(i,COLOR_LIGHTBLUE,string);
ServerGivePlayerMoney(i, - price);
SBizzInfo[3][sbTill] += price;
ExtortionSBiz(3, price);
Refueling = 0;
TogglePlayerControllable(i, true);
}
else
{
format(string,sizeof(string),"* У вас нет денег на запраку автомобиля (нужно $%d).",price);
SendClientMessage(i,COLOR_LIGHTBLUE,string);
TogglePlayerControllable(i, true);
}
}
}
}
return 1;

Больше с Fillup ничего нету.

 

Basis

chto tut doljno bit`!?
Пользователь
24.06.2014
824
1
271
0
25
а больше и не надо,найди

format(str4, sizeof(str4), "%s%.0f", vehs,Fuell[GetPlayerVehicleID(playerid)]);
и замени на

Код:
 format(str4, sizeof(str4), "%s%d", vehs,Gas[GetPlayerVehicleID(playerid)]);
 

Joker777

Новичок
Пользователь
13.10.2015
418
1
6
0
@Basis, 1. Поставил, но почему-то топливо не расходуется, а стоит на 100

public UpdateSpeedometr(playerid)
{
if(GetPlayerState(playerid) == 2)
{
new locked[32],str[64],str2[64],str3[64],str4[64], str5[64], str6[64], Float:vehhel, vehh[20], vehs[20], vehe[20], veher[20];
if(CarInfo[GetPlayerVehicleID(playerid)][cLock] == 1) locked = "~r~LOCK";
else locked = "~g~UNLOCK";

GetVehicleHealth(GetPlayerVehicleID(playerid), vehhel);
if(vehhel <= 500) vehh = "~r~";
else vehh = "";
if(Gas[GetPlayerVehicleID(playerid)] <= 30) vehs = "~r~";
else vehs = "";
if(VehInfo[GetPlayerVehicleID(playerid)][vEngine] == 1) vehe = "~g~ON"; else vehe = "~r~OFF";
format(str, sizeof(str),"%d KM/H",SpeedVehicle(playerid) / 2);
if(vehhel <= 300) format(str3, sizeof(str3),"%s30%",vehh); else format(str3, sizeof(str3),"%s%.0f%",vehh,vehhel / 10);
format(str2, sizeof(str2), "%s", locked);
format(str4, sizeof(str4), "%s%d", vehs,Gas[GetPlayerVehicleID(playerid)]);
format(str5, sizeof(str5), "%s", vehe);
format(str6, sizeof(str6), "%s", veher);

TextDrawSetString(FuelShow[playerid],str4);
TextDrawSetString(HealthShow[playerid],str3);
TextDrawSetString(SpeedShow[playerid],str);
TextDrawSetString(StatusShow[playerid],str2);
TextDrawSetString(Speed2Show[playerid],str6);
TextDrawSetString(EngineShow[playerid],str5);
}
return 0;

2. Когда выхожу с машины спидометр не убирается, а просто остается

 

Basis

chto tut doljno bit`!?
Пользователь
24.06.2014
824
1
271
0
25
1.Ну это может быть и-за того что бензин вообще не уменьшается у машины?
2.При выходе из авто нужно убирать текстдравы,используй OnPlayerStateChange

 
Последнее редактирование модератором:

Joker777

Новичок
Пользователь
13.10.2015
418
1
6
0
@Basis, 1.Перед этим спидометром стоял другой спидометр и было всё нормально с бензином.

2.Вот код, который я добавлял в OnPlayerStateChange

Код:
if(newstate == 1)//скрываем спидак если выходит из машины
        {
                        KillTimer(STimer[playerid]);
                    TextDrawHideForPlayer(playerid,Box);
                    TextDrawHideForPlayer(playerid,LBorder);
                    TextDrawHideForPlayer(playerid,RBorder);
                    TextDrawHideForPlayer(playerid,BBorder);
                    TextDrawHideForPlayer(playerid,TBorder);
                        TextDrawHideForPlayer(playerid,Speed);
                        TextDrawHideForPlayer(playerid,SpeedShow[playerid]);
                        TextDrawHideForPlayer(playerid,Speed2Show[playerid]);
                        TextDrawHideForPlayer(playerid,Health);
                        TextDrawHideForPlayer(playerid,HealthShow[playerid]);
                        TextDrawHideForPlayer(playerid,Fuelll);
                        TextDrawHideForPlayer(playerid,FuelShow[playerid]);
                        TextDrawHideForPlayer(playerid,StatusShow[playerid]);
                        TextDrawHideForPlayer(playerid,EngineShow[playerid]);
        }
        if(newstate == PLAYER_STATE_DRIVER)//показываем спидак если залазит в кар
        {
                STimer[playerid] = SetTimerEx("UpdateSpeedometr", ONE_HUNDRED_MSECOND, 1, "d", playerid);
                TextDrawShowForPlayer(playerid,Box);
                        TextDrawShowForPlayer(playerid,LBorder);
                        TextDrawShowForPlayer(playerid,RBorder);
                        TextDrawShowForPlayer(playerid,BBorder);
                        TextDrawShowForPlayer(playerid,TBorder);
                        TextDrawShowForPlayer(playerid,Speed);
                        TextDrawShowForPlayer(playerid,SpeedShow[playerid]);
                        TextDrawShowForPlayer(playerid,Speed2Show[playerid]);
                        TextDrawShowForPlayer(playerid,Health);
                        TextDrawShowForPlayer(playerid,HealthShow[playerid]);
                        TextDrawShowForPlayer(playerid,Fuelll);
                        TextDrawShowForPlayer(playerid,FuelShow[playerid]);
                        TextDrawShowForPlayer(playerid,StatusShow[playerid]);
                        TextDrawShowForPlayer(playerid,EngineShow[playerid]);
        } 
 

Basis

chto tut doljno bit`!?
Пользователь
24.06.2014
824
1
271
0
25
попробуй это if(newstate == 1) заменить на вот это

Код:
if(oldstate == PLAYER_STATE_DRIVER)
 

Joker777

Новичок
Пользователь
13.10.2015
418
1
6
0
@Basis, всё равно спидометр не исчезает, и с бензином что делать?

Помогите пожалуйста, не исчезает спидометр когда выходишь из машины и бензин не исчерпывается, а стоит на 100, вот код

Код:
if(oldstate == PLAYER_STATE_DRIVER)//скрываем спидак если выходит из машины        {                        KillTimer(STimer[playerid]);                    TextDrawHideForPlayer(playerid,Box);                    TextDrawHideForPlayer(playerid,LBorder);                    TextDrawHideForPlayer(playerid,RBorder);                    TextDrawHideForPlayer(playerid,BBorder);                    TextDrawHideForPlayer(playerid,TBorder);                        TextDrawHideForPlayer(playerid,Speed);                        TextDrawHideForPlayer(playerid,SpeedShow[playerid]);                        TextDrawHideForPlayer(playerid,Speed2Show[playerid]);                        TextDrawHideForPlayer(playerid,Health);                        TextDrawHideForPlayer(playerid,HealthShow[playerid]);                        TextDrawHideForPlayer(playerid,Fuelll);                        TextDrawHideForPlayer(playerid,FuelShow[playerid]);                        TextDrawHideForPlayer(playerid,StatusShow[playerid]);                        TextDrawHideForPlayer(playerid,EngineShow[playerid]);        }        if(newstate == PLAYER_STATE_DRIVER)//показываем спидак если залазит в кар        {                STimer[playerid] = SetTimerEx("UpdateSpeedometr", ONE_HUNDRED_MSECOND, 1, "d", playerid);                TextDrawShowForPlayer(playerid,Box);                        TextDrawShowForPlayer(playerid,LBorder);                        TextDrawShowForPlayer(playerid,RBorder);                        TextDrawShowForPlayer(playerid,BBorder);                        TextDrawShowForPlayer(playerid,TBorder);                        TextDrawShowForPlayer(playerid,Speed);                        TextDrawShowForPlayer(playerid,SpeedShow[playerid]);                        TextDrawShowForPlayer(playerid,Speed2Show[playerid]);                        TextDrawShowForPlayer(playerid,Health);                        TextDrawShowForPlayer(playerid,HealthShow[playerid]);                        TextDrawShowForPlayer(playerid,Fuelll);                        TextDrawShowForPlayer(playerid,FuelShow[playerid]);                        TextDrawShowForPlayer(playerid,StatusShow[playerid]);                        TextDrawShowForPlayer(playerid,EngineShow[playerid]);        }
Код:
public UpdateSpeedometr(playerid){    if(GetPlayerState(playerid) == 2)        {                new locked[32],str[64],str2[64],str3[64],str4[64], str5[64], str6[64], Float:vehhel, vehh[20], vehs[20], vehe[20], veher[20];            	if(CarInfo[GetPlayerVehicleID(playerid)][cLock] == 1) locked = "~r~LOCK";                else locked = "~g~UNLOCK";                GetVehicleHealth(GetPlayerVehicleID(playerid), vehhel);                if(vehhel <= 500) vehh = "~r~";                else vehh = "";                if(Gas[GetPlayerVehicleID(playerid)] <= 30) vehs = "~r~";                else vehs = "";                if(VehInfo[GetPlayerVehicleID(playerid)][vEngine] == 1) vehe = "~g~ON";                else vehe = "~r~OFF";                format(str, sizeof(str),"%d KM/H",SpeedVehicle(playerid) / 2);                if(vehhel <= 300) format(str3, sizeof(str3),"%s30%",vehh); else format(str3, sizeof(str3),"%s%.0f%",vehh,vehhel / 10);                format(str2, sizeof(str2), "%s", locked);            	format(str4, sizeof(str4), "%s%d", vehs,Gas[GetPlayerVehicleID(playerid)]);                format(str5, sizeof(str5), "%s", vehe);                format(str6, sizeof(str6), "%s", veher);                TextDrawSetString(FuelShow[playerid],str4);                TextDrawSetString(HealthShow[playerid],str3);                TextDrawSetString(SpeedShow[playerid],str);                TextDrawSetString(StatusShow[playerid],str2);                TextDrawSetString(Speed2Show[playerid],str6);                TextDrawSetString(EngineShow[playerid],str5);        }        return 0;}
 
Последнее редактирование модератором:

Basis

chto tut doljno bit`!?
Пользователь
24.06.2014
824
1
271
0
25
покажи всё что связано с Gas

 

Joker777

Новичок
Пользователь
13.10.2015
418
1
6
0
@Basis,

new gGas[MAX_PLAYERS]; 
Код:
new checkgastimer; 
Код:
#define GasMax 100
new Gas[CAR_AMOUNT]; 
Код:
IsAtGasStation(playerid)
{
    if(IsPlayerConnected(playerid))
	{
		if(PlayerToPoint(10,playerid,2244.9951,-1785.2120,21.3937) || PlayerToPoint(10,playerid,1741.5005,2259.4529,15.4451) || PlayerToPoint(10,playerid,2612.6462,1768.5970,2.2112)
		|| PlayerToPoint(10,playerid,399.5085,1666.6764,11.9020) || PlayerToPoint(10,playerid,-2284.0864,257.3891,23.9598) || PlayerToPoint(10,playerid,1046.6060,-1912.6202,36.2375)
	    || PlayerToPoint(10,playerid,-2282.2495,257.3560,24.0675))
		{
		    return 1;
		}
	}
	return 0;
} 
Код:
gGas[playerid] = 1; 
Код:
if(gGas[playerid] == 1)
	{
	    GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~Left car", 500, 3);
	} 
Код:
PUBLIC: Fillup()
{
	for(new i=0; i<MAX_PLAYERS; i++)
   	{
	   	if(IsPlayerConnected(i))
	   	{
		    new VID;
		    new FillUp;
		    new price = 50;
		    new string[256];
		    VID = GetPlayerVehicleID(i);
		    FillUp = GasMax - Gas[VID];
			if(FillUp > price) price = FillUp;
			if(Refueling[i] == 1)
		    {
				if(GetPlayerMoney(i) >= price)
				{
					Gas[VID] += FillUp;
				    format(string,sizeof(string),"* Машина заправлена! Вы заплатили $%d.",price);
				    SendClientMessage(i,COLOR_LIGHTBLUE,string);
					ServerGivePlayerMoney(i, - price);
					SBizzInfo[3][sbTill] += price;
					ExtortionSBiz(3, price);
					Refueling[i] = 0;
					TogglePlayerControllable(i, true);
				}
			   	else
			   	{
			   	    format(string,sizeof(string),"* У вас нет денег на запраку автомобиля (нужно $%d).",price);
				    SendClientMessage(i,COLOR_LIGHTBLUE,string);
				    TogglePlayerControllable(i, true);
			   	}
		 	}
		}
  	}
	return 1;
} 
Код:
PUBLIC: StoppedVehicle()
{
	new Float:x,Float:y,Float:z;
	new Float:distance,value;
	for(new i=0; i<MAX_PLAYERS; i++)
	{
		if(IsPlayerConnected(i))
		{
			if(IsPlayerInAnyVehicle(i))
			{
				new VID;
				VID = GetPlayerVehicleID(i);
				GetPlayerPos(i, x, y, z);
				distance = floatsqroot(floatpower(floatabs(floatsub(x,SavePlayerPos[i][LastX])),2)+floatpower(floatabs(floatsub(y,SavePlayerPos[i][LastY])),2)+floatpower(floatabs(floatsub(z,SavePlayerPos[i][LastZ])),2));
				value = floatround(distance * 3600);
				if(UpdateSeconds > 1)
				{
					value = floatround(value / UpdateSeconds);
				}
				if(SpeedMode)
				{
	            }
				if(value == 0)
				{
					Gas[VID]++;
				}
				SavePlayerPos[i][LastX] = x;
				SavePlayerPos[i][LastY] = y;
				SavePlayerPos[i][LastZ] = z;
			}
		}
	}
	return 1;
} 
Код:
KillTimer(checkgastimer); 
Код:
for(new c=0;c<CAR_AMOUNT;c++)
	{
		Gas[c] = GasMax;
		Engine[c] = 0;
	} 
Код:
checkgastimer = SetTimer("CheckGas", RunOutTime, 1); 
Код:
if(strcmp(cmd, "/fuel", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
	    {
			if (gGas[playerid] == 0)
			{
				gGas[playerid] = 1;
				GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~g~Fuel Info on", 5000, 5);
				PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
			}
			else if (gGas[playerid] == 1)
			{
				gGas[playerid] = 0;
				GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~r~Fuel Info off", 5000, 5);
				PlayerPlaySound(playerid, 1145, 0.0, 0.0, 0.0);
			}
		}
		return 1;
	} 
Код:
if(strcmp(cmd, "/fuelcars", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
	    {
            if(AdminDuty[playerid]==0)
			{
				SendClientMessage(playerid, COLOR_WHITE, "Пожалуйста, выйдите на дежурство.");
				return 1;
			}
	        if(PlayerInfo[playerid][pAdmin] >= 5)
	        {
	            for(new c=0;c<CAR_AMOUNT;c++)
				{
					Gas[c] = GasMax;
				}
                SendClientMessageToAll(COLOR_GREY,"Все машины заправлены {B7FF00}Администратором.");
	        }
	        else
	        {
	            SendClientMessage(playerid, COLOR_GREY, "У вас недостаточно прав, чтобы ипользовать данную команду.");
	            return 1;
	        }
	    }
	    return 1;
	} 
Код:
else if(strcmp(x_job,"fuel",true) == 0)
			{
			    if(IsAtGasStation(playerid))
				{
				    new price = 2 * SBizzInfo[3][sbEntranceCost];
				    format(string, sizeof(string), "* Вы залили в канистру 20 ед. топлива. Цена: %d руб.",price);
				    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
				    PlayerInfo[playerid][pFuel] = 20;
					ServerGivePlayerMoney(playerid, - price);
					return 1;
				}
				else
				{
					SendClientMessage(playerid,COLOR_GREY,"Вы не на заправке!");
					return 1;
				}
			} 
Код:
if(strcmp(cmd, "/fill", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
	    {
			if(IsAtGasStation(playerid))
			{
			    GameTextForPlayer(playerid,"~r~~n~~n~~n~~n~~n~~n~~n~~n~~n~Авто заправляется,пожалуйсто подождите",2000,3);
			    TogglePlayerControllable(playerid, 0);
				SetTimer("Fillup",RefuelWait,0);
				Refueling[playerid] = 1;
			}
			else
			{
				SendClientMessage(playerid,COLOR_GREY,"Вы не на заправке!");
			}
		}
    	return 1;
	} 
Код:
if(strcmp(cmd, "/fillcar", true) == 0)
	{
	    if(IsPlayerConnected(playerid))
	    {
		    if(PlayerInfo[playerid][pFuel] > 0)
		    {
		        if(Gas[gLastCar[playerid]] < 81)
		        {
			        SendClientMessage(playerid, COLOR_LIGHTBLUE, "Вы заправили ваш бак на 20% из канистры!");
			        Gas[gLastCar[playerid]] += 20;
			        PlayerInfo[playerid][pFuel] = 0;
				}
				else
				{
				    SendClientMessage(playerid, COLOR_GREY, "У вас в баке еще достаточно топлива!");
				}
		    }
		    else
		    {
		        SendClientMessage(playerid, COLOR_GREY, "Ваша канистра пуста!");
		    }
		}
		return 1;
	} 
Код:
		else if(strcmp(x_job,"refill",true) == 0)
			{
			    if(RefillOffer[playerid] < 999)
			    {
			        if(IsPlayerConnected(RefillOffer[playerid]))
			        {
			            if(GetPlayerMoney(playerid) > RefillPrice[playerid])
			            {
			                GetPlayerName(RefillOffer[playerid], giveplayer, sizeof(giveplayer));
							GetPlayerName(playerid, sendername, sizeof(sendername));
			                new car = gLastCar[playerid];
			                new fuel;
			                PlayerInfo[RefillOffer[playerid]][pMechSkill] ++;
							new level = PlayerInfo[RefillOffer[playerid]][pMechSkill];
							if(level >= 0 && level <= 50)
							{ fuel = 15; }
							else if(level >= 51 && level <= 100)
							{ fuel = 40; }
							else if(level >= 101 && level <= 200)
							{ fuel = 60; }
							else if(level >= 201 && level <= 400)
							{ fuel = 80; }
							else if(level >= 401)
							{ fuel = 100; }
			                format(string, sizeof(string), "* %s заправляет вашу машину на %d% за %d руб.",giveplayer,fuel,RefillPrice[playerid]);
							SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
							format(string, sizeof(string), "* Вы заправили машину %s на %d%. Стоимость услуги: %d руб.",sendername,fuel,RefillPrice[playerid]);
							SendClientMessage(RefillOffer[playerid], COLOR_LIGHTBLUE, string);
       						ServerGivePlayerMoney(playerid, -RefillPrice[playerid]);
							ServerGivePlayerMoney(RefillOffer[playerid], RefillPrice[playerid]);
							if(Gas[car] < 110) { Gas[car] += fuel; }
					        RefillOffer[playerid] = 999;
							RefillPrice[playerid] = 0;
							return 1;
			            }
						else
						{
						    SendClientMessage(playerid, COLOR_GREY, " Никто не предлагает вам заправить машину.");
						    return 1;
						}
			        }
			        return 1;
			    }
				else
				{
				    SendClientMessage(playerid, COLOR_GREY, " Никто не предлагает вам заправить машину!");
				    return 1;
				}
			} 
Всё что нашел

 
Статус
Закрыто для дальнейших ответов.