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;
}