Accendere/spegnere luci dei veicoli, disponibile dalla 0.3 R5 in poi...

« Older   Newer »
  Share  
St4]N[L3Y
view post Posted on 3/4/2010, 09:30




Per spegnere le luci:

CODICE
new panels, doors, lights, tires;
GetVehicleDamageStatus(vehicleid, panels, doors, lights, tires);
lights = encode_lights(1,1 ,1 ,1);
UpdateVehicleDamageStatus(vehicleid, panels, doors, lights, tires);



Per accendere le luci:

CODICE
new panels, doors, lights, tires;
GetVehicleDamageStatus(vehicleid, panels, doors, lights, tires);
lights = encode_lights(0,0 ,0,0);
UpdateVehicleDamageStatus(vehicleid, panels, doors, lights, tires);



In fondo a tutto

CODICE
stock encode_lights(light1, light2, light3, light4)
{
       return light1 | (light2 << 1) | (light3 << 2) | (light4 << 3);
}


Edited by .StanleY - 3/4/2010, 18:27
 
Top
.Peppe
view post Posted on 3/4/2010, 09:33




Specifica che ci vuole la nuova RC7 di samp.

Ma comunque qui non sai parla di accendere/spegnere le luci ma di riparare/rompere luci xD

PS: hai messo la funzione encode_panels al posto di encode_lights
 
Top
St4]N[L3Y
view post Posted on 3/4/2010, 09:41




guarda il titolo...


Accendere/spegnere luci dei veicoli, disponibile dalla 0.3 R5 in poi...
 
Top
.Peppe
view post Posted on 3/4/2010, 09:45




ah ecco xD
cmq hai messo una parentesi graffa in piu ad encode_lights
 
Top
St4]N[L3Y
view post Posted on 3/4/2010, 17:27




non facevi prima ad aggiustarlo <.<
 
Top
view post Posted on 4/4/2010, 12:10

Polizia di Stato

Group:
Member
Posts:
18,065
Location:
Modena

Status:


CITAZIONE (.Peppe @ 3/4/2010, 10:33)
Specifica che ci vuole la nuova RC7 di samp.

Ma comunque qui non sai parla di accendere/spegnere le luci ma di riparare/rompere luci xD

PS: hai messo la funzione encode_panels al posto di encode_lights

Non esistendo altri metodi per spegnere ed accendere questo è l'unico asd
 
Top
St4]N[L3Y
view post Posted on 6/4/2010, 10:14




ma cos? o.o
 
Top
.Peppe
view post Posted on 6/4/2010, 10:36




La funzione UpdateVehicleDamageStatus serve a rompere/riparare le parti di un veicolo, in realtà non le accende/spegne xD
 
Top
St4]N[L3Y
view post Posted on 6/4/2010, 18:51




si
 
Top
Whitewolf_tools
view post Posted on 7/4/2010, 15:58




salve scusate ma mi potete dire come funziona??
 
Top
scienziato-pazzo
view post Posted on 8/4/2010, 10:57




Funziona che inserisci il codice ed il gioco è fatto,anche se per uno scripter come te non sai dove mettere i codici,perchè stanley non l'ha specificato,ma se sai scriptare lo sai xD
 
Top
.Peppe
view post Posted on 8/4/2010, 14:16




CODICE
new panels, doors, lights, tires;
GetVehicleDamageStatus(vehicleid, panels, doors, lights, tires);
lights = encode_lights(0,0 ,0,0);
UpdateVehicleDamageStatus(vehicleid, panels, doors, lights, tires);
Questo codice per spegnere le luci in ordine:


1 Crea quattro variabili nelle quali memorizzare l'attuale stato dei componenti dela macchina.
2 Alle variabili create getta l'attuale stato di ogni componente della macchina.
3 Alla variabile lights da come valore 4 valori codificati che rappresentano quali luci sono rotte/intere, infatti vengono codificati tramite la funzione encode_lights e se sono 0 significa che sono rotte altrimenti sono intere.
4 Aggiorna lo stato dei componenti della macchina in base alle variabili gettate prima e alla variabile lights codificata.

CODICE
stock encode_lights(light1, light2, light3, light4)
{
return light1 | (light2 << 1) | (light3 << 2) | (light4 << 3);
}

Mentre la funzione encode_lights funziona in questo modo:
nella funzione ci sono 4 variabili (interi), ognuna delle quali rappresenta lo stato di una luce del veicolo.
La funzione returna un nuovo valore seguendo questi calcoli:
- Prende il valore della prima variabile light1.
- Esegue 1 shift a sinistra della variabile light2, quindi si ha lo stesso risultato moltiplicando il valore per 2.
- Esegue 2 shift a sinistra della variabile light3, quindi si ha lo stesso risultato moltiplicando il valore due volte per 2.
- Esegue 3 shift a sinistra della variabile light4, quindi si ha lo stesso risultato moltiplicando il valore tre volte per 2.
- Tramite l'operatore Or (Bitwise) il valore da returnare è costituito da tutti i bit messi su on nei 4 valori (considerando le operazioni eseguite prima)

Infatti se ad esempio facciamo encode_lights(1, 1, 1, 1);
il risultato sarà:
1 | 1 << 1 | 1 << 2 | 1 << 3 =
= 1 | 10 | 100 | 1000 = // qui calcolo i numeri in bit e in questo caso con i numeri interi sono 1 | 2 | 4 | 8...
= 1111 // infatti a partire da destra nel primo valore è su on il primo bit, nel secondo il secondo bit, nel terzo il terzo bit e nel quarto il quarto bit. Ecco uno schema per chiarire:
CODICE
0001
0010
0100
1000
____
1111


Quindi viene returnato in bit il valore 1111 che equivale a 15


Ecco un altro esempio per chiarire meglio:
encode_lights(1, 0, 0, 1); =
= 1 | 0 << 1 | 0 << 2 | 1 << 3 =
= 1 | 0 | 0 | 1000 =
= 1001

CODICE
0001
0000
0000
1000
____
1001



Quindi viene returnato in bit 1001, ovvero 9
 
Top
«†ÑÎx33®†»
view post Posted on 28/5/2010, 19:34




Anche gli script cleo usano la funzione di danneggiare i fari xD (Emergency Mod che fà lampeggiare i fari per la polizia anche).
 
Top
scienziato-pazzo
view post Posted on 12/7/2010, 13:16




Si ed è compatibile col Multiplayer di GTA San Andreas oltre che col Singleplayer

EDIT: [OT]Mi potete dire 2 e 8 del Numpad a cosa corrispondono in script? Grazie[/OT]
 
Top
LaxC.
view post Posted on 17/7/2010, 10:38




Ehm KEY_SUBMISSION per il 2.. per gli altri non so vedi nei file asamp.inc
 
Top
14 replies since 3/4/2010, 09:30   536 views
  Share