Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /* SA-MP Filterscript
- *
- * (c) Copyright 2012, Kaliber
- *
- */
- #include <a_samp>
- /******************************************************************************/
- #define COLOR_LIGHTRED 0xFF6347AA
- #define COLOR_LIGHTBLUE 0x33CCFFAA
- #define COLOR_WHITE 0xFFFFFFAA
- #define COLOR_LIGHTGREEN 0x7CFC00AA
- #define COLOR_YELLOW 0xFFFF00AA
- #define PROPERTY_OFFSET(%0) \
- ((((%0) * ((%0) << 1)) << 2) + 65536)
- /******************************************************************************/
- #define Dialog0 7770
- #define Dialog1 7771
- #define Dialog2 7772
- #define Dialog3 7773
- #define Dialog4 7774
- #define Dialog5 7775
- #define Dialog6 7776
- #define Dialog7 7777
- #define Dialog8 7778
- #define Dialog9 7779
- #define Dialog10 7710
- #define Dialog11 7711
- #define Dialog12 7712
- /******************************************************************************/
- new autohaus[13];
- new preis[MAX_PLAYERS];
- /******************************************************************************/
- enum pInfo
- {
- Float:pX,
- Float:pY,
- Float:pZ,
- Float:pA,
- pFarbe1,
- pFarbe2,
- pKey,
- pModel,
- pOwner[MAX_PLAYER_NAME],
- pCheck,
- pPreis,
- };
- new PlayerInfo[MAX_PLAYERS][pInfo];
- /******************************************************************************/
- public OnFilterScriptInit()
- {
- for(new i; i<MAX_PLAYERS; i++)
- {
- if(IsPlayerConnected(i))
- {
- LoadVehicels(i);
- }
- }
- autohaus[0] = AddStaticVehicleEx(461,735.2484,-1331.4486,13.1340,214.0025,53,1,-1); // FCR
- autohaus[1] = AddStaticVehicleEx(462,736.5064,-1331.2197,13.1475,219.7516,2,1,-1); // Faggio
- autohaus[2] = AddStaticVehicleEx(471,738.4111,-1331.5459,13.0295,222.1726,74,91,-1); // Quad
- autohaus[3] = AddStaticVehicleEx(481,740.1883,-1331.2889,13.0631,223.3079,46,46,-1); // Fahrrad
- autohaus[4] = AddStaticVehicleEx(522,742.0646,-1331.5498,13.1181,229.8873,8,82,-1); // NRG500
- autohaus[5] = AddStaticVehicleEx(541,747.0084,-1332.6116,13.1694,219.3039,68,1,-1); // Bullet
- autohaus[6] = AddStaticVehicleEx(560,751.0853,-1332.6547,13.2497,223.7016,17,1,-1); // Sultan
- autohaus[7] = AddStaticVehicleEx(562,755.6702,-1332.7100,13.2031,224.5090,11,1,-1); // Elegy
- autohaus[8] = AddStaticVehicleEx(402,760.8101,-1332.9711,13.3755,226.7195,39,39,-1); // Buffalo
- autohaus[9] = AddStaticVehicleEx(411,765.5320,-1333.0695,13.2706,227.0404,112,1,-1); // Infernus
- autohaus[10] = AddStaticVehicleEx(415,770.0448,-1333.0028,13.3156,227.3441,62,1,-1); // Cheetah
- autohaus[11] = AddStaticVehicleEx(434,784.6574,-1333.4016,13.5064,142.3078,4,4,-1); // Hotnife
- autohaus[12] = AddStaticVehicleEx(451,784.3538,-1338.2789,13.2472,140.9542,18,1,-1); // Turismo
- print("\n\tCopyright (c) by Kaliber\n");
- return 1;
- }
- public OnPlayerStateChange(playerid, newstate, oldstate)
- {
- if(newstate == PLAYER_STATE_DRIVER)
- {
- if(GetPlayerVehicleID(playerid) == autohaus[0])
- {
- preis[playerid] = 7000;
- TogglePlayerControllable(playerid, 0);
- ShowPlayerDialog(playerid,Dialog0,DIALOG_STYLE_MSGBOX,"{FF0000}Autohaus","{FFFFFF}Willst du dieses Auto für {FF0000}7.000${FFFFFF} kaufen ?","Kaufen","Abbrechen");
- }
- else if(GetPlayerVehicleID(playerid) == autohaus[1])
- {
- preis[playerid] = 1000;
- TogglePlayerControllable(playerid, 0);
- ShowPlayerDialog(playerid,Dialog1,DIALOG_STYLE_MSGBOX,"{FF0000}Autohaus","{FFFFFF}Willst du diesen Roller für {FF0000}1.000${FFFFFF} kaufen ?","Kaufen","Abbrechen");
- }
- else if(GetPlayerVehicleID(playerid) == autohaus[2])
- {
- preis[playerid] = 70000;
- TogglePlayerControllable(playerid, 0);
- ShowPlayerDialog(playerid,Dialog2,DIALOG_STYLE_MSGBOX,"{FF0000}Autohaus","{FFFFFF}Willst du dieses Quad für {FF0000}70.000${FFFFFF} kaufen ?","Kaufen","Abbrechen");
- }
- else if(GetPlayerVehicleID(playerid) == autohaus[3])
- {
- preis[playerid] = 1000;
- TogglePlayerControllable(playerid, 0);
- ShowPlayerDialog(playerid,Dialog3,DIALOG_STYLE_MSGBOX,"{FF0000}Autohaus","{FFFFFF}Willst du dieses Fahrrad für {FF0000}1.000${FFFFFF} kaufen ?","Kaufen","Abbrechen");
- }
- else if(GetPlayerVehicleID(playerid) == autohaus[4])
- {
- preis[playerid] = 50000;
- TogglePlayerControllable(playerid, 0);
- ShowPlayerDialog(playerid,Dialog4,DIALOG_STYLE_MSGBOX,"{FF0000}Autohaus","{FFFFFF}Willst du dieses Motorrad für {FF0000}50.000${FFFFFF} kaufen ?","Kaufen","Abbrechen");
- }
- else if(GetPlayerVehicleID(playerid) == autohaus[5])
- {
- preis[playerid] = 175000;
- TogglePlayerControllable(playerid, 0);
- ShowPlayerDialog(playerid,Dialog5,DIALOG_STYLE_MSGBOX,"{FF0000}Autohaus","{FFFFFF}Willst du dieses Auto für {FF0000}175.000${FFFFFF} kaufen ?","Kaufen","Abbrechen");
- }
- else if(GetPlayerVehicleID(playerid) == autohaus[6])
- {
- preis[playerid] = 65000;
- TogglePlayerControllable(playerid, 0);
- ShowPlayerDialog(playerid,Dialog6,DIALOG_STYLE_MSGBOX,"{FF0000}Autohaus","{FFFFFF}Willst du dieses Auto für {FF0000}65.000${FFFFFF} kaufen ?","Kaufen","Abbrechen");
- }
- else if(GetPlayerVehicleID(playerid) == autohaus[7])
- {
- preis[playerid] = 14000;
- TogglePlayerControllable(playerid, 0);
- ShowPlayerDialog(playerid,Dialog7,DIALOG_STYLE_MSGBOX,"{FF0000}Autohaus","{FFFFFF}Willst du dieses Auto für {FF0000}14.000${FFFFFF} kaufen ?","Kaufen","Abbrechen");
- }
- else if(GetPlayerVehicleID(playerid) == autohaus[8])
- {
- preis[playerid] = 200000;
- TogglePlayerControllable(playerid, 0);
- ShowPlayerDialog(playerid,Dialog8,DIALOG_STYLE_MSGBOX,"{FF0000}Autohaus","{FFFFFF}Willst du dieses Auto für {FF0000}200.000${FFFFFF} kaufen ?","Kaufen","Abbrechen");
- }
- else if(GetPlayerVehicleID(playerid) == autohaus[9])
- {
- preis[playerid] = 250000;
- TogglePlayerControllable(playerid, 0);
- ShowPlayerDialog(playerid,Dialog9,DIALOG_STYLE_MSGBOX,"{FF0000}Autohaus","{FFFFFF}Willst du dieses Auto für {FF0000}250.000${FFFFFF} kaufen ?","Kaufen","Abbrechen");
- }
- else if(GetPlayerVehicleID(playerid) == autohaus[10])
- {
- preis[playerid] = 225000;
- TogglePlayerControllable(playerid, 0);
- ShowPlayerDialog(playerid,Dialog10,DIALOG_STYLE_MSGBOX,"{FF0000}Autohaus","{FFFFFF}Willst du dieses Auto für {FF0000}225.000${FFFFFF} kaufen ?","Kaufen","Abbrechen");
- }
- else if(GetPlayerVehicleID(playerid) == autohaus[11])
- {
- preis[playerid] = 500000;
- TogglePlayerControllable(playerid, 0);
- ShowPlayerDialog(playerid,Dialog11,DIALOG_STYLE_MSGBOX,"{FF0000}Autohaus","{FFFFFF}Willst du dieses Auto für {FF0000}500.000${FFFFFF} kaufen ?","Kaufen","Abbrechen");
- }
- else if(GetPlayerVehicleID(playerid) == autohaus[12])
- {
- preis[playerid] = 200000;
- TogglePlayerControllable(playerid, 0);
- ShowPlayerDialog(playerid,Dialog12,DIALOG_STYLE_MSGBOX,"{FF0000}Autohaus","{FFFFFF}Willst du dieses Auto für {FF0000}200.000${FFFFFF} kaufen ?","Kaufen","Abbrechen");
- }
- }
- return 1;
- }
- public OnFilterScriptExit()
- {
- for(new i; i<13; i++)
- {
- DestroyVehicle(autohaus[i]);
- }
- for(new i; i<MAX_PLAYERS; i++)
- {
- if(PlayerInfo[i][pKey] > 0)
- {
- DestroyVehicle(PlayerInfo[i][pKey]);
- }
- }
- print("Autohaus geschlossen !");
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- new string[256], str[256], sts[128], name[MAX_PLAYER_NAME];
- if(dialogid == Dialog0 || dialogid == Dialog1 || dialogid == Dialog2 || dialogid == Dialog3 || dialogid == Dialog4 || dialogid == Dialog5 || dialogid == Dialog6 || dialogid == Dialog7 || dialogid == Dialog8 || dialogid == Dialog9 || dialogid == Dialog10 || dialogid == Dialog11 || dialogid == Dialog12)
- {
- if(response == 1)
- {
- if(PlayerInfo[playerid][pKey] > 0)
- {
- SendClientMessage(playerid, COLOR_LIGHTRED,"Du besitzt schon ein Auto !");
- RemovePlayerFromVehicle(playerid);
- TogglePlayerControllable(playerid, 1);
- return 1;
- }
- if(GetPlayerMoney(playerid) >= preis[playerid])
- {
- GivePlayerMoney(playerid, -preis[playerid]);
- PlayerInfo[playerid][pPreis] = preis[playerid];
- format(string, sizeof(string),"769.4449, -1327.1703, 13.3326, 268.7346, 0, 0, %d, %d",GetVehicleModel(GetPlayerVehicleID(playerid)),preis[playerid]);
- SaveVehicles(string, playerid);
- PlayerInfo[playerid][pKey] = CreateVehicle(GetVehicleModel(GetPlayerVehicleID(playerid)), 769.4449,-1327.1703,13.3326,268.7346,0,0,-1);
- GetPlayerName(playerid, name, sizeof(name));
- format(sts, sizeof(sts),"%s",name);
- SetVehicleNumberPlate(PlayerInfo[playerid][pKey], sts);
- SetVehicleToRespawn(PlayerInfo[playerid][pKey]);
- SetPlayerPos(playerid, 769.7058,-1324.5464,13.3906);
- SetCameraBehindPlayer(playerid);
- TogglePlayerControllable(playerid, 1);
- format(str, sizeof(str),"Auto erfolgreich für %d$ gekauft !",preis[playerid]);
- SendClientMessage(playerid, COLOR_LIGHTBLUE, str);
- return 1;
- }
- else
- {
- RemovePlayerFromVehicle(playerid);
- TogglePlayerControllable(playerid, 1);
- SendClientMessage(playerid, COLOR_LIGHTRED,"Du besitzt zu wenig Geld für dieses Auto !");
- return 1;
- }
- }
- if(response == 0)
- {
- RemovePlayerFromVehicle(playerid);
- TogglePlayerControllable(playerid, 1);
- return 1;
- }
- }
- return 1;
- }
- public OnPlayerDisconnect(playerid)
- {
- if(PlayerInfo[playerid][pKey] > 0)
- {
- DestroyVehicle(PlayerInfo[playerid][pKey]);
- }
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- PlayerInfo[playerid][pKey] = 0;
- LoadVehicels(playerid);
- return 1;
- }
- public OnPlayerEnterCheckpoint(playerid)
- {
- if(PlayerInfo[playerid][pCheck] == 5)
- {
- GameTextForPlayer(playerid, "~r~Auto~n~~g~gefunden", 5000, 1);
- DisablePlayerCheckpoint(playerid);
- }
- return 1;
- }
- public OnPlayerCommandText(playerid, cmdtext[])
- {
- new cmd[256], idx, string[256];
- cmd = strtok(cmdtext, idx);
- if(strcmp(cmd, "/sellcar", true) == 0)
- {
- if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_LIGHTRED,"Du befindest dich in keinem Auto !");
- if(PlayerInfo[playerid][pKey] != GetPlayerVehicleID(playerid)) return SendClientMessage(playerid, COLOR_LIGHTRED,"Dieses Auto gehört nicht dir !");
- if(PlayerInfo[playerid][pKey] == 0) return SendClientMessage(playerid, COLOR_LIGHTRED,"Du besitzt noch kein Auto !");
- if(GetPlayerVehicleID(playerid) == PlayerInfo[playerid][pKey])
- {
- new Float: X, Float: Y, Float: Z, Float: A;
- GetVehiclePos(GetPlayerVehicleID(playerid), X, Y, Z);
- GetVehicleZAngle(GetPlayerVehicleID(playerid), A);
- PlayerInfo[playerid][pX] = 0;
- PlayerInfo[playerid][pY] = 0;
- PlayerInfo[playerid][pZ] = 0;
- PlayerInfo[playerid][pA] = 0;
- PlayerInfo[playerid][pModel] = 0;
- PlayerInfo[playerid][pFarbe1] = 0;
- PlayerInfo[playerid][pFarbe2] = 0;
- DeleteVehicle(playerid);
- DestroyVehicle(GetPlayerVehicleID(playerid));
- PlayerInfo[playerid][pKey] = 0;
- GivePlayerMoney(playerid, PlayerInfo[playerid][pPreis]/2);
- PlayerInfo[playerid][pPreis] = 0;
- SendClientMessage(playerid, COLOR_LIGHTBLUE,"Du hast dein Auto erfolgreich verkauft !");
- return 1;
- }
- else
- {
- return SendClientMessage(playerid, COLOR_LIGHTRED,"Dieses Auto gehört nicht dir !");
- }
- }
- if(strcmp(cmd, "/findcar", true) == 0)
- {
- if(PlayerInfo[playerid][pKey] == 0) return SendClientMessage(playerid, COLOR_LIGHTRED,"Du besitzt kein Auto !");
- new Float: X, Float: Y, Float: Z;
- GetVehiclePos(PlayerInfo[playerid][pKey], X, Y, Z);
- SetPlayerCheckpoint(playerid, X, Y, Z, 7.0);
- PlayerInfo[playerid][pCheck] = 5;
- SendClientMessage(playerid, COLOR_LIGHTBLUE,"Dein Auto wurde dir auf der Karte markiert !");
- return 1;
- }
- if(strcmp(cmd, "/lock", true) == 0)
- {
- if(PlayerInfo[playerid][pKey] == 0) return SendClientMessage(playerid, COLOR_LIGHTRED,"Du besitzt kein Auto !");
- new Float: X, Float: Y, Float: Z;
- GetVehiclePos(PlayerInfo[playerid][pKey], X, Y, Z);
- if(PlayerToPoint(10.0, playerid, X, Y, Z))
- {
- new engine, lights, alarm, doors, bonnet, boot, objective;
- GetVehicleParamsEx(PlayerInfo[playerid][pKey], engine, lights, alarm, doors, bonnet, boot, objective);
- if(doors == 0)
- {
- SetVehicleParamsEx(PlayerInfo[playerid][pKey], engine, lights, alarm, 1, bonnet, boot, objective);
- GameTextForPlayer(playerid, "~r~Abgeschlossen", 5000, 5);
- }
- else
- {
- SetVehicleParamsEx(PlayerInfo[playerid][pKey], engine, lights, alarm, 0, bonnet, boot, objective);
- GameTextForPlayer(playerid, "~g~Aufgeschlossen", 5000, 5);
- }
- }
- else
- {
- return SendClientMessage(playerid, COLOR_LIGHTRED,"Du befindest dich nicht in der Nähe von deinem Auto !");
- }
- return 1;
- }
- if(strcmp(cmd, "/parken", true) == 0)
- {
- if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, COLOR_LIGHTRED,"Du befindest dich in keinem Auto !");
- if(PlayerInfo[playerid][pKey] == 0) return SendClientMessage(playerid, COLOR_LIGHTRED,"Du besitzt noch kein Auto !");
- if(GetPlayerVehicleID(playerid) == PlayerInfo[playerid][pKey])
- {
- new Float: X, Float: Y, Float: Z, Float: A;
- GetVehiclePos(GetPlayerVehicleID(playerid), X, Y, Z);
- GetVehicleZAngle(GetPlayerVehicleID(playerid), A);
- PlayerInfo[playerid][pX] = X;
- PlayerInfo[playerid][pY] = Y;
- PlayerInfo[playerid][pZ] = Z;
- PlayerInfo[playerid][pA] = A;
- PlayerInfo[playerid][pModel] = GetVehicleModel(GetPlayerVehicleID(playerid));
- new color1, color2;
- GetVehicleColor(GetPlayerVehicleID(playerid), color1, color2);
- PlayerInfo[playerid][pFarbe1] = color1;
- PlayerInfo[playerid][pFarbe2] = color2;
- format(string, sizeof(string),"%f, %f, %f, %f, %d, %d, %d, %d",X,Y,Z,A,color1,color2,GetVehicleModel(GetPlayerVehicleID(playerid)),PlayerInfo[playerid][pPreis]);
- SaveVehicles(string,playerid);
- DestroyVehicle(GetPlayerVehicleID(playerid));
- PlayerInfo[playerid][pKey] = CreateVehicle(PlayerInfo[playerid][pModel],PlayerInfo[playerid][pX],PlayerInfo[playerid][pY],PlayerInfo[playerid][pZ],PlayerInfo[playerid][pA],PlayerInfo[playerid][pFarbe1],PlayerInfo[playerid][pFarbe2],-1);
- PutPlayerInVehicle(playerid, PlayerInfo[playerid][pKey], 0);
- SendClientMessage(playerid, COLOR_LIGHTBLUE,"Du hast dein Auto erfolgreich geparkt !");
- return 1;
- }
- else
- {
- return SendClientMessage(playerid, COLOR_LIGHTRED,"Dieses Auto gehört nicht dir !");
- }
- }
- return 0;
- }
- stock DeleteVehicle(playerid)
- {
- new name[MAX_PLAYER_NAME], string[256];
- GetPlayerName(playerid, name, sizeof(name));
- format(string, sizeof(string),"/Autohaus/%s.ini",name);
- if(fexist(string))
- {
- fremove(string);
- }
- return 1;
- }
- stock LoadVehicels(playerid)
- {
- new arrCoords[30][64];
- new strFromFile2[256];
- new string[256], name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, name, sizeof(name));
- format(string, sizeof(string),"/Autohaus/%s.ini",name);
- if(!fexist(string)) return 1;
- new File: file = fopen(string, io_read);
- if (file)
- {
- fread(file, strFromFile2);
- split(strFromFile2, arrCoords, ',');
- PlayerInfo[playerid][pX] = floatstr(arrCoords[0]);
- PlayerInfo[playerid][pY] = floatstr(arrCoords[1]);
- PlayerInfo[playerid][pZ] = floatstr(arrCoords[2]);
- PlayerInfo[playerid][pA] = floatstr(arrCoords[3]);
- PlayerInfo[playerid][pFarbe1] = strval(arrCoords[4]);
- PlayerInfo[playerid][pFarbe2] = strval(arrCoords[5]);
- PlayerInfo[playerid][pModel] = strval(arrCoords[6]);
- PlayerInfo[playerid][pPreis] = strval(arrCoords[7]);
- strmid(PlayerInfo[playerid][pOwner], name, 0, strlen(name), 255);
- new str[128];
- format(str, sizeof(str),"%s",name);
- PlayerInfo[playerid][pKey] = CreateVehicle(PlayerInfo[playerid][pModel],PlayerInfo[playerid][pX],PlayerInfo[playerid][pY],PlayerInfo[playerid][pZ],PlayerInfo[playerid][pA],PlayerInfo[playerid][pFarbe1],PlayerInfo[playerid][pFarbe2],-1);
- SetVehicleNumberPlate(PlayerInfo[playerid][pKey],str);
- SetVehicleToRespawn(PlayerInfo[playerid][pKey]);
- fclose(file);
- }
- return 1;
- }
- stock SaveVehicles(string[],playerid)
- {
- new entry[256],str[256],name[MAX_PLAYER_NAME];
- GetPlayerName(playerid, name, sizeof(name));
- format(str, sizeof(str),"/Autohaus/%s.ini",name);
- format(entry, sizeof(entry), "%s\n",string);
- new File:hFile;
- hFile = fopen(str, io_write);
- fwrite(hFile, entry);
- fclose(hFile);
- }
- /******************************************************************************/
- stock split(const strsrc[], strdest[][], delimiter)
- {
- new i, li;
- new aNum;
- new len;
- while(i <= strlen(strsrc)){
- if(strsrc[i]==delimiter || i==strlen(strsrc)){
- len = strmid(strdest[aNum], strsrc, li, i, 128);
- strdest[aNum][len] = 0;
- li = i+1;
- aNum++;
- }
- i++;
- }
- return 1;
- }
- strtok(const string[], &index)
- {
- new length = strlen(string);
- while ((index < length) && (string[index] <= ' '))
- {
- index++;
- }
- new offset = index;
- new result[20];
- while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
- {
- result[index - offset] = string[index];
- index++;
- }
- result[index - offset] = EOS;
- return result;
- }
- stock PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
- {
- if(IsPlayerConnected(playerid))
- {
- new Float:oldposx, Float:oldposy, Float:oldposz;
- new Float:tempposx, Float:tempposy, Float:tempposz;
- GetPlayerPos(playerid, oldposx, oldposy, oldposz);
- tempposx = (oldposx -x);
- tempposy = (oldposy -y);
- tempposz = (oldposz -z);
- if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
- {
- return 1;
- }
- }
- return 0;
- }
- stock GetVehicleColor(vehicleID, &color1, &color2)
- {
- vehicleID = PROPERTY_OFFSET(vehicleID);
- if(existproperty(_, "", vehicleID))
- {
- new
- colorStr[24],
- strPos
- ;
- getproperty(_, "", vehicleID, colorStr);
- strunpack(colorStr, colorStr);
- if((strPos = strfind(colorStr, "-")) != -1)
- {
- color1 = strval(colorStr);
- color2 = strval(colorStr[strPos + 1]);
- return 1;
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement