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

 



 
          





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





Последние Файлы 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
  • Страница 1 из 2
  • 1
  • 2
  • »
Модератор форума: AXE  
Скриптинг Vice-City MP Вопрос-Ответ
RelaxДата: Четверг, 24.06.2010, 02:02 | Сообщение # 1
Местный
Группа: I'm V.I.P.
Сообщений: 686
Награды: 5
Город: Los Angeles
Репутация: 56
Замечания: 0%
Статус:
Будем решать все проблемы по скриптингу вместе =)
Начнём с меня...
Есть у меня к примеру команда
Code
    if(strcmp(cmd, "givemoney", true) == 0)
   {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
     SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /c givemoney [playerid/PartOfName] [money]");
     return 1;
    }
    new playa;
    if(IsStringAName(tmp))
    {
     playa = GetPlayerID(tmp);
    }
    else
    {
     playa = strval(tmp);
    }
    new money;
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
     SendClientMessage(playerid, COLOR_GRAD2, "USAGE: /c givemoney [playerid/PartOfName] [money]");
     return 1;
    }
    money = strval(tmp);
    GetPlayerName(playa, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    if ((IsPlayerAdmin(playerid)) || PlayerInfo[playerid][pAdmin] >= 104)
    {
     ResetPlayerMoney(playa);
     GiveMoney(playa, money);
     printf("AdmCmd: %s set %s to $%d",sendername,  giveplayer, money);
    }
    return 1;
   }

вот так выглядит проверка на нахождение ника в строке

Code
public IsStringAName(string[])
{
   for(new i = 0; i <= MAX_PLAYERS; i++)
   {
    if(IsPlayerConnected(i) == 1)
    {
     new testname[MAX_PLAYER_NAME];
     GetPlayerName(i, testname, sizeof(testname));
     //printf("IsS:testname = %s : string = %s",testname,string);
     if((strcmp(testname, string, true, strlen(string)) == 0))
     {
      //printf("TRUE IsS:testname = %s : string = %s",testname,string);
      return 1;
     }
    }
   }
   return 0;
}

Проблема в том, что если я пишу ид а не ник игрока, то сервак ложиться.
Застряёт именно на проверки "ник или ид". Если убрать проверку на ник, а брать только по ид,
то работает, но мне хотелось бы чтобы работало и так и так. Кто что подскажет?



Public Enemy: LS-SF-LV Developer && Public Enemy TDM Team Leader
#TDM-Community



Сообщение отредактировал Relax - Четверг, 24.06.2010, 02:03
ymonДата: Четверг, 24.06.2010, 08:57 | Сообщение # 2
Освоившийся
Группа: Пользователи
Сообщений: 77
Награды: 5
Город: Комсомольск
Репутация: 21
Замечания: 0%
Статус:
ну есть же стандартная функция

Code
stock FindPlayerIDFromString(string[])
{
  new MessageString[256];
  new player = INACTIVE_PLAYER_ID;
  new p = 0;
  while (p < MAX_PLAYERS) { if (strfind(PlayerName(p),string,true) != -1) { player=p;break; } p++; }
  if (player == INACTIVE_PLAYER_ID)
  {
   if ((strlen(string) > 2) || !(IsNumeric(string)))
   {
    format(MessageString,sizeof(MessageString),"Unable to find %s.",string);
    SendClientMessageToAll(COLOR_GREY, MessageString);
    return INACTIVE_PLAYER_ID;
   }
   player = strval(string);
  }
  if (!IsPlayerConnected(player))
  {
   format(MessageString,sizeof(MessageString),"Invalid ID %d.",player);
   SendClientMessageToAll(COLOR_GREY, MessageString);
   return INACTIVE_PLAYER_ID;
  }
  return player;
}

Решил сделать тему Помощи по геим текстам, но к сожелению не создаёться..
напишу здесь :)

Все допоолнительные коды геим текстов :

~t~ - Салатовый (Обычный для GameTextForPlayerBottom/GameTextForAllBottom)http://xmages.net/storage/10/1/0/2/2/upload/0b79340a.png
~b~ - Синий http://xmages.net/storage/10/1/0/2/2/upload/e44186d5.png
~h~ - Белый http://xmages.net/storage/10/1/0/2/2/upload/90fc769d.png
~w~ - Серый http://xmages.net/storage/10/1/0/2/2/upload/36ccfba5.png
~o~ - Красный http://xmages.net/storage/10/1/0/2/2/upload/459795fa.png
~p~ - Фиолетовый http://xmages.net/storage/10/1/0/2/2/upload/cae7b602.png
~q~ - Розово-Серый http://xmages.net/storage/10/1/0/2/2/upload/fd3067e8.png
~r~ - Розовый (Обычный для GameTextForPlayer/GameTextForAll) http://xmages.net/storage/10/1/0/2/2/upload/361423aa.png
~x~ - Грязно-голубой http://xmages.net/storage/10/1/0/2/2/upload/81eff7c2.png
~y~ - Жёлтый http://xmages.net/storage/10/1/0/2/2/upload/ace977ca.png


