Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- /*
- (c) für NiLsx3 aka. Easy
- Haussystem 2012
- */
- #include a_samp
- #include ocmd
- #define MAX_HAUSER 80
- #define STARTMAPICON 19
- #define INTERIOR_TYPWAHL 500
- #define INTERIOR_WAHL 501
- #define INTERIOR_WAHL_BEDSIT 502
- #define INTERIOR_WAHL_APPARTMENT 503
- #define INTERIOR_WAHL_BUNGALOW 504
- #define INTERIOR_WAHL_LUXUS 505
- #define INTERIOR_WAHL_HAUS 506
- #define HAUS_PREIS 507
- enum h
- {
- Besitzer[MAX_PLAYER_NAME],
- bool:Gekauft,
- bool:Abgeschlossen,
- Float:Pos[6],
- Int,
- VirtualWorld,
- Preis,
- PickupID,
- Text3D:Label
- };
- new Haus[MAX_HAUSER][h];
- enum ii
- {
- Float:posx,
- Float:posy,
- Float:posz,
- _interior,
- };
- new IntInfo[][ii] =
- {
- { 1.200000,-3.400000,999.400024,2 }, // Trailer
- { 244.500000,305.000000,999.099975,1 },// 'Bedsit'
- { 267.100006,305.000000,999.099975,2 },// 'Bedsit'
- { 301.299987,306.299987,1003.500000,4 },// 'Bedsit'
- { 344.299987,305.200012,999.099975,6 },// 'Bedsit'
- { 446.100006,507.899993,1001.400024,12 },// '2 Zimmer Apartment'
- { -42.400001,1408.199951,1084.400024,8 },// '3 Zimmer Bungalow'
- { 2464.100097,-1698.599975,1013.500000,2 },// '3 Zimmer Bungalow'
- { 386.100006,1471.800048,1080.099975,15 },// '3 Zimmer Apartment'
- { 221.600006,1143.599975,1082.599975,4 },// '3 Zimmer Apartment'
- { 260.600006,1238.800048,1084.199951,9 },// '4 Zimmer Apartment'
- { 261.000000,1286.000000,1080.199951,4 },// '4 Zimmer Haus'
- { 745.299987,1437.699951,1102.699951,6 },// '4 Zimmer Apartment'
- { 376.299987,1417.199951,1081.300048,15 },// '4 Zimmer Apartment'
- { 27.100000,1341.099975,1084.300048,10 },// '4 Zimmer Haus'
- { 2526.399902,-1679.000000,1015.400024,1 },// '4 Zimmer Bedsit'
- { 222.800003,1288.699951,1082.099975,1 },// '4 Zimmer Apartment'
- { 23.000000,1405.599975,1084.400024,5 },// '4 Zimmer Haus'
- { 235.300003,1189.199951,1080.199951,3 },// '4 Zimmer Haus'
- { 447.000000,1400.300048,1084.300048,2 },// '5 Zimmer Apartment'
- { 234.199996,1064.900024,1084.199951,6 },// '5 Zimmer Haus'
- { 327.899993,1478.300048,1084.400024,15 },// '5 Zimmer Slum'
- { 295.399993,1473.199951,1080.199951,15 },// '5 Zimmer Apartment'
- { 140.399993,1370.300048,1083.800048,5 },// '6 Zimmer Haus'
- { 489.700012,1402.500000,1080.199951,2 },// '6 Zimmer Luxus'
- { 83.300003,1324.699951,1083.800048,9 },// '6 Zimmer Haus'
- { 231.399993,1114.099975,1080.900024,5 },// '7 Zimmer Luxus'
- { 225.600006,1023.500000,1084.000000,7 },// '8 Zimmer Luxus'
- { -285.899993,1470.800048,1084.300048,15 },// '4 Zimmer Luxus'
- { -262.700012,1456.599975,1084.300048,4 },// '3 Zimmer Luxus'
- { -68.800003,1354.699951,1080.199951,6 },// '2 Zimmer Luxus'
- { 2254.300048,-1140.000000,1050.599975,9 },// '2 Zimmer Luxus'
- { 2261.300048,-1135.900024,1050.599975,10 },// '3 Zimmer Luxus'
- { 2324.399902,-1147.500000,1050.699951,12 }// '8 Zimmer Luxus'
- };
- public OnFilterScriptInit()
- {
- for(new i;i!=MAX_HAUSER;i++) LoadHaus(i);
- return true;
- }
- public OnFilterScriptExit()
- {
- for(new i;i!=MAX_HAUSER;i++) SaveHaus(i);
- return true;
- }
- public OnGameModeExit()
- {
- for(new i;i!=MAX_HAUSER;i++) SaveHaus(i);
- return true;
- }
- public OnPlayerConnect(playerid)
- {
- new pfad[20];
- for(new i;i!=MAX_HAUSER;i++)
- {
- format(pfad,20,"Häuser/Haus %d.ini",i);
- if(fexist(pfad)) SetPlayerMapIcon(playerid,STARTMAPICON+i,Haus[i][Pos][0],Haus[i][Pos][1],Haus[i][Pos][2],(Haus[i][Gekauft])?32:31,0xFFFFFFFF);
- }
- return true;
- }
- stock LoadHaus(hausid)
- {
- new inhalt[35],File:f;
- format(inhalt,20,"Häuser/Haus %d.ini",hausid);
- if(!fexist(inhalt)) return false;
- f=fopen(inhalt,io_read);
- while(fread(f,inhalt))
- {
- StripNL(inhalt);
- if(strfind(inhalt,"Besitzer: ")!=-1) strdel(inhalt,0,10), format(Haus[hausid][Besitzer],MAX_PLAYER_NAME,inhalt);
- else if(strfind(inhalt,"Gekauft: ")!=-1) strdel(inhalt,0,9), Haus[hausid][Gekauft]=(strval(inhalt))?true:false;
- else if(strfind(inhalt,"Abgeschlossen: ")!=-1) strdel(inhalt,0,15), Haus[hausid][Abgeschlossen]=(strval(inhalt))?true:false;
- else if(strfind(inhalt,"AußenPosX: ")!=-1) strdel(inhalt,0,11), Haus[hausid][Pos][0]=floatstr(inhalt);
- else if(strfind(inhalt,"AußenPosY: ")!=-1) strdel(inhalt,0,11), Haus[hausid][Pos][1]=floatstr(inhalt);
- else if(strfind(inhalt,"AußenPosZ: ")!=-1) strdel(inhalt,0,11), Haus[hausid][Pos][2]=floatstr(inhalt);
- else if(strfind(inhalt,"InnenPosX: ")!=-1) strdel(inhalt,0,11), Haus[hausid][Pos][3]=floatstr(inhalt);
- else if(strfind(inhalt,"InnenPosY: ")!=-1) strdel(inhalt,0,11), Haus[hausid][Pos][4]=floatstr(inhalt);
- else if(strfind(inhalt,"InnenPosZ: ")!=-1) strdel(inhalt,0,11), Haus[hausid][Pos][5]=floatstr(inhalt);
- else if(strfind(inhalt,"Interior: ")!=-1) strdel(inhalt,0,10), Haus[hausid][Int]=strval(inhalt);
- else if(strfind(inhalt,"VirtualWorld: ")!=-1) strdel(inhalt,0,14), Haus[hausid][VirtualWorld]=strval(inhalt);
- else if(strfind(inhalt,"Preis: ")!=-1) strdel(inhalt,0,7), Haus[hausid][Preis]=strval(inhalt);
- }
- Haus[hausid][PickupID] = CreatePickup((Haus[hausid][Gekauft])?1239:1273,1,Haus[hausid][Pos][0],Haus[hausid][Pos][1],Haus[hausid][Pos][2]);
- fclose(f);
- return true;
- }
- stock SaveHaus(hausid)
- {
- if(!Haus[hausid][Int]) return false;
- new inhalt[35],File:f;
- format(inhalt,35,"Häuser/Haus %d.ini",hausid);
- f=fopen(inhalt,io_write);
- format(inhalt,35,"Besitzer: %s\r\n",Haus[hausid][Besitzer]),fwrite(f,inhalt);
- format(inhalt,35,"Gekauft: %d\r\n",Haus[hausid][Gekauft]),fwrite(f,inhalt);
- format(inhalt,35,"Abgeschlossen: %d\r\n",Haus[hausid][Abgeschlossen]),fwrite(f,inhalt);
- format(inhalt,35,"AußenPosX: %f\r\n",Haus[hausid][Pos][0]),fwrite(f,inhalt);
- format(inhalt,35,"AußenPosY: %f\r\n",Haus[hausid][Pos][1]),fwrite(f,inhalt);
- format(inhalt,35,"AußenPosZ: %f\r\n",Haus[hausid][Pos][2]),fwrite(f,inhalt);
- format(inhalt,35,"InnenPosX: %f\r\n",Haus[hausid][Pos][3]),fwrite(f,inhalt);
- format(inhalt,35,"InnenPosY: %f\r\n",Haus[hausid][Pos][4]),fwrite(f,inhalt);
- format(inhalt,35,"InnenPosZ: %f\r\n",Haus[hausid][Pos][5]),fwrite(f,inhalt);
- format(inhalt,35,"Interior: %d\r\n",Haus[hausid][Int]),fwrite(f,inhalt);
- format(inhalt,35,"VirtualWorld: %d\r\n",Haus[hausid][VirtualWorld]),fwrite(f,inhalt);
- format(inhalt,35,"Preis: %d\r\n",Haus[hausid][Preis]),fwrite(f,inhalt);
- fclose(f);
- return true;
- }
- stock CreateHaus(Owner[],Float:X,Float:Y,Float:Z,Float:iX,Float:iY,Float:iZ,Interior,p)
- {
- new ID=GetFreeHausID();
- if(ID==-1) print("Es sind bereits zuviele Häuser erstellt worden | Lösch zu erst eins");
- format(Haus[ID][Besitzer],MAX_PLAYER_NAME,Owner);
- Haus[ID][Gekauft]=false;
- Haus[ID][Abgeschlossen]=true;
- Haus[ID][Pos][0]=X;
- Haus[ID][Pos][1]=Y;
- Haus[ID][Pos][2]=Z;
- Haus[ID][Pos][3]=iX;
- Haus[ID][Pos][4]=iY;
- Haus[ID][Pos][5]=iZ;
- Haus[ID][Int]=Interior;
- Haus[ID][Preis]=p;
- Haus[ID][VirtualWorld]=GetFreeInteriorVW(Haus[ID][Int]);
- Haus[ID][PickupID] = CreatePickup(1273,1,X,Y,Z);
- for(new i,j=GetMaxPlayers();i!=j;i++) if(IsPlayerConnected(i)) SetPlayerMapIcon(i,STARTMAPICON+ID,X,Y,Z,31,0xFFFFFFFF);
- new string[55];
- format(string,55,"Dieses Haus steht zum Verkauf\n\nPreis: %d $",Haus[ID][Preis]);
- Haus[ID][Label] = Create3DTextLabel(string,0x33AA33FF,X,Y,Z,100.0,0,1);
- return ID;
- }
- stock DeleteHaus(hausid)
- {
- strdel(Haus[hausid][Besitzer],0,MAX_PLAYER_NAME);
- Haus[hausid][Gekauft]=false;
- Haus[hausid][Abgeschlossen]=false;
- Haus[hausid][Pos][0]=0;
- Haus[hausid][Pos][1]=0;
- Haus[hausid][Pos][2]=0;
- Haus[hausid][Pos][3]=0;
- Haus[hausid][Pos][4]=0;
- Haus[hausid][Pos][5]=0;
- Haus[hausid][Int]=0;
- Haus[hausid][VirtualWorld]=0;
- DestroyPickup(Haus[hausid][PickupID]);
- Delete3DTextLabel(Haus[hausid][Label]);
- for(new i,j=GetMaxPlayers();i!=j;i++) if(IsPlayerConnected(i)) RemovePlayerMapIcon(i,STARTMAPICON+hausid);
- new pfad[20];
- format(pfad,20,"Häuser/Haus %d.ini",hausid);
- fremove(pfad);
- return true;
- }
- ocmd:hauserstellen(playerid)
- {
- //if(!IsPlayerAdmin(playerid)) return true;
- ShowPlayerDialog(playerid,INTERIOR_TYPWAHL,DIALOG_STYLE_LIST,"Interior Typ auswählen","Trailer\nBedsit\nAppartment\nBungalow\nLuxus\nHaus","Weiter","Abbrechen");
- return true;
- }
- ocmd:buyhaus(playerid)
- {
- new ID=GetNearestHaus(playerid,4);
- if(ID==-1) return SendClientMessage(playerid,-1,"Du bist nicht in der Nähe eines Hauses");
- if(GetPlayerMoney(playerid)<Haus[ID][Preis]) return SendClientMessage(playerid,-1,"Soviel Geld hast du nicht bei dir");
- if(!strcmp(Haus[ID][Besitzer],"Niemand"))
- {
- GetPlayerName(playerid,Haus[ID][Besitzer],MAX_PLAYER_NAME);
- DestroyPickup(Haus[ID][PickupID]);
- RemovePlayerMapIcon(playerid,STARTMAPICON+ID);
- SetPlayerMapIcon(playerid,STARTMAPICON+ID,Haus[ID][Pos][0],Haus[ID][Pos][1],Haus[ID][Pos][2],32,0xFFFFFFFF);
- Haus[ID][PickupID] = CreatePickup(1239,1,Haus[ID][Pos][0],Haus[ID][Pos][1],Haus[ID][Pos][2]);
- new string[65];
- format(string,65,"Dieses Haus gehört:\n%s%s",Haus[ID][Besitzer],(Haus[ID][Abgeschlossen])?("\n\nAbgeschlossen"):(""));
- Update3DTextLabelText(Haus[ID][Label],0x33AA33FF,string);
- return true;
- }
- return SendClientMessage(playerid,-1,"Dieses Haus kann man nicht kaufen");
- }
- ocmd:sellhaus(playerid)
- {
- new ID=GetNearestHaus(playerid,4);
- if(ID==-1) return SendClientMessage(playerid,-1,"Du bist nicht in der Nähe eines Hauses");
- Haus[ID][Abgeschlossen]=true;
- DestroyPickup(Haus[ID][PickupID]);
- RemovePlayerMapIcon(playerid,STARTMAPICON+ID);
- SetPlayerMapIcon(playerid,STARTMAPICON+ID,Haus[ID][Pos][0],Haus[ID][Pos][1],Haus[ID][Pos][2],31,0xFFFFFFFF);
- Haus[ID][PickupID] = CreatePickup(1273,1,Haus[ID][Pos][0],Haus[ID][Pos][1],Haus[ID][Pos][2]);
- new string[55];
- format(string,55,"Dieses Haus steht zum Verkauf\n\nPreis: %d $",Haus[ID][Preis]);
- Update3DTextLabelText(Haus[ID][Label],0x33AA33FF,string);
- GivePlayerMoney(playerid,Haus[ID][Preis]/2);
- return SendClientMessage(playerid,-1,"Du hast dein Haus erfolgreich verkauft");
- }
- ocmd:speicherhauser(playerid)
- {
- //if(!IsPlayerAdmin(playerid)) return true;
- for(new i;i!=MAX_HAUSER;i++) SaveHaus(i);
- return SendClientMessage(playerid,-1,"Aller Häusergespeichert");
- }
- ocmd:deletehaus(playerid)
- {
- //if(!IsPlayerAdmin(playerid)) return true;
- new ID=GetNearestHaus(playerid,4);
- if(ID==-1) return SendClientMessage(playerid,-1,"Du bist nicht in der Nähe eines Hauses");
- DeleteHaus(ID);
- return SendClientMessage(playerid,-1,"Du hast das Haus erfolgreich gelöscht");
- }
- ocmd:lockhaus(playerid)
- {
- new ID=GetNearestHaus(playerid,4);
- if(ID==-1) return SendClientMessage(playerid,-1,"Du bist nicht in der Nähe eines Hauses");
- new name[MAX_PLAYER_NAME];
- GetPlayerName(playerid,name,MAX_PLAYER_NAME);
- if(strcmp(Haus[ID][Besitzer],name)) return SendClientMessage(playerid,-1,"Du bist nicht Besitzer dieses Hauses");
- Haus[ID][Abgeschlossen]=(Haus[ID][Abgeschlossen])?false:true;
- new string[65];
- format(string,65,"Dieses Haus gehört:\n%s%s",Haus[ID][Besitzer],(Haus[ID][Abgeschlossen])?("\n\nAbgeschlossen"):(""));
- Update3DTextLabelText(Haus[ID][Label],0x33AA33FF,string);
- return SendClientMessage(playerid,-1,(!Haus[ID][Abgeschlossen])?("Du hast dein Haus aufgeschlossen"):("Du hast dein Haus abgeschlossen"));
- }
- public OnDialogResponse(playerid,dialogid,response,listitem,inputtext[])
- {
- switch(dialogid)
- {
- case INTERIOR_TYPWAHL:
- {
- if(!response) return false;
- switch(listitem)
- {
- case 0:
- {
- SetPVarInt(playerid,"HUHNFISCH_Slot",0);
- ShowPlayerDialog(playerid,HAUS_PREIS,DIALOG_STYLE_INPUT,"Kauf Preis","Wie hoch soll der Kaufpreis für dieses Haus sein?","OK","Zurück");
- }
- case 1:
- {
- ShowPlayerDialog(playerid,INTERIOR_WAHL_BEDSIT,DIALOG_STYLE_LIST,"Interior auswählen","Bedsit 1\nBedsit 2\nBedsit 3\nBedsit 4\n4 Zimmer Bedsit\nZurück","Auswählen","Abbruch");
- return true;
- }
- case 2:
- {
- ShowPlayerDialog(playerid,INTERIOR_WAHL_APPARTMENT,DIALOG_STYLE_LIST,"Interior auswählen","2 Zimmer Apartment\n3 Zimmer Apartment {33AA33}1\n3 Zimmer Apartment {33AA33}2\n4 Zimmer Apartment {33AA33}1\n4 Zimmer Apartment {33AA33}2\n4 Zimmer Apartment {33AA33}3\n4 Zimmer Apartment {33AA33}4\n5 Zimmer Apartment {33AA33}1\n5 Zimmer Apartment {33AA33}2\nZurück","Auswählen","Abbruch");
- return true;
- }
- case 3:
- {
- ShowPlayerDialog(playerid,INTERIOR_WAHL_BUNGALOW,DIALOG_STYLE_LIST,"Interior auswählen","3 Zimmer Bungalow {33AA33}1\n3 Zimmer Bungalow {33AA33}2\nZurück","Auswählen","Abbruch");
- return true;
- }
- case 4:
- {
- ShowPlayerDialog(playerid,INTERIOR_WAHL_LUXUS,DIALOG_STYLE_LIST,"Interior auswählen","5 Zimmer Luxus\n6 Zimmer Luxus\n7 Zimmer Luxus\n8 Zimmer Luxus\n4 Zimmer Luxus\n3 Zimmer Luxus {33AA33}1\n2 Zimmer Luxus {33AA33}1\n2 Zimmer Luxus {33AA33}2\n3 Zimmer Luxus {33AA33}2\n8 Zimmer Luxus\nZurück","Auswählen","Abbruch");
- return true;
- }
- case 5:
- {
- ShowPlayerDialog(playerid,INTERIOR_WAHL_HAUS,DIALOG_STYLE_LIST,"Interior auswählen","4 Zimmer Haus {33AA33}1\n4 Zimmer Haus {33AA33}2\n4 Zimmer Haus {33AA33}3\n4 Zimmer Haus {33AA33}4\n5 Zimmer Haus\n6 Zimmer Haus 1\6 Zimmer Haus 2\nZurück","Auswählen","Abbruch");
- return true;
- }
- }
- return true;
- }
- case INTERIOR_WAHL_BEDSIT:
- {
- if(!response) return ocmd_hauserstellen(playerid);
- switch(listitem)
- {
- case 0: SetPVarInt(playerid,"HUHNFISCH_Slot",1);
- case 1: SetPVarInt(playerid,"HUHNFISCH_Slot",2);
- case 2: SetPVarInt(playerid,"HUHNFISCH_Slot",3);
- case 3: SetPVarInt(playerid,"HUHNFISCH_Slot",4);
- case 4: SetPVarInt(playerid,"HUHNFISCH_Slot",15);
- default: return ocmd_hauserstellen(playerid);
- }
- ShowPlayerDialog(playerid,HAUS_PREIS,DIALOG_STYLE_INPUT,"Kauf Preis","Wie hoch soll der Kaufpreis für dieses Haus sein?","OK","Zurück");
- }
- case INTERIOR_WAHL_APPARTMENT:
- {
- if(!response) return ocmd_hauserstellen(playerid);
- switch(listitem)
- {
- case 0: SetPVarInt(playerid,"HUHNFISCH_Slot",6);
- case 1: SetPVarInt(playerid,"HUHNFISCH_Slot",9);
- case 2: SetPVarInt(playerid,"HUHNFISCH_Slot",10);
- case 3: SetPVarInt(playerid,"HUHNFISCH_Slot",11);
- case 4: SetPVarInt(playerid,"HUHNFISCH_Slot",13);
- case 5: SetPVarInt(playerid,"HUHNFISCH_Slot",14);
- case 6: SetPVarInt(playerid,"HUHNFISCH_Slot",17);
- case 7: SetPVarInt(playerid,"HUHNFISCH_Slot",20);
- case 8: SetPVarInt(playerid,"HUHNFISCH_Slot",23);
- default: return ocmd_hauserstellen(playerid);
- }
- ShowPlayerDialog(playerid,HAUS_PREIS,DIALOG_STYLE_INPUT,"Kauf Preis","Wie hoch soll der Kaufpreis für dieses Haus sein?","OK","Zurück");
- }
- case INTERIOR_WAHL_BUNGALOW:
- {
- if(!response) return ocmd_hauserstellen(playerid);
- switch(listitem)
- {
- case 0: SetPVarInt(playerid,"HUHNFISCH_Slot",7);
- case 1: SetPVarInt(playerid,"HUHNFISCH_Slot",8);
- default: return ocmd_hauserstellen(playerid);
- }
- ShowPlayerDialog(playerid,HAUS_PREIS,DIALOG_STYLE_INPUT,"Kauf Preis","Wie hoch soll der Kaufpreis für dieses Haus sein?","OK","Zurück");
- }
- case INTERIOR_WAHL_LUXUS:
- {
- if(!response) return ocmd_hauserstellen(playerid);
- switch(listitem)
- {
- case 0: SetPVarInt(playerid,"HUHNFISCH_Slot",22);
- case 1: SetPVarInt(playerid,"HUHNFISCH_Slot",25);
- case 2: SetPVarInt(playerid,"HUHNFISCH_Slot",27);
- case 3: SetPVarInt(playerid,"HUHNFISCH_Slot",28);
- case 4: SetPVarInt(playerid,"HUHNFISCH_Slot",29);
- case 5: SetPVarInt(playerid,"HUHNFISCH_Slot",30);
- case 6: SetPVarInt(playerid,"HUHNFISCH_Slot",31);
- case 7: SetPVarInt(playerid,"HUHNFISCH_Slot",32);
- case 8: SetPVarInt(playerid,"HUHNFISCH_Slot",33);
- case 9: SetPVarInt(playerid,"HUHNFISCH_Slot",34);
- default: return ocmd_hauserstellen(playerid);
- }
- ShowPlayerDialog(playerid,HAUS_PREIS,DIALOG_STYLE_INPUT,"Kauf Preis","Wie hoch soll der Kaufpreis für dieses Haus sein?","OK","Zurück");
- }
- case INTERIOR_WAHL_HAUS:
- {
- if(!response) return ocmd_hauserstellen(playerid);
- switch(listitem)
- {
- case 0: SetPVarInt(playerid,"HUHNFISCH_Slot",12);
- case 1: SetPVarInt(playerid,"HUHNFISCH_Slot",15);
- case 2: SetPVarInt(playerid,"HUHNFISCH_Slot",18);
- case 3: SetPVarInt(playerid,"HUHNFISCH_Slot",19);
- case 4: SetPVarInt(playerid,"HUHNFISCH_Slot",21);
- case 5: SetPVarInt(playerid,"HUHNFISCH_Slot",24);
- case 6: SetPVarInt(playerid,"HUHNFISCH_Slot",26);
- default: return ocmd_hauserstellen(playerid);
- }
- ShowPlayerDialog(playerid,HAUS_PREIS,DIALOG_STYLE_INPUT,"Kauf Preis","Wie hoch soll der Kaufpreis für dieses Haus sein?","OK","Zurück");
- }
- case HAUS_PREIS:
- {
- if(!inputtext[0]) return ocmd_hauserstellen(playerid);
- new preis=strval(inputtext);
- for(new i,l=strlen(inputtext);i!=l;i++)
- if(inputtext[i] >= '0' && inputtext[i] <= '9') continue;
- else return ShowPlayerDialog(playerid,HAUS_PREIS,DIALOG_STYLE_INPUT,"Kauf Preis","{FF0000}Error: {A9C4E4}Ein Preis ist doch kein Text\nWie hoch soll der Kaufpreis für dieses Haus sein?","OK","Zurück");
- if(!preis) return ShowPlayerDialog(playerid,HAUS_PREIS,DIALOG_STYLE_INPUT,"Kauf Preis","{FF0000}Error: {A9C4E4}Du musst schon einen Preis über 0 eingeben.\nWie hoch soll der Kaufpreis für dieses Haus sein?","OK","Zurück");
- new Float:x,Float:y,Float:z;
- GetPlayerPos(playerid,x,y,z);
- new Slot=GetPVarInt(playerid,"HUHNFISCH_Slot");
- DeletePVar(playerid,"HUHNFISCH_Slot");
- SetPlayerMapIcon(playerid,STARTMAPICON+CreateHaus("Niemand",x,y,z,IntInfo[Slot][posx],IntInfo[Slot][posy],IntInfo[Slot][posz],IntInfo[Slot][_interior],preis),x,y,z,31,0xFFFFFFFF);
- return SendClientMessage(playerid,-1,"Haus erfolgreich erstellt");
- }
- }
- return true;
- }
- public OnPlayerKeyStateChange(playerid,newkeys,oldkeys)
- {
- if(newkeys & KEY_SECONDARY_ATTACK)
- {
- if(!GetPVarInt(playerid,"HUHNFISCH_InHaus"))
- {
- new ID=GetNearestHaus(playerid,4);
- if(ID==-1) return true;
- if(Haus[ID][Abgeschlossen]) return true;
- SetPlayerInterior(playerid,Haus[ID][Int]);
- SetPlayerPos(playerid,Haus[ID][Pos][3],Haus[ID][Pos][4],Haus[ID][Pos][5]);
- SetPlayerVirtualWorld(playerid,Haus[ID][VirtualWorld]);
- SetPVarInt(playerid,"HUHNFISCH_InHaus",true);
- return true;
- }
- new ID=GetNearestHausExit(playerid,3);
- if(ID==-1) return true;
- SetPlayerInterior(playerid,0);
- SetPlayerPos(playerid,Haus[ID][Pos][0],Haus[ID][Pos][1],Haus[ID][Pos][2]);
- SetPlayerVirtualWorld(playerid,0);
- DeletePVar(playerid,"HUHNFISCH_InHaus");
- return true;
- }
- return true;
- }
- GetFreeHausID()
- {
- for(new i;i!=MAX_HAUSER;i++) if(!Haus[i][Int]) return i;
- return -1;
- }
- GetFreeInteriorVW(interior)
- {
- new VW;
- for(new i;i!=10000;i++)
- {
- for(new j;j!=MAX_HAUSER;j++) if(Haus[j][Int]==interior&&Haus[j][VirtualWorld]!=i) { VW=i; break; }
- if(VW) return i;
- }
- return -1;
- }
- GetNearestHaus(playerid, Float:dist = 12.0)
- {
- new Float:tmpdist = dist,Float:x,Float:y,Float:z;
- new Float:tempdist,ID=-1;
- for(new i;i!=MAX_HAUSER;i++)
- {
- if(!Haus[i][Int]) continue;
- GetPlayerPos(playerid,x,y,z);
- tempdist = GetPlayerDistanceFromPoint(playerid,Haus[i][Pos][0],Haus[i][Pos][1],Haus[i][Pos][2]);
- if(tempdist < tmpdist) tmpdist=tempdist,ID=i;
- }
- return ID;
- }
- GetNearestHausExit(playerid, Float:dist = 12.0)
- {
- new Float:tmpdist = dist,Float:x,Float:y,Float:z;
- new Float:tempdist,ID=-1;
- for(new i;i!=MAX_HAUSER;i++)
- {
- if(!Haus[i][Int]||Haus[i][VirtualWorld]!=GetPlayerVirtualWorld(playerid)) continue;
- GetPlayerPos(playerid,x,y,z);
- tempdist = GetPlayerDistanceFromPoint(playerid,Haus[i][Pos][3],Haus[i][Pos][4],Haus[i][Pos][5]);
- if(tempdist < tmpdist) tmpdist=tempdist,ID=i;
- }
- return ID;
- }
- StripNL(str[]) /* Credits to Y_Less */
- {
- new l=strlen(str);
- while(l--&&str[l]<=' ')str[l]='\0';
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement