Üzenetek megjelenítése

Ez a szekció lehetővé teszi a felhasználó által írt összes hozzászólás megtekintését. Vedd figyelembe, hogy csak azokba a fórumokba írt hozzászólásokat látod, amelyekhez hozzáférésed van.


Témák - Gentleman

Oldalak: 1 ... 9 10 [11] 12 13 ... 19
151
A téma át lett helyezve a következõbe: Segítség.
http://sampforum.hu/index.php?topic=33684.0" class="bbc_link">http://http://sampforum.hu/index.php?topic=33684.0

152
Gentleman\'s Gang System
 
Felhasználási feltételek és információk:


Szabadon használhatod a szervereden viszont nem írhatod azt oda, hogy te készítetted. Más fórumon/weboldalon csakis az engedélyemmel oszthatod meg.
A banda rendszer nem menti fáljba a bandákat. Az utolsó tag kilépésekor feloszlik a banda. Maximálisan a rendszer 50darab banda és 5+1 szabadon megadható rendfokozat kezelésére készült. Ezt átírhatod nagyobbra a definícióban, de én nem javaslom.
Funkciók:


  • ZCMD és SSCANF2 támogatás

  • Egyedi banda létrehozása

  • Banda elnevezése

  • Banda rendfokozatainak módosítása

  • 5+1 darab rendfokozat

  • Bandába felvétel/kirúgás/csatlakozás

  • Névre kattintás támogatás


Bugok:


Nem találtam de ha találtál akkor kérlek jelezd nekem! Megteheted privát üzenetben vagy akár itt a fórumtémában is.
Kép:


[hs width=300 height=300]http://i.imgur.com/qO1rv.jpg[/hs]
Kód:


[dload]
Spoiler for Kód:
/*
   _____            _   _                            _
  / ____|          | | | |                          ( )
| |  __  ___ _ __ | |_| | ___ _ __ ___   __ _ _ __ |/ ___
| | |_ |/ _ \\ \'_ \\| __| |/ _ \\ \'_ ` _ \\ / _` | \'_ \\  / __|
| |__| |  __/ | | | |_| |  __/ | | | | | (_| | | | | \\__ \\
  \\_____|\\___|_| |_|\\__|_|\\___|_|_|_| |_|\\__,_|_| |_| |___/
  / ____|                    / ____|         | |
| |  __  __ _ _ __   __ _  | (___  _   _ ___| |_ ___ _ __ ___
| | |_ |/ _` | \'_ \\ / _` |  \\___ \\| | | / __| __/ _ \\ \'_ ` _ \\
| |__| | (_| | | | | (_| |  ____) | |_| \\__ \\ ||  __/ | | | | |
  \\_____|\\__,_|_| |_|\\__, | |_____/ \\__, |___/\\__\\___|_| |_| |_|
                      __/ | / _|     __/ |
                     |___/ | |_ ___ |___/
                           |  _/ _ \\| \'__|
                           | || (_) | |
                           |_|_\\___/|_|                     _
                            / _|                           | |
  ___  __ _ _ __ ___  _ __ | |_ ___  _ __ _   _ _ __ ___   | |__  _   _
/ __|/ _` | \'_ ` _ \\| \'_ \\|  _/ _ \\| \'__| | | | \'_ ` _ \\  | \'_ \\| | | |
\\__ \\ (_| | | | | | | |_) | || (_) | |  | |_| | | | | | |_| | | | |_| |
|___/\\__,_|_| |_| |_| .__/|_| \\___/|_|   \\__,_|_| |_| |_(_)_| |_|\\__,_|
                     | |
                     |_|
 
*/
//Szükséges függvénykönyvtárak a script futtatásához
#include        <a_samp>
#include    <zcmd>
#include    <sscanf2>
/*
==============================================================
Alapvetõ definíciók a banda szerkezetével kapcsolatban
==============================================================
*/
#define     MAX_BANDA           50 //Nem javaslom a növelését!
#define     RENDFOKOZATOK   5  //Viccesebb ha lehet rendfokozatokat is hozzáadni :)
/*
==============================================================
Alapvetõ változók [globális szinte] a bandával kapcsolatban.
==============================================================
*/
new         BandaNeve[MAX_BANDA][50]; //Igényesebb ha a bandát elnevezhetik nem pedig számazonosítóval kerülnek kiírásra
new         BandaTag[MAX_PLAYERS]; //Ez a változó azért funkcionál, hogy a késõbbiekben le tudjuk kérdezni melyik bandában van az ipse
new         BandaTagokSzama[MAX_BANDA]; //Egy bandában hányan vannak épp online
new         UresBanda[MAX_BANDA]; //Amennyiben nincsenek fent bandatagok ez a változó segít nekünk feloszlatni a bandát.
new         BandaRang[MAX_PLAYERS]; //Rendfokozat a bandatagoknak :)
new         BandaRendfokozat[MAX_BANDA][RENDFOKOZATOK+1][30];// NA ezt jól összecelláztam. Ebben kerül a rendfokozat eltárolásra :)
new         Meghivtak[MAX_PLAYERS]; //Meghívás a bandába, viszont kérdéses, hogy meghívták é a személyt :o
new         bool:Bandaban[MAX_PLAYERS]; //Bandában van a játékos?
new         BandatGeneral[MAX_PLAYERS]; //Éppen generál bandát?
/*
==============================================================
Alapvetõ színdefiníciók
==============================================================
*/
#define         SZIN_PIROS              0xff0000AA
#define         SZIN_CITROM     0xf2ff00AA
#define         SZIN_ZOLD               0x032b0dAA
/*
==============================================================
Textdrawok
==============================================================
*/
 
