• 0
Дарвин

Помощь c командой

Question

Здравствуйте Ув.Скриптеры, у меня возникла проблема с командой /alock. Написал я её Вроде Бы правильно но она не работает по неизвестной мне причине. Поэтому я обратился к более опытным скриптерам. Заранее Спасибо!

CMD:alock(playerid, params[])
{
	new string[256];
	new playername[MAX_PLAYER_NAME];
	new Float:oldposx, Float:oldposy, Float:oldposz;
	GetPlayerName(playerid, playername, sizeof(playername));
	for(new v = 1; v <= MAX_PLAYERS; v++)
	{
		GetVehiclePos(v, oldposx, oldposy, oldposz);
		if(IsPlayerInRangeOfPoint(playerid, 5.0, oldposx, oldposy, oldposz))
		{
			if(PlayerInfo[v][cLock] == 0)
			{
				format(string, sizeof(string), "Àäìèíèñòðàòîð %s âñòàâëÿåò êëþ÷ è îòêðûâàåò öåíòðàëüíûé çàìîê", playername);
				ProxDetector(15.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
				format(string, sizeof(string), "~g~T/C OTKP‘TO"); GameTextForPlayer(playerid, string, 5000, 5);
				PlayerInfo[v][cLock] = 0;
				if(IsPlayerInAnyVehicle(playerid)) return true;
				return true;
			}
			else if(PlayerInfo[v][cLock] == 1)
			{
				format(string, sizeof(string), "Àäìèíèñòðàòîð %s âñòàâëÿåò êëþ÷ è çàêðûâàåò öåíòðàëüíûé çàìîê", playername);
				ProxDetector(15.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
				format(string, sizeof(string), "~r~T/C ˆAKP‘TO"); GameTextForPlayer(playerid, string, 5000, 5);
				PlayerInfo[v][cLock] = 1;
				if(IsPlayerInAnyVehicle(playerid)) return true;
				return true;
			}
		}
	}
	return true;
}

 

Share this post


Link to post

8 answers to this question

  • 0

Я конечно с иероглифами толком смысла команды не понял, но почему у тебя идёт проверка: если лок равен 0, то ему всё равно будет присвоено 0. Вот так нужно:

CMD:alock(playerid, params[])
{
	new string[256];
	new playername[MAX_PLAYER_NAME];
	new Float:oldposx, Float:oldposy, Float:oldposz;
	GetPlayerName(playerid, playername, sizeof(playername));
	for(new v = 1; v <= MAX_PLAYERS; v++)
	{
		GetVehiclePos(v, oldposx, oldposy, oldposz);
		if(IsPlayerInRangeOfPoint(playerid, 5.0, oldposx, oldposy, oldposz))
		{
			if(PlayerInfo[v][cLock] == 0)
			{
				format(string, sizeof(string), "Àäìèíèñòðàòîð %s âñòàâëÿåò êëþ÷ è îòêðûâàåò öåíòðàëüíûé çàìîê", playername);
				ProxDetector(15.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
				format(string, sizeof(string), "~g~T/C OTKP‘TO"); GameTextForPlayer(playerid, string, 5000, 5);
				PlayerInfo[v][cLock] = 1;
				if(IsPlayerInAnyVehicle(playerid)) return true;
				return true;
			}
			else
			{
				format(string, sizeof(string), "Àäìèíèñòðàòîð %s âñòàâëÿåò êëþ÷ è çàêðûâàåò öåíòðàëüíûé çàìîê", playername);
				ProxDetector(15.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
				format(string, sizeof(string), "~r~T/C ˆAKP‘TO"); GameTextForPlayer(playerid, string, 5000, 5);
				PlayerInfo[v][cLock] = 0;
				if(IsPlayerInAnyVehicle(playerid)) return true;
				return true;
			}
		}
	}
	return true;
}

 

Share this post


Link to post
  • 0

@SCRIPTMAN Нет, всё равно не работает

Share this post


Link to post
  • 0

@Дарвин, а покажи какую-нибудь другую команду, связанную с транспортом (например, код продажи, включение двигателя).

Share this post


Link to post
  • 0

@Talex  Вот как вы и просили. Команда на починку транспорта

CMD:fixveh(playerid, params[])
{
	if(PlayerLogged[playerid] == 0) return true;
	if(dostup[playerid] == 0) return true;
	if(PlayerInfo[playerid][pAdminn] < 4 || AdminLogged[playerid] == false) return true;
	if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_GREY, PlayerIsNotInCar);
	RepairVehicle(GetPlayerVehicleID(playerid));
	SendClientMessage(playerid, COLOR_WHITE, "[A] Ò/Ñ Óñïåøíî Îòðåìîíòèðîâàíà!");
	return true;
}

 

Share this post


Link to post
  • 0

@Дарвин, ой, не, братуха, такое не подходит. Нужно что-нибудь, где есть сохранение каких-то данных о транспорте в переменную игрока.

Share this post


Link to post
  • 0

@Talex Я решил проблему самостоятельно. Но всё равно спасибо

 

Share this post


Link to post
  • 0

@Дарвин, ну хоть бы изложили суть решения.

Share this post


Link to post
  • 0

@odosenok Решение простое, добавил новую команду вместе со Stock и.т.д

Share this post


Link to post
Guest
This topic is now closed to further replies.
  • Recently Browsing   0 members

    No registered users viewing this page.

  • Similar Content

    • zerolora
      By zerolora
      Всем привет, помогите пожалуйста разобраться. Что за беда с командой. Младшие ранги могут банить основателей на раз-два. Хотя в команде вроде как есть защита FD
       
      CMD:ban(playerid, params[]) {     if(PI[playerid][pAdmin] < 3) return SCM(playerid, COLOR_RED, NO_DOSTUP_TEXT);     if(!ADuty{playerid}) return callcmd::apanel(playerid);     static id, days, reason[30];     if(sscanf(params, "uds[30]", id, days, reason)) return SCM(playerid, COLOR_RED, !"Используй: /ban [id] [days 1-30] [Причина]");     if(id == INVALID_PLAYER_ID) return 0;     if(GetString(PN(id), ""FULL_FD"") && !GetString(PN(id), ""FULL_FD2"")) return SCM(playerid, COLOR_RED, "Нельзя забанить создателя");     if(strlen(reason) > 30) return SCM(playerid, COLOR_RED, !"Не больше 30 символов!");     if(IsAIP(reason)) return 1;     if(CheckIsADomen(playerid, reason)) return 1;     if(!(1 <= days <= 30)) return SCM(playerid, COLOR_RED, !"Используй: /ban [id] [days 1-30] [Причина]");     if(id == playerid) return SCM(playerid, COLOR_GREY, !"Вы не можете выдать наказание самому себе!");     ASCMToAllf(COLOR_LIGHTRED, "Администратор %s[%i] забанил игрока %s[%i] на %i дней. Причина: %s", PN(playerid), playerid, PN(id), id, days, reason);     AntiReAction(playerid);     SPDf(id, 0, DIALOG_STYLE_MSGBOX, !"", !"Закрыть", !"", !"Вы получили бан аккаунта, если вы не согласны с решением Администратора, то напишите жалобу на форум, приложив данный скриншот.\n{2D8E35}%s", ServerCFG[server_forum]);     UpdatePlayerDataInt(id, "Warns", 0);     BanName(PN(id), PN(playerid), days, reason);     PI[playerid][pReputation] += 5;     UpdatePlayerDataInt(playerid, "Reputation", PI[playerid][pReputation]);     //  aml(8, playerid, PN(id), reason, days);     str_1[0] = EOS, f(str_1, sizeof(str_1), "%s[%i] забанил игрока %s[%i] на %i дней. Причина: %s", PN(playerid), playerid, PN(id), id, days, reason);     SavePunish(0, str_1, id);     return J_Kick(id); }  
    • Ilya_Piano
      By Ilya_Piano
      Как поставить музыку при авторизации на сервер? Как у крупных проектов , скажите пожалуйста 
    • 799Region
      By 799Region
      C:\Users\Dom\Desktop\NVE\gamemodes\NVE-GM.pwn(3498) : warning 217: loose indentation
      C:\Users\Dom\Desktop\NVE\gamemodes\NVE-GM.pwn(8986) : error 017: undefined symbol "speedo5"
      C:\Users\Dom\Desktop\NVE\gamemodes\NVE-GM.pwn(8986) : warning 215: expression has no effect
      C:\Users\Dom\Desktop\NVE\gamemodes\NVE-GM.pwn(8986) : error 001: expected token: ";", but found "]"
      C:\Users\Dom\Desktop\NVE\gamemodes\NVE-GM.pwn(8986) : error 029: invalid expression, assumed zero
      C:\Users\Dom\Desktop\NVE\gamemodes\NVE-GM.pwn(8986) : 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.
      Сама Строчка 
                 new str[32];
                      new Float:speed = floatmul(floatsqroot((vX * vX) + (vY * vY) + (vZ * vZ)), 100.0);
                      new Float: Distance = GetPlayerDistanceFromPoint(playerid, x, y, z);
                      new model = GetVehicleModel(i);
                      format(str, sizeof(str), "% 0.1f kЇ/¤", speed);
                      PlayerTextDrawSetString(playerid, speedo5[playerid], str);
                      format(str, sizeof(str), "%0.1f Ї", Distance);
                      PlayerTextDrawSetString(playerid, speedo4[playerid], str);
                      format(str, sizeof(str), "%s", GetCarMarkText(model));
                      PlayerTextDrawSetString(playerid, speedo3[playerid], str);
                      break;
                  }