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

 



 
        
[Include] RemoveBuilding (2)
JasonGordon 24.05.2017 23:48
[SA-MP] Hosted Tab (116)
DieSeL 17.05.2017 17:33
Физрук (15)
Lanablogger1 16.05.2017 16:00
 





Рекомендуем:
Добавить IP: 95.172.59.51:7777





Последние Файлы 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
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
Скачать GTA SAMP 0.3.7 - Кл... 20.07.2015
Страница 2 из 2«12
Модератор форума: Dima-kun 
Форум SAMP о мультиплеерах для GTA. »   » Wiki-Samp-Rus » Функции,макросы,массивы
Функции,макросы,массивы
Fus1Дата: Пятница, 23.09.2011, 01:11 | Сообщение # 1
Группа: Продвинутые
Сообщений: 2705
Награды: 121
Город: Melbourne Australia
Репутация: 3103
Замечания: 0%
Статус:
Прошу поднять и закрепить тему.

Многие ищут всякие функции для создания сервера и т.д, давайте без оффтопа и флуда, просто выклыдываем свои функции,макросы,массивы или из интернета и пишим для чего они предназначены, это намного облегчит поиск.
Так-же в этой теме предлогаю чтобы любой мог написать функции которая ему нужна (если ещё её не выкладывали) это также позволит пополнять список функций.

Извлекаем левую часть строки в leftside
Code
stock bool: GetLeftString(const string[],const center[],leftside[],sizeof_leftside)
{
    strmid(leftside,string,0,strfind(string,center,true),sizeof_leftside);
    return true;
}


Извлекаем правую часть строки в rightside
Code
stock bool: GetRightString(const string[],const center[],rightside[],sizeof_rightside)
{
    strmid(rightside,string,strfind(string,center,true)+1,strlen(string),sizeof_rightside);
    return true;
}


Записывает в лог русскими буквами (кириллица)
Code
stock fwriteRUS(File:file,string[])
{
       for(new i ; i < strlen(string); i++)
       fputchar(file,string[i],false);
       return 1;
}


Функция дописывает строку string в файл filename
Code
stock WriteLog(string[],filename[])
{
    new File:hFile;
    hFile = fopen(filename, io_append);
    fwriteRUS(hFile, string);
    fclose(hFile);
    return 1;
}

Quote

Например:
WriteLog("Тестируем лог\n","test.log");
В файл с именем "test.log" в скриптфайлах, допишется строка "Тестируем лог"
Если этого файла нет - он автоматически будет создан


Действие '/me'
Code
stock MeAction(playerid,string[],Float:radius)
{
   new p = GetMaxPlayers();
   for(new i; i < p; i++)
   {
       if(IsPlayerNearPlayer(playerid,i,radius))
          SendClientMessage(i,0xC2A2DAAA,string);
   }
   return 1;
}


Возвращает имя игрока
Code
stock FirstName(string[])
{
   new end = strfind(string,"_",true),
   result[MAX_PLAYER_NAME];
   strmid(result,string,0,end,MAX_PLAYER_NAME);
   return result;
}


Возвращает фамилию игрока
Code
stock LastName(string[])
{
   new start = strfind(string,"_",true),
   result[MAX_PLAYER_NAME];
   strmid(result,string,start+1,strlen(string),MAX_PLAYER_NAME);
   return result;
}


Возвращает скорость транспортного средства
Code
stock GetVehicleSpeed(carid)
{
      new Float:Vx,Float:Vy,Float:Vz,Float:rtn;
      GetVehicleVelocity(carid,Vx,Vy,Vz);
      rtn = floatsqroot(Vx*Vx+Vy*Vy+Vz*Vz);
      return floatround(rtn * 100);
}


Узнать наибольшее ИД автомобиля
Code
stock GetMaxVehicleID()
{
   for(new i = 1; i < MAX_VEHICLES; i ++)
   {
       if(GetVehicleModel(i) < 400 || GetVehicleModel(i) > 611)
       return i-1;
   }
   return MAX_VEHICLES;
}



Сообщение отредактировал Fus1 - Пятница, 23.09.2011, 01:11
psychoДата: Пятница, 09.12.2011, 19:23 | Сообщение # 16
16 | 13
Группа: I'm V.I.P.
Сообщений: 327
Награды: 11
Репутация: 645
Замечания: 20%
Статус:
Code
stock SetIntAndPlayerPos(playerid, int, Float:posx, Float:posy, Float:posz)
{
  SetPlayerInterior(playerid, int);
  SetPlayerPos(playerid, posx, posy, posz);
}

