21:02
ОбновитьСмайлыУправление мини-чатом
МИНИ-ЧАТ
Главная страница!

 



 
          





Рекомендуем:





Последние Файлы GTA 4 Последние Файлы GTA-MP Реклама
Скрипт GTA 4 элементы Watch... 07.09.2014
Ferrari 360 Spider [EPM con... 13.12.2013
Porsche Cayenne Turbo 2012 ... 13.12.2013
Shelby Terlingua Mustang v1... 13.12.2013
Hamann Lamborghini Gallardo... 27.10.2013
[GM] The Big PEN1:LS v2.00 ... 04.12.2017
Dgun (AvnanceRP,SampRP,Dimo... 19.03.2016
SAMP скрипт SX Events (MySQ... 03.03.2016
Карта ASL мэрия для SAMP се... 03.03.2016
AIM для SA-MP 0.3.7 22.02.2016
Модератор форума: AXE, Weddew  
Задать вопрос по SAMP (База знаний)
SevDДата: Четверг, 03.11.2011, 19:04 | Сообщение # 5686
Группа: Продвинутые
Сообщений: 456
Награды: 38
Город: Москва
Репутация: 452
Замечания: 0%
Статус:
xpsoft, ой. Не так прочитал, ща сек :D
Так, объясняю пошагово.
Сначала создаем функцию, используя stock вместо forward и public:
Code
stock Proverka(playerid)

Затем создаем проверку на членство/лидерство фракцией. Можно без скобок, главное запомнить как:
Code
if(PlayerInfo[playerid][pMember] == 8 || PlayerInfo[playerid][pLeader] == 8) return 1;

Что выполняется в противном случае (тоже без скобок, несколько действий в одной строке можно разделять запятой):
Code
else SendClientMessage(playerid, 0xFF0000AA, "Bы не не член агенства!!!"), return 0;

В итоге получено:
Code
stock Proverka(playerid)
{
     if(PlayerInfo[playerid][pMember] == 8 || PlayerInfo[playerid][pLeader] == 8) return 1;
     else SendClientMessage(playerid, 0xFF0000AA, "Bы не не член агенства!!!"), return 0;
}

Вроде же все понятно :D



Bye-bye SA-MP 0/
Hello EVE Online ^.^


Сообщение отредактировал SevD - Четверг, 03.11.2011, 19:13
DrugStyleДата: Четверг, 03.11.2011, 19:08 | Сообщение # 5687
Новенький
Группа: Пользователи
Сообщений: 23
Награды: 0
Город: Valmiera
Репутация: 0
Замечания: 0%
Статус:
Кто нибудь подскажет как сделать нелегальные работы, как бы на английском форуме писал мне сказали то что надо в FS искать я искал и ничего ненашёл?!
xpsoftДата: Четверг, 03.11.2011, 19:11 | Сообщение # 5688
Освоившийся
Группа: Пользователи
Сообщений: 97
Награды: 0
Город: Minsk
Репутация: -19
Замечания: 0%
Статус:
Тогда если тебе не сложно обьясни что и куда сувать.

Смотри.

это в дефайн всё.

Code
#define FILTERSCRIPT это в дефайн и это тоже туда же ниже  
forward lockgate();  
  #if defined FILTERSCRIPT  
  new gate;


и это в самый низ можно запихнуть?

Code
public OnFilterScriptInit()  
   {  
   gate = CreateObject(980,1588.5,-1637.9000244141,14.8,0.00000000,0.00000000,0.00000000); //Вот закрытые воротки  
   print("\n--------------------------------------");  
   print(" Ворота для САПДА");  
   print("--------------------------------------\n");  
   return 1;  
   }  
  stock Proverka(playerid)  
          {  
          if(PlayerInfo[playerid][pMember] == 8 || PlayerInfo[playerid][pLeader] == 8) return 1;  
          else SendClientMessage(playerid, 0xFF0000AA, "Bы не не член агенства!!!"), return 0;  
           }  
   public OnFilterScriptExit()  
   {  
   return 1;  
   }  
   #endif  

   public OnPlayerCommandText(playerid, cmdtext[])  
   {  
  if (!strcmp(cmdtext, "/gate", true))  
   {  
   if(Proverka(playerid) != 1) return 0; // Прерываем продолжение команды, если игрок не проходит проверку  
   MoveObject(gate,1597.0,-1637.9000244141,14.8, 3.5); //Тут открытые  
   SetTimer("lockgate", 7000, 0);  
   SendClientMessage(playerid, COLOR_YELLOW,"Ворота закроются в течение 7сек, Поторопитесь!");  
   return 1;  
   }  
    return 0;  
   }  
   public lockgate()  
   {  
   MoveObject (gate,1588.5,-1637.9000244141,14.8, 3.0); //Тут закрытые  
   return 1;  
   }

SevDДата: Четверг, 03.11.2011, 19:19 | Сообщение # 5689
Группа: Продвинутые
Сообщений: 456
Награды: 38
Город: Москва
Репутация: 452
Замечания: 0%
Статус:
xpsoft, короче вот весь код (без акков):
Code
  #include <a_samp>
   #define COLOR_YELLOW 0xFFFF00AA  
   forward lockgate();  
   new gate;  

   public OnFilterScriptInit()  
   {  
   gate = CreateObject(980,1588.5,-1637.9000244141,14.8,0.00000000,0.00000000,0.00000000); //Вот закрытые воротки  
   print("\n--------------------------------------");  
   print(" Ворота для САПДА");  
   print("--------------------------------------\n");  
   return 1;  
   }

   public OnFilterScriptExit()  
   {  
   return 1;  
   }  

   public OnPlayerCommandText(playerid, cmdtext[])  
   {  
   if (!strcmp(cmdtext, "/gate", true))  
   {  
   if(Proverka(playerid) != 1) return 0; // Прерываем продолжение команды, если игрок не проходит проверку  
   MoveObject(gate,1597.0,-1637.9000244141,14.8, 3.5); //Тут открытые  
   SetTimer("lockgate", 7000, 0);  
   SendClientMessage(playerid, COLOR_YELLOW,"Ворота закроются в течение 7сек, Поторопитесь!");  
   return 1;  
   }  
   return 0;  
   }  

   public lockgate()  
   {  
   MoveObject (gate,1588.5,-1637.9000244141,14.8, 3.0); //Тут закрытые  
   return 1;  
   }

   stock Proverka(playerid)  
   {  
   if(PlayerInfo[playerid][pMember] == 8 || PlayerInfo[playerid][pLeader] == 8) return 1;  
   else SendClientMessage(playerid, 0xFF0000AA, "Bы не не член агенства!!!"), return 0;  
   }  

Добавлено (03.11.2011, 19:19)
---------------------------------------------
DrugStyle, кто тебе объяснит как сделать? Взять и написать самому (либо искать ФС как тебе уже сказали). Тут писать никто не будет бесплатно работы. Либо вырезай откуда-нибудь.


Bye-bye SA-MP 0/
Hello EVE Online ^.^
xpsoftДата: Четверг, 03.11.2011, 19:19 | Сообщение # 5690
Освоившийся
Группа: Пользователи
Сообщений: 97
Награды: 0
Город: Minsk
Репутация: -19
Замечания: 0%
Статус:
ну так и 4 ошибки соответственно если этот код юзать.

Code
E:\DOCUME~1\A957~1\0016~1\SAMPRE~1\(8)~1\FILTER~1\lsgate.pwn(41) : error 017: undefined symbol "PlayerInfo"
E:\DOCUME~1\A957~1\0016~1\SAMPRE~1\(8)~1\FILTER~1\lsgate.pwn(41) : warning 215: expression has no effect
E:\DOCUME~1\A957~1\0016~1\SAMPRE~1\(8)~1\FILTER~1\lsgate.pwn(41) : error 001: expected token: ";", but found "]"
E:\DOCUME~1\A957~1\0016~1\SAMPRE~1\(8)~1\FILTER~1\lsgate.pwn(41) : error 029: invalid expression, assumed zero
E:\DOCUME~1\A957~1\0016~1\SAMPRE~1\(8)~1\FILTER~1\lsgate.pwn(41) : fatal error 107: too many error messages on one line


вот 41

Code
   if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1) return 1;

SevDДата: Четверг, 03.11.2011, 19:33 | Сообщение # 5691
Группа: Продвинутые
Сообщений: 456
Награды: 38
Город: Москва
Репутация: 452
Замечания: 0%
Статус:
xpsoft, это, вероятнее всего, из-за отсутствующей системы аккаунтов.


Bye-bye SA-MP 0/
Hello EVE Online ^.^
xpsoftДата: Четверг, 03.11.2011, 19:37 | Сообщение # 5692
Освоившийся
Группа: Пользователи
Сообщений: 97
Награды: 0
Город: Minsk
Репутация: -19
Замечания: 0%
Статус:
да это я понял. тоесть как я понял, ты мне не поможешь сделать без этой системы акков проверку?
SevDДата: Четверг, 03.11.2011, 19:38 | Сообщение # 5693
Группа: Продвинутые
Сообщений: 456
Награды: 38
Город: Москва
Репутация: 452
Замечания: 0%
Статус:
xpsoft, проверка без нее не будет работать, можно сделать для теста небольшую самописную, тупо прибивая к игроку переменную, ради проверки работоспособности кода.
Делается так:
В твой ФС суй паблик
Code

public OnPlayerConnect(playerid)
{
SetPVarInt(playerid,"Cop",1); //Присваиваем игроку переменную Cop со значением 1.
return 1;
}

И изменяем нашу проверку, используя переменную:
Code
stock Proverka(playerid)   
{   
if(GetPVarInt(playerid,"Cop") == 1) return 1;   
else SendClientMessage(playerid, 0xFF0000AA, "Вы не можете сделать это!"), return 0;   
}  



Bye-bye SA-MP 0/
Hello EVE Online ^.^


Сообщение отредактировал SevD - Четверг, 03.11.2011, 19:46
SplavkaДата: Четверг, 03.11.2011, 19:42 | Сообщение # 5694
Новенький
Группа: Пользователи
Сообщений: 45
Награды: 1
Город: Якутск
Репутация: -2
Замечания: 0%
Статус:
Всем добрый день

Столкнулся с такой проблемой. Арендовал БД MySQL. Перенес все из локальной туда. Сегодня столкнулся с проблемой. Мне нельзя использовать ALTER (прав нету), а поле надо добавить. Подскажите, как добавлять поля без использования ALTER и реально ли это?

xpsoftДата: Четверг, 03.11.2011, 19:45 | Сообщение # 5695
Освоившийся
Группа: Пользователи
Сообщений: 97
Награды: 0
Город: Minsk
Репутация: -19
Замечания: 0%
Статус:
не, а если раскидать твой код по файлу мода. просто я затрудняюсь куда и что пихать.
SevDДата: Четверг, 03.11.2011, 19:47 | Сообщение # 5696
Группа: Продвинутые
Сообщений: 456
Награды: 38
Город: Москва
Репутация: 452
Замечания: 0%
Статус:
xpsoft, сверху я написал как сделать, используя переменную. Она присваивается каждому игроку при входе.


Bye-bye SA-MP 0/
Hello EVE Online ^.^
xpsoftДата: Четверг, 03.11.2011, 20:02 | Сообщение # 5697
Освоившийся
Группа: Пользователи
Сообщений: 97
Награды: 0
Город: Minsk
Репутация: -19
Замечания: 0%
Статус:
хорошо. тогда вот мои действия пошагово.
1) открываю свой мод
2) в форварды добавил

Code
stock Proverka(playerid);
forward lockgate();


3) Иду в public OnGameModeInit() и там пишу свои ворота

Code
gate = CreateObject(980,1588.5,-1637.9000244141,14.8,0.00000000,0.00000000,0.00000000); //Вот закрытые воротки  


4) Иду прописывать команду для открытия сюда OnPlayerCommandText(playerid, cmdtext[]

Code
   {   
    if (!strcmp(cmdtext, "/gate", true))   
    {   
    if(Proverka(playerid) != 1) return 0; // Прерываем продолжение команды, если игрок не проходит проверку   
    MoveObject(gate,1597.0,-1637.9000244141,14.8, 3.5); //Тут открытые   
    SetTimer("lockgate", 7000, 0);   
    SendClientMessage(playerid, COLOR_YELLOW,"Ворота закроются в течение 7сек, Поторопитесь!");   
    return 1;   
    }   
    return 0;   
    }   


5) Создаю паблик такой в самом конце мода public lockgate()

Code
   public lockgate()   
    {   
    MoveObject (gate,1588.5,-1637.9000244141,14.8, 3.0); //Тут закрытые   
    return 1;   
    }


6) Осталось добавить эту проверку. Её я вставлю опять же после кода в 4 пункте

Code
   stock Proverka(playerid)   
    {   
    if(PlayerInfo[playerid][pMember] == 8 || PlayerInfo[playerid][pLeader] == 8) return 1;   
    else SendClientMessage(playerid, 0xFF0000AA, "Bы не не член агенства!!!"), return 0;   
    }  


