insert includes
This commit is contained in:
parent
80d5cad9b2
commit
d4264227ff
252
pawno/include/a_ig.inc
Normal file
252
pawno/include/a_ig.inc
Normal file
@ -0,0 +1,252 @@
|
||||
/*
|
||||
*
|
||||
* Irresistible Gaming
|
||||
*
|
||||
* Founded by Lorenc
|
||||
*
|
||||
* * Settings to be used with Irresistible Gaming SA-MP Servers
|
||||
*
|
||||
*
|
||||
*/
|
||||
|
||||
/* ** MySQL Config ** */
|
||||
#if !defined DEBUG_MODE
|
||||
#define MYSQL_HOST "127.0.0.1"
|
||||
#define MYSQL_USER "service"
|
||||
#define MYSQL_PASS "M8aHnYxJEFmw6ubK" // "82JA8LDL1JAG2GF69"
|
||||
#define MYSQL_DB "sa-mp"
|
||||
#else
|
||||
#define MYSQL_HOST "127.0.0.1"
|
||||
#define MYSQL_USER "root"
|
||||
#define MYSQL_PASS ""
|
||||
#define MYSQL_DB "sa-mp"
|
||||
#endif
|
||||
|
||||
//mysqldump -u service -p82JA8LDL1JAG2GF69 sa-mp > ~/dump01.sql
|
||||
/* ** Defines ** */
|
||||
#define IRC_SERVER "foco.ca.irc.tl" // test "maple.nl.eu.gtanet.com"
|
||||
#define GetPlayerFPS(%1) p_FPS[%1]
|
||||
|
||||
// Client messages
|
||||
#define SendUsage(%0,%1)\
|
||||
(SendClientMessageFormatted(%0,-1,"{FFAF00}[USAGE]{FFFFFF} " # %1))
|
||||
|
||||
#define SendError(%0,%1)\
|
||||
(SendClientMessageFormatted(%0,-1,"{F81414}[ERROR]{FFFFFF} " # %1))
|
||||
|
||||
#define SendServerMessage(%0,%1)\
|
||||
(SendClientMessageFormatted(%0,-1,"{C0C0C0}[SERVER]{FFFFFF} " # %1))
|
||||
|
||||
/* ** RADIO SYSTEM ** */
|
||||
enum E_RADIO_DATA
|
||||
{
|
||||
E_NAME [ 20 ],
|
||||
E_URL [ 60 ]
|
||||
};
|
||||
|
||||
new
|
||||
g_RadioData[ ] [ E_RADIO_DATA ] =
|
||||
{
|
||||
{ "Country", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=446371" },
|
||||
{ "Drum n' Bass", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=114517" },
|
||||
{ "Electronic", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=201767" },
|
||||
{ "Metal", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=558051" },
|
||||
{ "Hip Hop", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=366480" },
|
||||
{ "Pop", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=8318" },
|
||||
{ "Reggae", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=580756" },
|
||||
{ "Rock", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=37586" },
|
||||
{ "Trance", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=83468" },
|
||||
{ "Techno", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=702264" },
|
||||
{ "House", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=99194448" },
|
||||
{ "SKY.FM Hits", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=595424" },
|
||||
{ "Party 181.FM", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=508962" },
|
||||
{ "Top 40 181.FM", "http://yp.shoutcast.com/sbin/tunein-station.pls?id=872" },
|
||||
{ ".977 Hits", "http://7609.live.streamtheworld.com:80/977_HITS_SC" }
|
||||
},
|
||||
g_RadioStations [ 190 ]
|
||||
;
|
||||
|
||||
/* ** Donation ** */
|
||||
#define szRedemptionSalt "7resta#ecacakumedeM=yespawr!d@et"
|
||||
enum E_DONATION_DATA
|
||||
{
|
||||
E_TRANSACTION_ID[ 64 ],
|
||||
E_EMAIL[ 256 ],
|
||||
E_AMOUNT[ 11 ],
|
||||
E_PURPOSE[ 64 ],
|
||||
E_DATE
|
||||
}
|
||||
|
||||
new stock
|
||||
Float: a_vipCoinRequirements[ ] = { 0.0, 500.0, 1200.0, 1800.0, 2500.0, 5000.0, 10000.0 }
|
||||
;
|
||||
|
||||
/* ** Variables ** */
|
||||
new
|
||||
// Textdraws
|
||||
Text: g_AdminOnDutyTD = Text: INVALID_TEXT_DRAW,
|
||||
Text: p_FPSCounterTD [ MAX_PLAYERS ] = { Text: INVALID_TEXT_DRAW, ... },
|
||||
|
||||
// Player
|
||||
p_RconLoginFails [ MAX_PLAYERS char ],
|
||||
bool: p_FPSCounter [ MAX_PLAYERS char ],
|
||||
p_FPS_DrunkLevel [ MAX_PLAYERS ],
|
||||
p_FPS [ MAX_PLAYERS ]
|
||||
;
|
||||
|
||||
/* ** Callbacks ** */
|
||||
public OnRconLoginAttempt(ip[], password[], success)
|
||||
{
|
||||
new
|
||||
playerid = INVALID_PLAYER_ID,
|
||||
szIP[ 16 ]
|
||||
;
|
||||
|
||||
foreach(new i : Player)
|
||||
{
|
||||
if( GetPlayerIp( i, szIP, sizeof( szIP ) ) )
|
||||
{
|
||||
if( !strcmp( szIP, ip, true ) )
|
||||
{
|
||||
playerid = i;
|
||||
break;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
if( !success )
|
||||
{
|
||||
if( IsPlayerConnected( playerid ) )
|
||||
{
|
||||
p_RconLoginFails{ playerid } ++;
|
||||
SendClientMessageFormatted( playerid, -1, "{FF0000}[ERROR]{FFFFFF} You have entered an invalid rcon password. {C0C0C0}[%d/2]", p_RconLoginFails{ playerid } );
|
||||
|
||||
if( p_RconLoginFails{ playerid } >= 2 ) {
|
||||
SendServerMessage( playerid, "If you are not the server operator or manager, don't bother trying!" );
|
||||
Kick( playerid );
|
||||
}
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if( IsPlayerConnected( playerid ) )
|
||||
{
|
||||
new
|
||||
name[ 24 ];
|
||||
|
||||
GetPlayerName( playerid, name, sizeof( name ) );
|
||||
|
||||
if( strcmp( name, "Lorenc", true ) )
|
||||
{
|
||||
#if defined CNR_SERVER
|
||||
BanPlayerISP( playerid );
|
||||
#else
|
||||
RangeBanPlayer( playerid );
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
#if defined DEBUG_MODE
|
||||
public OnIncomingConnection( playerid, ip_address[ ], port ) {
|
||||
SendRconCommand( "reloadbans" );
|
||||
}
|
||||
#endif
|
||||
|
||||
/* ** Commands ** */
|
||||
CMD:fps( playerid, params[ ] )
|
||||
{
|
||||
if( ( p_FPSCounter{ playerid } = !p_FPSCounter{ playerid } ) == true )
|
||||
{
|
||||
formatFPSCounter( playerid );
|
||||
TextDrawShowForPlayer( playerid, p_FPSCounterTD[ playerid ] );
|
||||
SendClientMessage( playerid, 0x84aa63ff, "-> FPS counter enabled" );
|
||||
}
|
||||
else
|
||||
{
|
||||
TextDrawHideForPlayer( playerid, p_FPSCounterTD[ playerid ] );
|
||||
SendClientMessage( playerid, 0x84aa63ff, "-> FPS counter disabled" );
|
||||
}
|
||||
return 1;
|
||||
}
|
||||
|
||||
/* ** Functions ** */
|
||||
new const
|
||||
g_igServerNames[ 2 ] [ 28 ] = { "San Fierro Cops And Robbers", "Call Of Duty For SA-MP" };
|
||||
|
||||
#define GetServerName(%0) g_igServerNames[%0]
|
||||
|
||||
stock InitializeIGTextdraws( )
|
||||
{
|
||||
g_AdminOnDutyTD = TextDrawCreate(552.000000, 66.500000, "ADMIN ON DUTY");
|
||||
TextDrawBackgroundColor(g_AdminOnDutyTD, 255);
|
||||
TextDrawFont(g_AdminOnDutyTD, 1);
|
||||
TextDrawLetterSize(g_AdminOnDutyTD, 0.180000, 0.899999);
|
||||
TextDrawColor(g_AdminOnDutyTD, -65281);
|
||||
TextDrawSetOutline(g_AdminOnDutyTD, 1);
|
||||
TextDrawSetProportional(g_AdminOnDutyTD, 1);
|
||||
|
||||
for(new playerid; playerid != MAX_PLAYERS; playerid ++)
|
||||
{
|
||||
p_FPSCounterTD[ playerid ] = TextDrawCreate(636.000000, 2.000000, "_");
|
||||
TextDrawAlignment(p_FPSCounterTD[ playerid ], 3);
|
||||
TextDrawBackgroundColor(p_FPSCounterTD[ playerid ], 255);
|
||||
TextDrawFont(p_FPSCounterTD[ playerid ], 3);
|
||||
TextDrawLetterSize(p_FPSCounterTD[ playerid ], 0.300000, 1.500000);
|
||||
TextDrawColor(p_FPSCounterTD[ playerid ], -1);
|
||||
TextDrawSetOutline(p_FPSCounterTD[ playerid ], 1);
|
||||
TextDrawSetProportional(p_FPSCounterTD[ playerid ], 1);
|
||||
}
|
||||
}
|
||||
|
||||
stock formatFPSCounter( playerid ) {
|
||||
if( !p_FPSCounter{ playerid } )
|
||||
return;
|
||||
|
||||
static
|
||||
iFPS,
|
||||
szColor[ 10 ],
|
||||
szFPS[ sizeof( szColor ) + 4 ]
|
||||
;
|
||||
|
||||
switch( ( iFPS = p_FPS[ playerid ] ) ) {
|
||||
case 32 .. 120: szColor = "~g~~h~~h~";
|
||||
case 18 .. 31: szColor = "~y~~h~";
|
||||
case 0 .. 17: szColor = "~r~~h~~h~";
|
||||
default: szColor = "~g~~h~~h~";
|
||||
}
|
||||
|
||||
format( szFPS, sizeof( szFPS ), "%s%d", szColor, iFPS );
|
||||
TextDrawSetString( p_FPSCounterTD[ playerid ], szFPS );
|
||||
}
|
||||
|
||||
stock trimString( strSrc[ ] )
|
||||
{
|
||||
new
|
||||
strPos
|
||||
;
|
||||
for( strPos = strlen( strSrc ); strSrc[ strPos ] <= ' '; )
|
||||
strPos--;
|
||||
|
||||
strSrc[ strPos + 1 ] = EOS;
|
||||
|
||||
for( strPos = 0; strSrc[ strPos ] <= ' '; )
|
||||
strPos++;
|
||||
|
||||
strdel( strSrc, 0, strPos );
|
||||
}
|
||||
|
||||
stock Float: GetDistanceBetweenPlayers( iPlayer1, iPlayer2, &Float: fDistance = Float: 0x7F800000 )
|
||||
{
|
||||
static
|
||||
Float: fX, Float: fY, Float: fZ;
|
||||
|
||||
if( GetPlayerVirtualWorld( iPlayer1 ) == GetPlayerVirtualWorld( iPlayer2 ) && GetPlayerPos( iPlayer2, fX, fY, fZ ) && !IsPlayerNPC( iPlayer1 ) && !IsPlayerNPC( iPlayer2 ) )
|
||||
fDistance = GetPlayerDistanceFromPoint( iPlayer1, fX, fY, fZ );
|
||||
|
||||
return fDistance;
|
||||
}
|
@ -491,7 +491,6 @@
|
||||
vAutoCbugKeyState ( playerid, newkeys, oldkeys );
|
||||
}
|
||||
|
||||
|
||||
#if defined SAMPAC_OnPlayerKeyStateChange
|
||||
return SAMPAC_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
|
||||
#else
|
||||
|
379
pawno/include/attachments.inc
Normal file
379
pawno/include/attachments.inc
Normal file
@ -0,0 +1,379 @@
|
||||
/*
|
||||
|
||||
attachments.inc
|
||||
- This include fixes the attachments bug, which is expierenced while zooming with snipers, camera, RPGs..
|
||||
- The attached object info now can be retrieved from GetPlayerAttachedObject
|
||||
- This include also restores player attachments on Spawn, so they will remain!
|
||||
- Disconnect fix; Destroys the attachments on Disconnect.
|
||||
|
||||
Author:
|
||||
- Gammix
|
||||
|
||||
(c) Copyright 2015
|
||||
- This file is provided as is (no warranties).
|
||||
|
||||
*/
|
||||
|
||||
/*
|
||||
|
||||
native SetPlayerAttachedObject(playerid, index, modelid, bone, Float:fOffsetX = 0.0, Float:fOffsetY = 0.0, Float:fOffsetZ = 0.0, Float:fRotX = 0.0, Float:fRotY = 0.0, Float:fRotZ = 0.0, Float:fScaleX = 1.0, Float:fScaleY = 1.0, Float:fScaleZ = 1.0, materialcolor1 = 0, materialcolor2 = 0);
|
||||
native GetPlayerAttachedObject(playerid, index, &modelid, &bone, &Float:fOffsetX, &Float:fOffsetY, &Float:fOffsetZ, &Float:fRotX, &Float:fRotY, &Float:fRotZ, &Float:fScaleX, &Float:fScaleY, &Float:fScaleZ, &materialcolor1, &materialcolor2);
|
||||
native RemovePlayerAttachedObject(playerid, index);
|
||||
|
||||
*/
|
||||
|
||||
#define att_modelid (0)
|
||||
#define att_bone (1)
|
||||
#define att_offset_x (2)
|
||||
#define att_offset_y (3)
|
||||
#define att_offset_z (4)
|
||||
#define att_rot_x (5)
|
||||
#define att_rot_y (6)
|
||||
#define att_rot_z (7)
|
||||
#define att_scale_x (8)
|
||||
#define att_scale_y (9)
|
||||
#define att_scale_z (10)
|
||||
#define att_color_1 (11)
|
||||
#define att_color_2 (12)
|
||||
#define att_used (13)
|
||||
|
||||
new
|
||||
g_AttachmentData[][45] =
|
||||
{
|
||||
"att_modelid",
|
||||
"att_bone",
|
||||
"att_offset_x",
|
||||
"att_offset_y",
|
||||
"att_offset_z",
|
||||
"att_rot_x",
|
||||
"att_rot_y",
|
||||
"att_rot_z",
|
||||
"att_scale_x",
|
||||
"att_scale_y",
|
||||
"att_scale_z",
|
||||
"att_color_1",
|
||||
"att_color_2",
|
||||
"att_used"
|
||||
};
|
||||
|
||||
stock static ATT_SetInt(playerid, index, type, val)
|
||||
{
|
||||
new
|
||||
s_String[45]
|
||||
;
|
||||
|
||||
format(s_String, sizeof(s_String), "%i_%s", index, g_AttachmentData[type]);
|
||||
|
||||
return SetPVarInt(playerid, s_String, val);
|
||||
}
|
||||
|
||||
stock static ATT_GetInt(playerid, index, type)
|
||||
{
|
||||
new
|
||||
s_String[45]
|
||||
;
|
||||
|
||||
format(s_String, sizeof(s_String), "%i_%s", index, g_AttachmentData[type]);
|
||||
|
||||
return GetPVarInt(playerid, s_String);
|
||||
}
|
||||
|
||||
stock static ATT_SetFloat(playerid, index, type, Float:val)
|
||||
{
|
||||
new
|
||||
s_String[45]
|
||||
;
|
||||
|
||||
format(s_String, sizeof(s_String), "%i_%s", index, g_AttachmentData[type]);
|
||||
|
||||
return SetPVarFloat(playerid, s_String, val);
|
||||
}
|
||||
|
||||
stock static Float:ATT_GetFloat(playerid, index, type)
|
||||
{
|
||||
new
|
||||
s_String[45]
|
||||
;
|
||||
|
||||
format(s_String, sizeof(s_String), "%i_%s", index, g_AttachmentData[type]);
|
||||
|
||||
return GetPVarFloat(playerid, s_String);
|
||||
}
|
||||
|
||||
public OnPlayerSpawn(playerid)
|
||||
{
|
||||
for(new i; i < MAX_PLAYER_ATTACHED_OBJECTS; i++)
|
||||
{
|
||||
if(ATT_GetInt(playerid, i, att_used))
|
||||
{
|
||||
SetPlayerAttachedObject( playerid,
|
||||
i,
|
||||
ATT_GetInt(playerid, i, att_modelid),
|
||||
ATT_GetInt(playerid, i, att_bone),
|
||||
ATT_GetFloat(playerid, i, att_offset_x),
|
||||
ATT_GetFloat(playerid, i, att_offset_y),
|
||||
ATT_GetFloat(playerid, i, att_offset_z),
|
||||
ATT_GetFloat(playerid, i, att_rot_x),
|
||||
ATT_GetFloat(playerid, i, att_rot_y),
|
||||
ATT_GetFloat(playerid, i, att_rot_z),
|
||||
ATT_GetFloat(playerid, i, att_scale_x),
|
||||
ATT_GetFloat(playerid, i, att_scale_y),
|
||||
ATT_GetFloat(playerid, i, att_scale_z),
|
||||
ATT_GetInt(playerid, i, att_color_1),
|
||||
ATT_GetInt(playerid, i, att_color_2)
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
#if defined ATT_OnPlayerSpawn
|
||||
return ATT_OnPlayerSpawn(playerid);
|
||||
#else
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
#if defined _ALS_OnPlayerSpawn
|
||||
#undef OnPlayerSpawn
|
||||
#else
|
||||
#define _ALS_OnPlayerSpawn
|
||||
#endif
|
||||
#define OnPlayerSpawn ATT_OnPlayerSpawn
|
||||
#if defined ATT_OnPlayerSpawn
|
||||
forward ATT_OnPlayerSpawn(playerid);
|
||||
#endif
|
||||
|
||||
public OnPlayerConnect(playerid)
|
||||
{
|
||||
for(new i; i < MAX_PLAYER_ATTACHED_OBJECTS; i++)
|
||||
{
|
||||
ATT_SetInt(playerid, i, att_used, false);
|
||||
}
|
||||
|
||||
#if defined ATT_OnPlayerConnect
|
||||
return ATT_OnPlayerConnect(playerid);
|
||||
#else
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
#if defined _ALS_OnPlayerConnect
|
||||
#undef OnPlayerConnect
|
||||
#else
|
||||
#define _ALS_OnPlayerConnect
|
||||
#endif
|
||||
#define OnPlayerConnect ATT_OnPlayerConnect
|
||||
#if defined ATT_OnPlayerConnect
|
||||
forward ATT_OnPlayerConnect(playerid);
|
||||
#endif
|
||||
|
||||
public OnPlayerDisconnect(playerid, reason)
|
||||
{
|
||||
for(new i; i < MAX_PLAYER_ATTACHED_OBJECTS; i++)
|
||||
{
|
||||
ATT_SetInt(playerid, i, att_used, false);
|
||||
|
||||
if(IsPlayerAttachedObjectSlotUsed(playerid, i))
|
||||
{
|
||||
RemovePlayerAttachedObject(playerid, i);
|
||||
}
|
||||
}
|
||||
|
||||
#if defined ATT_OnPlayerDisconnect
|
||||
return ATT_OnPlayerDisconnect(playerid, reason);
|
||||
#else
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
#if defined _ALS_OnPlayerDisconnect
|
||||
#undef OnPlayerDisconnect
|
||||
#else
|
||||
#define _ALS_OnPlayerDisconnect
|
||||
#endif
|
||||
#define OnPlayerDisconnect ATT_OnPlayerDisconnect
|
||||
#if defined ATT_OnPlayerDisconnect
|
||||
forward ATT_OnPlayerDisconnect(playerid, reason);
|
||||
#endif
|
||||
|
||||
#if ! defined HOLDING
|
||||
#define HOLDING(%0) ((newkeys & (%0)) == (%0))
|
||||
#endif
|
||||
|
||||
#if ! defined RELEASED
|
||||
#define RELEASED(%0) (((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))
|
||||
#endif
|
||||
|
||||
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
|
||||
{
|
||||
if ( ! IsPlayerNPC( playerid ) )
|
||||
{
|
||||
if (HOLDING(128))
|
||||
{
|
||||
switch (GetPlayerWeapon(playerid))
|
||||
{
|
||||
case WEAPON_SNIPER, WEAPON_ROCKETLAUNCHER, WEAPON_HEATSEEKER, WEAPON_CAMERA:
|
||||
{
|
||||
for (new i; i < MAX_PLAYER_ATTACHED_OBJECTS; i++)
|
||||
{
|
||||
if (IsPlayerAttachedObjectSlotUsed(playerid, i) &&
|
||||
ATT_GetInt(playerid, i, att_used))
|
||||
{
|
||||
RemovePlayerAttachedObject(playerid, i);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
if(RELEASED(128))
|
||||
{
|
||||
for (new i; i < MAX_PLAYER_ATTACHED_OBJECTS; i++)
|
||||
{
|
||||
if (! IsPlayerAttachedObjectSlotUsed(playerid, i) &&
|
||||
ATT_GetInt(playerid, i, att_used))
|
||||
{
|
||||
SetPlayerAttachedObject( playerid,
|
||||
i,
|
||||
ATT_GetInt(playerid, i, att_modelid),
|
||||
ATT_GetInt(playerid, i, att_bone),
|
||||
ATT_GetFloat(playerid, i, att_offset_x),
|
||||
ATT_GetFloat(playerid, i, att_offset_y),
|
||||
ATT_GetFloat(playerid, i, att_offset_z),
|
||||
ATT_GetFloat(playerid, i, att_rot_x),
|
||||
ATT_GetFloat(playerid, i, att_rot_y),
|
||||
ATT_GetFloat(playerid, i, att_rot_z),
|
||||
ATT_GetFloat(playerid, i, att_scale_x),
|
||||
ATT_GetFloat(playerid, i, att_scale_y),
|
||||
ATT_GetFloat(playerid, i, att_scale_z),
|
||||
ATT_GetInt(playerid, i, att_color_1),
|
||||
ATT_GetInt(playerid, i, att_color_2)
|
||||
);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
#if defined ATT_OnPlayerKeyStateChange
|
||||
return ATT_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
|
||||
#else
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
#if defined _ALS_OnPlayerKeyStateChange
|
||||
#undef OnPlayerKeyStateChange
|
||||
#else
|
||||
#define _ALS_OnPlayerKeyStateChange
|
||||
#endif
|
||||
#define OnPlayerKeyStateChange ATT_OnPlayerKeyStateChange
|
||||
#if defined ATT_OnPlayerKeyStateChange
|
||||
forward ATT_OnPlayerKeyStateChange(playerid, newkeys, oldkeys);
|
||||
#endif
|
||||
|
||||
public OnPlayerEditAttachedObject(playerid, response, index, modelid, boneid, Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ, Float:fRotX, Float:fRotY, Float:fRotZ, Float:fScaleX, Float:fScaleY, Float:fScaleZ)
|
||||
{
|
||||
ATT_SetInt(playerid, index, att_modelid, modelid);
|
||||
ATT_SetInt(playerid, index, att_bone, boneid);
|
||||
ATT_SetFloat(playerid, index, att_offset_x, fOffsetX);
|
||||
ATT_SetFloat(playerid, index, att_offset_y, fOffsetY);
|
||||
ATT_SetFloat(playerid, index, att_offset_z, fOffsetZ);
|
||||
ATT_SetFloat(playerid, index, att_rot_x, fRotX);
|
||||
ATT_SetFloat(playerid, index, att_rot_y, fRotY);
|
||||
ATT_SetFloat(playerid, index, att_rot_z, fRotZ);
|
||||
ATT_SetFloat(playerid, index, att_scale_x, fScaleX);
|
||||
ATT_SetFloat(playerid, index, att_scale_y, fScaleY);
|
||||
ATT_SetFloat(playerid, index, att_scale_z, fScaleZ);
|
||||
|
||||
#if defined ATT_OnPlayerEditAttachedObject
|
||||
return ATT_OnPlayerEditAttachedObject(playerid, response, index, modelid, boneid, Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ, Float:fRotX, Float:fRotY, Float:fRotZ, Float:fScaleX, Float:fScaleY, Float:fScaleZ);
|
||||
#else
|
||||
return 1;
|
||||
#endif
|
||||
}
|
||||
#if defined _ALS_OnPlayerEditAttachedObject
|
||||
#undef OnPlayerEditAttachedObject
|
||||
#else
|
||||
#define _ALS_OnPlayerEditAttachedObject
|
||||
#endif
|
||||
#define OnPlayerEditAttachedObject ATT_OnPlayerEditAttachedObject
|
||||
#if defined ATT_OnPlayerEditAttachedObject
|
||||
forward ATT_OnPlayerEditAttachedObject(playerid, response, index, modelid, boneid, Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ, Float:fRotX, Float:fRotY, Float:fRotZ, Float:fScaleX, Float:fScaleY, Float:fScaleZ);
|
||||
#endif
|
||||
|
||||
stock ATT_SetPlayerAttachedObject(playerid, index, modelid, bone, Float:fOffsetX = 0.0, Float:fOffsetY = 0.0, Float:fOffsetZ = 0.0, Float:fRotX = 0.0, Float:fRotY = 0.0, Float:fRotZ = 0.0, Float:fScaleX = 1.0, Float:fScaleY = 1.0, Float:fScaleZ = 1.0, materialcolor1 = 0, materialcolor2 = 0)
|
||||
{
|
||||
if(SetPlayerAttachedObject(playerid, index, modelid, bone, fOffsetX, fOffsetY, fOffsetZ, fRotX, fRotY, fRotZ, fScaleX, fScaleY, fScaleZ, materialcolor1, materialcolor2))
|
||||
{
|
||||
ATT_SetInt(playerid, index, att_modelid, modelid);
|
||||
ATT_SetInt(playerid, index, att_bone, bone);
|
||||
ATT_SetFloat(playerid, index, att_offset_x, fOffsetX);
|
||||
ATT_SetFloat(playerid, index, att_offset_y, fOffsetY);
|
||||
ATT_SetFloat(playerid, index, att_offset_z, fOffsetZ);
|
||||
ATT_SetFloat(playerid, index, att_rot_x, fRotX);
|
||||
ATT_SetFloat(playerid, index, att_rot_y, fRotY);
|
||||
ATT_SetFloat(playerid, index, att_rot_z, fRotZ);
|
||||
ATT_SetFloat(playerid, index, att_scale_x, fScaleX);
|
||||
ATT_SetFloat(playerid, index, att_scale_y, fScaleY);
|
||||
ATT_SetFloat(playerid, index, att_scale_z, fScaleZ);
|
||||
ATT_SetInt(playerid, index, att_color_1, materialcolor1);
|
||||
ATT_SetInt(playerid, index, att_color_2, materialcolor2);
|
||||
|
||||
ATT_SetInt(playerid, index, att_used, true);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#if defined _ALS_SetPlayerAttachedObject
|
||||
#undef SetPlayerAttachedObject
|
||||
#else
|
||||
#define _ALS_SetPlayerAttachedObject
|
||||
#endif
|
||||
#define SetPlayerAttachedObject ATT_SetPlayerAttachedObject
|
||||
|
||||
stock GetPlayerAttachedObject(playerid, index, &modelid, &bone, &Float:fOffsetX, &Float:fOffsetY, &Float:fOffsetZ, &Float:fRotX, &Float:fRotY, &Float:fRotZ, &Float:fScaleX, &Float:fScaleY, &Float:fScaleZ, &materialcolor1, &materialcolor2)
|
||||
{
|
||||
if(gAttachment[playerid][index][att_used])
|
||||
{
|
||||
modelid = ATT_GetInt(playerid, i, att_modelid);
|
||||
bone = ATT_GetInt(playerid, i, att_bone);
|
||||
fOffsetX = ATT_GetFloat(playerid, i, att_offset_x);
|
||||
fOffsetY = ATT_GetFloat(playerid, i, att_offset_y);
|
||||
fOffsetZ = ATT_GetFloat(playerid, i, att_offset_z);
|
||||
fRotX = ATT_GetFloat(playerid, i, att_rot_x);
|
||||
fRotY = ATT_GetFloat(playerid, i, att_rot_y);
|
||||
fRotZ = ATT_GetFloat(playerid, i, att_rot_z);
|
||||
fScaleX = ATT_GetFloat(playerid, i, att_scale_x);
|
||||
fScaleY = ATT_GetFloat(playerid, i, att_scale_y);
|
||||
fScaleZ = ATT_GetFloat(playerid, i, att_scale_z);
|
||||
materialcolor1 = ATT_GetInt(playerid, i, att_color_1);
|
||||
materialcolor2 = ATT_GetInt(playerid, i, att_color_2);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
stock ATT_RemovePlayerAttachedObject(playerid, index)
|
||||
{
|
||||
if(RemovePlayerAttachedObject(playerid, index))
|
||||
{
|
||||
ATT_SetInt(playerid, index, att_used, false);
|
||||
return true;
|
||||
}
|
||||
return false;
|
||||
}
|
||||
#if defined _ALS_RemovePlayerAttachedObject
|
||||
#undef RemovePlayerAttachedObject
|
||||
#else
|
||||
#define _ALS_RemovePlayerAttachedObject
|
||||
#endif
|
||||
#define RemovePlayerAttachedObject ATT_RemovePlayerAttachedObject
|
||||
|
||||
#undef att_modelid
|
||||
#undef att_bone
|
||||
#undef att_offset_x
|
||||
#undef att_offset_y
|
||||
#undef att_offset_z
|
||||
#undef att_rot_x
|
||||
#undef att_rot_y
|
||||
#undef att_rot_z
|
||||
#undef att_scale_x
|
||||
#undef att_scale_y
|
||||
#undef att_scale_z
|
||||
#undef att_color_1
|
||||
#undef att_color_2
|
||||
#undef att_used
|
111
pawno/include/lookupffs.inc
Normal file
111
pawno/include/lookupffs.inc
Normal file
@ -0,0 +1,111 @@
|
||||
/*
|
||||
* Lookupffs.inc
|
||||
* Edited by Lorenc_
|
||||
*
|
||||
*/
|
||||
|
||||
// Macros
|
||||
#define GetPlayerHost(%1) (g_lookup_PlayerData[%1][E_HOST])
|
||||
#define GetPlayerISP(%1) (g_lookup_PlayerData[%1][E_ISP])
|
||||
#define GetPlayerCountryCode(%1) (g_lookup_PlayerData[%1][E_CODE])
|
||||
#define GetPlayerCountryName(%1) (g_lookup_PlayerData[%1][E_COUNTRY])
|
||||
#define GetPlayerCountryRegion(%1) (g_lookup_PlayerData[%1][E_REGION])
|
||||
#define IsProxyUser(%1) (g_lookup_PlayerData[%1][E_PROXY])
|
||||
#define IsProxyEnabledForPlayer(%1) (g_lookup_Success{%1})
|
||||
|
||||
// Variables
|
||||
enum E_LOOKUP_DATA
|
||||
{
|
||||
E_HOST[ 60 ], E_CODE[ 3 ], E_COUNTRY[ 45 ],
|
||||
E_REGION[ 43 ], E_ISP[ 128 ], E_PROXY
|
||||
};
|
||||
|
||||
stock
|
||||
g_lookup_PlayerData[ MAX_PLAYERS ] [ E_LOOKUP_DATA ],
|
||||
g_lookup_Success[ MAX_PLAYERS char ],
|
||||
g_lookup_Retry[ MAX_PLAYERS char ]
|
||||
;
|
||||
|
||||
// Forwards
|
||||
public OnLookupResponse( playerid, response, data[ ] );
|
||||
public OnLookupComplete( playerid, success );
|
||||
|
||||
// Hooks
|
||||
public OnPlayerConnect( playerid ) {
|
||||
if ( ! IsPlayerNPC( playerid ) ) {
|
||||
g_lookup_Retry{ playerid } = 0;
|
||||
LookupPlayerIP( playerid );
|
||||
}
|
||||
return CallLocalFunction("Lookup_OnPlayerConnect", "i", playerid);
|
||||
}
|
||||
|
||||
// Functions
|
||||
stock LookupPlayerIP( playerid ) {
|
||||
|
||||
if( IsPlayerNPC( playerid ) )
|
||||
return 0;
|
||||
|
||||
static
|
||||
szIP[ 16 ], szQuery[ 50 ];
|
||||
|
||||
GetPlayerIp( playerid, szIP, sizeof( szIP ) );
|
||||
|
||||
format( szQuery, sizeof( szQuery ), "iphub.info/api.php?ip=%s&showtype=2", szIP );
|
||||
return HTTP( playerid, HTTP_GET, szQuery, "", "OnLookupResponse" );
|
||||
}
|
||||
|
||||
stock ResetPlayerIPData( playerid ) {
|
||||
format( g_lookup_PlayerData[ playerid ] [ E_HOST ], 10, "Unknown" );
|
||||
format( g_lookup_PlayerData[ playerid ] [ E_CODE ], 3, "XX" );
|
||||
format( g_lookup_PlayerData[ playerid ] [ E_COUNTRY ], 10, "Unknown" );
|
||||
format( g_lookup_PlayerData[ playerid ] [ E_REGION ], 10, "Unknown" );
|
||||
format( g_lookup_PlayerData[ playerid ] [ E_ISP ], 10, "Unknown" );
|
||||
g_lookup_PlayerData[ playerid ] [ E_PROXY ] = 0;
|
||||
g_lookup_Success{ playerid } = 0;
|
||||
}
|
||||
|
||||
// Callbacks
|
||||
public OnLookupResponse( playerid, response, data[ ] ) {
|
||||
|
||||
if( !IsPlayerConnected( playerid ) )
|
||||
return 0;
|
||||
|
||||
if( response != 200 ) // Fail
|
||||
{
|
||||
if( !g_lookup_Retry{ playerid } ) {
|
||||
g_lookup_Retry{ playerid } = 1;
|
||||
return LookupPlayerIP( playerid );
|
||||
} else {
|
||||
ResetPlayerIPData( playerid );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
if( sscanf( data, "p< >e<s[60]s[3]s[45]s[43]s[128]d>", g_lookup_PlayerData[ playerid ] ) )
|
||||
{
|
||||
if( !g_lookup_Retry{ playerid } ) {
|
||||
g_lookup_Retry{ playerid } = 1;
|
||||
return LookupPlayerIP( playerid );
|
||||
} else {
|
||||
ResetPlayerIPData( playerid );
|
||||
}
|
||||
}
|
||||
else
|
||||
{
|
||||
strreplacechar( g_lookup_PlayerData[ playerid ] [ E_COUNTRY ], '_', ' ' );
|
||||
strreplacechar( g_lookup_PlayerData[ playerid ] [ E_ISP ], '_', ' ' );
|
||||
g_lookup_Success{ playerid } = 1;
|
||||
}
|
||||
}
|
||||
return CallLocalFunction( "OnLookupComplete", "ii", playerid, g_lookup_Success{ playerid } );
|
||||
}
|
||||
|
||||
// Hook
|
||||
#if defined _ALS_OnPlayerConnect
|
||||
#undef OnPlayerConnect
|
||||
#else
|
||||
#define _ALS_OnPlayerConnect
|
||||
#endif
|
||||
|
||||
#define OnPlayerConnect Lookup_OnPlayerConnect
|
||||
forward Lookup_OnPlayerConnect( playerid );
|
20675
pawno/include/sf-cnr.inc
Normal file
20675
pawno/include/sf-cnr.inc
Normal file
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user