public OnFilterScriptInit()
{
                print(\"\\n--------------------------------------\");
                print(\" Gentleman\'s Gang System for samforum.hu\");
                print(\"--------------------------------------\\n\");
                for(new k = 0; k < MAX_BANDA; k++) //A filterscript betöltésekor minden bandát üressé kell tenni!
                {
                        UresBanda[k] = 1;
                }
                return 1;
}
public OnFilterScriptExit()
{
        return 1;
}
public OnPlayerDisconnect(playerid, reason)
{
        if(Bandaban[playerid] == true)
        {
        BandaTagokSzama[bandaTag[playerid]]--;
        if(BandaTagokSzama[bandaTag[playerid]] == 0)
        {
            UresBanda[bandaTag[playerid]] = 1;
       
        }
       
        }
        return 1;
}
public OnPlayerDeath(playerid, killerid, reason)
{
        if(Bandaban[killerid] == true && Bandaban[playerid] == true)
        {
        new szoveg[128];
            if(BandaTag[killerid] == BandaTag[playerid])
            {
                format(szoveg, 128, \"A(z) {00ff2b}\'%s\' {ffffff}banda tagjai egymást gyilkolják!\", BandaNeve[bandaTag[killerid]]);
                SendClientMessageToAll(-1, szoveg);
            }
            else
            {
                format(szoveg, 128, \"A(z) {00ff2b}\'%s\' {ffffff}banda egyik tagja megölte a(z)! {00ff2b}\'%s\' {ffffff}banda tagját!\", BandaNeve[bandaTag[killerid]],BandaNeve[bandaTag[playerid]]);
           
            }
       
        }
        return 1;
}
public OnPlayerText(playerid, text[])
{
        if(!strcmp(\"#\", text, true, 1))
        {
            if(Bandaban[playerid] == true)
            {
                strdel(text, 0, 1);
                new szoveg[230];
                new jatekosneve[MAX_PLAYER_NAME];
                        GetPlayerName(playerid, jatekosneve, MAX_PLAYER_NAME);
                format(szoveg, 230, \"{00ff2b}[banda]{ffffff}\'%s\' {00ff2b}[%s]{ffffff}:%s\", jatekosneve,BandaRendfokozat[bandaTag[playerid]][bandaRang[playerid]],text);
                for(new i = 0; i < MAX_PLAYERS; i++)
                        {
                                if(BandaTag == BandaTag[playerid])
                                {
                                    SendClientMessage(i, -1, szoveg);
                                    return 0;
                                }
                        }
            }
       
        }
        switch(BandatGeneral[playerid])
        {
            case 1:
                {
                    if(!strcmp(\"kilép\", text, true, 6)) //Szövegösszehasonlítás abban az esetben ha nem szeretne bandát generálni.
                    {
                        SendClientMessage(playerid, SZIN_ZOLD, \"Létrehozás megszakítva!\");
                        BandatGeneral[playerid] = 0; //Bugfix
                                return 0; //Return 0 nem küldi el az alap üzenetet!
                    }
                        new formatalt[128];
                        new talalat = 0;
                        for(new i = 0; i < MAX_BANDA; i++)
                        {
                            if(UresBanda == 1)
                            {
                                talalat = 1;
                                        format(BandaNeve, 50, text);
                                        format(formatalt, 128, \"Az új bandád neve a következõ: {112b03}%s {ffffff}Bandád azonosítószáma: {0009ff}%d\", BandaNeve,i);
                                        SendClientMessage(playerid, -1, formatalt);
                                        SendClientMessage(playerid, SZIN_CITROM, \"A bandád létrehozásra került. Parancsaidat a /banda paranccsal megtekintheted! Kérlek állítsd majd be a banda rendfokozatait! Banda chat: #\");
                                        BandaTagokSzama ++;
                                        UresBanda = 0;
                                        Bandaban[playerid] = true;
                                        Meghivtak[playerid] = false;
                                        BandaTag[playerid] = i;
                                        BandaRang[playerid] = RENDFOKOZATOK;
                                        for(new g = 0; g < RENDFOKOZATOK; g++)
                                        {
                                            format(BandaRendfokozat[g], 30, \"TAG\");
                                        }
                                        format(BandaRendfokozat[5], 30, \"GÓRÉ\");
                                        BandatGeneral[playerid] = 0;
                                        return 0;
                                }
                                if(talalat == 0)
                                {
                                    SendClientMessage(playerid, SZIN_PIROS, \"Sajnálom az összes banda telített! Kérlek próbálkozz késõbb!\");
                                BandatGeneral[playerid] = 0;
                                    return 1;
                                }
                        }
                        return 0;
                }
       
        }
        return 1;
}
public OnPlayerConnect(playerid)
{
    Meghivtak[playerid] = -1;
    BandaTag[playerid] = -1;
    BandaRang[playerid] = 0;
    BandatGeneral[playerid] = 0;
   
   
       
        return 1;
}
public OnPlayerClickPlayer(playerid, clickedplayerid, source)
{
        if(Bandaban[playerid] == true)
        {
       
            new szoveg[128];
            new meghivo[MAX_PLAYER_NAME];
            GetPlayerName(playerid, meghivo, MAX_PLAYER_NAME);
            new meghivott[MAX_PLAYER_NAME];
            GetPlayerName(clickedplayerid, meghivott, MAX_PLAYER_NAME);
                if(BandaRang[playerid] == RENDFOKOZATOK)
                {
                    if(BandaTag[playerid] == BandaTag[clickedplayerid])
                    {
                format(szoveg, 128, \"{00ff2b}[bANDA] {012106}\'%s\' {ffffff}kirúgta a bandából {00ff2b}\'%s\' {ffffff}játékost!\", meghivo, meghivott);
                        for(new i = 0; i < MAX_PLAYERS; i++)
                                {
                                        if(BandaTag == BandaTag[playerid])
                                        {
                                            SendClientMessage(i, -1, szoveg);
                                        }
                                }
                                BandaTagokSzama[bandaTag[playerid]]--;
                                SendClientMessage(clickedplayerid, SZIN_PIROS, \"Kirúgtak a bandából!\");
                        Meghivtak[playerid] = -1;
                            BandaTag[playerid] = -1;
                            BandaRang[playerid] = 0;
                            BandatGeneral[playerid] = 0;
                            BandaTagokSzama[bandaTag[playerid]]--;
                        if(BandaTagokSzama[bandaTag[playerid]] == 0)
                        {
                            UresBanda[bandaTag[playerid]] = 1;
                        }
                            return 1;
                    }
                }
            format(szoveg, 128, \"{00ff2b}[bANDA] {012106}\'%s\' {ffffff}meghívta a bandába {00ff2b}\'%s\' {ffffff}játékost!\", meghivo, meghivott);
                for(new i = 0; i < MAX_PLAYERS; i++)
                {
                        if(BandaTag == BandaTag[playerid])
                        {
                            SendClientMessage(i, -1, szoveg);
                        }
                }
                format(szoveg, 128, \"{ff0000}\'%s\' {ffffff}nevû játékos meghívott a {00ff2b}\'%s\' {ffffff}bandába!\", meghivo, BandaNeve[bandaTag[playerid]]);
                SendClientMessage(playerid, -1, szoveg);
                SendClientMessage(playerid, SZIN_CITROM, \"Csatlakozáshoz /bbelep\");
                Meghivtak[playerid] = BandaTag[playerid];
       
        }
        return 1;
}
COMMAND:bbelep(playerid)
{
        if(Meghivtak[playerid] == -1)
    {
                SendClientMessage(playerid, SZIN_PIROS, \"Nem hívtak meg sehova sem!\");
                return 1;
    }
        BandaTag[playerid]      = Meghivtak[playerid];
        BandaRang[playerid] = 1;
        BandaTagokSzama[bandaTag[playerid]]++;
        new jatekosneve[MAX_PLAYER_NAME];
        GetPlayerName(playerid, jatekosneve, MAX_PLAYER_NAME);
        new formatalt[128];
        format(formatalt, 128, \"{ff0000} \'%s\' {ffffff}játékos csatlakozott a(z) {00ff2b}\'%s\' {ffffff}bandába!\",jatekosneve, BandaNeve[bandaTag[playerid]]);
        SendClientMessageToAll(-1, formatalt);
        return 1;
}
COMMAND:brendfokozat(playerid,params[])
{
    if(BandaRang[playerid] < RENDFOKOZATOK) //Amennyiben csak normál tag
        {
            SendClientMessage(playerid, SZIN_PIROS, \"Ezt a parancsot csak maximális rendfokozaton használhatod!\");
            return 1;
        }
        //params: rendfokozatid név
        new id, output[30];
        if(sscanf(params, \"ds[30]\",id,output))
        {
            SendClientMessage(playerid, SZIN_PIROS, \"Kérlek a parancsot így használd: /brendfokozat [rendfokozat id] [név]\");
            return 1;
        }
        print(\"Banda rendfokozat blokk elõtt\");
        if(id > RENDFOKOZATOK)
        {
            SendClientMessage(playerid, SZIN_PIROS, \"Az azonosító nagyobb mint a megengedett maximális rendfokozat!\");
            return 1;
        }
        print(\"Banda rendfokozat blokk után\");
        new szoveg[150];
        new jatekosneve[MAX_PLAYER_NAME];
        GetPlayerName(playerid, jatekosneve, MAX_PLAYER_NAME);
        print(\"FOS 1\");
        format(BandaRendfokozat[bandaTag[playerid]][id], 30, output);
        format(szoveg, 150, \"{00ff2b}[bANDA] {ffffff}\'%s\' {ffffff}módosította a(z) {00ff2b}\'%d\' {ffffff}rendfokozat nevét {ff0000}\'%s\'{ffffff}-re\", jatekosneve, id, output);
        print(\"FOS 2\");
        for(new g =0; g< MAX_PLAYERS; g++)
        {
            if(BandaTag[g] == BandaTag[playerid])
            {
                SendClientMessage(g, -1, szoveg);
            }
        }
        return 1;
}
COMMAND:trendfokozat(playerid, params[])
{
    if(BandaRang[playerid] < RENDFOKOZATOK) //Amennyiben csak normál tag
        {
            SendClientMessage(playerid, SZIN_PIROS, \"Ezt a parancsot csak maximális rendfokozaton használhatod!\");
            return 1;
        }
        new id,szam;
        if(sscanf(params, \"ud\", id,szam))
        {
            SendClientMessage(playerid, SZIN_PIROS, \"Kérlek a parancsot így használd: /trendfokozat [id] [rendfokozat]\");
            return 1;
        }
        if(id == INVALID_PLAYER_ID)
        {
            SendClientMessage(playerid, SZIN_PIROS, \"Nem találom a játékost!\");
            return 1;
        }
        if(BandaTag[id] != BandaTag[playerid])
        {
            SendClientMessage(playerid, SZIN_PIROS, \"Õ nincs a te bandádba!\");
            return 1;
        }
        new szoveg[150];
        new jatekosneve[MAX_PLAYER_NAME];
        new gyokerneve[MAX_PLAYER_NAME];
        GetPlayerName(playerid, jatekosneve, MAX_PLAYER_NAME);
        GetPlayerName(playerid, gyokerneve, MAX_PLAYER_NAME);
        BandaRang[id] = szam;
        format(szoveg, 150,\"{00ff2b}[bANDA] {ffffff}\'%s\' {ffffff}módosította  {00ff2b}\'%s\' {ffffff}rendfokozatát {00ff2b}\'%s\'{ffffff}-re\", jatekosneve, gyokerneve, BandaRendfokozat[bandaTag[playerid]][szam]);
        return 1;
}
COMMAND:banda(playerid,params[])
{
        new output[80]; //Amit a \'szóköz\' után ír ebben a változóban tároljuk el!
        //Ha nincs bandában/bandája akkor más funkciók érhetõek el a számára
        if(Bandaban[playerid] == false)
        {
        if(sscanf(params, \"s[80]\", output))
            {
                SendClientMessage(playerid, SZIN_PIROS, \"Kérlek a parancsot így használd: /banda [létrehoz]\");
                return 1;
            }
            if(!strcmp(output, \"létrehoz\", true, 9))
            {
                        new talalat = 0;
                        for(new i = 0; i < MAX_BANDA; i++)
                        {
                            if(UresBanda == 1)
                            {
                                talalat = 1;
                            }
                        }
                        if(talalat == 0)
                        {
                            SendClientMessage(playerid, SZIN_PIROS, \"Sajnálom az összes banda telített! Kérlek próbálkozz késõbb!\");
                            BandatGeneral[playerid] = 0;
                            return 1;
                        }
                    SendClientMessage(playerid, SZIN_PIROS, \"Rendben! Kérlek írd be a Banda leendõ nevét (MAX 50 karakter!), kilépéshez írd be a kilép szót\");
                    BandatGeneral[playerid] = 1;
                }
       
        }
        else
        {
            if(BandaRang[playerid] < RENDFOKOZATOK) //Amennyiben csak normál tag
            {
                    if(sscanf(params, \"s[80]\", output))
                    {
                        SendClientMessage(playerid, SZIN_PIROS, \"Kérlek a parancsot így használd: /banda [kilép]\");
                        return 1;
                    }
                    if(strcmp(output, \"kilép\", true, 6) && strcmp(output, \"meghív\", true, 7))
                    {
                        SendClientMessage(playerid, SZIN_PIROS, \"Kérlek a parancsot így használd: /banda [kilép]\");
                        return 1;
                    }
                    if(!strcmp(output, \"kilép\", true, 6))
                    {
                        new jatekosneve[MAX_PLAYER_NAME];
                        new szoveg[128];
                        GetPlayerName(playerid, jatekosneve, MAX_PLAYER_NAME);
                        for(new i = 0; i < MAX_PLAYERS; i++)
                        {
                                        if(BandaTag == BandaTag[playerid])
                                        {
                                            BandaTagokSzama[bandaTag[playerid]] --;
                                            Bandaban[playerid] = false;
                                            format(szoveg, 128, \"{e100ff}[bANDA] {2e1e00}%s {ffffff}elhagyta a bandát! Tagok száma: {0f6100}%d\", jatekosneve, BandaTagokSzama[bandaTag[playerid]] );
                                            SendClientMessage(i, -1, szoveg);
                                        }
                                        if(BandaTagokSzama[bandaTag[playerid]] == 0)
                                        {
                                            format(szoveg, 128, \"Az {0f6100}\'%s\' {ffffff}névre hallgató banda {ff0000}feloszlott {ffffff}mivel az utolsó tag is kilépett!\");
                                            SendClientMessageToAll(-1, szoveg);
                                        }
                        }
                    }
                    if(!strcmp(output, \"meghív\", true, 6))
                    {
                        SendClientMessage(playerid, SZIN_ZOLD, \"Játékos bandába való meghívásához kérlek kattints a nevére (ezt a parancsot nem muszáj beírnod)!\");
                    }
           
            }
            else //Amennyiben góré :)
            {
                        SendClientMessage(playerid, SZIN_ZOLD, \"Játékos bandába való meghívásához/kirúgásához kérlek kattints a nevére!\");
                        SendClientMessage(playerid, SZIN_ZOLD, \"Rendfokozatok állítása [név]: /brendfokozat [rendfokozat id] [név]\");
                        SendClientMessage(playerid, SZIN_ZOLD, \"Rendfokozatok állítása [tag]: /trendfokozat [játékos] [id]\");
            }
       
        }
        return 1;
}

154
Beszélgetés / WWE pankráció kedvelõknek
« Dátum: 2012. Október 25. - 20:59:18 »
Mivel láttam vannak itt kedvelõk ezért megosztom ezt a videót a játékró. Igazából én nem próbáltam nem valami ismert játék.
 

155
Fórum Archívum (Témák/Fórumok) / ÁTHELYEZVE: Rpg Modot vennék
« Dátum: 2012. Október 25. - 13:17:03 »
A téma át lett helyezve a következõbe: RP/RPG kérések.
http://sampforum.hu/index.php?topic=33517.0" class="bbc_link">http://http://sampforum.hu/index.php?topic=33517.0

156
Fórum Archívum (Témák/Fórumok) / ÁTHELYEZVE: Bélprobléma.
« Dátum: 2012. Október 21. - 21:05:27 »
A téma át lett helyezve a következõbe: Off Telep.
http://sampforum.hu/index.php?topic=33348.0" class="bbc_link">http://http://sampforum.hu/index.php?topic=33348.0

157
Fórum Archívum (Témák/Fórumok) / ÁTHELYEZVE: Scriptert Keresek!!!
« Dátum: 2012. Október 21. - 15:19:21 »

158
Képek / Videók / GTA VC Rage Motoron
« Dátum: 2012. Október 19. - 19:56:53 »

159
Kérdések, Segítség / Telefonkérdés
« Dátum: 2012. Október 16. - 15:59:11 »
Nos hát egy nagy feketefoltom a világból a telefonok kérdése. Lassan már 4 éve nincs telefonom mivel nem volt rá szükségem de most eljött az idõ, hogy beruházzak egyre.
Az érdekelne, hogy ki milyen telefont ajánlana -25-30 000FT körül.
Annyit kérek, hogy ne mondjatok olyanokat, hogy androidos meg kutya tököm mert fogalmam sincs róla mi az. Nekem telefon telefonálásra van használva semmi másra. Viszont azért nem ártana egy olyan telefon amit közösségben is elõlehetne venni úgy, hogy a közönség ezen ne szórakozzon egy sort ezért kérdezlek meg titeket.

160
Képek / Videók / Változás
« Dátum: 2012. Október 05. - 11:36:31 »
Õszintén ki mennyit talált?
 

161
Fórum Archívum (Témák/Fórumok) / ÁTHELYEZVE: Steam
« Dátum: 2012. Október 04. - 20:41:08 »
A téma át lett helyezve a következõbe: Kérdések, Segítség.
http://sampforum.hu/index.php?topic=32749.0" class="bbc_link">http://http://sampforum.hu/index.php?topic=32749.0

162
Lecke/fejlesztés tartalma: TextDrawok készítése és egy új chatbox létrehozása,


Szükséges pluginok és includék: Zamaroht\'s TextDraw Editor for 0.3d RC5-3.
Felhívás: A TextDraw editor használatáról bemutatást és letöltést találhattok a mellékletben. Továbbá mûködik 0.3e verzió fölött is.
Melléklet: [hs width=30 height=30]http://i.imgur.com/YMgkL.jpg[/hs]
Elsõ lépés:


Nézzük hol fejeztük be legutóbb:
 
#include <a_samp>
#include <zcmd>
#define SZIN_PIROS 0xff0000AA
#define SZIN_SARGA 0xffa600AA
#define SZIN_ZOLD 0x227305AA
#define SZIN_KEK 0x08027aAA
main()
{
        print(\"\\n----------------------------------\");
        print(\" SAMPFORUM.HU PAWN GYAKORLATI tanfolyam\");
        print(\"----------------------------------\\n\");
}
public OnGameModeInit()
{
   AddPlayerClass(0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0);
   SetGameModeText(\"Sampforum Carmageddon v0.1b\");
   return 1;
}

 
Az elsõ lépcsõben ezt hanyagoljuk, most a játékban fogunk szerkesztgetni. Rconnal töltsük be a mellékelt filterscriptet majd a /text paranccsal hozzunk létre textdrawokat a kívánt pozícióban.
Én a kész verzióról mellékeltem egy képet. Egy hasonló összedobását javaslom elsõnek. Ennek a másodlagos chatboxnak az értelme az, hogy a normál chatboxban csak a \'szerver hirdetményei\' fognak menni. Míg itt csak a tényleges beszélgetés. Engem nagyon szokott zavarni a kevert chatbox ezért is mellékelem a carmageddon játékmódba ezt a funkciót továbbá logikai elvben tartogat pár formázási érdekességet.
Tehát a text draw editorral hozzatok létre kész textdrawot és szöveggel töltsétek ki majd mozgassátok a kívánt helyre. Ahány sort szeretnétek annyi textdrawra lesz szükségünk.
Ha elkészültetek vele akkor exportáljátok a textdrawot, így megjelenítõdik egy textdrawneve.pwn fájl a scriptfiles mappában.
Második lépés:


Valami ehhez hasonlót kell látnotok:
 
/*
Filterscript generated using Zamaroht\'s TextDraw Editor Version 1.0.
Designed for SA-MP 0.3a.
Time and Date: 2012-9-9 @ 16:59:38
Instructions:
1- Compile this file using the compiler provided with the sa-mp server package.
2- Copy the .amx file to the filterscripts directory.
3- Add the filterscripts in the server.cfg file (more info here:
http://wiki.sa-mp.com/wiki/Server.cfg)
4- Run the server!
Disclaimer:
You have full rights over this file. You can distribute it, modify it, and
change it as much as you want, without having to give any special credits.
*/
#include <a_samp>
new Text:Textdraw0;
new Text:Textdraw1;
new Text:Textdraw2;
new Text:Textdraw3;
new Text:Textdraw4;
new Text:Textdraw5;
new Text:Textdraw6;
new Text:Textdraw7;
new Text:Textdraw8;
new Text:Textdraw9;
public OnFilterScriptInit()
{
print(\"Textdraw file generated by\");
print(\"    Zamaroht\'s textdraw editor was loaded.\");
// Create the textdraws:
Textdraw0 = TextDrawCreate(409.000000, 352.000000, \"Szandokan: Elmentem gyere utanam gyorsan nem birom utolerni ezt a csakot\");
TextDrawBackgroundColor(Textdraw0, 255);
TextDrawFont(Textdraw0, 1);
TextDrawLetterSize(Textdraw0, 0.139999, 1.000000);
TextDrawColor(Textdraw0, -1);
TextDrawSetOutline(Textdraw0, 0);
TextDrawSetProportional(Textdraw0, 1);
TextDrawSetShadow(Textdraw0, 1);
Textdraw1 = TextDrawCreate(409.000000, 362.000000, \"Szandokan: Elmentem gyere utanam gyorsan nem birom utolerni ezt a csakot\");
TextDrawBackgroundColor(Textdraw1, 255);
TextDrawFont(Textdraw1, 1);
TextDrawLetterSize(Textdraw1, 0.139999, 1.000000);
TextDrawColor(Textdraw1, -1);
TextDrawSetOutline(Textdraw1, 0);
TextDrawSetProportional(Textdraw1, 1);
TextDrawSetShadow(Textdraw1, 1);
Textdraw2 = TextDrawCreate(409.000000, 372.000000, \"Szandokan: Elmentem gyere utanam gyorsan nem birom utolerni ezt a csakot\");
TextDrawBackgroundColor(Textdraw2, 255);
TextDrawFont(Textdraw2, 1);
TextDrawLetterSize(Textdraw2, 0.139999, 1.000000);
TextDrawColor(Textdraw2, -1);
TextDrawSetOutline(Textdraw2, 0);
TextDrawSetProportional(Textdraw2, 1);
TextDrawSetShadow(Textdraw2, 1);
Textdraw3 = TextDrawCreate(409.000000, 382.000000, \"Szandokan: Elmentem gyere utanam gyorsan nem birom utolerni ezt a csakot\");
TextDrawBackgroundColor(Textdraw3, 255);
TextDrawFont(Textdraw3, 1);
TextDrawLetterSize(Textdraw3, 0.139999, 1.000000);
TextDrawColor(Textdraw3, -1);
TextDrawSetOutline(Textdraw3, 0);
TextDrawSetProportional(Textdraw3, 1);
TextDrawSetShadow(Textdraw3, 1);
Textdraw4 = TextDrawCreate(409.000000, 392.000000, \"Szandokan: Elmentem gyere utanam gyorsan nem birom utolerni ezt a csakot\");
TextDrawBackgroundColor(Textdraw4, 255);
TextDrawFont(Textdraw4, 1);
TextDrawLetterSize(Textdraw4, 0.139999, 1.000000);
TextDrawColor(Textdraw4, -1);
TextDrawSetOutline(Textdraw4, 0);
TextDrawSetProportional(Textdraw4, 1);
TextDrawSetShadow(Textdraw4, 1);
Textdraw5 = TextDrawCreate(409.000000, 401.000000, \"Szandokan: Elmentem gyere utanam gyorsan nem birom utolerni ezt a csakot\");
TextDrawBackgroundColor(Textdraw5, 255);
TextDrawFont(Textdraw5, 1);
TextDrawLetterSize(Textdraw5, 0.139999, 1.000000);
TextDrawColor(Textdraw5, -1);
TextDrawSetOutline(Textdraw5, 0);
TextDrawSetProportional(Textdraw5, 1);
TextDrawSetShadow(Textdraw5, 1);
Textdraw6 = TextDrawCreate(409.000000, 410.000000, \"Szandokan: Elmentem gyere utanam gyorsan nem birom utolerni ezt a csakot\");
TextDrawBackgroundColor(Textdraw6, 255);
TextDrawFont(Textdraw6, 1);
TextDrawLetterSize(Textdraw6, 0.139999, 1.000000);
TextDrawColor(Textdraw6, -1);
TextDrawSetOutline(Textdraw6, 0);
TextDrawSetProportional(Textdraw6, 1);
TextDrawSetShadow(Textdraw6, 1);
Textdraw7 = TextDrawCreate(409.000000, 419.000000, \"Szandokan: Elmentem gyere utanam gyorsan nem birom utolerni ezt a csakot\");
TextDrawBackgroundColor(Textdraw7, 255);
TextDrawFont(Textdraw7, 1);
TextDrawLetterSize(Textdraw7, 0.139999, 1.000000);
TextDrawColor(Textdraw7, -1);
TextDrawSetOutline(Textdraw7, 0);
TextDrawSetProportional(Textdraw7, 1);
TextDrawSetShadow(Textdraw7, 1);
Textdraw8 = TextDrawCreate(409.000000, 429.000000, \"Szandokan: Elmentem gyere utanam gyorsan nem birom utolerni ezt a csakot\");
TextDrawBackgroundColor(Textdraw8, 255);
TextDrawFont(Textdraw8, 1);
TextDrawLetterSize(Textdraw8, 0.139999, 1.000000);
TextDrawColor(Textdraw8, -1);
TextDrawSetOutline(Textdraw8, 0);
TextDrawSetProportional(Textdraw8, 1);
TextDrawSetShadow(Textdraw8, 1);
Textdraw9 = TextDrawCreate(408.000000, 354.000000, \"~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~\");
TextDrawBackgroundColor(Textdraw9, 255);
TextDrawFont(Textdraw9, 1);
TextDrawLetterSize(Textdraw9, 0.500000, 1.000000);
TextDrawColor(Textdraw9, -1);
TextDrawSetOutline(Textdraw9, 0);
TextDrawSetProportional(Textdraw9, 1);
TextDrawSetShadow(Textdraw9, 1);
TextDrawUseBox(Textdraw9, 1);
TextDrawBoxColor(Textdraw9, 130);
TextDrawTextSize(Textdraw9, 646.000000, 5.000000);
for(new i; i < MAX_PLAYERS; i ++)
{
if(IsPlayerConnected(i))
{
   TextDrawShowForPlayer(i, Textdraw0);
   TextDrawShowForPlayer(i, Textdraw1);
   TextDrawShowForPlayer(i, Textdraw2);
   TextDrawShowForPlayer(i, Textdraw3);
   TextDrawShowForPlayer(i, Textdraw4);
   TextDrawShowForPlayer(i, Textdraw5);
   TextDrawShowForPlayer(i, Textdraw6);
   TextDrawShowForPlayer(i, Textdraw7);
   TextDrawShowForPlayer(i, Textdraw8);
   TextDrawShowForPlayer(i, Textdraw9);
}
}
return 1;
}
public OnFilterScriptExit()
{
TextDrawHideForAll(Textdraw0);
TextDrawDestroy(Textdraw0);
TextDrawHideForAll(Textdraw1);
TextDrawDestroy(Textdraw1);
TextDrawHideForAll(Textdraw2);
TextDrawDestroy(Textdraw2);
TextDrawHideForAll(Textdraw3);
TextDrawDestroy(Textdraw3);
TextDrawHideForAll(Textdraw4);
TextDrawDestroy(Textdraw4);
TextDrawHideForAll(Textdraw5);
TextDrawDestroy(Textdraw5);
TextDrawHideForAll(Textdraw6);
TextDrawDestroy(Textdraw6);
TextDrawHideForAll(Textdraw7);
TextDrawDestroy(Textdraw7);
TextDrawHideForAll(Textdraw8);
TextDrawDestroy(Textdraw8);
TextDrawHideForAll(Textdraw9);
TextDrawDestroy(Textdraw9);
return 1;
}
public OnPlayerConnect(playerid)
{
TextDrawShowForPlayer(playerid, Textdraw0);
TextDrawShowForPlayer(playerid, Textdraw1);
TextDrawShowForPlayer(playerid, Textdraw2);
TextDrawShowForPlayer(playerid, Textdraw3);
TextDrawShowForPlayer(playerid, Textdraw4);
TextDrawShowForPlayer(playerid, Textdraw5);
TextDrawShowForPlayer(playerid, Textdraw6);
TextDrawShowForPlayer(playerid, Textdraw7);
TextDrawShowForPlayer(playerid, Textdraw8);
TextDrawShowForPlayer(playerid, Textdraw9);
return 1;
}

 
Itt már látszik egy probléma az, hogy a változók neve TextdrawX. Ez a késõbbiekben igen zavaró lehet ezért javaslom, hogy módosítsátok erre:
Megjegyzés: Lehetne itt akár cellázni is. Viszont, hogy megértsék a gyengébbek is elsõre a logikai menetet ezért nem rendelem cellákba a változók értékeit.
 

new     Text:Chat0;
new     Text:Chat1;
new     Text:Chat2;
new     Text:Chat3;
new     Text:Chat4;
new     Text:Chat5;
new     Text:Chat6;
new     Text:Chat7;
new     Text:Chat8;
new     Text:Chat9;
public OnGameModeInit()
{
     // Create the textdraws:
        Chat9 = TextDrawCreate(408.000000, 354.000000, \"~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~\");
        TextDrawBackgroundColor(Chat9, 255);
        TextDrawFont(Chat9, 1);
        TextDrawLetterSize(Chat9, 0.500000, 1.000000);
        TextDrawColor(Chat9, -1);
        TextDrawSetOutline(Chat9, 0);
        TextDrawSetProportional(Chat9, 1);
        TextDrawSetShadow(Chat9, 1);
        TextDrawUseBox(Chat9, 1);
        TextDrawBoxColor(Chat9, 130);
        TextDrawTextSize(Chat9, 646.000000, 5.000000);
       
       
        Chat0 = TextDrawCreate(409.000000, 352.000000, \" \");
        TextDrawBackgroundColor(Chat0, 255);
        TextDrawFont(Chat0, 1);
        TextDrawLetterSize(Chat0, 0.139999, 1.000000);
        TextDrawColor(Chat0, -1);
        TextDrawSetOutline(Chat0, 0);
        TextDrawSetProportional(Chat0, 1);
        TextDrawSetShadow(Chat0, 1);
        Chat1 = TextDrawCreate(409.000000, 362.000000, \" \");
        TextDrawBackgroundColor(Chat1, 255);
        TextDrawFont(Chat1, 1);
        TextDrawLetterSize(Chat1, 0.139999, 1.000000);
        TextDrawColor(Chat1, -1);
        TextDrawSetOutline(Chat1, 0);
        TextDrawSetProportional(Chat1, 1);
        TextDrawSetShadow(Chat1, 1);
        Chat2 = TextDrawCreate(409.000000, 372.000000, \" \");
        TextDrawBackgroundColor(Chat2, 255);
        TextDrawFont(Chat2, 1);
        TextDrawLetterSize(Chat2, 0.139999, 1.000000);
        TextDrawColor(Chat2, -1);
        TextDrawSetOutline(Chat2, 0);
        TextDrawSetProportional(Chat2, 1);
        TextDrawSetShadow(Chat2, 1);
        Chat3 = TextDrawCreate(409.000000, 382.000000, \" \");
        TextDrawBackgroundColor(Chat3, 255);
        TextDrawFont(Chat3, 1);
        TextDrawLetterSize(Chat3, 0.139999, 1.000000);
        TextDrawColor(Chat3, -1);
        TextDrawSetOutline(Chat3, 0);
        TextDrawSetProportional(Chat3, 1);
        TextDrawSetShadow(Chat3, 1);
        Chat4 = TextDrawCreate(409.000000, 392.000000, \" \");
        TextDrawBackgroundColor(Chat4, 255);
        TextDrawFont(Chat4, 1);
        TextDrawLetterSize(Chat4, 0.139999, 1.000000);
        TextDrawColor(Chat4, -1);
        TextDrawSetOutline(Chat4, 0);
        TextDrawSetProportional(Chat4, 1);
        TextDrawSetShadow(Chat4, 1);
        Chat5 = TextDrawCreate(409.000000, 401.000000, \" \");
        TextDrawBackgroundColor(Chat5, 255);
        TextDrawFont(Chat5, 1);
        TextDrawLetterSize(Chat5, 0.139999, 1.000000);
        TextDrawColor(Chat5, -1);
        TextDrawSetOutline(Chat5, 0);
        TextDrawSetProportional(Chat5, 1);
        TextDrawSetShadow(Chat5, 1);
        Chat6 = TextDrawCreate(409.000000, 410.000000, \" \");
        TextDrawBackgroundColor(Chat6, 255);
        TextDrawFont(Chat6, 1);
        TextDrawLetterSize(Chat6, 0.139999, 1.000000);
        TextDrawColor(Chat6, -1);
        TextDrawSetOutline(Chat6, 0);
        TextDrawSetProportional(Chat6, 1);
        TextDrawSetShadow(Chat6, 1);
        Chat7 = TextDrawCreate(409.000000, 419.000000, \" \");
        TextDrawBackgroundColor(Chat7, 255);
        TextDrawFont(Chat7, 1);
        TextDrawLetterSize(Chat7, 0.139999, 1.000000);
        TextDrawColor(Chat7, -1);
        TextDrawSetOutline(Chat7, 0);
        TextDrawSetProportional(Chat7, 1);
        TextDrawSetShadow(Chat7, 1);
        Chat8 = TextDrawCreate(409.000000, 429.000000, \" \");
        TextDrawBackgroundColor(Chat8, 255);
        TextDrawFont(Chat8, 1);
        TextDrawLetterSize(Chat8, 0.139999, 1.000000);
        TextDrawColor(Chat8, -1);
        TextDrawSetOutline(Chat8, 0);
        TextDrawSetProportional(Chat8, 1);
        TextDrawSetShadow(Chat8, 1);
  return 1;
}
public OnPlayerConnect(playerid)
{
    TextDrawShowForPlayer(playerid, Chat9);
        TextDrawShowForPlayer(playerid, Chat0);
        TextDrawShowForPlayer(playerid, Chat1);
        TextDrawShowForPlayer(playerid, Chat2);
        TextDrawShowForPlayer(playerid, Chat3);
        TextDrawShowForPlayer(playerid, Chat4);
        TextDrawShowForPlayer(playerid, Chat5);
        TextDrawShowForPlayer(playerid, Chat6);
        TextDrawShowForPlayer(playerid, Chat7);
        TextDrawShowForPlayer(playerid, Chat8);
  return 1;
}

 
Egyelõre csak ennyire van szükségünk. Ollózzuk be a játékmódba a részeket. A forrásod valahogy így kell kinézzen mint most nekem:
 
#include <a_samp>
#include <zcmd>
#define SZIN_PIROS 0xff0000AA
#define SZIN_SARGA 0xffa600AA
#define SZIN_ZOLD 0x227305AA
#define SZIN_KEK 0x08027aAA
//Chatbox textdrawjai
new     Text:Chat0;
new     Text:Chat1;
new     Text:Chat2;
new     Text:Chat3;
new     Text:Chat4;
new     Text:Chat5;
new     Text:Chat6;
new     Text:Chat7;
new     Text:Chat8;
new     Text:Chat9;
 
main()
{
        print(\"\\n----------------------------------\");
        print(\" SAMPFORUM.HU PAWN GYAKORLATI tanfolyam\");
        print(\"----------------------------------\\n\");
}
public OnGameModeInit()
{
   AddPlayerClass(0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0);
   SetGameModeText(\"Sampforum Carmageddon v0.1b\");
  // A chatbox textdrawjai
        Chat9 = TextDrawCreate(408.000000, 354.000000, \"~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~\");
        TextDrawBackgroundColor(Chat9, 255);
        TextDrawFont(Chat9, 1);
        TextDrawLetterSize(Chat9, 0.500000, 1.000000);
        TextDrawColor(Chat9, -1);
        TextDrawSetOutline(Chat9, 0);
        TextDrawSetProportional(Chat9, 1);
        TextDrawSetShadow(Chat9, 1);
        TextDrawUseBox(Chat9, 1);
        TextDrawBoxColor(Chat9, 130);
        TextDrawTextSize(Chat9, 646.000000, 5.000000);
       
       
        Chat0 = TextDrawCreate(409.000000, 352.000000, \" \");
        TextDrawBackgroundColor(Chat0, 255);
        TextDrawFont(Chat0, 1);
        TextDrawLetterSize(Chat0, 0.139999, 1.000000);
        TextDrawColor(Chat0, -1);
        TextDrawSetOutline(Chat0, 0);
        TextDrawSetProportional(Chat0, 1);
        TextDrawSetShadow(Chat0, 1);
        Chat1 = TextDrawCreate(409.000000, 362.000000, \" \");
        TextDrawBackgroundColor(Chat1, 255);
        TextDrawFont(Chat1, 1);
        TextDrawLetterSize(Chat1, 0.139999, 1.000000);
        TextDrawColor(Chat1, -1);
        TextDrawSetOutline(Chat1, 0);
        TextDrawSetProportional(Chat1, 1);
        TextDrawSetShadow(Chat1, 1);
        Chat2 = TextDrawCreate(409.000000, 372.000000, \" \");
        TextDrawBackgroundColor(Chat2, 255);
        TextDrawFont(Chat2, 1);
        TextDrawLetterSize(Chat2, 0.139999, 1.000000);
        TextDrawColor(Chat2, -1);
        TextDrawSetOutline(Chat2, 0);
        TextDrawSetProportional(Chat2, 1);
        TextDrawSetShadow(Chat2, 1);
        Chat3 = TextDrawCreate(409.000000, 382.000000, \" \");
        TextDrawBackgroundColor(Chat3, 255);
        TextDrawFont(Chat3, 1);
        TextDrawLetterSize(Chat3, 0.139999, 1.000000);
        TextDrawColor(Chat3, -1);
        TextDrawSetOutline(Chat3, 0);
        TextDrawSetProportional(Chat3, 1);
        TextDrawSetShadow(Chat3, 1);
        Chat4 = TextDrawCreate(409.000000, 392.000000, \" \");
        TextDrawBackgroundColor(Chat4, 255);
        TextDrawFont(Chat4, 1);
        TextDrawLetterSize(Chat4, 0.139999, 1.000000);
        TextDrawColor(Chat4, -1);
        TextDrawSetOutline(Chat4, 0);
        TextDrawSetProportional(Chat4, 1);
        TextDrawSetShadow(Chat4, 1);
        Chat5 = TextDrawCreate(409.000000, 401.000000, \" \");
        TextDrawBackgroundColor(Chat5, 255);
        TextDrawFont(Chat5, 1);
        TextDrawLetterSize(Chat5, 0.139999, 1.000000);
        TextDrawColor(Chat5, -1);
        TextDrawSetOutline(Chat5, 0);
        TextDrawSetProportional(Chat5, 1);
        TextDrawSetShadow(Chat5, 1);
        Chat6 = TextDrawCreate(409.000000, 410.000000, \" \");
        TextDrawBackgroundColor(Chat6, 255);
        TextDrawFont(Chat6, 1);
        TextDrawLetterSize(Chat6, 0.139999, 1.000000);
        TextDrawColor(Chat6, -1);
        TextDrawSetOutline(Chat6, 0);
        TextDrawSetProportional(Chat6, 1);
        TextDrawSetShadow(Chat6, 1);
        Chat7 = TextDrawCreate(409.000000, 419.000000, \" \");
        TextDrawBackgroundColor(Chat7, 255);
        TextDrawFont(Chat7, 1);
        TextDrawLetterSize(Chat7, 0.139999, 1.000000);
        TextDrawColor(Chat7, -1);
        TextDrawSetOutline(Chat7, 0);
        TextDrawSetProportional(Chat7, 1);
        TextDrawSetShadow(Chat7, 1);
        Chat8 = TextDrawCreate(409.000000, 429.000000, \" \");
        TextDrawBackgroundColor(Chat8, 255);
        TextDrawFont(Chat8, 1);
        TextDrawLetterSize(Chat8, 0.139999, 1.000000);
        TextDrawColor(Chat8, -1);
        TextDrawSetOutline(Chat8, 0);
        TextDrawSetProportional(Chat8, 1);
        TextDrawSetShadow(Chat8, 1);
   return 1;
}
public OnPlayerConnect(playerid)
{
        TextDrawShowForPlayer(playerid, Chat9);
        TextDrawShowForPlayer(playerid, Chat0);
        TextDrawShowForPlayer(playerid, Chat1);
        TextDrawShowForPlayer(playerid, Chat2);
        TextDrawShowForPlayer(playerid, Chat3);
        TextDrawShowForPlayer(playerid, Chat4);
        TextDrawShowForPlayer(playerid, Chat5);
        TextDrawShowForPlayer(playerid, Chat6);
        TextDrawShowForPlayer(playerid, Chat7);
        TextDrawShowForPlayer(playerid, Chat8);
  return 1;
}

 
Harmadik lépés:


A textdrawunk elkészült, de még nem funkcionál. Arra lesz szükségünk, hogy ha a játékos üzenetet ír a chatboxba akkor a legalsó helyre írja az üzenetét majd a régieket lentrõl felfelé mozgassa egy szinttel.
Szükségünk lesz egy változóra. Lehetne akár 10 darabot is létrehozni 128 cellaértékkel, de én most egy változónak adok 10 cellát és minden cella alá rendelek 128 karakter befogadásra alkalmas helyet. Ez bonyolultnak hangzik, de nem az:
 
//CHATBOX
new     ChatBox[10][128];

 
Ezt a játékmódunk elején hozzuk létre.
Ha ez megvan térjünk rá az OnPlayerText callbackre ami akkor kerül meghívásra amikor a játékos üzenetet ír a chatboxba. Elõször a teljes kódot mutatom majd jön hozzá a magyarázat.
 
public OnPlayerText(playerid, text[])
{
        format(ChatBox[0], 128, ChatBox[1]);
        format(ChatBox[1], 128, ChatBox[2]);
        format(ChatBox[2], 128, ChatBox[3]);
        format(ChatBox[3], 128, ChatBox[4]);
        format(ChatBox[4], 128, ChatBox[5]);
        format(ChatBox[5], 128, ChatBox[6]);
        format(ChatBox[6], 128, ChatBox[7]);
        format(ChatBox[7], 128, ChatBox[8]);
       
        TextDrawSetString(Chat7, ChatBox[8]);
        new jatekosnev[24];
        GetPlayerName(playerid, jatekosnev, 24);
        format(ChatBox[8], 128, \"~r~%s: ~w~%s\",jatekosnev,text);
        TextDrawSetString(Chat8, ChatBox[8]);
        TextDrawSetString(Chat7, ChatBox[7]);
        TextDrawSetString(Chat6, ChatBox[6]);
        TextDrawSetString(Chat5, ChatBox[5]);
        TextDrawSetString(Chat4, ChatBox[4]);
        TextDrawSetString(Chat3, ChatBox[3]);
        TextDrawSetString(Chat2, ChatBox[2]);
        TextDrawSetString(Chat1, ChatBox[1]);
        TextDrawSetString(Chat0, ChatBox[0]);
       
        return 0;
}

 
Na nézzük is a dolgokat. Elõször is lehetne ciklussal is dolgozni viszont itt most a megértés a lényeg. Logikailag átgondolva a dolgokat csupán annyi a feladatunk, hogy lentrõl felfelé mozgassuk a szövegeket. Tehát formázásban logikai síkon így kell kinézzen a gondolatvezetésünk:
format(X, 128, X+1);

 
Tehát ha a tört kódot nézzük:
 
format(ChatBox[0], 128, ChatBox[1]);
        format(ChatBox[1], 128, ChatBox[2]);
        format(ChatBox[2], 128, ChatBox[3]);
format(ChatBox[3], 128, ChatBox[4]);
format(ChatBox[4], 128, ChatBox[5]);
format(ChatBox[5], 128, ChatBox[6]);
format(ChatBox[6], 128, ChatBox[7]);
format(ChatBox[7], 128, ChatBox[8]);

 
A hetes cellába megy a 8-as cellában található szöveg, a hatosba a hetesbe található és így tovább. Remélem értitek a gondolatvezetését. Csak eggyel fentebb kell tolni a dolgokat. A format mûködését nem taglalnám túl bonyolultan. Egy \'parasztias\' fogalmazásban élve:
 
format(változó amit formázol, méret amennyit használni szeretnél, mire formázod);

 
A kicsit érdekesebb része alatta található ahol az elsõ sort adjuk meg. Ugyanis ott már le kell kérdeznünk nevet is, de ez sem nehéz.
Elõször nézzük megint egyben a kódrészletet:
 
   new jatekosnev[24];
GetPlayerName(playerid, jatekosnev, 24);
format(ChatBox[8], 128, \"~r~%s: ~w~%s\",jatekosnev,text);

 
Létrehozunk egy változót aminek a neve \'jatekosnev\' és 24 (akarommondani 23) karakter befogadására alkalmas. Ez a maximális névhossz a SAMP keretei között. Ha nem számmal szeretnéd megadni mert klienseknél változhat a nevek mérete célszerû MAX_PLAYER_NAME definícióra hivatkozni. Én most számmal adtam meg az értéket.
Második lépcsõben lekérdezzük a változóba a játékos nevét. Utána formázzük a szöveget. Amik ismeretlenek lehetnek azok a ~r~ - azaz piros textdrawszín, %s - azaz szövegre hivatkozás, - ~w~ -azaz fehér szövegszín. A vesszõ után megadjuk a hivatkozásoknak címkéit. Az olvasás balról jobbra történik így a hivatkozásunk sorrendje is ilyen kell legyen.
Legvégül a textdrawok szövegeit módosítjuk a következõképpen ugyan itt:
 
   
TextDrawSetString(Chat7, ChatBox[8]);
        TextDrawSetString(Chat8, ChatBox[8]);
TextDrawSetString(Chat7, ChatBox[7]);
TextDrawSetString(Chat6, ChatBox[6]);
TextDrawSetString(Chat5, ChatBox[5]);
TextDrawSetString(Chat4, ChatBox[4]);
TextDrawSetString(Chat3, ChatBox[3]);
TextDrawSetString(Chat2, ChatBox[2]);
TextDrawSetString(Chat1, ChatBox[1]);
TextDrawSetString(Chat0, ChatBox[0]);

 
Azt ne felejtsük el, hogy a visszatérés (return) a callbacknál 0 legyen így nem fogja elküldeni a régi chatboxba az üzenetet.
Ha bármelyik függvény nem érthetõ számodra témában kérdezhetsz róla, de elõtte nézz szét a fórumon (itt) mert lehet, hogy a kérdésedre a válasz ott már adott.
Összegzés:
 
#include <a_samp>
#include <zcmd>
#define SZIN_PIROS 0xff0000AA
#define SZIN_SARGA 0xffa600AA
#define SZIN_ZOLD 0x227305AA
#define SZIN_KEK 0x08027aAA
//Chatbox textdrawjai
new     Text:Chat0;
new     Text:Chat1;
new     Text:Chat2;
new     Text:Chat3;
new     Text:Chat4;
new     Text:Chat5;
new     Text:Chat6;
new     Text:Chat7;
new     Text:Chat8;
new     Text:Chat9;
new     ChatBox[10][128];
main()
{
        print(\"\\n----------------------------------\");
        print(\" SAMPFORUM.HU PAWN GYAKORLATI tanfolyam\");
        print(\"----------------------------------\\n\");
}
public OnGameModeInit()
{
   AddPlayerClass(0, 0.0, 0.0, 0.0, 0.0, 0, 0, 0, 0, 0, 0);
   SetGameModeText(\"Sampforum Carmageddon v0.1b\");
  // A chatbox textdrawjai
        Chat9 = TextDrawCreate(408.000000, 354.000000, \"~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~\");
        TextDrawBackgroundColor(Chat9, 255);
        TextDrawFont(Chat9, 1);
        TextDrawLetterSize(Chat9, 0.500000, 1.000000);
        TextDrawColor(Chat9, -1);
        TextDrawSetOutline(Chat9, 0);
        TextDrawSetProportional(Chat9, 1);
        TextDrawSetShadow(Chat9, 1);
        TextDrawUseBox(Chat9, 1);
        TextDrawBoxColor(Chat9, 130);
        TextDrawTextSize(Chat9, 646.000000, 5.000000);
       
       
        Chat0 = TextDrawCreate(409.000000, 352.000000, \" \");
        TextDrawBackgroundColor(Chat0, 255);
        TextDrawFont(Chat0, 1);
        TextDrawLetterSize(Chat0, 0.139999, 1.000000);
        TextDrawColor(Chat0, -1);
        TextDrawSetOutline(Chat0, 0);
        TextDrawSetProportional(Chat0, 1);
        TextDrawSetShadow(Chat0, 1);
        Chat1 = TextDrawCreate(409.000000, 362.000000, \" \");
        TextDrawBackgroundColor(Chat1, 255);
        TextDrawFont(Chat1, 1);
        TextDrawLetterSize(Chat1, 0.139999, 1.000000);
        TextDrawColor(Chat1, -1);
        TextDrawSetOutline(Chat1, 0);
        TextDrawSetProportional(Chat1, 1);
        TextDrawSetShadow(Chat1, 1);
        Chat2 = TextDrawCreate(409.000000, 372.000000, \" \");
        TextDrawBackgroundColor(Chat2, 255);
        TextDrawFont(Chat2, 1);
        TextDrawLetterSize(Chat2, 0.139999, 1.000000);
        TextDrawColor(Chat2, -1);
        TextDrawSetOutline(Chat2, 0);
        TextDrawSetProportional(Chat2, 1);
        TextDrawSetShadow(Chat2, 1);
        Chat3 = TextDrawCreate(409.000000, 382.000000, \" \");
        TextDrawBackgroundColor(Chat3, 255);
        TextDrawFont(Chat3, 1);
        TextDrawLetterSize(Chat3, 0.139999, 1.000000);
        TextDrawColor(Chat3, -1);
        TextDrawSetOutline(Chat3, 0);
        TextDrawSetProportional(Chat3, 1);
        TextDrawSetShadow(Chat3, 1);
        Chat4 = TextDrawCreate(409.000000, 392.000000, \" \");
        TextDrawBackgroundColor(Chat4, 255);
        TextDrawFont(Chat4, 1);
        TextDrawLetterSize(Chat4, 0.139999, 1.000000);
        TextDrawColor(Chat4, -1);
        TextDrawSetOutline(Chat4, 0);
        TextDrawSetProportional(Chat4, 1);
        TextDrawSetShadow(Chat4, 1);
        Chat5 = TextDrawCreate(409.000000, 401.000000, \" \");
        TextDrawBackgroundColor(Chat5, 255);
        TextDrawFont(Chat5, 1);
        TextDrawLetterSize(Chat5, 0.139999, 1.000000);
        TextDrawColor(Chat5, -1);
        TextDrawSetOutline(Chat5, 0);
        TextDrawSetProportional(Chat5, 1);
        TextDrawSetShadow(Chat5, 1);
        Chat6 = TextDrawCreate(409.000000, 410.000000, \" \");
        TextDrawBackgroundColor(Chat6, 255);
        TextDrawFont(Chat6, 1);
        TextDrawLetterSize(Chat6, 0.139999, 1.000000);
        TextDrawColor(Chat6, -1);
        TextDrawSetOutline(Chat6, 0);
        TextDrawSetProportional(Chat6, 1);
        TextDrawSetShadow(Chat6, 1);
        Chat7 = TextDrawCreate(409.000000, 419.000000, \" \");
        TextDrawBackgroundColor(Chat7, 255);
        TextDrawFont(Chat7, 1);
        TextDrawLetterSize(Chat7, 0.139999, 1.000000);
        TextDrawColor(Chat7, -1);
        TextDrawSetOutline(Chat7, 0);
        TextDrawSetProportional(Chat7, 1);
        TextDrawSetShadow(Chat7, 1);
        Chat8 = TextDrawCreate(409.000000, 429.000000, \" \");
        TextDrawBackgroundColor(Chat8, 255);
        TextDrawFont(Chat8, 1);
        TextDrawLetterSize(Chat8, 0.139999, 1.000000);
        TextDrawColor(Chat8, -1);
        TextDrawSetOutline(Chat8, 0);
        TextDrawSetProportional(Chat8, 1);
        TextDrawSetShadow(Chat8, 1);
   return 1;
}
public OnPlayerConnect(playerid)
{
        TextDrawShowForPlayer(playerid, Chat9);
        TextDrawShowForPlayer(playerid, Chat0);
        TextDrawShowForPlayer(playerid, Chat1);
        TextDrawShowForPlayer(playerid, Chat2);
        TextDrawShowForPlayer(playerid, Chat3);
        TextDrawShowForPlayer(playerid, Chat4);
        TextDrawShowForPlayer(playerid, Chat5);
        TextDrawShowForPlayer(playerid, Chat6);
        TextDrawShowForPlayer(playerid, Chat7);
        TextDrawShowForPlayer(playerid, Chat8);
  return 1;
}
public OnPlayerText(playerid, text[])
{
        format(ChatBox[0], 128, ChatBox[1]);
        format(ChatBox[1], 128, ChatBox[2]);
        format(ChatBox[2], 128, ChatBox[3]);
        format(ChatBox[3], 128, ChatBox[4]);
        format(ChatBox[4], 128, ChatBox[5]);
        format(ChatBox[5], 128, ChatBox[6]);
        format(ChatBox[6], 128, ChatBox[7]);
        format(ChatBox[7], 128, ChatBox[8]);
       
        TextDrawSetString(Chat7, ChatBox[8]);
        new jatekosnev[24];
        GetPlayerName(playerid, jatekosnev, 24);
        format(ChatBox[8], 128, \"~r~%s: ~w~%s\",jatekosnev,text);
        TextDrawSetString(Chat8, ChatBox[8]);
        TextDrawSetString(Chat7, ChatBox[7]);
        TextDrawSetString(Chat6, ChatBox[6]);
        TextDrawSetString(Chat5, ChatBox[5]);
        TextDrawSetString(Chat4, ChatBox[4]);
        TextDrawSetString(Chat3, ChatBox[3]);
        TextDrawSetString(Chat2, ChatBox[2]);
        TextDrawSetString(Chat1, ChatBox[1]);
        TextDrawSetString(Chat0, ChatBox[0]);
       
        return 0;
}

163
Fórum Archívum (Témák/Fórumok) / ÁTHELYEZVE: EDIT - THE QUESTION
« Dátum: 2012. Október 01. - 13:41:49 »
A téma át lett helyezve a következõbe: Kérdések, Segítség.
http://sampforum.hu/index.php?topic=32645.0" class="bbc_link">http://http://sampforum.hu/index.php?topic=32645.0

164
Fórum Archívum (Témák/Fórumok) / ÁTHELYEZVE: w0lfram - Egy új fajta RPG
« Dátum: 2012. Szeptember 29. - 15:32:47 »
A téma át lett helyezve a következõbe: RP/GF szerverek.
http://sampforum.hu/index.php?topic=31648.0" class="bbc_link">http://http://sampforum.hu/index.php?topic=31648.0

165
Fórum Archívum (Témák/Fórumok) / ÁTHELYEZVE: Mi Folyik Ittt.....????????
« Dátum: 2012. Szeptember 28. - 20:11:40 »
A téma át lett helyezve a következõbe: Társalgó.
http://sampforum.hu/index.php?topic=32544.0" class="bbc_link">http://http://sampforum.hu/index.php?topic=32544.0

Oldalak: 1 ... 9 10 [11] 12 13 ... 19
SimplePortal 2.3.7 © 2008-2024, SimplePortal