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

 



 
          





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





Последние Файлы 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 из 1
  • 1
Модератор форума: Dima-kun  
[Tutorial] Новые функции в SA-MP 0.3z
Dima-kunДата: Суббота, 19.04.2014, 15:34 | Сообщение # 1
Группа: Разработчики
Сообщений: 6269
Награды: 72
Репутация: 3512
Замечания: 0%
Статус:
В данной теме распишу все новые функции, добавленные в SA-MP 0.3z, с примерами.
По алфавиту:
[pwn]1. BlockIpAddress( ip_address[], timems ) - Блокирует указанный IP-адрес на сервере на указанное время.
Параметры:
ip_address[] - (string)блокируемый IP-адрес
timems - (int)время на которое данный IP блокируется в миллисекундах (0 - блокироване на не определенный срок).
[/pwn]

Пример использования:
[pwn]public OnPlayerCommandText( playerid, cmdtext[] )
{
if( !strcmp( cmdtext, "/blockme", true ) )
{
new
string[ 128 ];

GetPlayerIp( playerid, string, sizeof( string ) );
BlockIpAdress( string, 900000 ); // 15 минут (15x60x1000)
GetPlayerName( playerid, string, MAX_PLAYER_NAME );
format( string, sizeof( string ), "* %s отправил себя на 15 минут в баню.", string );
SendClientMessage( playerid, 0xffffffff, string );
return 1;
}
return 1;
}[/pwn]

[pwn]2.CreateExplosionForPlayer( playerid, Float: X, Float: Y, Float: Z, type, Float: Radius ) - создает взрыв для игрока в указанном месте.
Параметры:
playerid - (int) - ID игрока, для которого вызывается взрыв;
Float: X - (float) Позиция Х игрока.
Float: Y - (float) Позиция Y игрока.
Float: Z - (float) Позиция Z игрока.
type - (int) Тип взрыва(см. внизу)
Float: Radius - (float) радиус взрыва.[/pwn]
Типы взрыва:
Цитата wiki.sa-mp.com

0 - Видимый, цельный, не создает огня, наносит урон, с большим радиусом действия
1 - Видимый, цельный, создает огонь, не наносит урона, с средним радиусом действия
2 - Видимый, цельный, создает огонь, наносит урон, с большим радиусом действия
3 - Видимый, цельный, иногда создает огонь, наносит урон, с большим радиусом действия
4 - Видимый, раздельный, не создает огня, наносит урон, взрывается без звука и спец эффектов, с большим радиусом действия
5 - аналогичен 4
6 - Видимый, цельный, не создает огня, наносит урон, после взрыва излучает красноватый свет, с очень большим радиусом действия
7 - Видимый, цельный, не создает огня, наносит урон, после взрыва излучает красноватый свет, с огромным радиусом действия
8 - Не видимый, цельный, не создает огня, наносит урон, со средним радиусом действия
9 - Не видимый, цельный, создает огонь, наносит урон, создает пожар
10 - Видимый, цельный, не создает огня, наносит урон, с большим радиусом действия
11 - Видимый, цельный, не создает огня, наносит урон, с маленьким радиусом действия
12 - Видимый, цельный, не создает огня, наносит урон, с очень маленьким радиусом действия
13 - Не видимый, цельный, не создает огня, не наносит урона, не производит эффектов кроме черного следа на месте взрыва, с большим радиусом действия.


Пример:
[pwn]public OnPlayerCommandText( playerid, cmdtext[] )
{
if( !strcmp( cmdtext, "/blowme", true ) )
{
new
Float: pos[ 3 ];

GetPlayerPos( playerid, pos[ 0 ], pos[ 1 ], pos[ 2 ] );
CreateExplosionForPlayer( playerid, pos[ 0 ], pos[ 1 ], pos[ 2 ], 1, 10.0 );
return 1;
}
return 1;
}[/pwn]

[pwn]
3.GetPlayerCameraAspectRatio( playerid ) - Возвращает соотношение сторон у игрока ( 4:3, 16:9 и т.д )
Параметры:
playerid - (int)ID игрока
Возвращает:
1.333333 - 4:3
1.777777 - 16:9
[/pwn]
По соотношению сторон можно определить высоту, ширину и площадь экрана игрока формулами:


[pwn]public OnPlayerCommandText( playerid, cmdtext[] )
{
if( !strcmp( cmdtext, "/myaspect", true ) )
{
new
Float: string[ 128 ];

format( string, sizeof( string ), "Aspect Ratio - %f", GetPlayerCameraAspectRatio( playerid ) );
SendClientMessage( playerid, 0xffffffff, string );
return 1;
}
return 1;
}[/pwn]

[pwn]
4.GetPlayerCameraZoom( playerid ) - узнает уровень увеличения экрана игрока (прицел снайперской винтовки, просто экран и т.п).
Параметры:
playerid - (int)ID игрока
[/pwn]
Пример:
[pwn]public OnPlayerCommandText( playerid, cmdtext[] )
{
if( !strcmp( cmdtext, "/myzoom", true ) )
{
new
Float: string[ 128 ];

format( string, sizeof( string ), "Camera Zoom Level - %f", GetPlayerCameraZoom( playerid ) );
SendClientMessage( playerid, 0xffffffff, string );
return 1;
}
return 1;
}[/pwn]