ТАК ВСЁ?

SevDДата: Четверг, 03.11.2011, 20:07 | Сообщение # 5698
Группа: Продвинутые
Сообщений: 456
Награды: 38
Город: Москва
Репутация: 452
Замечания: 0%
Статус:
Quote
2) в форварды добавил

Code
stock Proverka(playerid);


Зачем? Стоки в форварды добавлять не надо)

Quote
6) Осталось добавить эту проверку. Её я вставлю опять же после кода в 4 пункте

Сток можешь сунуть в любую часть мода, в конец, например.



Bye-bye SA-MP 0/
Hello EVE Online ^.^


Сообщение отредактировал SevD - Четверг, 03.11.2011, 20:11
МолорищеДата: Четверг, 03.11.2011, 20:08 | Сообщение # 5699
Молор
Группа: Продвинутые
Сообщений: 427
Награды: 11
Город: Санкт Петербург
Замечания: 0%
Статус:
Quote (Fiskar)
Vagrant, NeZ_pwn, вы не поняли)

как поставить только локомотив? Без прицепов?


ПОМОГИТЕ!



Мне нечего делать.
xpsoftДата: Четверг, 03.11.2011, 20:12 | Сообщение # 5700
Освоившийся
Группа: Пользователи
Сообщений: 97
Награды: 0
Город: Minsk
Репутация: -19
Замечания: 0%
Статус:
так. я пока ужинать отошёл. если тебе не сложно, можно с тобой в скайпе решить проблему, а то мой мозг вынесен?
Поиск:





 


 


 
Хостинг от uCoz samp.at.ua