[GUIDA]USO DI PAWNO

Come Usare Pawno

« Older   Newer »
 
  Share  
.
  1. Sayanworld
        Like  
     
    .

    User deleted


    L'uso di pawno è sicuramente la cosa più difficile di sa:mp.
    Per introduzione vi spiego cosè pawno:
    é un programma che serve per creare le gamemode(GM), cioè la modalità di gioco del vostro server.
    Iniziamo col dire che ci mettero mesi e mesi per finire questa guida, dato che i codici di pawno sono così tanti da richiedere i calli alle mie mani.

    Aprite pawno, e vedrete che in alto a destra c'è un immaggine di un foglio bianco, cliccate su quello.

    A questo punto vi troverete davandi questi codici:

    CODICE
    #include <a_samp>

    // This is a comment
    // uncomment the line below if you want to write a filterscript
    //#define FILTERSCRIPT

    #if defined FILTERSCRIPT

    public OnFilterScriptInit()
    {
           print("n--------------------------------------");
           print(" Blank Filterscript by your name here");
           print("--------------------------------------n");
           return 1;
    }

    public OnFilterScriptExit()
    {
           return 1;
    }

    #else

    main()
    {
           print("n----------------------------------");
           print(" Blank Gamemode by your name here");
           print("----------------------------------n");
    }

    #endif

    public OnGameModeInit()
    {
           // Don't use these lines if it's a filterscript
           SetGameModeText("Blank Script");
           AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);
           return 1;
    }

    public OnGameModeExit()
    {
           return 1;
    }

    public OnPlayerRequestClass(playerid, classid)
    {
           SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);
           SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);
           SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);
           return 1;
    }

    public OnPlayerRequestSpawn(playerid)
    {
           return 1;
    }

    public OnPlayerConnect(playerid)
    {
           return 1;
    }

    public OnPlayerDisconnect(playerid, reason)
    {
           return 1;
    }

    public OnPlayerSpawn(playerid)
    {
           return 1;
    }

    public OnPlayerDeath(playerid, killerid, reason)
    {
           return 1;
    }

    public OnVehicleSpawn(vehicleid)
    {
           return 1;
    }

    public OnVehicleDeath(vehicleid, killerid)
    {
           return 1;
    }

    public OnPlayerText(playerid, text[])
    {
           return 1;
    }

    public OnPlayerPrivmsg(playerid, recieverid, text[])
    {
           return 1;
    }

    public OnPlayerCommandText(playerid, cmdtext[])
    {
           if (strcmp("/mycommand", cmdtext, true, 10) == 0)
           {
                   // Do something here
                   return 1;
           }
           return 0;
    }

    public OnPlayerInfoChange(playerid)
    {
           return 1;
    }

    public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
    {
           return 1;
    }

    public OnPlayerExitVehicle(playerid, vehicleid)
    {
           return 1;
    }

    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
           return 1;
    }

    public OnPlayerEnterCheckpoint(playerid)
    {
           return 1;
    }

    public OnPlayerLeaveCheckpoint(playerid)
    {
           return 1;
    }

    public OnPlayerEnterRaceCheckpoint(playerid)
    {
           return 1;
    }

    public OnPlayerLeaveRaceCheckpoint(playerid)
    {
           return 1;
    }

    public OnRconCommand(cmd[])
    {
           return 1;
    }

    public OnObjectMoved(objectid)
    {
           return 1;
    }

    public OnPlayerObjectMoved(playerid, objectid)
    {
           return 1;
    }

    public OnPlayerPickUpPickup(playerid, pickupid)
    {
           return 1;
    }

    public OnPlayerSelectedMenuRow(playerid, row)
    {
           return 1;
    }

    public OnPlayerExitedMenu(playerid)
    {
           return 1;
    }


    Analizziamola insieme:

    All'inizio di ogni gm per sa:mp c'è include a_samp
    Per nostra comodità, prima della scritta main() andremo a "registrare i codici dei colori, mi spiego meglio:
    Per dire alla gm che quando un giocatore è entrato nel server, andrete a scrivere:

    public OnPlayerConnect(playerid)
    {
    SendClientMessageToAll(playerid,Quì il colore,"Quì il messaggio che devono vedere TUTTI");
    SendClientMessage(playerid,Quì il colore,"Quì il messaggio che deve vedere SOLO il giocatore che è entrato");
    }
    return 1

    Dove ho scritto "Quì il colore" dobbiamo mettere il codice del colore, ma ci viene più comodo mettere per esempio solo il nome, questo lo possiamo fare solo se sopra a main() andiamo a scrivere queste cose:
    #define COLOR_RED 0xAA3333AA

    #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

    Così, al posto del codice andrete a scrivere COLOR_ORANGE se lo volete arancione
    Spiegato i colori e il messaggio quando una persona entra passiamo all'aggiunta di skin, veicoli e comandi:
    Per aggiungere le skin (i personaggi) scrivete:

    public
    {
    AddPlayerClass(id Skin,Cord.X,Cord.Y,Cord.Z,Angol.,1ARMA,Muniz,2ARMA,Muniz,3ARMA,Muniz);
    }
    return 1;

    Fatto questo passiamo ai veicoli, che è molto simile:

    public
    {
    AddStaticVehicle(id Veicolo,Cord.X,Cord.Y,Cord.Z,Angol,Colore1,Colore2);
    }
    return 1;

    E ora passiamo ai comandi, cosa un po più varia, per esempio come ricaricarsi la vita scrivendo /heal:

    public OnPlayerCommandText

    if(strcmp(cmd, "/heal", true) == 0)
    {
    SetPlayerHealth(playerid,1000)
    }
    return 1;




    Per Dire al server che un determinato comando può essere effettuato solamente da un Admin (il quale ha effettuato il login con /rcon login pass) dovremo mettere dopo la riga della funzione questo:
    IsPlayerAdmin(playerid)
    Quindi se vogliamo andare riservare il comando /heal che abbiamo spiegato sopra andremo a scrivere senpre sotto a
    public OnPlayerCommandText

    Questo:

    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if(strcmp(cmd,"/heal",true) == 0)
    {
    if IsPlayerAdmin(playerid);
    {
    SetPlayerHealth(playerid,1000);
    } return 1;
    else
    {
    SendClientMessage(playerid,NOSTRO_COLORE,"Non Sei Autorizzato Ad Usare Questo Comando");
    } return 1;
    } return 0;



    --------->In Costruzione (Ultim. Aggiorn. 27 Nov 2008)<---------------

    NON OFFRO AIUTO IN PRIVATO, PER INFO O ASSISTENZA, SCRIVETE SUL FORUM, GRAZIE :)

    Edited by TheSt1fm31st3r - 6/6/2011, 17:56
     
    .
  2. Sayanworld
        Like  
     
    .

    User deleted


    Se avete qualche dubbio o domanda non esitate e chiedere!!
     
    .
  3. Mini-Nova
        Like  
     
    .

    User deleted


    MA QUANDO FACCI QUELLO K TU HAI SCRITTO.......VADO SU COMPILE E MI DA QUALKE ERRORE E QUESTO SIGNIFICA CHE NN POSSO ACCEDERE ALLA GM....MA PERCHE ALLORA MI DA DEGLI ERRORI???RISPONDIMI AL PIU PRESTO
    --CIAO--
     
    .
  4. Sayanworld
        Like  
     
    .

    User deleted


    Ma con quello che ho scritto fino ad ora ci fai le basi di una GM o di un FS.
    Se premi sul tasto per compilare ti dovrebbe dire l'errore su quale riga stà (è il numeretto tra parentesi). Se trovi l'errore dimmelo e ti dico cosa devi cambiare
     
    .
  5. mercenaries
        Like  
     
    .

    User deleted


    Te 6 un mito o_o mi serve questa guida sto cercando di creare un server...cmq volevo sapere una cosa...tutti questi codici come questo

    public
    {
    AddPlayerClass(id Skin,Cord.X,Cord.Y,Cord.Z,Angol.,1ARMA,Muniz,2ARMA,Muniz,3ARMA,Muniz);
    }
    return 1;

    dove si mettono??semper sopra a main() ??

    e sempre sotto a tutti i codici detti prima cioè dei colori,e i messaggi??risp presto :D

    mi da questi errori

    C:Documents and SettingsutenteDesktopserver SA-MPpawnoprova server.pwn(43) : error 035: argument type mismatch (argument 2)
    C:Documents and SettingsutenteDesktopserver SA-MPpawnoprova server.pwn(43) : error 017: undefined symbol "SERVER"
    C:Documents and SettingsutenteDesktopserver SA-MPpawnoprova server.pwn(43) : error 029: invalid expression, assumed zero
    C:Documents and SettingsutenteDesktopserver SA-MPpawnoprova server.pwn(43) : fatal error 107: too many error messages on one line
     
    .
  6. mercenaries
        Like  
     
    .

    User deleted


    up
     
    .
  7. Sayanworld
        Like  
     
    .

    User deleted


    no non si mettono su main, si devono mettere sotto

    public OnGameModeInit()
    {
    AddPlayerClass(....);
    return 1;
    }

     
    .
  8. [@]=Slayer=[@]
        Like  
     
    .

    User deleted


    raga per le auto che bisogna fà?
     
    .
  9. Sayanworld
        Like  
     
    .

    User deleted


    public OnGameModeInit()
    {
    AddStaticVehicle(Id Modello, coordinata x, coordinata y, coordinata z, angolazione(90°), colore1, colore2);

    Per gli id delle auto andate QUì
    Per gli id dei colori andate QUì
    Per le coordinate basta utilizzare il comando "/save" e verranno automaticamente salvate le coordinate in file che verrà creato nella cartella GTA san andreas, che troverete nella cartella Rockstar nel vostro hard-disk.
    Il file si chiamerà "savedposition.txt"

    Saluti
     
    .
  10. ELIO-X
        Like  
     
    .

    User deleted


    uddiu questa guida mi serve, ora me la leggo...
     
    .
  11. Swemb
        Like  
     
    .

    User deleted


    a me dice:
    C:\Users\Davide\Desktop\GameHack server\gamemodes\lol.pwn(4) : fatal error 100: cannot read from file: "thx"

    cosa devo fare HELP!!!
     
    .
  12. Sayanworld
        Like  
     
    .

    User deleted


    se dice che non può leggere da un file è perchè avrai usato all'inizio della gm:

    include thx;


    dato che "thx" non è presente nella cartella
    C:UsersDavideDesktopGameHack serverpawnoincludes
    Te lo da come errore fatale e la gm non può essere compilata
     
    .
  13. virus98
        Like  
     
    .

    User deleted


    weee swemb!!!!
     
    .
  14. Gaboso
        Like  
     
    .

    User deleted


    Hai sbagliato un cosa nella guida...

    CODICE
    public OnPlayerConnect(playerid)
    {
    SendClientMessageToAll(playerid,Quì il colore,"Quì il messaggio che devono vedere TUTTI")
    SendClientMessage(playerid,Quì il colore,"Quì il messaggio che deve vedere SOLO il giocatore che è entrato");
    }
    return 1


    SendClientMessageToAll(playerid,Quì il colore,"Quì il messaggio che devono vedere TUTTI")

    alla fine ci va il punto e virgola e playerid non ci va image
     
    .
  15. Sayanworld
        Like  
     
    .

    User deleted


    Fatto, Grazie per l'avvertimento =)
     
    .
35 replies since 21/10/2008, 15:14   5566 views
  Share  
.