[pwn]
5.GetPlayerLastShotVectors(playerid, &Float:fOriginX, &Float:fOriginY, &Float:fOriginZ, &Float:fHitPosX, &Float:fHitPosY, &Float:fHitPosZ) - узнает место откуда был произведен выстрел и куда попала пуля
Параметры:
playerid - (int)ID игрока
&Float:fOriginX - (float) Позиция X стрелявшего
&Float:fOriginY - (float) Позиция Y стрелявшего
&Float:fOriginZ - (float) Позиция Z стрелявшего
&Float:fHitPosX - (float) Позиция X попадания
&Float:fHitPosY - (float) Позиция Y попадания
&Float:fHitPosZ - (float) Позиция Z попадания
[/pwn]

Пример:
[pwn]
public OnPlayerCommandText( playerid, cmdtext[] )
{
if(strcmp(cmdtext, "/lastshot", true) == 0)
{
new
lsString[ 128 ],
Float:fOriginX,
Float:fOriginY,
Float:fOriginZ,
Float:fHitPosX,
Float:fHitPosY,
Float:fHitPosZ;

GetPlayerLastShotVectors( playerid, fOriginX, fOriginY, fOriginZ, fHitPosX, fHitPosY, fHitPosZ );
format( lsString, 128, "Last Shot Information: Origin: %f, %f, %f. Hit position: %f, %f, %f", fOriginX, fOriginY, fOriginZ, fHitPosX, fHitPosY, fHitPosZ );
SendClientMessage( playerid, 0xffffffff, lsString );
return 1;
}
}
[/pwn]

[pwn]
6.GetServerTickRate( ) - Узнает частоту обновления сервера (аналог FPS)
Функция не имеет параметров.
[/pwn]
Пример:
[pwn]
public OnGameModeInit( )
{
printf( "The current server tick rate is: %i", GetServerTickRate() );
}
[/pwn]

[pwn]
7. NetStats - Функции, которые по отдельности узнают данные из F5 у каждого игрока.
[/pwn]

Пример:
[pwn]
public OnPlayerCommandText( playerid, cmdtext[] )
{
if( !strcmp( cmdtext, "/bytesreceived", true ) )
{
new
szString[ 144 ];

format( szString, sizeof( szString ), "You have sent %i bytes of information to the server.", NetStats_BytesRecieved( playerid ) );
SendClientMessage( playerid, 0xffffffff, szString );
}
return 1;
}
[/pwn]

[pwn]8.SendDeathMessageToPlayer( playerid, killer, killee, weapon ) - показывает лог убийств к конкретному игроку
Парметры:
playerid - (int) ID игрока которому показывать чат
killer - (int) - ID убийцы
killee - (int) - ID убитого
weapon - (int) - ID оружия убийства
[/pwn]
Пример:
[pwn]
public OnPlayerDeath( playerid, killerid, reason )
{
SendDeathMessageToPlayer( playerid, killerid, playerid, reason );
return 1;
}
[/pwn]

[pwn]
9.UnBlockIpAddress( ip_address[] ) - открывает доступ забаненному ранее IP
Параметры:
ip_address[] - (string) забаненный IP-адрес
[/pwn]
Пример:
[pwn]
public OnGameModeInit()
{
UnBlockIpAddress("127.0.0.1");
return 1;
}
[/pwn]

[pwn]10.VectorSize(Float:X, Float:Y, Float:Z) - узнает размер вектора.
Параметры:
Float: X - (float)Координата вектора X
Float: Y - (float)Координата вектора Y
Float: Z - (float)Координата вектора Z
[/pwn]

Пример:
[pwn]
stock Float:GetDistanceBetweenPoints( Float: x1, Float: y1, Float: z1, Float: x2, Float: y2, Float: z2 )
return VectorSize( x1 - x2, y1 - y2, z1 - z2 );
[/pwn]

А теперь колбэки:
[pwn]1.OnIncomingConnection( playerid, ip_address[], port ) - вызывается когда игрок подключается к серверу
Парметры:
playerid - (int) ID подключаемого игрока
ip_address[] - (string)IP-адрес подключаемого игрока
port - (int)порт подключаемого игрока
[/pwn]
Пример:
[pwn]
public OnIncomingConnection(playerid, ip_address[], port)
{
printf("ID %d is attempting to connect to the server [IP: %s:%i]", playerid, ip_address, port);
return 1;
}
[/pwn]

[pwn]
2.OnPlayerWeaponShot( playerid, weaponid, hittype, hitid, Float: fX, Float: fY, Float: fZ ) - вызывается когда игрок стреляет из оружия
Параметры:
playerid - (int)ID стреляющего игрока
weaponid - (int)ID оружия из которого стреляют
hittype - (int) тип вещи, в которую попал игрок (промах, игрок, машина, объект)
hitid - (int)ID вещи в которую попали
Float: fX - (float)Позиция попадания Х
Float: fY - (float)Позиция попадания Y
Float: fZ - (float)Позиция попадания Z
[/pwn]
Пример:
[pwn]
public OnPlayerWeaponShot( playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ )
{
new
szString[ 144 ];

format( szString, sizeof( szString ), "Weapon %i fired. hittype: %i hitid: %i pos: %f, %f, %f", weaponid, hittype, hitid, fX, fY, fZ );
SendClientMessage( playerid, 0xffffffff, szString );
return 1;
}
[/pwn]

Надеюсь все понятно описал. Если будут вопросы - задавайте.



Мои работы:
[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
  • Страница 1 из 1
  • 1
Поиск:





 


 


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