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