Даёт игроку не только позицию,но ещё и инт сразу,удобно юзать. :)

toneysixДата: Воскресенье, 11.12.2011, 15:32 | Сообщение # 17
Джэдай
Группа: I'm V.I.P.
Сообщений: 1731
Награды: 77
Город: Салават
Репутация: 1825
Замечания: 0%
Статус:
:: Предистория ::
Когда-то в далеком прошлом я почувствовал острую нехватку функционала стандартных таймеров:
нехватка идентификационного номера таймера в теле функции. Тогда ещё не было никаких Y_LESS'овских решений.
Незадолго до этого я разработал собственное решение, которое решило и упростило задачу в управлении таймерами для меня.
Этот мини-инклуд полностью работает на директивах препроцессора и двух созданных переменных в нем.

:: Функции ::
timerFInit:funcname<interval>[types]({Float,_}:...);
timerInit:funcname<interval>;
timerDestroy:<timerid>;
getWorkTimers();
getCountTimers();

:: Аргументы ::
funcname - Название функции;
interval - Интервал активации таймерной функции;
types - Типы для аргументов таймерной функции:
i\d Десятичное число.
a Массив, где следующий параметр (тип, аргумент) должен указывать на размер массива.
s Строка.
f Вещественное число или число с точкой.
b Булевое значение (false or true);
timerid - Идентификационный номер таймера;

:: Ипользование ::
Создание простых таймерных функций без аргументов осуществляется методом timerInit:
Code
main()
{
       timerInit:testCheck<1000>;    // Создаем обычный таймер с интервалом 1000 миллисекунд.
}

// Создаем вызов таймерной функции, в которой прописываем проверку на удаление таймера через 10 секунд.
timer:testCheck( )
{
       static count;
       if( ++count == 10 ) timerDestroy:<this>;
}

Также, можно присвоить, как и обычным образом какой-либо переменной айди созданного таймера:
Code
new ourTime = timerInit:testCheck<1000>;    // Создаем обычный таймер с интервалом 1000 миллисекунд.
timerDestroy:<ourTime>;    // Уничтожаем таймер сразу после создания.


Теперь создадим таймер с передачей аргументов, с помощью метода timerFInit:

Code
main()
{
       timerFInit:testCheck<1000>[df](10, 15.0);    // Создаем таймер с интервалом 1000 миллисекунд, куда отправляем два аргумента (десятичное число и число с дробью).
}

// Создаем вызов таймерной функции c аргументами, таймер которой будет уничтожаем, если аргумент value будет равен 10.
timerF:testCheck( value, Float: floValue )
{
       if( value == 10 ) timerDestroy:<this>;
}


Функция getWorkTimers() - возвращает текущее количество рабочих таймеров;
Функция getCountTimers() - возвращает количество таймеров, которые были созданы за текущую работу сессии мода;

:: Примечание ::
Для корректного использования данных методов вы должны полностью изменить все таймеры на методы данного инклуда,
в противном случаи правильная работа не гарантируется. Также неизвестный исход с работой в фильтрскриптах, а также их влияния.

:: Скачать ::
Скачать библиотеку упрощенных таймерных функций можно по ссылке - http://solidfiles.com/d/44e1fac553/
Для работы подключите инклуд с помощью директивы препроцессора #include:
#include <timers.inc>
UPD: Убраны повторы в таймерах. Для создания одиночного вызова используйте процедуру в конце функции тела таймера destroyTimer:<this>;



Русскоязычныи портал о MTA/GTA-IV-MP | http://multi-theft-auto.ru

Сообщение отредактировал toneysix - Воскресенье, 11.12.2011, 16:15
МолорищеДата: Воскресенье, 11.12.2011, 23:52 | Сообщение # 18
Молор
Группа: Продвинутые
Сообщений: 427
Награды: 11
Город: Санкт Петербург
Замечания: 0%
Статус:
Я не понял...
Чем это лучше например SetTimerEx?
По мне ничем...



