rendered paste body#include <a_samp>
#include <y_objects>
#include <dini>
#define VERSION "1.0.0 Alpha 1"
#define COLOR_PURPLE 0xC2A2DAAA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_DBLUE 0x2641FEAA
#define COLOR_BLUE 0x33AAFFFF
#define COLOR_GREEN 0x33AA33AA
#define COLOR_ORANGE 0xFF9900AA
#define COLOR_GRAD1 0xB4B5B7FF
#define COLOR_GRAD2 0xBFC0C2FF
#define COLOR_GRAD3 0xCBCCCEFF
#define COLOR_GRAD4 0xD8D8D8FF
#define COLOR_GRAD5 0xE3E3E3FF
#define COLOR_GRAD6 0xF0F0F0FF
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_RED 0xAA3333AA
#define COLOR_LIGHTRED 0xFF6347AA
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_LIGHTGREEN 0x9ACD32AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_YELLOW2 0xF5DEB3AA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_FADE1 0xE6E6E6E6
#define COLOR_FADE2 0xC8C8C8C8
#define COLOR_FADE3 0xAAAAAAAA
#define COLOR_FADE4 0x8C8C8C8C
#define COLOR_FADE5 0x6E6E6E6E
#define COLOR_PURPLE 0xC2A2DAAA
#define COLOR_DBLUE 0x2641FEAA
#define COLOR_CYAN 0x00FFFFAA
#define COLOR_SYSTEM 0xEFEFF7AA
#define COLOR_DARKORANGE 0xFF7318FF
#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_WHITE 0xFFFFFFAA
#define COLOR_DARKRED 0x993300AA
#define COLOR_TAN 0xFFFFCCAA
#define COLOR_PINK 0xFF66FFAA
#define COLOR_KHAKI 0x999900AA
#define COLOR_LIME 0x99FF00AA
#define COLOR_BLACK 0x000000AA
#define COLOR_TURQ 0x00A3C0AA
#define COLOR_GREENISHGOLD 0xCCFFDD56
#define COLOR_LIGHTBLUEGREEN 0x0FFDD349
#define COLOR_NEUTRALBLUE 0xABCDEF01
#define COLOR_LIGHTCYAN 0xAAFFCC33
#define COLOR_LEMON 0xDDDD2357
#define COLOR_ADMIN 0x7CFC00AA
#define COLOR_WHITEYELLOW 0xFFE87DAA
#define COLOR_BLUEAQUA 0x7E60FFAA
#define COLOR_GREENYELLOWWHITE 0xCBFF45AA
#define COLOR_DARKBLUE 0x15005EAA
#define COLOR_RED 0xAA3333AA
new logged_in[MAX_PLAYERS] = 0;
new alogin[MAX_PLAYERS] = 0;
new vehics[256];
new Float:vehx;
new Float:vehy;
new Float:vehz;
new Float:vehang;
new vehm;
new vehc1;
new vehc2;
new vehictext[256];
new username2[32];
new owners2[256];
forward lockplayer(playerid);
forward lockjob(playerid);
forward install(vehicleid);
main()
{
print("\n----------------------------------");
print("Mirm ReallifeScript");
print(VERSION);
print("----------------------------------\n");
}
public OnGameModeInit()
{
// Don't use these lines if it's a filterscript
Object_Object();
SetGameModeText("MIRM REALLIFE");
AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
for (new vehicids; vehicids<700; vehicids++)
{
format(vehics,sizeof(vehics), "%d.car",vehicids);
if (dini_Exists(vehics))
{
vehx=dini_Float(vehics, "X-Pos");
vehy=dini_Float(vehics, "Y-Pos");
vehz=dini_Float(vehics, "Z-Pos");
vehm=dini_Int(vehics, "Model");
vehc1=dini_Int(vehics, "Color1");
vehc2=dini_Int(vehics, "Color2");
new ids=AddStaticVehicle(vehm, vehx, vehy, vehz, vehang, vehc1, vehc2);
dini_IntSet(vehics, "vehicleid", ids);
format(vehictext,sizeof(vehictext), "Car Created! Model:%d at X:%f Y:%f Z:%f Vehicleid:%d", vehm, vehx, vehy, vehz, ids);
print (vehictext);
}
}
return 1;
}
public OnGameModeExit()
{
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
new username[32];
format(username, 32, "%s.name",PlayerName(playerid));
if (logged_in[playerid]==0)
{
if (!dini_Exists(username))
{
SendClientMessage(playerid,COLOR_DARKRED,"Bitte mit '/register Passwort' registrieren");
}
else
{
SendClientMessage(playerid,COLOR_DARKRED,"Bitte mit '/login Passwort' einloggen");
}
}
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
if(logged_in[playerid] == 0)
{
return 0;
}
return 1;
}
public OnPlayerConnect(playerid)
{
SendClientMessage(playerid, COLOR_GREENISHGOLD, "MIRM REALLIFE SCRIPT");
SendClientMessage(playerid, COLOR_GREENISHGOLD, VERSION);
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
if (logged_in[playerid] == 1)
{
new username[32];
format(username, 32, "%s.user",PlayerName(playerid));
dini_IntSet(username,"money",GetPlayerMoney(playerid));
}
logged_in[playerid] = 0;
Object_OnPlayerDisconnect(playerid,reason);
return 1;
}
public OnPlayerSpawn(playerid)
{
for(new j=0; j<MAX_VEHICLES; j++)
{
SetVehicleParamsForPlayer(j,playerid,0,1);
}
lockplayer(playerid);
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
return 1;
}
public OnVehicleSpawn(vehicleid)
{
GetVehicleFile(vehicleid, vehics);
if (dini_Exists(vehics))
{
if(dini_Int(vehics,"Tunings") >= 1)
{
for(new tunings; tunings < dini_Int(vehics,"Tunings") ; tunings++)
{
new tuning1[256];
new tuning2;
format(tuning1, sizeof(tuning1), "Tuning%d", tunings);
tuning2 = dini_Int(vehics, tuning1);
AddVehicleComponent(vehicleid, tuning2);
}
}
}
return 1;
}
public OnVehicleDeath(vehicleid, killerid)
{
return 1;
}
public OnVehicleMod(vehicleid,componentid)
{
return 1;
}
public OnVehicleRespray(vehicleid,color1,color2)
{
return 1;
}
public OnVehiclePaintjob(vehicleid,paintjobid)
{
return 1;
}
public OnPlayerText(playerid, text[])
{
return 1;
}
public OnPlayerPrivmsg(playerid, recieverid, text[])
{
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[256];
new idx;
cmd = strtok(cmdtext, idx);
/*
REGISTER/LOGIN SYSTEM
*/
if (strcmp("/register", cmd, true) ==0)
{
new username[32];
format(username, 32, "%s.name",PlayerName(playerid));
if(logged_in[playerid] == 0 && !dini_Exists(username))
{
new password[256];
new count;
password = strtok(cmdtext, idx);
dini_Create(username);
dini_IntSet(username,"Password",RMB1(password));
dini_Set(username,"coords","0");
dini_Set(username,"skin","29");
dini_Set(username,"money","65000");
count = strval(dini_Get("Options.sev","IDs"));
count++;
dini_IntSet("Options.sev","IDs",count);
dini_IntSet(username,"ID",count);
SendClientMessage(playerid,COLOR_DARKRED,"Erfolgreich registriert");
SendClientMessage(playerid,COLOR_DARKRED,"Logge dich nun mit '/login Passwort' ein");
}
return 1;
}
if (strcmp("/login", cmd, true) ==0)
{
new username[32];
format(username, 32,"%s.name",PlayerName(playerid));
if(logged_in[playerid] == 0 && dini_Exists(username))
{
new password[256];
new zensored;
password = (strtok(cmdtext, idx));
zensored = RMB1(password);
if(zensored == strval(dini_Get(username,"Password")))
{
logged_in[playerid] = 1;
alogin[playerid] = 0;
GivePlayerMoney(playerid, dini_Int(username,"money"));
if (strval(dini_Get(username,"coords")) == 1)
{
SetSpawnInfo(playerid, 0, dini_Int(username,"skinid"), dini_Float(username,"x"), dini_Float(username,"y"), dini_Float(username,"z"),dini_Float(username,"a"),0,0,0,0,0,0);
SpawnPlayer(playerid);
}
else
{
SetSpawnInfo(playerid, 0, dini_Int(username,"skinid"), 2438.3984,-1303.1168,24.3673,264.8970,0,0,0,0,0,0);
SpawnPlayer(playerid);
}
}
else
{
alogin[playerid]++;
if (alogin[playerid] == 3)
{
new messagelogin[256];
format(messagelogin, 256,"%s hat sich versuche 3 mal einzuloggen und ist gescheitert",PlayerName(playerid));
SendClientMessageToAll(COLOR_RED, messagelogin);
}
if(alogin[playerid] == 5)
{
SendClientMessageToAll(COLOR_RED, "Zuviele falsche Loginversuche");
alogin[playerid] = 0;
Kick(playerid);
}
}
}
return 1;
}
if (strcmp("/changepw", cmd, true) ==0)
{
new username[32];
format(username, 32,"%s.name",PlayerName(playerid));
if(logged_in[playerid] == 1 && dini_Exists(username))
{
new password[256];
password = (strtok(cmdtext, idx));
dini_IntSet(username,"Password",RMB1(password));
SendClientMessage(playerid, COLOR_RED, "Password erfolgreich geändert");
}
else
{
SendClientMessage(playerid, COLOR_DARKRED, "Du bist nicht eingeloggt oder nicht registriert um diese Funktion zu nutzen");
}
return 1;
}
if (strcmp("/forgotpw", cmd, true) ==0)
{
new username[32];
format(username, 32,"%s.name",PlayerName(playerid));
if(logged_in[playerid] == 0 && dini_Exists(username))
{
if(!dini_Exists("forgotten.sev"))
{
dini_Create("forgotten.sev");
}
new password[256];
password = (strtok(cmdtext, idx));
dini_IntSet("forgotten.sev",PlayerName(playerid),RMB1(password));
SendClientMessage(playerid, COLOR_DARKRED, "Dein neues Wunschpasswort wurde gespeichert. Ein Administrator wird sich um das Problem kümmern.");
}
else
{
SendClientMessage(playerid, COLOR_RED, "Du bist bereits eingeloggt");
}
return 1;
}
/*
USERCOMMANDS
*/
if (strcmp("/givekey", cmd, true) ==0)
{
new tmp[256];
new carid2;
tmp = strtok(cmdtext, idx);
if(IsPlayerInAnyVehicle(playerid))
{
for (new i=0; i<MAX_VEHICLES; i++)
{
format(username2, 32,"%s.name",PlayerName(playerid));
format(vehics,sizeof(vehics), "%d.car",i);
for(new owners; owners<dini_Int(vehics,"Owners"); owners++)
{
format(owners2, sizeof(owners2), "Owner%d", owners);
if(dini_Int(vehics, owners2) == dini_Int(username2,"ID"))
{
new givekey;
givekey = dini_Int(vehics,"Owners");
givekey++;
new keyuser = strval(tmp);
new username[32];
format(username, 32,"%s.name",PlayerName(keyuser));
new getuserid;
getuserid = dini_Int(username, "ID");
dini_IntSet(vehics, "Owners", givekey);
new ownernumber[256];
format(ownernumber, 256, "Owner%d", givekey);
dini_IntSet(vehics,ownernumber,getuserid);
carid2=dini_Int(vehics, "vehicleid");
SetVehicleParamsForPlayer(carid2,keyuser,0,0);
givekey = strval("");
keyuser = strval("");
username = "";
getuserid = strval("");
ownernumber = "";
SendClientMessage(playerid, COLOR_GREEN, "Du hast jemanden einen Schlüssel gegeben");
SendClientMessage(keyuser, COLOR_GREEN, "Du hast einen Schlüssel erhalten");
}
}
}
}
else
{
SendClientMessage(playerid, COLOR_RED, "Du musst in einem Auto sitzen um diesen Command zu benutzen!");
}
return 1;
}
/*
ADMINSYSTEM
*/
if(strcmp(cmdtext, "/unlockall", true) == 0 && IsPlayerAdmin(playerid))
{
SendClientMessage(playerid, COLOR_ADMIN, "Alle Cars wurden für dich geunlockt");
for(new j=0; j<MAX_VEHICLES; j++)
{
SetVehicleParamsForPlayer(j,playerid,0,0);
}
return 1;
}
/*
if (strcmp(cmd,"/changeuserpw", true, 10) == 0 && IsPlayerAdmin(playerid))
{
if(dini_Exists("forgotten.sev"))
{
new tmp[256];
tmp = strtok(cmdtext, idx);
new name[32];
format(name, 32, "%d", strval(tmp));
new newpw;
new formattemp[32];
newpw = dini_Get("forgotten.sev", name);
format(formattemp, 32, "%d.name", name);
dini_IntSet(formattemp, "Password", newpw);
}
return 1;
}
*/
if (strcmp(cmd,"/savecar", true, 10) == 0 && IsPlayerAdmin(playerid))
{ new tmp[256];
new tmp2[256];
tmp = strtok(cmdtext, idx);
new color1 = strval(tmp);
tmp2 = strtok(cmdtext, idx);
new color2 = strval(tmp);
if(IsPlayerInAnyVehicle(playerid))
{
new vehictemp=GetPlayerVehicleID(playerid);
new Float:vehicx;
new Float:vehicy;
new Float:vehicz;
new Float:vehicangle;
new vehicmodel=(GetVehicleModel(vehictemp));
new vehicstring[256];
GetVehicleFile(vehictemp, vehicstring);
GetVehiclePos(vehictemp, vehicx, vehicy, vehicz);
GetVehicleZAngle(vehictemp, vehicangle);
DestroyVehicle(vehictemp);
if (!dini_Exists(vehicstring))
{dini_Create(vehicstring);}
dini_FloatSet(vehicstring,"X-Pos",vehicx);
dini_FloatSet(vehicstring,"Y-Pos",vehicy);
dini_FloatSet(vehicstring,"Z-Pos",vehicz);
dini_FloatSet(vehicstring,"Angle",vehicangle);
dini_IntSet(vehicstring,"Model",vehicmodel);
dini_IntSet(vehicstring,"Color1",color1);
dini_IntSet(vehicstring,"Color2",color2);
dini_IntSet(vehicstring,"Respawn",-1);
dini_IntSet(vehicstring,"Tunings", 0);
SendClientMessage(playerid, COLOR_ADMIN, "Car Saved!");
CreateVehicle(vehicmodel, vehicx, vehicy, vehicz, vehicangle, color1, color2, -1);
}
return 1;
}
if (strcmp(cmd,"/addcar", true, 10) == 0 && IsPlayerAdmin(playerid))
{
new vcid[256];
vcid = strtok(cmdtext, idx);
new vehicmod = strval(vcid);
if (vehicmod>=400&&vehicmod<=611)
{
new Float:xpos;
new Float:ypos;
new Float:zpos;
new repeat=1;
GetPlayerPos(playerid, xpos, ypos, zpos);
new vehicstring[256];
new addcar=CreateVehicle(vehicmod, xpos, ypos, zpos, 90, 0, 0, -1);
for (new ids2=0;repeat==1;ids2++)
{
format(vehicstring,sizeof(vehicstring), "%d.car",ids2);
if(!dini_Exists(vehicstring))
{
dini_Create(vehicstring);
dini_FloatSet(vehicstring,"X-Pos",xpos);
dini_FloatSet(vehicstring,"Y-Pos",ypos);
dini_FloatSet(vehicstring,"Z-Pos",zpos);
dini_FloatSet(vehicstring,"Angle",90);
dini_IntSet(vehicstring,"Model",vehicmod);
dini_IntSet(vehicstring,"Color1",0);
dini_IntSet(vehicstring,"Color2",0);
dini_IntSet(vehicstring,"vehicleid",addcar);
repeat=0;
SendClientMessage(playerid, 0xDEEE20FF, "Car Added to Game!");
format(vehictext,sizeof(vehictext), "Ingame Caradd! Model:%d at X:%f Y:%f Z:%f Vehicleid:%d", vehicmod, xpos, ypos, zpos, addcar);
print (vehictext);
return 1;
}
}
}
else SendClientMessage(playerid, 0xFF0000FF , "Invalid Car ID");
return 1;
}
if (strcmp(cmdtext,"/carfile", true, 10) == 0 && IsPlayerAdmin(playerid))
{
if (IsPlayerInAnyVehicle(playerid))
{
new car=GetPlayerVehicleID(playerid);
new filename[256];
GetVehicleFile(car, filename);
new message[256];
format(message, sizeof(message), "Dateiname dieses Autos: %s", filename);
SendClientMessage(playerid, COLOR_CYAN, message);
}
return 1;
}
if (strcmp(cmd,"/removecar", true) == 0 && IsPlayerAdmin(playerid))
{
new vehictemp2=GetPlayerVehicleID(playerid);
new vehicstring[256];
for (new ids=0; ids<700; ids++)
{
format(vehicstring,sizeof(vehicstring), "%d.car",ids);
if (vehictemp2==dini_Int(vehicstring,"vehicleid"))
{
DestroyVehicle(vehictemp2);
dini_Remove(vehicstring);
SendClientMessage(playerid, 0xDEEE20FF, "Car Removed!");
}
}
return 1;
}
return 0;
}
public OnPlayerEnterVehicle(playerid, vehicleid)
{
GetVehicleFile(vehicleid, vehics);
if (dini_Exists(vehics))
{
if(dini_Int(vehics,"Tunings") >= 1)
{
for(new tunings; tunings < dini_Int(vehics,"Tunings") ; tunings++)
{
new tuning1[256];
new tuning2;
format(tuning1, sizeof(tuning1), "Tuning%d", tunings);
tuning2 = dini_Int(vehics, tuning1);
AddVehicleComponent(vehicleid, tuning2);
}
}
}
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
return 1;
}
public OnPlayerStateChange(playerid, newstate, oldstate)
{
return 1;
}
public OnPlayerKeyStateChange(playerid,newkeys)
{
return 1;
}
public OnPlayerEnterCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveCheckpoint(playerid)
{
return 1;
}
public OnPlayerEnterRaceCheckpoint(playerid)
{
return 1;
}
public OnPlayerLeaveRaceCheckpoint(playerid)
{
return 1;
}
public OnRconCommand(cmd[])
{
return 1;
}
public OnObjectMoved(objectid)
{
return 1;
}
public OnPlayerObjectMoved(playerid, objectid)
{
return 1;
}
public OnPlayerPickUpPickup(playerid, pickupid)
{
return 1;
}
public OnPlayerSelectedMenuRow(playerid, row)
{
return 1;
}
public OnPlayerExitedMenu(playerid)
{
return 1;
}
RMB1(buf[]) {
new length=strlen(buf);
new a;
new s1 = 2;
new s2 = 3;
new s3 = 5;
new s4 = 7;
new s5 = 9;
new s6 = 11;
new s7 = 13;
new s8 = 17;
new s9 = 7919;
new s10 = 7907;
new s11 = 7901;
new s12 = 7883;
new s13 = 7879;
new s14 = 7877;
new s15 = 7873;
new s16 = 7867;
for (a=0; a<length; a++)
{
s1 = (s1 + buf[a]) * 65521;
s2 = (s2 / s1 + buf[a]) * 65521;
s3 = (s3 * s2 / s1 + buf[a]) * 65521;
s4 = (s4 + s3 - s2 * s1 / buf[a]) * 65521;
s5 = (s5 / s4 + s3 - s2 * s1 / buf[a]) * 65521;
s6 = (s6 * s5 / s4 + s3 - s2 * s1 / buf[a]) * 65521;
s7 = (s7 - s6 * s5 / s4 + s3 - s2 * s1 / buf[a]) * 65521;
s8 = (s8 + s7 - s6 * s5 / s4 + s3 - s2 * s1 / buf[a]) * 65521;
s9 = (s9 / s8 + s7 - s6 * s5 / s4 + s3 - s2 * s1 / buf[a]) * 65521;
s10 = (s10 * s9 / s8 + s7 - s6 * s5 / s4 + s3 - s2 * s1 / buf[a]) * 65521;
s11 = (s11 - s10 * s9 / s8 + s7 - s6 * s5 / s4 + s3 - s2 * s1 / buf[a]) * 65521;
s12 = (s12 + s11 - s10 * s9 / s8 + s7 - s6 * s5 / s4 + s3 - s2 * s1 / buf[a]) * 65521;
s13 = (s13 / s12 + s11 - s10 * s9 / s8 + s7 - s6 * s5 / s4 + s3 - s2 * s1 / buf[a]) * 65521;
s14 = (s14 * s13 / s12 + s11 - s10 * s9 / s8 + s7 - s6 * s5 / s4 + s3 - s2 * s1 / buf[a]) * 65521;
s15 = (s15 - s14 * s13 / s12 + s11 - s10 * s9 / s8 + s7 - s6 * s5 / s4 + s3 - s2 * s1 / buf[a]) * 65521;
s16 = (s16 + s15 - s14 * s13 / s12 + s11 - s10 * s9 / s8 + s7 - s6 * s5 / s4 + s3 - s2 * s1 / buf[a]) * 65521;
}
return (s16 << 128) * s1 * s2 * s3 * s4 * s5 * s6 * s7 + s8 + s9 + s10 + s11 + s12 + s13 + s14 + s15 + s16;
}
stock PlayerName(playerid) {
new name[255];
GetPlayerName(playerid, name, 255);
return name;
}
public lockplayer(playerid)
{
new carid;
for (new i=0; i<MAX_VEHICLES; i++)
{
format(username2, 32,"%s.name",PlayerName(playerid));
format(vehics,sizeof(vehics), "%d.car",i);
for(new owners; owners<dini_Int(vehics,"Owners"); owners++)
{
format(owners2, sizeof(owners2), "Owner%d", owners);
if(dini_Int(vehics, owners2) == dini_Int(username2,"ID"))
{
carid=dini_Int(vehics, "vehicleid");
SetVehicleParamsForPlayer(carid,playerid,0,0);
}
}
}
return 1;
}
stock GetVehicleFile(vehicleid, savestring[])
{
new vehics2[256];
for (new vehicids; vehicids<700; vehicids++)
{
format(vehics2,sizeof(vehics2), "%d.car",vehicids);
if (dini_Exists(vehics2))
{
if(dini_Int(vehics2, "vehicleid")==vehicleid)
{
format(savestring, 256, "%s", vehics2);
}
}
}
}