format(query, sizeof(query), "Your character ID = %d.", sqlite_highest_field(USERDB, "id", "Character"));
SendClientMessage(playerid, COLOR_WHITE, query);
stock sqlite_highest_field(DB:db, fieldname[], tablename[])
{
new query[128], DBResult:qresult, id = -1, queryresult[128];
format(query, sizeof(query), "SELECT max( `%s` ) FROM `%s`", fieldname, tablename);
qresult = db_query(db, query);
db_get_field(qresult,0,queryresult,128);
id = strval(queryresult);
db_free_result(qresult);
return id;
}
CREATE TABLE IF NOT EXISTS `Accounts` (`UID` INTEGER PRIMARY KEY, `Nick` TEXT, `Password` TEXT);
|
SQLite has built-in AUTO_INCREMENT. Example creating table:
Код:
CREATE TABLE IF NOT EXISTS `Accounts` (`UID` INTEGER PRIMARY KEY, `Nick` TEXT, `Password` TEXT); |
#define bit(%1) (1 << %1)
#define setBit(%1,%2) %1 |= bit(%2)
#define unsetBit(%1,%2) %1 ^= bit(%2)
#define getBit(%1,%2) ((%1 & bit(%2)) != 0)
#define setAllBits(%1) %1 = 2147483647
#define unsetAllBits(%1) %1 = 0
stock encodeBits({bool}:...)
{
new
result = getarg(0),
num = numargs(),
arg;
while(++arg < num)
{
if(getarg(arg))
{
setBit(result, arg);
}
}
return result;
}
enum
{
Connected,
Logged,
Spawned,
Dead
}
new
pBools[MAX_PLAYERS];
OnPlayerDeath(playerid, killerid, reason)
{
unsetBit(pBools[playerid], Spawned);
setBit(pBools[playerid], Dead);
return 1;
}
OnPlayerRequestSpawn(playerid)
{
if(!getBit(pBools[playerid], Logged)) return 0;
return 1;
}
OnPlayerSpawn(playerid)
{
if(getBit(pBools[playerid], Dead))
{
SendClientMessage(playerid, COLOR_WHITE, "You was dead");
unsetBit(pBools[playerid], Dead);
}
setBit(pBools[playerid], Spawned);
return 1;
}
OnPlayerConnect(playerid)
{
setBit(pBools[playerid], Connected);
return 1;
}
OnPlayerDisconnect(playerid, reason)
{
unsetAllBits(pBools[playerid]);
return 1;
}
new
panels,
doors,
lights,
tires;
GetVehicleDamageStatus(vehicleid, panels, doors, lights, tires);
UpdateVehicleDamageStatus(vehicleid, panels, doors, lights, encodeBits(true, true, false, true));
if(!IsPlayerInAnyVehcicle(playerid))