Site - http://ymon.ispvds.com/
RelaxДата: Четверг, 24.06.2010, 14:16 | Сообщение # 3
Местный
Группа: I'm V.I.P.
Сообщений: 686
Награды: 5
Город: Los Angeles
Репутация: 56
Замечания: 0%
Статус:
Стандартный не читает ник с строки, проверял...
Хотелось бы как-то свой уже код поправить...



Public Enemy: LS-SF-LV Developer && Public Enemy TDM Team Leader
#TDM-Community



Сообщение отредактировал Relax - Четверг, 24.06.2010, 14:17
ymonДата: Пятница, 25.06.2010, 13:11 | Сообщение # 4
Освоившийся
Группа: Пользователи
Сообщений: 77
Награды: 5
Город: Комсомольск
Репутация: 21
Замечания: 0%
Статус:
ну тогда незнаю, завтра попро6ую написать ра6очий, щас не могу кава сомаась :D

Добавлено (25.06.2010, 13:11)
---------------------------------------------
вот сделал... но всёравно когда пишешь неправельное имя/ид сервер выкидывает.... я уже хз почему
воть

Code
stock FindPlayerIDFromString(playerid,string[])
{
  new Player = 255, i = 0, MessString[256];
  while (i <= MAX_PLAYERS){if(strfind(PlayerName(i),string,true) != -1){Player = i;break;}i++;}
  if (Player == 255)
  {
   if ( (strlen(string) > 2) || (!IsNumeric(string)) )
   {
    format(MessString,sizeof(MessString),"Unable to find %s",string);
    SendClientMessage(playerid, COLOR_MAIN, MessString);
    return 255;
   }
   Player = strval(string);
  }
  if (!IsPlayerConnected(Player))
  {
   format(MessString,sizeof(MessString),"Playerid %d Not Connected",Player);
   SendClientMessage(playerid, COLOR_MAIN, MessString);
   return 255;
  }
  return Player;
}



Site - http://ymon.ispvds.com/
RelaxДата: Суббота, 26.06.2010, 00:09 | Сообщение # 5
Местный
Группа: I'm V.I.P.
Сообщений: 686
Награды: 5
Город: Los Angeles
Репутация: 56
Замечания: 0%
Статус:
Вот и я не пойму...
Хоть в стандарте, хоть в моих функциях, если указываешь проверять только по нику или только по ид, то всё норм. А если ставишь проверять по нику, и если не ник то по ид, то сервак решит. Мб что-то в серве? У меня эти функции под са-мп пашут на ура.



Public Enemy: LS-SF-LV Developer && Public Enemy TDM Team Leader
#TDM-Community



Сообщение отредактировал Relax - Суббота, 26.06.2010, 00:10
ymonДата: Суббота, 26.06.2010, 04:42 | Сообщение # 6
Освоившийся
Группа: Пользователи
Сообщений: 77
Награды: 5
Город: Комсомольск
Репутация: 21
Замечания: 0%
Статус:
сервак конечно да, он и так ели дышет, он даж таймеры в фс запускать не хочет...
может действительно сервак ибо он минимально оптимизирован, и любая нагрузка на него и креш.



Site - http://ymon.ispvds.com/
RelaxДата: Воскресенье, 27.06.2010, 20:24 | Сообщение # 7
Местный
Группа: I'm V.I.P.
Сообщений: 686
Награды: 5
Город: Los Angeles
Репутация: 56
Замечания: 0%
Статус:
Кстати, я вот уже написал достаточно много кода и на протяжении написания заметил кучу багов с функциями..
GivePlayerMoney - функция просто не работает
CreateVehicle - создаёт машину, но увидеть можно только после перезахода на серв
ResetPlayerMoney - не работает
PutPlayerInVehicle и PutDirectlyInVehicle абсолютно одинаковые функции. Зачем это нужно? Кроме того они не работают если ты уже в машине.
SetVehiclePos - не работает если вы сидите в этой машине

Багов очень много... Остаётся надеятся на вс-мп 0.4


Public Enemy: LS-SF-LV Developer && Public Enemy TDM Team Leader
#TDM-Community

