· 6 years ago · Apr 23, 2019, 03:50 PM
1/variables
2class PropStats
3{
4ID = 1;
5World = 1;
6Nombre = null;
7Precio = 0;
8Dueno = null;
9Compartido = null;
10Compartido2 = null;
11}
12
13//array
14Casa <- array( 1001, null );
15//creator of db
16mysql_query( db, "CREATE TABLE IF NOT EXISTS Casas ( ID INT, World INT, Nombre TEXT, Precio NUMERIC, Dueno TEXT, Compartido TEXT, Compartido2 TEXT, PX FLOAT, PY FLOAT, PZ FLOAT )" );
17
18CargarCasas();
19
20else if ( cmd == "addcasa" cmd == "crearcasa" cmd == "createprop" || cmd == "addprop" )
21{
22if ( !player.IsSpawned ) Error( "Intenta el comando cuando aparescas.", player );
23else if ( !text ) Cmd( "/"+ cmd + " <Nombre de propiedad> <Precio>", player );
24else
25{
26local Nombre = GetTok( text, " ", 1 );
27if ( !Nombre ) Cmd( "/"+ cmd + " <Nombre de propiedad> <Precio>", player );
28else if ( PropNameExist( Nombre ) ) Error( "Ya existe un propiedad con este nombre.", player );
29else
30{
31local Precio = GetTok( text, " ", 2 NumTok( text, " " ) );
32if ( !Precio ) Cmd( "/"+ cmd + " <Nombre de propiedad> <Precio>", player );
33else if ( !IsNum( Precio ) ) Error( "Use Numeros.", player );
34else
35{
36local id = CreatePickup( 407, player.World, 1, Vector( player.Pos.x, player.Pos.y, player.Pos.z ), 255, true ).ID;
37mysql_query( db, "INSERT INTO Casas VALUES ( '" + CountProps() + "', '" +player.World+ "', '" + Nombre + "', '" + Precio.tointeger() + "', 'Vice-City', 'N/A', 'N/A', '" + player.Pos.x + "', '" + player.Pos.y + "', '" + player.Pos.z + "' )" );
38Casa[ id ] = PropStats(), Casa[ id ].ID = CountProps(), Casa[ id ].Nombre = Nombre, Casa[ id ].Precio = Precio.tointeger(), Casa[ id ].Dueno = "Vice-City", Casa[ id ].Compartido = "N/A", Casa[ id ].Compartido2 = "N/A";
39Info("Usted ha creado una nueva propiedad.", player );
40}
41}
42}
43return 0;
44}
45
46
47if ( cmd == "casacmds" || cmd=="propcmds" )
48 {
49 if ( Checar( player, null ) ) return 0;
50 else
51 {
52 Cmd("comprarcasa, vendercasa, miscasas, miscasascompart, compartcasa, descompartcasa, compartcasa2, descompartcasa2, ircasa",player)
53 }
54 return 1;
55 }
56
57else if ( cmd == "comprarcasa" || cmd=="buyprop" )
58{
59if ( !text ) Cmd( "/"+ cmd + " <ID>", player );
60else if ( !IsNum( text ) ) Error( "Use Numeros.", player );
61else if ( !FindProp( text.tointeger() ) ) Error( "ID: "+text+" no existe.", player );
62else if ( Casa[ text.tointeger() ].Dueno != "Vice-City" ) Error( "Esta propiedad no esta en venta.", player );
63else if ( player.Cash < Casa[ text.tointeger() ].Precio ) Error( "Su dinero no es suficiente para esta propiedad.", player );
64else
65{
66player.Cash -= Casa[ text.tointeger() ].Precio;
67Casa[ text.tointeger() ].Dueno = player.Name;
68mysql_query( db, "UPDATE Casas SET Dueno='" + player.Name + "' WHERE ID='" + Casa[ text.tointeger() ].ID + "'" );
69Info("Propiedad comprada con exito.", player );
70}
71return 0;
72}
73
74else if ( cmd == "vendercasa" || cmd=="sellprop" )
75{
76if ( !text ) Cmd( "/" + cmd + " <ID>", player );
77else if ( !IsNum( text ) ) Error( "Use Numeros.", player );
78else if ( !FindProp( text.tointeger() ) ) Error( "ID: "+text+" no existe.", player );
79else if ( Casa[ text.tointeger() ].Dueno != player.Name ) Error( "Usted no es propietario de esta casa.", player );
80else
81{
82player.Cash += Casa[ text.tointeger() ].Precio / 2;
83Casa[ text.tointeger() ].Dueno = "Vice-City";
84Casa[ text.tointeger() ].Compartido = "N/A";
85mysql_query( db, "UPDATE Casas SET Dueno='Vice-City', Compartido='N/A' WHERE ID='" + Casa[ text.tointeger() ].ID + "'" );
86Info("Propiedad vendida con exito.",player );
87}
88return 0;
89}
90
91else if ( cmd == "miscasas" || cmd=="myprops")
92{
93local b;
94for( local i = 0, pickup; i < GetPickupCount(); i++ )
95{
96pickup = FindPickup( i );
97if ( pickup && Casa[ i ] != null )
98{
99if ( Casa[ i ].Dueno == player.Name )
100{
101if ( b ) b = b + ", " + Casa[ i ].Nombre + " (" + i + ")";
102else b = Casa[ i ].Nombre + " (" + i + ")";
103}
104}
105}
106if ( !b ) Error( "Usted No tiene propiedades.",player );
107else Info("Sus propiedades: " + b + ".",player)
108return 1;
109}
110
111else if ( cmd == "miscasascompart" || cmd=="myshareprops")
112{
113local b;
114for( local i = 0, pickup; i < GetPickupCount(); i++ )
115{
116pickup = FindPickup( i );
117if ( pickup && Casa[ i ] != null )
118{
119if ( Casa[ i ].Compartido == player.Name )
120{
121if ( b ) b = b + ", " + Casa[ i ].Nombre + " (" + i + ")";
122else b = Casa[ i ].Nombre + " (" + i + ")";
123}
124}
125}
126if ( !b ) Error( "No hay pripiedades compartida con usted.",player );
127else Info("Propiedades compartida con usted: " + b + ".",player)
128return 1;
129}
130
131else if ( cmd == "compartcasa1"||cmd=="shareprop1" )
132{
133if ( !text ) Cmd("/" + cmd + " <ID> <Nick/ID>", player );
134else
135{
136local id = GetTok( text, " ", 1 );
137if ( !id ) Cmd("/" + cmd + " <ID> <Nick/ID>", player );
138else if ( !IsNum( id ) ) Error( "Use Numeros.", player );
139else if ( !FindProp( id.tointeger() ) ) Error( "ID: "+text+" no existe.", player );
140else if ( Casa[ id.tointeger() ].Dueno != player.Name ) Error( "Usted no es propietario de esta casa.", player );
141else if ( Casa[ id.tointeger() ].Compartido != "N/A" ) Error( "Esta propiedad ya esta compartida con: " + Casa[ id.tointeger() ].Compartido + ".",player );
142else
143{
144local plr = GetPlayer( GetTok( text, " ", 2 ) );
145if ( !plr ) Error( "Jugador desconocido.", player );
146else if ( plr.ID == player.ID ) Error( "La propiedad es suya no es necesario que se la comparta.", player );
147else
148{
149Casa[ text.tointeger() ].Compartido = plr.Name;
150mysql_query( db, "UPDATE Casas SET Compartido='" + plr.Name + "' WHERE ID='" + Casa[ text.tointeger() ].ID + "'" );
151Info("La propiedad se compartio con " + plr.Name + " exitosamente.", player );
152}
153}
154}
155return 1;
156}
157
158else if ( cmd == "compartcasa1"||cmd=="shareprop1" )
159{
160if ( !text ) Cmd("/" + cmd + " <ID> <Nick/ID>", player );
161else
162{
163local id = GetTok( text, " ", 1 );
164if ( !id ) Cmd("/" + cmd + " <ID> <Nick/ID>", player );
165else if ( !IsNum( id ) ) Error( "Use Numeros.", player );
166else if ( !FindProp( id.tointeger() ) ) Error( "ID: "+text+" no existe.", player );
167else if ( Casa[ id.tointeger() ].Dueno != player.Name ) Error( "Usted no es propietario de esta casa.", player );
168else if ( Casa[ id.tointeger() ].Compartido2 != "N/A" ) Error( "Esta propiedad ya esta compartida con: " + Casa[ id.tointeger() ].Compartido + ".",player );
169else
170{
171local plr = GetPlayer( GetTok( text, " ", 2 ) );
172if ( !plr ) Error( "Jugador desconocido.", player );
173else if ( plr.ID == player.ID ) Error( "La propiedad es suya no es necesario que se la comparta.", player );
174else
175{
176Casa[ text.tointeger() ].Compartido2 = plr.Name;
177mysql_query( db, "UPDATE Casas SET Compartido2='" + plr.Name + "' WHERE ID='" + Casa[ text.tointeger() ].ID + "'" );
178Info("La propiedad se compartio con " + plr.Name + " exitosamente.", player );
179}
180}
181}
182return 1;
183}
184
185else if ( cmd == "descompartcasa" || cmd == "delshareprop" )
186{
187if ( !text ) Cmd( "/" + cmd + " <ID>", player );
188else if ( !IsNum( text ) ) Error( "Use Numeros.", player );
189else if ( !FindProp( text.tointeger() ) ) Error( "ID: "+text+" no existe.", player );
190else if ( Casa[ text.tointeger() ].Dueno != player.Name ) Error( "Usted no es propietario de esta casa.", player );
191else if ( Casa[ text.tointeger() ].Compartido == "N/A" ) Error( "La propiedad no esta compartida.",player );
192else
193{
194Casa[ text.tointeger() ].Compartido = "N/A";
195Info("Propiedad descompartida exitosamente.", player );
196mysql_query( db, "UPDATE Casas SET Compartido='N/A' WHERE ID='" + Casa[ text.tointeger() ].ID + "'" );
197}
198return 1;
199}
200
201else if ( cmd == "descompartcasa" || cmd == "delshareprop" )
202{
203if ( !text ) Cmd( "/" + cmd + " <ID>", player );
204else if ( !IsNum( text ) ) Error( "Use Numeros.", player );
205else if ( !FindProp( text.tointeger() ) ) Error( "ID: "+text+" no existe.", player );
206else if ( Casa[ text.tointeger() ].Dueno != player.Name ) Error( "Usted no es propietario de esta casa.", player );
207else if ( Casa[ text.tointeger() ].Compartido2 == "N/A" ) Error( "La propiedad no esta compartida.",player );
208else
209{
210Casa[ text.tointeger() ].Compartido2 = "N/A";
211Info("Propiedad descompartida exitosamente.", player );
212mysql_query( db, "UPDATE Casas SET Compartido2='N/A' WHERE ID='" + Casa[ text.tointeger() ].ID + "'" );
213}
214return 1;
215}
216
217else if ( cmd == "addcasa" || cmd == "crearcasa" || cmd == "createprop" || cmd == "addprop" )
218{
219if ( !player.IsSpawned ) Error( "Intenta el comando cuando aparescas.", player );
220else if ( !text ) Cmd( "/"+ cmd + " <Nombre de propiedad> <Precio>", player );
221else
222{
223local Nombre = GetTok( text, " ", 1 );
224if ( !Nombre ) Cmd( "/"+ cmd + " <Nombre de propiedad> <Precio>", player );
225else if ( PropNameExist( Nombre ) ) Error( "Ya existe un propiedad con este nombre.", player );
226else
227{
228local Precio = GetTok( text, " ", 2 NumTok( text, " " ) );
229if ( !Precio ) Cmd( "/"+ cmd + " <Nombre de propiedad> <Precio>", player );
230else if ( !IsNum( Precio ) ) Error( "Use Numeros.", player );
231else
232{
233local id = CreatePickup( 407, 1, 1, player.Pos.x, player.Pos.y, player.Pos.z, 255, true ).ID;
234mysql_query( db, "INSERT INTO Casas VALUES ( '" + CountProps() + "', '" + Nombre + "', '" + Precio.tointeger() + "', 'Vice-City', 'N/A', 'N/A', '" + player.Pos.x + "', '" + player.Pos.y + "', '" + player.Pos.z + "' )" );
235Casa[ id ] = PropStats(), Casa[ id ].ID = CountProps(), Casa[ id ].Nombre = Nombre, Casa[ id ].Precio = Precio.tointeger(), Casa[ id ].Dueno = "Vice-City", Casa[ id ].Compartido = "N/A", Casa[ id ].Compartido2 = "N/A";
236Info("Usted ha creado una nueva propiedad.", player );
237}
238}
239}
240return 0;
241}
242
243function CargarCasas()
244{
245local q = mysql_query( db, "SELECT * FROM `Casas`" ), i = 0, data;
246if ( !q ){
247print( "MySQL query failed." );
248return;
249}
250while ( data = mysql_fetch_assoc( q ) )
251{
252local
253id = data["ID"],
254Nombre = data[ "Nombre" ],
255World = data[ "World" ],
256Precio = data[ "Precio" ],
257Dueno = data[ "Dueno" ],
258Compartido = data[ "Compartido" ],
259Compartido2 = data[ "Compartido2" ],
260x = data[ "PX" ],
261y = data[ "PY" ],
262z = data[ "PZ" ],
263id = CreatePickup( 407, World, 1, Vector( x, y, z ), 255, true ).ID;
264Casa[ id ] = PropStats();
265Casa[ id ].ID = id;
266Casa[ id ].Nombre = Nombre;
267Casa[ id ].Precio = Precio;
268Casa[ id ].Dueno = Dueno;
269Case[ id ].World = World;
270Casa[ id ].Compartido = Compartido;
271Casa[ id ].Compartido2 = Compartido2;
272if( Casa[ id ].Dueno == "Vice-City" ) {id = CreatePickup( 407, World, 1, Vector( x, y, z ), 255, true ).ID;}
273else if( Casa[ id ].Dueno != "Vice-City" ) { id = CreatePickup( 406, World, 1, Vector( x, y, z ), 255, true ).ID;}
274i++;
275}
276mysql_free_result( q );
277print( "Casas Cargadas, Cantidad: " + i );
278}
279
280function CountProps()
281{
282local c = 1;
283for( local i = 1, pickup; i < GetPickupCount(); i++ )
284{
285pickup = FindPickup( i );
286if ( pickup && pickup.Model == 407 && pickup.Model == 406 ) c ++;
287}
288return c;
289}
290
291function PropNameExist( Nombre )
292{
293local result = false;
294for( local i = 0, pickup; i < GetPickupCount(); i++ )
295{
296pickup = FindPickup( i );
297if ( pickup && Casa[ pickup.ID ] != null )
298{
299if ( Casa[ pickup.ID ].Nombre == Nombre ) result = true;
300}
301}
302return result;
303}
304
305function FindProp( id )
306{
307if ( id < 0 ) return false;
308else if ( id > 1000 ) return false;
309else if ( Casa[ id ] == null ) return false;
310else return true;
311}
312
313if ( !player.Vehicle && pickup.Model == 407 || 406 )
314{
315if ( Casa[ pickup.ID ] != null )
316{
317Info( "[#00bfff]Nombre de propiedad: [#ffffff]" + Casa[ pickup.ID ].Nombre + " [#00bfff]ID: [#ffffff]" + Casa[ pickup.ID ].ID + " [#00bfff]Dueno: [#ffffff]" + Casa[ pickup.ID ].Dueno + ".", player );
318Info( "[#00bfff]Precio: [#ffffff]" + Casa[ pickup.ID ].Precio + " [#00bfff]Compartida con: [#ffffff][" + Casa[ pickup.ID ].Compartido + "] [#00bfff] | [#ffffff][" + Casa[ pickup.ID ].Compartido2 + "] [#EEC900].",player );
319}
320}