Мне нечего делать.
toneysixДата: Понедельник, 12.12.2011, 00:05 | Сообщение # 19
Джэдай
Группа: I'm V.I.P.
Сообщений: 1731
Награды: 77
Город: Салават
Репутация: 1825
Замечания: 0%
Статус:
Fiskar чтобы понять суть таких вещей, требуется более активная и широкая работа в данной деятельности. Я все прекрасно расписал и привел примеры, даже написал предысторию, в которой четко и ясно написаны главные причины, поразившие на создание данного инклуда и упростившие мои задачи с работой таймеров в разы, главным преимуществом которой является возможность ликвидации таймера непосредственно в самой функции таймера, единым методом, без создания кучи идентификационных массивов с таймером на каждого игрока, который привязывается к нему, или к какому-то другому действию.
P.S: Для сравнения ещё раз:
Code
new playerTimer[MAX_PLAYERS char];
playerTimer{playerid} = SetTimerEx("checkOnce", 1000, true, "dd", playerid, 10);
forward checkOnce( const playerid, const value );
public checkOnce( const playerid, const value )
{
      if ( !IsPlayerConnected ( playerid ) || value == 10 )    // Проверка действительности выполнения тех или иных условий для существования таймера.
      {
       KillTimer(playerTimer{playerid});
       playerTimer{playerid} = 0;
       return;
      }
      // Действие...
}

Мой метод:
Code

timerFInit:checkOnce<1000>[dd](playerid, 10);

timerF:checkOnce( playerid, value )
{
          if ( !IsPlayerConnected ( playerid ) || value == 10 )    // Проверка действительности выполнения тех или иных условий для существования таймера.
          {
           timerDestroy:<this>;
           return;
          }
           // Действие...  
}



Русскоязычныи портал о MTA/GTA-IV-MP | http://multi-theft-auto.ru

Сообщение отредактировал toneysix - Понедельник, 12.12.2011, 00:15
ВеликсДата: Среда, 21.12.2011, 22:26 | Сообщение # 20
Мастер джэдай
Группа: Модераторы
Сообщений: 3925
Награды: 287
Город: Мухосранск
Репутация: 8414
Замечания: 0%
Статус:
#define AddScoreToPlayer(%0,%1) SetPlayerScore(%0,GetPlayerScore(%0)+%1)
Прибавление игроку одного очка, синтаксис: ID игрока, сколько очков прибавить.
#define ShowMessageDialog(%0,%1,%2,%3,%4) ShowPlayerDialog(%0,%1,0,%2,%3,%4,"")
Вывод диалога с сообщением, синтаксис: ID игрока, ID диалога, Заголовок, Текст, Кнопка.



[cut=freestyle]
ПРИНЕСЛА СОРОКА В РОТЕ ПРИВОРОТ ,
СВЯЗАЛАСЬ НА ШЕЕ ЛОЗА И БЫЛ ПОЛНЫЙ ПИ**ЕЦ,
ОСЕНЬ С ЗИМОЙ, ЛЕТО С ВЕСНОЙ,
ГУСЬ С ЛИСОЙ, ЕБ**ИСЬ ВО ТЬМЕ НОЧНОЙ.
УЗЕЛ ЗАВЯЗАЛСЯ, ПЕПЕЛ РАЗМЕТАЛСЯ И ЛИСА ЗАБЕРЕМЕНЕЛА.
ВМЕСТЕ ВЕК ВЕКОВАТЬ, ПУТУ НЕ РАЗВЯЗАТЬ.
ТРАВА ПЕРЕПЛЕТИСЬ, УЗЕЛ ЗАВОРОЖИСЬ.
ЛЕНАРУ ДАЙ УМА И ЛЕНУ
НА ВЕЛЕ НЕ ОТРАЗИСЬ,ЕБ*СЬ ЕБ*СЬ ЕБ*СЬ
© Хасан
[/cut]
psychoДата: Пятница, 30.12.2011, 15:08 | Сообщение # 21
16 | 13
Группа: I'm V.I.P.
Сообщений: 327
Награды: 11
Репутация: 645
Замечания: 20%
Статус:
Макросы:
Добавляет указанное значение к PVar'у.
Code
#define AddPVarInt(%0,%1,%2) SetPVarInt(%0, %1, GetPVarInt(%0, %1) + %2)


Пример использования:
Code

SetPVarInt(playerid,"Velix", 5);
AddPVarInt(playerid,"Velix",5);



Сообщение отредактировал Princip - Суббота, 31.12.2011, 11:58
ВеликсДата: Пятница, 30.12.2011, 15:12 | Сообщение # 22
Мастер джэдай
Группа: Модераторы
Сообщений: 3925
Награды: 287
Город: Мухосранск
Репутация: 8414
Замечания: 0%
Статус:
Code
stock SetVehicleSpeed(vehicleid, Float:speed)
{
     new Float:x1, Float:y1, Float:z1, Float:x2, Float:y2, Float:z2, Float:a;
     GetVehicleVelocity(vehicleid, x1, y1, z1);
     GetVehiclePos(vehicleid, x2, y2, z2);
     GetVehicleZAngle(vehicleid, a); a = 360 - a;
     x1 = (floatsin(a, degrees) * (speed/100) + floatcos(a, degrees) * 0 + x2) - x2;
     y1 = (floatcos(a, degrees) * (speed/100) + floatsin(a, degrees) * 0 + y2) - y2;
     SetVehicleVelocity(vehicleid, x1, y1, z1);
}

Устанавливает скорость транспорта.



[cut=freestyle]
ПРИНЕСЛА СОРОКА В РОТЕ ПРИВОРОТ ,
СВЯЗАЛАСЬ НА ШЕЕ ЛОЗА И БЫЛ ПОЛНЫЙ ПИ**ЕЦ,
ОСЕНЬ С ЗИМОЙ, ЛЕТО С ВЕСНОЙ,
ГУСЬ С ЛИСОЙ, ЕБ**ИСЬ ВО ТЬМЕ НОЧНОЙ.
УЗЕЛ ЗАВЯЗАЛСЯ, ПЕПЕЛ РАЗМЕТАЛСЯ И ЛИСА ЗАБЕРЕМЕНЕЛА.
ВМЕСТЕ ВЕК ВЕКОВАТЬ, ПУТУ НЕ РАЗВЯЗАТЬ.
ТРАВА ПЕРЕПЛЕТИСЬ, УЗЕЛ ЗАВОРОЖИСЬ.
ЛЕНАРУ ДАЙ УМА И ЛЕНУ
НА ВЕЛЕ НЕ ОТРАЗИСЬ,ЕБ*СЬ ЕБ*СЬ ЕБ*СЬ
© Хасан
[/cut]
DiSEДата: Вторник, 17.01.2012, 17:05 | Сообщение # 23
Группа: I'm V.I.P.
Сообщений: 1759
Награды: 23
Город: Уфа
Репутация: 337
Замечания: 80%
Статус:
Code
GivePlayerWeaponEx(...)
{
      if (numargs() % 2 == 0) return 0;
      for (new i = 1; i < numargs(); i++)
      {
          if (getarg(i + 1) && getarg(i)) {
              GivePlayerWeapon(getarg(0), getarg(i), getarg(i + 1));
              i++;
          }
      }
      return 1;
}


хоть сколько оружия можно прописать. Типа
GivePlayerWeaponEx(игрок,29,450,30,894,24,15)

Функцию оптимизировал Stepashka, разработал sk47



Сообщение отредактировал DiSE - Вторник, 17.01.2012, 21:00
ВеликсДата: Пятница, 27.01.2012, 23:23 | Сообщение # 24
Мастер джэдай
Группа: Модераторы
Сообщений: 3925
Награды: 287
Город: Мухосранск
Репутация: 8414
Замечания: 0%
Статус:
Code
stock intIns(iNum1, iNum2, iPos)
{
     static
         iLength[2]
     ;
     iLength[0] = intLen(iNum1);
     iLength[1] = intLen(iNum2);
      
     if((0 <= (iLength[0] + iLength[1]) <= 9) && (0 <= (iLength[0] -= iPos) <= 9))
     {
         iLength[0] = floatround(floatpower(10.0, iLength[0]));
         iLength[1] = floatround(floatpower(10.0, iLength[1]));
              
         return ((((iNum1 / iLength[0]) * iLength[1]) + iNum2) * iLength[0]) + (iNum1 % iLength[0]);
     }
     return 0;
}


http://pastebin.com/z1GJ4CDb

Вставляет одно число, в другое, и выводит конечный результат.

iNum1 - Число 1.
iNum2 - Число 2.
iPos - Позиция для вставки.

Работает только на целых цислах.

Пример:
Code
printf("%d", intIns(1245, 3, 2)); // Выведет 12345
printf("%d", intIns(666666, 999, 3)); // Выведет 666999666


Автор: RyDeR`



[cut=freestyle]
ПРИНЕСЛА СОРОКА В РОТЕ ПРИВОРОТ ,
СВЯЗАЛАСЬ НА ШЕЕ ЛОЗА И БЫЛ ПОЛНЫЙ ПИ**ЕЦ,
ОСЕНЬ С ЗИМОЙ, ЛЕТО С ВЕСНОЙ,
ГУСЬ С ЛИСОЙ, ЕБ**ИСЬ ВО ТЬМЕ НОЧНОЙ.
УЗЕЛ ЗАВЯЗАЛСЯ, ПЕПЕЛ РАЗМЕТАЛСЯ И ЛИСА ЗАБЕРЕМЕНЕЛА.
ВМЕСТЕ ВЕК ВЕКОВАТЬ, ПУТУ НЕ РАЗВЯЗАТЬ.
ТРАВА ПЕРЕПЛЕТИСЬ, УЗЕЛ ЗАВОРОЖИСЬ.
ЛЕНАРУ ДАЙ УМА И ЛЕНУ
НА ВЕЛЕ НЕ ОТРАЗИСЬ,ЕБ*СЬ ЕБ*СЬ ЕБ*СЬ
© Хасан
[/cut]
ВеликсДата: Понедельник, 19.03.2012, 21:00 | Сообщение # 25
Мастер джэдай
Группа: Модераторы
Сообщений: 3925
Награды: 287
Город: Мухосранск
Репутация: 8414
Замечания: 0%
Статус:
Code
#define IsASemi(%0)         ((%0) == 403 || (%0) == 514 || (%0) == 515 || (%0) == 443)
#define IsATrailor(%0)      ((%0) == 435 || (%0) == 450 || (%0) == 584 || (%0) == 591 || (%0) == 606 || (%0) == 607 || (%0) == 608 || (%0) == 610 || (%0) == 611)
#define IsACopCar(%0)       ((%0) == 523 || (%0) == 427 || (%0) == 490 || (%0) == 528 || (%0) == 596 || (%0) == 598 || (%0) == 597 || (%0) == 599 || (%0) == 601)
#define IsAMotorBike(%0)    ((%0) == 462 || (%0) == 448 || (%0) == 581 || (%0) == 522 || (%0) == 461 || (%0) == 521 || (%0) == 523 || (%0) == 463 || (%0) == 586 || (%0) == 468)
#define IsABike(%0)         ((%0) == 809 || (%0) == 481 || (%0) == 510)
#define IsAPizzaBike(%0)    ((%0) == 448)
#de[code]fine IsAFireTruck(%0)    ((%0) == 407 || (%0) == 544)
#define IsATaxi(%0)         ((%0) == 438 || (%0) == 420)
#define IsABus(%0)          ((%0) == 431 || (%0) == 437)
#define IsAAmbulance(%0)    ((%0) == 416)
#define IsALimo(%0)         ((%0) == 409)
#define IsAPlane(%0)        ((%0) == 460 || (%0) == 476 || (%0) == 511 || (%0) == 512 || (%0) == 513 || (%0) == 519 || (%0) == 520 || (%0) == 553 || (%0) == 577 || (%0) == 592 || (%0) == 593)
#define IsAHeli(%0)         ((%0) == 542 || (%0) == 425 || (%0) == 417 || (%0) == 487 || (%0) == 488 || (%0) == 497 || (%0) == 563 || (%0) == 447 || (%0) == 469)
#define IsABoat(%0)         ((%0) == 472 || (%0) == 473 || (%0) == 493 || (%0) == 595 || (%0) == 484 || (%0) == 430 || (%0) == 453 || (%0) == 452 || (%0) == 446 || (%0) == 454)
#define IsATrashTruck(%0)   ((%0) == 408)

Нашел на оффе, куча проверок на модели авто. Надеюсь как использовать объяснять не надо?



[cut=freestyle]
ПРИНЕСЛА СОРОКА В РОТЕ ПРИВОРОТ ,
СВЯЗАЛАСЬ НА ШЕЕ ЛОЗА И БЫЛ ПОЛНЫЙ ПИ**ЕЦ,
ОСЕНЬ С ЗИМОЙ, ЛЕТО С ВЕСНОЙ,
ГУСЬ С ЛИСОЙ, ЕБ**ИСЬ ВО ТЬМЕ НОЧНОЙ.
УЗЕЛ ЗАВЯЗАЛСЯ, ПЕПЕЛ РАЗМЕТАЛСЯ И ЛИСА ЗАБЕРЕМЕНЕЛА.
ВМЕСТЕ ВЕК ВЕКОВАТЬ, ПУТУ НЕ РАЗВЯЗАТЬ.
ТРАВА ПЕРЕПЛЕТИСЬ, УЗЕЛ ЗАВОРОЖИСЬ.
ЛЕНАРУ ДАЙ УМА И ЛЕНУ
НА ВЕЛЕ НЕ ОТРАЗИСЬ,ЕБ*СЬ ЕБ*СЬ ЕБ*СЬ
© Хасан
[/cut]
Dima-kunДата: Вторник, 04.06.2013, 17:14 | Сообщение # 26
Группа: Разработчики
Сообщений: 6242
Награды: 72
Репутация: 3339
Замечания: 0%
Статус:
Мой набор макросов для работы с PVar'ами.
Установка:
  • - скопировать файл в pawno/includes;
  • - в начале скрипта: #include .
    Использование:
    Integer:
  • Установить значение: si:pvarname[playerid](1234);
  • Узнать значение: gi:pvarname[playerid] (Результат:1234)
    Float:
  • Установить значение: psf:varname[playerid](1234.5678);
  • Узнать значение: gf:pvarname[playerid] (Результат:1234.5678)
    String:
  • Установить значение: ss:pvarname[playerid]("Some Text");
  • Узнать значение: gs:pvarname[playerid] (Результат:Some Text)

  • Удалить PVar: delpvar:pvarname[playerid];
    Прикрепления: pvars.inc(2Kb)


    Мои работы:
    [INC] Сборник d_includes [LAST],[FS] New Demage Effect,[FS]Авто-Поворотники,
    [FS]mp3player,[FS] Fun Chat Game,[FS] Car Buy Syst,[FS] Anti-AirBrk,[INC] d_setpos,
    [GM] Game Move v0.1,[FS+include]Super-Armour [0.3z],[FS + Include] Multi Checkpoints
  • VagrantДата: Понедельник, 09.12.2013, 12:07 | Сообщение # 27
    Уважаемый человек
    Группа: I'm V.I.P.
    Сообщений: 904
    Награды: 21
    Город: Находка
    Репутация: 489
    Замечания: 0%
    Статус:
    Пара моих функций.
    Аналог функции strtok. Но в 2 раза быстрее + seperator.
    strvag(const string[], &index, seperator=' ') - Возвращает значение строки до seperator (стандартно - ' ' (пробела)).
    Код

    stock strvag(const string[], &index, seperator=' ')
    {
    new res[20],i,k = string[index];
    for(;k != seperator;index++,i++,k = string[index])
    switch(k)
    {
    case '\0','\n','\r': break;
    default: res[i] = string[index];
    }
    i = 0;
    index++;
    return res;
    }

    Аналогичная функция, но без возможности установить seperator (запись идёт до пробела).
    strvagns(res[], const string[], &index) - Записывает в res[] значение строки до пробела.
    Код
    stock strvagns(res[], const string[], &index)
    {
    new i,k = string[index];
    for(;k != ' ' && k != '\0';k = string[++index],i++) res[i] = string[index];
    res[i] = '\0';
    i = 0;
    index++;
    }

    Скорость аналогична функции strvag. Аналог этой функции u_strtok, но эта функция немного быстрее.
    Цель создания этих 2-х функций, это сделать функции быстрее стандартных и уже всем привычных strtok и strcharsplit а так же u_strtok. Функций, быстрее этих, пока не видел.



    Человек учась ходить падает, и только падая, он учится ходить!
    Мои работы:
    [GM] W.F.S.A. V. 1.0 - 100%
    [GM] San Fierro Enigmatic (TDM) V. 1.0 - 100%
    [FS] Clan House V. 1.0 - 100%
    [FS] Save Car Tun System V. 1.0 - 100%
    [FS] Vagrant Anti-CapsLock V. 2.1 - 100%
    [FS] Vagrant Anti-Advertise V. 1.1, V. 2.0 - 100%
    [APP] SA-MP Interior Viewer V. 1.0 - 100%

    Принимаю заказы на помощь в скриптинге!


    Сообщение отредактировал Vagrant - Понедельник, 09.12.2013, 12:10
    Форум SAMP о мультиплеерах для GTA. »   » Wiki-Samp-Rus » Функции,макросы,массивы
    Страница 2 из 2«12
    Поиск:





     


     


     
    Хостинг от uCoz SAMP-RUS.COM