ymonДата: Понедельник, 28.06.2010, 05:49 | Сообщение # 8
Освоившийся
Группа: Пользователи
Сообщений: 77
Награды: 5
Город: Комсомольск
Репутация: 21
Замечания: 0%
Статус:
я тож видел что эти фун-и не рабят, про GivePlayerMoney незнал..
ещё не работает SetPlayerSkin
не думаю что 0.4 вобще выйдет ибо форум закрыли и видео о бетатестах убрали.



Site - http://ymon.ispvds.com/
RelaxДата: Понедельник, 28.06.2010, 14:58 | Сообщение # 9
Местный
Группа: I'm V.I.P.
Сообщений: 686
Награды: 5
Город: Los Angeles
Репутация: 56
Замечания: 0%
Статус:
Он то выйдет, просто не так быстро. Их ддосят )
Неужели под вс-мп больше кодеров нет? Мы только тут вдвоём в теме



Public Enemy: LS-SF-LV Developer && Public Enemy TDM Team Leader
#TDM-Community



Сообщение отредактировал Relax - Понедельник, 28.06.2010, 14:59
ymonДата: Среда, 30.06.2010, 13:46 | Сообщение # 10
Освоившийся
Группа: Пользователи
Сообщений: 77
Награды: 5
Город: Комсомольск
Репутация: 21
Замечания: 0%
Статус:
Точно хз, но кажеться ещё окстайл павнил в вайсе


Site - http://ymon.ispvds.com/
RelaxДата: Пятница, 02.07.2010, 01:59 | Сообщение # 11
Местный
Группа: I'm V.I.P.
Сообщений: 686
Награды: 5
Город: Los Angeles
Репутация: 56
Замечания: 0%
Статус:
Так-с, ну вот ещё пару печальных новостей.
Функции
SetVehicleDoorsStatus(vehicleid,bool);
SetVehicleTyre(vehicleid,bool);
SetVehicleAlarm(vehicleid,bool);
SetVehicleLights(vehicleid,bool);
не работают...
SetVehiclePos работает криво... если раз машину переместил, то в игре её уже никак нельзя переместить через SetVehiclePos
В общем всё очень печально.



Public Enemy: LS-SF-LV Developer && Public Enemy TDM Team Leader
#TDM-Community

RelaxДата: Суббота, 03.07.2010, 22:28 | Сообщение # 12
Местный
Группа: I'm V.I.P.
Сообщений: 686
Награды: 5
Город: Los Angeles
Репутация: 56
Замечания: 0%
Статус:
Кстати, если кому интересно... нашёл нормальную вики для вс-мп
http://famp.ru/wiki/Main_Page



Public Enemy: LS-SF-LV Developer && Public Enemy TDM Team Leader
#TDM-Community

ymonДата: Среда, 21.07.2010, 13:17 | Сообщение # 13
Освоившийся
Группа: Пользователи
Сообщений: 77
Награды: 5
Город: Комсомольск
Репутация: 21
Замечания: 0%
Статус:
Во спс за ссыль, пригодиться)

Добавлено (21.07.2010, 13:17)
---------------------------------------------
http://forum.vicecitymultiplayer.com/index.php?topic=2034
:)


Site - http://ymon.ispvds.com/
SаintДата: Пятница, 23.07.2010, 08:33 | Сообщение # 14
Постоялец
Группа: Продвинутые
Сообщений: 316
Награды: 10
Город: Rossosh
Репутация: 110
Замечания: 0%
Статус:
Quote (Relax)
Кстати, если кому интересно... нашёл нормальную вики для вс-мп http://famp.ru/wiki/Main_Page

это официальная их Wiki ссылка доступна на форуме, я тоже пробовал писать мод, но всё очень сыро и багнуто поэтому перестал,
потом был на паблик бета тесте 0.4 понравилось на много больше чем са-мп 0.3а, печально только что в вс-мп нет поддержки возможности
писать в чат русский текст, только английский и команды как-то не привычно после са-мп реализованы "/c command"


My profile on vicecitymultiplayer.com
My profile on sa-mp.com
Public Enemy No.1 - ULTIMATE

Группа сервера в ВКонтакте

Vice City Multiplayer
RelaxДата: Суббота, 24.07.2010, 03:48 | Сообщение # 15
Местный
Группа: I'm V.I.P.
Сообщений: 686
Награды: 5
Город: Los Angeles
Репутация: 56
Замечания: 0%
Статус:
Sаint, Когда я дал ссылку, то офф сайт и форум не работал. Поэтому я написал если кто не знает.
По поводу мода... я на 75% сделал и забил. Функции криво работают либо вообще не работают. В общем я уже говорил тебе...
"/c command" они пофиксят, да и много другого тоже



Public Enemy: LS-SF-LV Developer && Public Enemy TDM Team Leader
#TDM-Community

  • Страница 1 из 2
  • 1
  • 2
  • »
Поиск:





 


 


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