stock IsPlayerOnFoot(playerid)
{
if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT)
{
return 1;
}
return 0;
}
if(!strcmp(cmd, "/test", true))
{
SendColorsMessage( playerid, "test test test" );
return 1;
}
new TextColors[ 22 ] =
{
0xFF8C13FF, 0x8b4513FF,
0x4949A0FF, 0x148b8bFF,
0x14ff7fFF, 0x556b2fFF,
0x0FD9FAFF, 0x10DC29FF,
0x534081FF, 0x0495CDFF,
0xEF6CE8FF, 0xBD34DAFF,
0xC715FFFF, 0xF4A460FF,
0xEE82EEFF, 0x6152C2FF,
0xFFD720FF, 0xCF72A9FF,
0x20B2AAFF, 0x54137DFF,
0xDC143CFF, 0xB98519FF
};
#define SendColorsMessage(%1,%2) \
SendClientMessage( %1, TextColors[ random( sizeof( TextColors ) ) ], " " %2 )
#define SendColorsMessageToAll(%1) \
SendClientMessageToAll( TextColors[ random( sizeof( TextColors ) ) ) ], " " %1 )
SendClientMessage(playerid, TEXT_GELKTONA, "Text");
SendColorsMessage( playerid, "Text" );
SendClientMessageToAll(playerid, TEXT_GELKTONA, "Text");
SendColorsMessageToAll( playerid, "Text" );
if(IsPlayerNearPlayer(playerid, targetid, 5.0)) //Checks if the player is near the target, with a range of 5.0
stock IsPlayerNearPlayer(playerid, targetid, Float:Range)
{
new
Float:X,
Float:Y,
Float:Z
;
GetPlayerPos(targetid, X, Y, Z);
if(IsPlayerInRangeOfPoint(playerid, Range, X, Y, Z)) return 1;
return 0;
}
stock replaceSwear(string[], badWord[], replace = '*')
{
new
i
;
while((i = strfind(string, badWord, true)) != -1)
{
for(new x = (i + strlen(badWord)); i != x; ++i)
{
string[i] = replace;
}
}
return 1;
}
public OnPlayerText(playerid, text[])
{
new
badWords[][] =
{
"bitch",
"ass",
"fuck"
}
;
for(new i; i != sizeof(badWords); ++i)
{
replaceSwear(text, badWords[i]);
}
return 1;
}
for(new i=0; i<sizeof(badWords); i++)
{
if(strfind(text,badWords[i], true) != -1)
{
SendClientMessage(playerid, red, "Do you kiss your mom with that mouth!?");
return 0;
}
}
)
stock SpawnVeh(playerid, IDC)
{
new Float:X, Float:Y, Float:Z, Float:Ang;
GetPlayerPos(playerid, X, Y, Z);
GetPlayerFacingAngle(playerid, Ang);
CreateVehicle(IDC, X + 3.0, Y, Z + 1.0, Ang, -1, -1, 5000);
return 1;
}
stock CallVehicle(playerid,vehicleid)
{
if(IsPlayerConnected(playerid) && GetPlayerState(playerid)==PLAYER_STATE_ONFOOT && vehicleid!=INVALID_VEHICLE_ID)
{
new Float:x,Float:y,Float:z,Float:a;
GetPlayerPos(playerid,x,y,z);
GetPlayerFacingAngle(playerid,a);
LinkVehicleToInterior(vehicleid,GetPlayerInterior(playerid));
SetVehicleVirtualWorld(vehicleid,GetPlayerVirtualWorld(playerid));
SetVehiclePos(vehicleid,x,y,z);
PutPlayerInVehicle(playerid,vehicleid,0);
SetVehicleZAngle(vehicleid,a);
SetCameraBehindPlayer(playerid);
return 1;
}
return 0;
}
public OnGameModeInit()
{
// Example:
LoadDynamicObjectsFromFile("MyObjectFile1.txt");
LoadStaticObjectsFromFile("MyObjectFile2.txt");
// You may also load from folders
LoadDynamicObjectsFromFile("/Objects/MyObjectFile3.txt"); // Will load objects from /scriptfiles/Objects/MyObjectFile3.txt
LoadStaticObjectsFromFile("/Objects/MyObjectFile4.txt"); // Will load objects from /scriptfiles/Objects/MyObjectFile4.txt
return 1;
}
modelid float:SpawnX float:SpawnY float:SpawnZ float:SpawnRotX float:SpawnRotY SpawnRotZ worldid interiorid playerid float:distance
stock LoadDynamicObjectsFromFile(filename[]) // For Incognito's streamer plugin
{
new File:file_ptr, line[256], modelid, Float:SpawnX, Float:SpawnY, Float:SpawnZ, Float:SpawnRotX, Float:SpawnRotY, Float:SpawnRotZ, worldid, interiorid, playerid, Float:distance, objects_loaded;
file_ptr = fopen(filename, io_read);
if(!file_ptr) return printf("ERROR! Failed To Load Objects From The File %s (File Doesn't Exist In Scriptfiles Directory)!", filename);
while(fread(file_ptr, line) > 0)
{
sscanf(line, "dffffffdddf", modelid, SpawnX, SpawnY, SpawnZ, SpawnRotX, SpawnRotY, SpawnRotZ, worldid, interiorid, playerid, distance);
CreateDynamicObject(modelid, SpawnX, SpawnY, SpawnZ, SpawnRotX, SpawnRotY, SpawnRotZ, worldid, interiorid, playerid, distance);
objects_loaded++;
}
fclose(file_ptr);
printf("Loaded %d objects from: %s", objects_loaded, filename);
return objects_loaded;
}
modelid float:SpawnX float:SpawnY float:SpawnZ float:SpawnRotX float:SpawnRotY SpawnRotZ
stock LoadStaticObjectsFromFile(filename[])
{
new File:file_ptr, line[256], modelid, Float:SpawnX, Float:SpawnY, Float:SpawnZ, Float:SpawnRotX, Float:SpawnRotY, Float:SpawnRotZ, objects_loaded;
file_ptr = fopen(filename, io_read);
if(!file_ptr) return printf("ERROR! Failed To Load Objects From The File %s (File Doesn't Exist In Scriptfiles Directory)!", filename);
while(fread(file_ptr, line) > 0)
{
sscanf(line, "dffffff", modelid, SpawnX, SpawnY, SpawnZ, SpawnRotX, SpawnRotY, SpawnRotZ);
CreateObject(modelid, SpawnX, SpawnY, SpawnZ, SpawnRotX, SpawnRotY, SpawnRotZ);
objects_loaded++;
}
fclose(file_ptr);
printf("Loaded %d objects from: %s", objects_loaded, filename);
return objects_loaded;
}