Benvenuto! Per postare e godere delle funzionalità del forum registrati, occorrono pochi secondi ed è gratis!

SAMP guida allo scripting base

Iscritto
Messaggi: 156
Discussioni: 14
Registrato: 12-2011
Mix: 0
In questa guida spiegherò brevemente cosa significa scriptare.
Partiamo dalle definizioni:

GameModes


All'interno della cartella Gamemodes troveremo le vere e proprie "Modalità" con cui si potrà giocare nel server: dunque modalità di freeroaming ("cazzeggio"), gare, deathmatch (tutti contro tutti), o una sorta di "missioni" singole o a squadre, a obbiettivo e chi più ne ha più ne metta. Vi sono diversi files "preimpostati", ossia le gamemodes di "base" che il team di SA-MP ci ha fornito, e che i principianti dello scripting possono utilizzare per prendere spunto o operare su di esse, per capire meglio le funzioni principali e prendere confidenza con esse.
Troveremo dunque dei file con estensione ".amx", ossia i veri e propri file che verranno caricati nel server.Nella cartella "src" troveremo invece i files di estensione ".PWN", ossia quelli che potremo modificare a nostro piacimento: una volta finito il nostro lavoro su un file PWN, potremo, come si dice nel gergo dello scripting, "compilarlo", ossia verificare che non ci siano errori e creare automaticamente un file di estensione .amx (con lo stesso nome che abbiamo dato al file PWN) nella cartella "Gamemodes" (quella di cui ho parlato precedentemente), e che poi potremo "caricare" nel server.
Dunque, un file .amx sarà il nostro "lavoro finale", il quale poi dovrà essere caricato nel server, mentre il corrispondente file PWN sarà il nostro "lavoro di impasto e di modifica", il quale una volta compiuto, darà "vita" al file AMX corrispondente.

Iniziare a scriptare


Per iniziare a scriptare è necessario usare un programma di scripting, ma niente paura, il team di SA-MP ce lo ha fornito: tornando alla cartella principale del server, potremo trovare dentro alla cartella "Pawno" il programma più usato per creare gamemodes, ossia il Pawno, appunto.
Il file NEW, di estensione .PWN, è un file di "esempio", una sorta di "preparazione" alla gamemode e sarà quello da cui potremo capire per iniziare a capirci qualcosa.Come altri file .PWN, sarà quello che ci permetterà di creare la gamemode (ossia la modalità), per poi "compilarlo" in un file .amx e poterlo inserire nel server.Per comodità possiamo conservare tutti i files PWN nella cartella SRC (all'interno della cartella Gamemodes), ma potremo tenerli dove vorremo: difatti solo i file in
.amx devonoessere conservati nella cartella Gamemodes, per poter essere caricati.Ma arriviamo al succo del discorso, aprendo il programma Pawno.

Per poter caricare un file .PWN, cliccate in alto a sinsitra su file, quindi open e aprite uno dei file con estensione .PWN. Potremmo partire da quello di base, il NEW citato prima, ma possiamo cominciare con una gamemode già pronta, per poter capire a cosa corrispondano certe funzioni e certi comandi.Vi consiglio di iniziare con la Gamemode "Monster", un freeroam, ossia una gamemodes senza particolari obbiettivi ma che consiste nel divertirsi "cazzeggiando".Per il momento ignoriamo la colonna di destra, nella quale vi sono elencate tutte le funzioni possibili che potremo inserire nel nostro file, ma concentriamoci sulla gamemode già costruita.
Noteremo una sorta di intestazione preceduta da alcune barre come queste /////: esse sono di fondamentale importanza, in quanto il testo preceduto da due slash // non assume significato nello script, ossia non viene considerato, come se fosse una sorta di commento esterno.
Saranno dunque utili per annotare certe coordinate, oppure inserire dei commenti o ordinare script di lunghezza notevole. Non spaventati se alcune righe o frammenti di esse sono scritte con colori diversi: è semplicemente un modo per creare ordine e non "perdersi" tra le righe (il colore blu ad esempio, segnala l'inizio di una funzione, della "definizione" di un qualcosa, o altra variabili usate in programmazione).


La riga #define COLOR_RED 0xAA3333AA è un tipico esempio di "definizione" di un colore, con la quale possiamo "definire" (ossia far capire allo script) un colore, in questo caso il rosso. Dunque d'ora in avanti potremo scrivere semplicemente COLOR_RED per far capire allo script che un determinato testo, che potrà apparire durante lo svolgimento della gamemodes, debba avere il colore rosso.


Altri colori che potrete definire sono ad esempio questi:


#define COLOR_GREY 0xAFAFAFAA
#define COLOR_GREEN 0x33AA33AA
#define COLOR_YELLOW 0xFFFF00AA
#define COLOR_BLUE 0x1111AAFF
#define COLOR_PINK 0xFF66FFAA
#define COLOR_LIGHTBLUE 0x33CCFFAA
#define COLOR_DARKRED 0x660000AA
#define COLOR_ORANGE 0xFF9900AA


Passiamo alla riga:


//new gRoundTime=1200000;
new gRoundTime=0;


La prima, come detto in precedenza, non assume significato per lo script, ma è una sorta di funzione aggiuntiva non presa in considerazione. 
La funzione "new gRoundTime = avvia una sorta di timer, al termine del quale la gamemode finirà.
Dunque ci indica quanto durerà la gamemode, nell'unità di misura dei millisecondi, ossia la millesima parte del secondo: un secondo sarà pari a 1.000 millisecondi, un minuto a 60.000 millisecondi e cosi via. In questo caso, nella prima riga (non presa in considerazione dallo script) il tempo di durata è venti minuti, mentre nella riga che lo script terrà in considerazione, la gamemode non avrà mai fine (lo zero corrisponde all'infiniro).
Cambiando queste due righe invertendo i "ruoli", (oppure cancellando la riga che non ci interessa), potremo far durare la gamemode 1.200.000 di millisecondi, pari a venti minuti:


new gRoundTime=1200000;


Arriviamo dunque al vero e proprio "corpo" della gamemode, ossia i principali eventi e funzioni. Non ci soffermeremo sulle parti più complesse per uno scripter alle prime armi, ma sulle funzioni principali.


public OnGameModeInit(){


//...altri eventi...//


return 1;
}


Questo evento segnala l'inizio della gamemode, dopo il quale potremo aggiungere altri eventi come:


SetGameModeText("Monster freeroam");


lI quale indicherà il nome della gamemode che apparirà quando essa sarà in corso nel server (ad un giocatore che aggiunge quel determinato server nei preferiti di SA-MP), come questo per intenderci
Aggiungere personaggi e veicoli


Due funzioni importanti sono quelle che ci permettono di aggiungere i personaggi da selezionare o i veicoli che potremo trovare nella gamemode: La prima è la "AddPlayerClass", nella seguente forma:


AddPlayerClass (id della skin, coordinata di spawn X, coordinata di spawn Y, coordinata di spawn Z, angolo di rotazione dello spawn Z, arma #1, numero munizioni arma #1, arma #2, numero munizioni arma #2, arma #3, numero munizioni arma #3 )


Lo spawn sarà il punto in cui il giocatore verrà "generato" una volta selezionato un determinato personaggio (o skin). Quindi avremo ad esempio:


AddPlayerClass (23,389.8672,2543.0046,16.5391,173.7645,0,0,0,0,0,0);


in cui 23 sarà l'ID della skin, 389.8672 sarà la coordinata X, 2543.0046 sarà lacoordinata Y, e così via.




Per quanto riguarda i veicoli, avremo la funzione "AddStaticVehicle", nella seguente forma:


AddStaticVehicle (ID del modello, coordinata di spawn X, coordinata di spawn Y, coordinata di spawn Z, angolo di rotazione dello spawn Z, ID del colore #1, ID del colore #2);


Quindi avremo ad esempio:


AddStaticVehicle(513,324.7664,2546.0984,16.4876,178.8663,-1,-1)


in cui 513 sarà l'ID del veicolo. 324.7664 la coordinata di spawn X, e così via.
Per trovare gli ID basta andare nella vostra cartella GTA e cercate il file Default.ide .
Una volta terminate tutte le modifiche al file, basterà "compilarlo", premendo il tasto a forma di freccia blu nel pannello in alto, verificando se vi sono degli errori. Se non ve ne sono, dovreste trovarvi in questa situazione:


Nella stessa cartella in cui vi è il file PWN che avete modificato o creato, troverete il corrispondente file .amx, creatosi in seguito alla corretta compilazione. Dunque copiatelo nella cartella "Gamemodes", in modo da poter essere inserito nel vostro server. 


Come ultima cosa, fondamentale, dovrete inserire il nome della gamemode nel
server.cfg:


echo Executing Server Config...
lanmode 0
maxplayers 20
port 7777
hostname Prova Creazione Server
gamemode0 sftdm 1
gamemode1 rivershell 1
gamemode2 area51 4
gamemode3 lvdm 1
gamemode4 monster
weburl

[Per vedere i link devi REGISTRARTI.]

mapname Testing
rcon_password ciao

questo è tutto per la prima puntata ci si vede alla prossima.
Epson1201

16/12/2012, 13:05
#1
Cerca

1 Life, 1 Avatar <3
Messaggi: 9,074
Discussioni: 271
Registrato: 08-2011
Mix: 0
gamemode0 sftdm 1
gamemode1 rivershell 1
gamemode2 area51 4
gamemode3 lvdm 1
gamemode4 monster

E se si volessero cambiare???Tounge

16/12/2012, 20:59
#2
Cerca

Iscritto
Messaggi: 156
Discussioni: 14
Registrato: 12-2011
Mix: 0
ma cambiare per giocare o modificare?

16/12/2012, 22:10
#3
Cerca


Discussioni simili
Discussione Autore Risposte Letto Ultimo messaggio
  Domanda su server samp 0.3e Epson1201 9 2,918 17/12/2012, 21:52
Ultimo messaggio: TheFrank



Utenti che stanno guardando questa discussione: 1 Ospite(i)