07.08.2009, 15:55
could someone help me bind these to scripts together so thwn i go /login it logs in both of them. thx for ur time
ill post 2end bit
Код:
//> Includes <//
#include <a_samp>
//> Pragmas <//
//#pragma unused dmvcp
//> Defines <//
#define GREEN 0x21DD00FF
#define RED 0xE60000FF
#define YELLOW 0xFFFF00FF
#define ORANGE 0xF97804FF
#define GRAY 0xCECECEFF
#define LIGHTBLUE 0x00C2ECFF
//#define CHECKPOINT_DMV 0
#define DrivingTestCash 5000 // Edit this if needed. 5000 = the cash that you'll pay to take the driving test
#define TooSlow 120 // 120 = if the time is 110 or more, you are driving too slow. You may edit this if needed.
#define TooFast 105 // 105 = if the time is less than 105, you are driving too fast. You may edit this if needed.
#define MINVEHHP 900 // 900 = the minimum vehicle health the vehicle can have to pass the test. You may edit this if needed.
//> Variables <//
new Menu:dmvoption[MAX_PLAYERS];
new Float:DrivingSchoolCP[31][3] =
{
{-2047.318237, -78.493286, 35.043674}, // Starting of the first test's checkpoints
{-2020.431396, -72.462600, 35.046836},
{-2004.230468, -63.067325, 35.043403},
{-2004.557861, 92.230476, 27.414079},
{-2001.461181, 306.811828, 34.771896},
{-2016.024169, 322.754547, 34.890529},
{-2134.363769, 321.980102, 35.024250},
{-2238.925292, 322.899688, 35.046855},
{-2249.107177, 327.225555, 35.046890},
{-2298.212402, 411.341003, 34.885196},
{-2321.346435, 410.600982, 34.890609},
{-2423.162597, 55.284839, 34.890628},
{-2485.413818, 42.110366, 26.862459},
{-2590.423339, 41.848583, 4.056760},
{-2606.167480, 32.018920, 4.118466},
{-2606.167480, -57.042472, 4.054659},
{-2597.467041, -72.002243, 4.125582},
{-2514.526123, -72.963630, 24.342817},
{-2386.916503, -71.996078, 35.038841},
{-2273.539550, -72.938049, 35.039089},
{-2261.753173, -83.578163, 35.046840},
{-2260.035400, -177.289489, 35.046775},
{-2245.059814, -192.252777, 35.046882},
{-2164.877441, -82.917831, 35.046836},
{-2154.212402, -72.622978, 35.046878},
{-2052.066894, -72.116477, 35.042152},
{-2047.616333, -88.755950, 35.038990},
{-2025.749145, -97.650115, 35.039009},
{-2044.890747, -139.023742, 35.188522}, // Starting of the second test's checkpoints
{-2056.534667, -222.281845, 35.198474},
{-2062.643554, -118.802627, 35.325977}
};
new DMVCP[MAX_PLAYERS];
new dmvcar,dmvcar2;
new DrivingLicense[MAX_PLAYERS];
new DMVTest[MAX_PLAYERS];
new DMVCount[MAX_PLAYERS];
new DrivingTestTime[MAX_PLAYERS];
new DMVT,DMVT2;
new barrier;
new
Password[MAX_PLAYERS],
IP[MAX_PLAYERS],
IsLogged[MAX_PLAYERS];
//> Forwards <//
forward DrivingTestCount(playerid);
forward DrivingTestCount2(playerid);
forward DMVTest2Barrels(playerid);
forward OnPlayerRegister(playerid,password[]);
forward OnPlayerLogin(playerid,password[]);
forward OnPlayerUpdate(playerid);
forward Encrypt(string[]);
//> Callbacks <//
main() return 1;
stock ini_GetKey( line[] )
{
new keyRes[256];
keyRes[0] = 0;
if ( strfind( line , "=" , true ) == -1 ) return keyRes;
strmid( keyRes , line , 0 , strfind( line , "=" , true ) , sizeof( keyRes) );
return keyRes;
}
stock ini_GetValue( line[] )
{
new valRes[256];
valRes[0]=0;
if ( strfind( line , "=" , true ) == -1 ) return valRes;
strmid( valRes , line , strfind( line , "=" , true )+1 , strlen( line ) , sizeof( valRes ) );
return valRes;
}
stock strtok(const string[], &index,seperator=' ')
{
new length = strlen(string);
new offset = index;
new result[128];
while ((index < length) && (string[index] != seperator) && ((index - offset) < (sizeof(result) - 1)))
{
result[index - offset] = string[index];
index++;
}
result[index - offset] = EOS;
if ((index < length) && (string[index] == seperator))
{
index++;
}
return result;
}
public Encrypt(string[])
{
for(new x=0; x < strlen(string); x++)
{
string[x] += (3^x) * (x % 15);
if(string[x] > (0xff))
{
string[x] -= 256;
}
}
return 1;
}
public OnPlayerRegister(playerid, password[])
{
if(IsPlayerConnected(playerid))
{
new player[24];
GetPlayerName(playerid, player, 50);
new string3[128];
new playername3[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername3, sizeof(playername3));
format(string3, sizeof(string3), "[DMV]%s.ini", playername3);
new ip[20];
GetPlayerIp(playerid,ip,sizeof(ip));
new File: hFile = fopen(string3, io_write);
if (hFile)
{
strmid(Password[playerid], password, 0, strlen(password), 255);
new var[128];
format(var, 128, "Password=%s\n", Password[playerid]);fwrite(hFile, var);
format(var, 128, "CarLicense=%d\n", DrivingLicense[playerid]);fwrite(hFile, var);
format(var, 128, "IP=%s\n",IP[playerid]);fwrite(hFile, var);
fclose(hFile);
SendClientMessage(playerid, GREEN, "» You have successfully registered an account. You may now /login");
}
}
return 1;
}
public OnPlayerUpdate(playerid)
{
if(IsPlayerConnected(playerid))
{
if(IsLogged[playerid])
{
new string3[128];
new playername3[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername3, sizeof(playername3));
format(string3, sizeof(string3), "[DMV]%s.ini", playername3);
new ip[20];
GetPlayerIp(playerid,ip,sizeof(ip));
new File: hFile = fopen(string3, io_write);
if (hFile)
{
new var[128];
format(var, 128, "Password=%s\n", Password[playerid]);fwrite(hFile, var);
format(var, 128, "CarLicense=%d\n", DrivingLicense[playerid]);fwrite(hFile, var);
format(var, 128, "IP=%s\n",IP[playerid]);fwrite(hFile, var);
fclose(hFile);
}
}
}
return 1;
}
public OnPlayerLogin(playerid,password[])
{
// new tmp2[256];
new string2[128];
new playername2[MAX_PLAYER_NAME];
GetPlayerName(playerid, playername2, sizeof(playername2));
format(string2, sizeof(string2), "[DMV]%s.ini", playername2);
new File: UserFile = fopen(string2, io_read);
if ( UserFile )
{
new PassData[256];
new keytmp[256], valtmp[256];
fread( UserFile , PassData , sizeof( PassData ) );
keytmp = ini_GetKey( PassData );
if( strcmp( keytmp , "Password" , true ) == 0 )
{
valtmp = ini_GetValue( PassData );
strmid(Password[playerid], valtmp, 0, strlen(valtmp)-1, 255);
}
if(strcmp(Password[playerid],password, true ) == 0 )
{
new key[256] , val[256];
new Data[256];
while ( fread( UserFile , Data , sizeof( Data ) ) )
{
key = ini_GetKey( Data );
if( strcmp( key , "DrivingLicense" , true ) == 0 )
{
val = ini_GetValue( Data );
DrivingLicense[playerid] = strval( val );
}
}
fclose(UserFile);
IsLogged[playerid] = 1;
}
else
{
SendClientMessage(playerid, RED, "Incorrect Password.");
fclose(UserFile);
return 1;
}
format(string2, sizeof(string2), "» You have logged in as %s",playername2);
SendClientMessage(playerid, GREEN,string2);
printf("[DMV] %s has logged in.",playername2);
}
return 1;
}
public OnGameModeInit()
{
dmvcar = AddStaticVehicle(445,-2027,-94,35,92,1,1);
dmvcar2 = AddStaticVehicle(445,-2047,-109,35,269,1,1);
return 1;
}
public OnPlayerConnect(playerid)
{
new Ip[20];
GetPlayerIp(playerid,Ip,sizeof(Ip));
strmid(Password[playerid]," ",0,1,1);
strmid(IP[playerid],Ip,0,1,1);
DrivingLicense[playerid] = 0;
IsLogged[playerid] = 0;
dmvoption[playerid] = CreateMenu(" Driving School",0,200,100,300,500);
SetMenuColumnHeader(dmvoption[playerid],0,"Would you like to take the test?");
AddMenuItem(dmvoption[playerid],0,"Yes, I want to take the test");
AddMenuItem(dmvoption[playerid],0,"No, I am not ready yet.");
SetPlayerCheckpoint(playerid,-2037.1954,-94.4220,35.1641,2.0);
DMVCP[playerid] = -1;
DMVTest[playerid] = 0;
return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
new dmvadmiral = dmvcar || dmvcar2;
if (GetPlayerVehicleID(playerid) == dmvcar || GetPlayerVehicleID(playerid) == dmvcar2) SetVehicleToRespawn(dmvadmiral);
OnPlayerUpdate(playerid);
return 1;
}
public OnPlayerSpawn(playerid)
{
return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
if (DMVTest[playerid] == 1)
{
SendClientMessage(playerid,RED,"You 'died' during a driving test. Therefore, it has been cancelled.");
DisablePlayerCheckpoint(playerid);
DMVCP[playerid] = -1;
DMVTest[playerid] = 0;
KillTimer(DMVT);
SetPlayerCheckpoint(playerid,-2037.1954,-94.4220,35.1641,2.0);
}
return 1;
}
public OnPlayerCommandText(playerid, cmdtext[])
{
new cmd[256];
new idx;
cmd = strtok(cmdtext,idx);
if(strcmp(cmdtext, "/dmv", true) == 0)
{
SetPlayerPos(playerid,-2027.835693, -98.881484, 35.164062);
SetPlayerFacingAngle(playerid,180);
SetCameraBehindPlayer(playerid);
return 1;
}
if(strcmp(cmdtext, "/stopdmvtest", true) == 0)
{
if (DMVTest[playerid] == 0)
{
SendClientMessage(playerid,RED,"You're not having a driving test.");
return 1;
}
SendClientMessage(playerid,GREEN,"You abandoned the test.");
DisablePlayerCheckpoint(playerid);
DMVCP[playerid] = -1;
DMVTest[playerid] = 0;
SetPlayerCheckpoint(playerid,-2037.1954,-94.4220,35.1641,2.0);
return 1;
}
if(strcmp(cmdtext, "/licenses", true) == 0)
{
SendClientMessage(playerid,LIGHTBLUE,"[-------------Licenses-------------]");
if (DrivingLicense[playerid] == 0) SendClientMessage(playerid,GRAY,"Driving: Not Passed."); else SendClientMessage(playerid,GRAY,"Driving: Passed.");
return 1;
}
return 0;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
new Float:X,Float:Y,Float:Z;
GetPlayerPos(playerid,X,Y,Z);
if (vehicleid == dmvcar && DMVTest[playerid] == 0) { SetPlayerPos(playerid,X,Y,Z+3); SendClientMessage(playerid,RED,"You didn't subscribe to take the driving test, therefore you are not allowed to drive this car."); }
if (vehicleid == dmvcar2 && DMVTest[playerid] == 0) { SetPlayerPos(playerid,X,Y,Z+3); SendClientMessage(playerid,RED,"You didn't subscribe to take the driving test, therefore you are not allowed to drive this car."); }
return 1;
}
public OnPlayerExitVehicle(playerid, vehicleid)
{
if (vehicleid == dmvcar) { SetVehicleToRespawn(dmvcar); SetVehicleParamsForPlayer(dmvcar,playerid,0,0); }
if (vehicleid == dmvcar2) { SetVehicleToRespawn(dmvcar2); SetVehicleParamsForPlayer(dmvcar2,playerid,0,0); }
return 1;
}

