Ü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 - Gamestar

Oldalak: [1] 2 3 ... 6
1
Pluginok és Programok / Fixchars IV
« Dátum: 2013. augusztus 03. - 19:56:13 »
[REL] Fixchars IV
 
Bevezetõ
Íme a híres Fixchars projekt legújabb változata! Használatával egyszerûen lehet javítani az egyébként nem mûködõ (többek között) ékezetes karaktereket a GTX-ben (pl. TextDraw, stb.).
 

\"width=500
http://kepfeltoltes.hu/130803/fixchars_www.kepfeltoltes.hu_.jpg[/img]
 
Kompatibilitás
Elvileg minden SA-MP szerver verzióval összhangban van, és frissíteni sem kell új szerververzió megjelenése esetén.
Zárt forráskód
A csomagot annak tudatában kell használnod, hogy a forráskódja zárt. Ezért nem kell leszólni, senki se mondta, hogy kötelezõ használni.
 
Ajánlott a forráskód kihelyezése is![/quote]
Ajánlott, de nem kötelezõ - mielõtt valaki belekötne.
Letöltés
 

 

A csomag tartalma
 
  • plugins/fixchars.dll
  • plugins/fixchars.so

 

Telepítés
 
  • Bontsd ki a csomagot a szervered fõmappájába
  • Add hozzá a server.cfg plugins bejegyzéséhez a fixchars.dll-t Windows, a fixchars.so-t pedig Linux esetén
  • Mûködik, nincs további teendõd! :)

2
SA-MP: Szerverfejlesztés / FIXCHARS 3
« Dátum: 2013. július 30. - 20:02:41 »

>>
ÚJ VERZIÓ <<
 
 
FIXCHARS 3
 
Mi ez?
Ezt a projektet még 2010 végén kezdem el. Számos verzió készült el az idõ folyamán, amelyek egy részét én készítettem. Lényege annyi, hogy a speciális (többek között az ékezetes) karakterek használatát teszi lehetõvé a GTX (GTA Text)-ben. Az ezt megelõzõ verziók még csak a magyar nyelvben is használt ékezetes karakterekre terjedtek ki, azonban az új verzió kezeli a németben használt karaktereket is.
 

\"width=500
http://kepfeltoltes.hu/120915/sa-mp-072_www.kepfeltoltes.hu_.png[/img]
 
ZCMD-vel mûködik?
Nem. Ez csak a GTX-ben segít a karakterek javításában. Ugyanakkor a ZCMD parancsfeldolgozóhoz létezik speciális karaktereket hozzáadó projekt, ami itt érhetõ el.
Hogyan használd?
 
#include <fixchars>

 
Letöltés
http://www.solidfiles.com/d/307eb3ba01/

3
Pluginok és Programok / [WIP] gObjects 0.1a (0.3x R1-2)
« Dátum: 2013. július 30. - 19:50:04 »
gObjects
 
Bevezetõ
A jelenleg is készülõben lévõ jármûkönyvtáramtól megihletve eszembe jutott, hogy az objektumok esetében is elhagytak a fejlesztõk pár hasznos funkciót, így vettem a fáradtságot, és összeállítottam ezt a csomagot.
Fontos, hogy ez nem egy önálló objektum kezelõ, vagy streamer, hanem az eredeti könyvtár kiegészítése!
Kompatibilitás
Ez nem egy szokványos kiegészítõ, hanem a SA-MP szervert manipulálja az ehhez szükséges memóriacímek segítségével. Mivel ezek minden verzióban változnak, így ez azt jelenti, hogy egy új SA-MP verzió kiadása után le kell töltened a frissítést, ami már támogatja azt is. A támogatott verziószámok mindig fel vannak tüntetve a csomagban, mely egyaránt tartalmazza a Windows és a Linux változatot is.
Funkciók
Globális objektumok
 
  • GetObjectModel
  • SetObjectModel
  • GetObjectDrawDistance
  • SetObjectDrawDistance
  • GetObjectMovingSpeed
  • SetObjectMovingSpeed
  • GetAttachedObjectVehicleID
  • IsObjectAttachedToVehicle
  • IsObjectAttachedToAnyVehicle
  • DetachObjectFromVehicle
  • GetAttachedObjectObjectID
  • IsObjectAttachedToObject
  • IsObjectAttachedToAnyObject
  • DetachObjectFromObject
  • MoveObjectEx

 

Játékos objektumok
 
  • GetPlayerObjectModel
  • SetPlayerObjectModel
  • GetPlayerObjectDrawDistance
  • SetPlayerObjectDrawDistance
  • GetPlayerObjectMovingSpeed
  • SetPlayerObjectMovingSpeed
  • GetAttachedPObjectVehicleID
  • IsPObjectAttachedToVehicle
  • IsPObjectAttachedToAnyVehicle
  • DetachPObjectFromVehicle
  • MovePlayerObjectEx

 

Zárt forráskód
A csomagot annak tudatában kell használnod, hogy a forráskódja zárt. Ezért nem kell leszólni, senki se mondta, hogy kötelezõ használni.
 
Ajánlott a forráskód kihelyezése is![/quote]
Ajánlott, de nem kötelezõ - mielõtt valaki belekötne.
Letöltés
 

 

A csomag tartalma
 
  • plugins/gObjects.dll
  • plugins/gObjects.so
  • pawno/include/gObjects.inc

 

Telepítés
 
  • Bontsd ki a csomagot a szervered fõmappájába
  • Add hozzá a server.cfg plugins bejegyzéséhez a gObject.dll-t Windows, a gObject.so-t pedig Linux esetén
  • Szúrd be az egyik szkriptbe: #include <gObjects>

 

Tesztüzem, fejlesztés alatt (WIP - Working in progress)
A projekt még csak tesztelési szakaszban van, mialatt folyamatosan bõvül és változik, használata egyelõre nem javasolt élesben. Amint elkészül az elsõ stabil verzió, kikerül a Linux verzió is! Addig is, akit érdekel, írjon nyugodtan.

4
Fórum Archívum (Témák/Fórumok) / ZCMD speciális karakterekkel
« Dátum: 2012. szeptember 30. - 10:31:06 »
ZCMD speciális karakterekkel
 
Tegnap írtam egy plugint, amelynek segítségével módosítottam a xelor által írt kódot. Így kicsit gyorsabb lett, alább látható az összehasonlítás:
 

\"width=500
http://kepfeltoltes.hu/120929/zcmd_sebessege_www.kepfeltoltes.hu_.png[/img]
 
Teszt szkript:
 
#include <a_samp>
#define OnPlayerCommandText zcmd_OnPlayerCommandText
forward zcmd_OnPlayerCommandText(playerid, cmdtext[]);
#define _ALS_OnPlayerCommandText
#include <zcmd>
public OnFilterScriptInit()
{
ZCMD_Alias(\"teszt\", \"tesztelés\");
zcmd_OnPlayerCommandText(0, \"/tesztelés\");
return 1;
}
CMD:teszt(playerid)
{
printf(\"A teszt parancs sikeresen lefutott!\");
return 1;
}

 
Letöltés alább:
http://www.solidfiles.com/d/6216831caf/

5
Játékmód / filterszkript megvédése jelszóval
 
Mi ez?
 
    • Egy olyan védelmi rendszer, melynek segítségével a szerverünkön található bármelyik játékmódot / filterszkriptet elláthatjuk egy jelszóval. Egy tetszõleges weboldalra feltöltjük a jelszó ellenõrzõt, amiben megint csak meg kell adni egy jelszót. Ha a weben található jelszóellenõrzõben található jelszót megváltoztatod, akkor a régi jelszavak egyikével a szkriptek / módok már megbuknak az ellenõrzésen, tehát nem indíthatók el.

Letöltés
 

Alternatív letöltés (aki az elõzõre kamu riasztást kapna)
 

6
SA-MP: Szerverfejlesztés / sscanf példa
« Dátum: 2012. május 27. - 21:11:21 »
//------------------------------------------------------------------------------
// Név: sscanf példaszkript, magyarázatokkal
// Készítõ: GameStar
// sscanf plugin, eredeti dokumentáció: Y_Less (a példák Y_Less dokumentációjára épülnek!)
// Web: gtaforum.hu, y-less.com
// Frissítve: 2012. május 20.
//------------------------------------------------------------------------------
#include <a_samp>
// Az sscanf funkció beágyazása ebbe a szkriptbe
#include <sscanf2>
// Ha egy példa nem kell, akkor tegyél az alábbi sorokban \"//\"-t elé. (kommenteld)
// Ha pedig kell, akkor töröld ki elõle.
#define EXAMPLE1
#define EXAMPLE2
#define EXAMPLE3
#define EXAMPLE4
#define EXAMPLE5
#define EXAMPLE6
#define EXAMPLE7
#define EXAMPLE8
//#define EXAMPLE9
// A példák a szkript indulásakor futnak le. Ha elindítod a szkriptet, akkor
// ellenõrizheted a leírtakat.
public OnFilterScriptInit()
{
    #if defined EXAMPLE1
// 1. PÉLDA: Az alap
    // Meg kell adni egy bemenetet, egy formátumot, és céltárolókat, amikbe az
    // értékeket szeretnéd menteni a bemenetbõl a formátum alapján.
    new
        EXAMPLE1_var0[32],
        EXAMPLE1_var1;
   
    // Az alábbi kód lefutásával az EXAMPLE1_var0 értéke \"üdv\", az EXAMPLE1_var1 értéke
    // pedig 10 lesz. A formátum egy 32 cellás karakterlánc és egy egész szám.
    sscanf(\"üdv 10\", \"s[32]i\", EXAMPLE1_var0, EXAMPLE1_var1);
    printf(\"EXAMPLE1_var0: %s\\nEXAMPLE1_var1: %i\", EXAMPLE1_var0, EXAMPLE1_var1);
    #endif
   
    #if defined EXAMPLE2
// 2. PÉLDA: Tömbök
    // A függvény lehetõvé teszi, hogy egy tömbbe mentsük bele az értékeket.
    new
        EXAMPLE2_array0[5];
    // Az alábbi kód lefutásával az EXAMPLE2_array0 minden indexbe sorra felveszi
    // az értékeket
    sscanf(\"1 2 3 4 5\", \"a<i>[5]\", EXAMPLE2_array0);
    for(new i = 0; i < sizeof(EXAMPLE2_array0); i++)
        printf(\"EXAMPLE2_array0[%i]: %i\", i, EXAMPLE2_array0);
    #endif
   
    #if defined EXAMPLE3
// 3. PÉLDA: Enum
    enum EXAMPLE3_enum0
    {
        e_integer,
        Float:e_float,
        e_string[32],
        e_character
    }
    new
        EXAMPLE3_var0[EXAMPLE3_enum0];
    // Az alábbi kód lefutásával az EXAMPLE3_var0 minden indexe felvesz egy értéket
    // a megadott formátum alapján
    sscanf(\"1 12.0 Bob c\", \"e<ifs[32]c>\", EXAMPLE3_var0);
    printf(\"EXAMPLE3_var0[e_integer]: %i\", EXAMPLE3_var0[e_integer]);
    printf(\"EXAMPLE3_var0[e_float]: %f\", EXAMPLE3_var0[e_float]);
    printf(\"EXAMPLE3_var0[e_string]: %s\", EXAMPLE3_var0[e_string]);
    printf(\"EXAMPLE3_var0[e_character]: %c\", EXAMPLE3_var0[e_character]);
    #endif
   
    #if defined EXAMPLE4
// 4. PÉLDA: Az úgynevezett \"csendes szekció\"
    // Amelyik formátumszakaszt {} közé rakjuk, azt a függvény késõbb érzékeli,
    // de nem veszi figyelembe.
    new
        EXAMPLE4_var0,
        EXAMPLE4_var1;
    // Az alábbi kód lefutásával az EXAMPLE3_var0 értéke -100 lesz, mert az elsõ egész
    // számot (42) nem vesszük figyelembe.
    sscanf(\"42 -100\", \"{i}i\", EXAMPLE4_var0);
    printf(\"EXAMPLE4_var0: %i\", EXAMPLE4_var0);
    // Az alábbi kód lefutásával az EXAMPLE3_var1 értéke 42 lesz, mert a második egész
    // számot (-100) nem vesszük figyelembe.
    sscanf(\"42 -100\", \"i{i}\", EXAMPLE4_var1);
    printf(\"EXAMPLE4_var1: %i\", EXAMPLE4_var1);
    #endif
   
    #if defined EXAMPLE5
// 5. PÉLDA: Szöveg keresése
    // \'\' közé rakva kereshetõ egy szöveg. Ilyenkor a függvény a szöveg pozíciójára
    // ugrik, ezért a korábbi és az új pozíció közötti dolgokat nem fogja figyelembe
    // venni. Az alábbi példa is szemlélteti ezt.
    // Formátumként megadunk egy egész számot (ami az elsõ egész szám - 10), amit a
    // függvény be is olvas. Majd megkerestetjük vele a szövegben a \"szöveg\" részt,
    // és végül lekérjük az utolsó egész számot (ami a 12). A 11 kimarad, mert a keresés
    // elõtt még nem lett figyelembe véve, utána pedig a függvény nem is törõdött vele,
    // mert a keresés miatt átugrott azon a részen.
    new
        EXAMPLE5_var0,
        EXAMPLE5_var1;
    sscanf(\"10 11 szöveg 12\", \"i\'szöveg\'i\", EXAMPLE5_var0, EXAMPLE5_var1);
    printf(\"EXAMPLE5_var0: %i\\nEXAMPLE5_var1: %i\", EXAMPLE5_var0, EXAMPLE5_var1);
    #endif
   
    #if defined EXAMPLE6
// 6. PÉLDA: Az elválasztók
    // Ha a bemeneti szövegekben az értékeket valami elválasztja (mondjuk vesszõ), akkor
    // megadhatjuk a függvénynek, hogy azok mentén válassza szét az értékeket.
    // A formátuma p<elválasztó>, tehát vesszõnél p<,>
    new
        EXAMPLE6_var0,
        EXAMPLE6_var1[12],
        EXAMPLE6_var2;
    sscanf(\"1,nem,3\", \"p<,>is[12]i\", EXAMPLE6_var0, EXAMPLE6_var1, EXAMPLE6_var2);
    printf(\"EXAMPLE6_var0: %i\\nEXAMPLE6_var1: %s\\nEXAMPLE6_var2: %i\", EXAMPLE6_var0, EXAMPLE6_var1, EXAMPLE6_var2);
    #endif
   
    #if defined EXAMPLE7
// 7. PÉLDA: Választható formátumok
    // Ugyanaz, mint a sima formátum, viszont ha a függvény nem talál neki értéket,
    // abban az esetben az általunk megadott \"alapértelmezett értéket\" adja neki.
    // Csak nagybetûvel kell írni, és meg kell adni az alapértelmezett értéket.
    new
        EXAMPLE7_var0,
        EXAMPLE7_var1[16],
        EXAMPLE7_var2[5];
    // Itt nem adunk meg bemeneti szöveget, a választható egész szám alapértelmezett értékét
    // pedig 12-re állítjuk. A függvény nem fog találni értéket, így automatikusan 12-t fog
    // adni.
    sscanf(\"\", \"I(12)\", EXAMPLE7_var0);
    printf(\"EXAMPLE7_var0: %i\", EXAMPLE7_var0);
   
    // Karakterlánccal
    sscanf(\"\", \"S(alapértelmezett)[16]\", EXAMPLE7_var1);
    printf(\"EXAMPLE7_var1: %s\", EXAMPLE7_var1);
   
    // Tömbbel
    sscanf(\"\", \"A<i>(1, 2, 3, 4, 5)[5]\", EXAMPLE7_var2);
    for(new i = 0; i < sizeof(EXAMPLE7_var2); i++)
        printf(\"EXAMPLE7_var2[%i]: %i\", i, EXAMPLE7_var2);
    #endif
   
    #if defined EXAMPLE8
// 8. PÉLDA: Egyéni formátumok
    // Lehetõségünk van saját formátumokat csinálni. Csak egy SSCANF: elõtag kell.
    // Ennek is van választható, és sima fajtája is. A választható esetében, ha nem tudja
    // meghívni a saját formátum eljárását, akkor az alapértelmezett értéket adja.
    new
        EXAMPLE8_var0[16],
        EXAMPLE8_var1,
        EXAMPLE8_var2[16],
        EXAMPLE8_var3;
    sscanf(\"GameStar PLAYER_STATE_PASSENGER\", \"s[16]k<playerstate>\", EXAMPLE8_var0, EXAMPLE8_var1);
    // Az EXAMPLE7_var1 értéke 3 kell, hogy legyen.
    printf(\"EXAMPLE8_var0: %s\\nEXAMPLE8_var1: %i\", EXAMPLE8_var0, EXAMPLE8_var1);
   
    // Ha a bemenetben nincs megadva az állapot szövegesen, akkor az alapértelmezett
    // értéket (PLAYER_STATE_PASSENGER) kapjuk
    sscanf(\"GameStar\", \"s[16]K<playerstate>(PLAYER_STATE_PASSENGER)\", EXAMPLE8_var2, EXAMPLE8_var3);
    // Az EXAMPLE8_var3 értéke 3 kell, hogy legyen.
    printf(\"EXAMPLE8_var2: %s\\nEXAMPLE8_var3: %i\", EXAMPLE8_var0, EXAMPLE8_var1);
    #endif
   
    #if defined EXAMPLE9
// 9. PÉLDA: Összetettebb használat
    // A függvénnyel akár egész komplex formátumokat is csinálhatunk, íme egy példa:
    enum EXAMPLE9_enum0
    {
        Float:e_float,  // f
        e_string[32],   // s[32]
        e_character,    // c
        e_hex           // h
    }
    new
        EXAMPLE9_var0[EXAMPLE9_enum0],
        EXAMPLE9_var1,
        Float:EXAMPLE9_var2[4];
    // unformat-ot is írhatunk, az is elfogadott...
    unformat(
        \"üdv 22 nem PLAYER_STATE_DRIVER 20.0 gtaforum.hu g FF00DD\",
        \"{s[4]}\'nem\'k<playerstate>e<fs[32]ch>A<f>(1.434, 2.233, 3.262 ,4.176)[4]\",
        // A formátum szöveges magyarázata:
        // - Az elsõ szöveget (üdv) kihagyjuk a \"csendes szekcióval\".
        // - A 22-t is kihagyjuk, mert rákeresünk a következõ szövegre (nem).
        // Azzal sem törõdünk.
        // - A következõ szövegrõl (PLAYER_STATE_DRIVER) lekérdezzük a saját
        // formátumunkkal, hogy milyen érték tartozik hozzá.
        // - Ezután az enumba tartozó értékeket olvassuk ki:
        //      - A lebegõpontos értéket (20.0)
        //      - A karakterláncot (gtaforum.hu)
        //      - A karaktert (g)
        //      - A tizenhatos számrendszer beli számot (FF00DD)
        // - Választható tömbformátummal az alapértelmezett lebhegõpontos értékeket
        // fogjuk kapni, mivel nincs megadva a 4 lebegõpontos érték
        EXAMPLE9_var1,  // k<playerstate>
        EXAMPLE9_var0,  // e<fs[32]ch>
        EXAMPLE9_var2   // A<f>(1.434, 2.233, 3.262 ,4.176)[4]
    );
    printf(\"EXAMPLE9_var1: %i\", EXAMPLE9_var1);
    printf(\"EXAMPLE9_var0[e_float]: %.1f\", EXAMPLE9_var0[e_float]);
    printf(\"EXAMPLE9_var0[e_string]: %s\", EXAMPLE9_var0[e_string]);
    printf(\"EXAMPLE9_var0[e_character]: %c\", EXAMPLE9_var0[e_character]);
    printf(\"EXAMPLE9_var0[e_hex]: %x\", EXAMPLE9_var0[e_hex]);
    for(new i = 0; i < sizeof(EXAMPLE9_var2); i++)
        printf(\"EXAMPLE9_var2[%i]: %.3f\", i, EXAMPLE9_var2);
    #endif
   
    return 1;
}
// (A 8. és 9. példához) egy egyéni formátum. Megadja szöveges adat alapján számmal, hogy a játékosnak
// éppen mi az állapota.
SSCANF:playerstate(string[])
{
    // Ha a szöveg már szám formátumú
    if (\'0\' <= string[0] <= \'9\')
    {
        // Lekérjük az értékét
        new
            ret = strval(string);
        // Ha a lekért érték 0, vagy kisebb vagy egyenlõ mint 9, akkor visszaadjuk
        if (0 <= ret <= 9)
        {
            return ret;
        }
    }
    else if (!strcmp(string, \"PLAYER_STATE_NONE\")) return 0;
    else if (!strcmp(string, \"PLAYER_STATE_ONFOOT\")) return 1;
    else if (!strcmp(string, \"PLAYER_STATE_DRIVER\")) return 2;
    else if (!strcmp(string, \"PLAYER_STATE_PASSENGER\")) return 3;
    else if (!strcmp(string, \"PLAYER_STATE_WASTED\")) return 7;
    else if (!strcmp(string, \"PLAYER_STATE_SPAWNED\")) return 8;
    else if (!strcmp(string, \"PLAYER_STATE_SPECTATING\")) return 9;
   
    // Ha nem találtunk a megadott szöveghez azonosítót, akkor -1-el tér vissza
    return -1;
}

 
Formátumtáblázat: http://gtaforum.hu/index.php?topic=13404.0

7
SA-MP: Szerverfejlesztés / Változó IP kitiltása
« Dátum: 2012. május 24. - 21:53:18 »
[pawn]#include <a_samp>
#include <sscanf2>
public OnFilterScriptInit()
{
    // Az IP kitiltása úgy, hogy az utolsó két szám legyen *
    // Ha *-ot teszel egy szám helyett, akkor az olyan, mintha
    // akármilyen szám lenne ott, így hiába változik meg
    Ban2(\"127.0.0.1\",NumBits(0,0,1,1));
    return 1;
}
stock NumBits(num1, num2, num3, num4) return num1|(num2<<1)|(num3<<2)|(num4<<3);
stock Ban2(ip[], n_bits) {
    new n_arr[4],tmp[32];
    unformat(ip, \"p<.>a<i>[4]\", n_arr);
    for(new i = 0; i < 4; i++) {
        if(n_bits >> i & 1) format(tmp, 32, \"%s.*\",tmp);
        else format(tmp, 32, \"%s.%i\",tmp,n_arr);

    }


    format(tmp,32,\"banip %s\",tmp[1]);


    SendRconCommand(tmp);


    return 1;


}[/pawn]

8
SA-MP: Szerverfejlesztés / Idõfüggvények
« Dátum: 2012. május 16. - 12:42:24 »
Idézetet írta: GameStar date=1315643261\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"21523\" data-ipsquote-contentclass=\"forums_Topic
Ezzel a függvénnyel lehetõségünk van egy adott dátum alapján lekérni, hogy milyen napra esik.
A függvény 2000. január 1-tõl 2032 december 31-ig mûködik!
 
//==============================================================================
// Név: GetDayAsString
// Frissítve: 2011. SZEPTEMBER 10.
// Készítõ: GameStar
// Megjegyzés:
//==============================================================================
stock GetDayAsString(year, month, day, dest[], len = sizeof(dest))
{
if(2000 <= year <= 2032)
{
    new
        days[][] =
   {
            \"hétfõ\",
            \"kedd\",
            \"szerda\",
            \"csütörtök\",
            \"péntek\",
            \"szombat\",
            \"vasárnap\"
   };
new
    monthdays[] =
   {
       31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31
   };
new
    leapyear = 4,
    dayid = 5; // 2000. január 1. szombat
// Évek
for(new y = 2000; y <= year; y++)
{
    // Szökõévek
    monthdays[1] = 28;
    if(leapyear == 4)
    {
        monthdays[1] = 29;
             leapyear = 0;
   }
   // Hónapok
   for(new months = 1; months <= 12; months++)
   {
               // Napok
      for(new month2 = 1; month2 <= monthdays[months - 1]; month2++)
      {
          if(y == year && months == month && month2 == day)
         {
                     format(dest, len, \"%s\", days[dayid]);
                     return 1;
         }
         dayid++;
             if(dayid > 6) dayid = 0;
             }
   }
            leapyear++;
}
}
return 0;
}

 

//==============================================================================
// Név: GetMonthAsString
// Frissítve: 2011. SZEPTEMBER 10.
// Készítõ: GameStar
// Megjegyzés:
//==============================================================================
stock GetMonthAsString(month, dest[], len = sizeof(dest))
{
if(1 <= month <= 12)
{
    new
        months[][] =
   {
            \"január\",
            \"február\",
            \"március\",
            \"április\",
            \"május\",
            \"június\",
            \"július\",
            \"augusztus\",
            \"szeptember\",
            \"október\",
            \"november\",
            \"december\"
   };
        format(dest, len, \"%s\", months[month - 1]);
}
return 1;
}

 
Példa:
 
public OnFilterScriptInit()
{
new strday[12], strmonth[24], year, month, day;
getdate(year, month, day);
GetDayAsString(year,month,day,strday);
GetMonthAsString(month, strmonth);
printf(\"Ma van %i %s %i (%s)!\",year, strmonth, day, strday);
return 1;
}

 
Eredmény: [10:58:03] Ma van 2011 szeptember 10 (szombat)!
 

9
Fórum Archívum (Témák/Fórumok) / GTA 2 kamera
« Dátum: 2012. május 16. - 12:40:43 »
Idézetet írta: GameStar date=1306672650\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"21522\" data-ipsquote-contentclass=\"forums_Topic
Sziasztok!
Unatkoztam a buszon, és akkor jutott eszembe ez az ötlet. Nem egy nagy dolog, de megvalósítottam...
\"sa-mp-007.png\"
\"sa-mp-006.png\"
\"sa-mp-005.png\"
\"sa-mp-004.png\"
 

10
Képek / Videók / SA-MP visszajátszó (replay) rendszer
« Dátum: 2012. május 12. - 10:16:50 »
A rögzítést a /rec [AZONOSÍTÓ] paranccsal tudjuk elindítani. Ekkor a jármûvel meg kell tennünk azt az utat, amelyet rögzíteni szeretnénk. A rögzítést a /stop paranccsal tudjuk megállítani. A lejátszást a /play [AZONOSÍTÓ](jármû azonosítója) paranccsal tudjuk elindítani. Ha nem adunk meg jármû azonosítót, akkor automatikusan a felvételkor használt jármûvel történik meg a lejátszás. A lejátszás szüneteltethetõ a /pause, megállítható szintén a /stop paranccsal.
 

 

Készítette GameStar
(2011-2012)

11
SA-MP: Szerverfejlesztés / Karakterválasztó kamera
« Dátum: 2012. május 10. - 18:41:00 »

 
//  -------------------------------
//  Mozgó kamera a karakterválasztóban
//  Készítette GameStar
//  www.gtaforum.hu
//      2012
//  -------------------------------
#include <a_samp>
#if !defined InterpolateCameraPos
#error \"A fordítód nem tartalmazza a 0.3e fájlokat!\"
#endif
#define CAMERA_TIME 8000
forward CameraInterpolate(playerid);
public OnPlayerConnect(playerid)
{
    SetPVarInt(playerid, \"cameraInterpolate\", 0);
SetPVarInt(playerid, \"skinTimer\", -1);
return 1;
}
public OnPlayerRequestClass(playerid, classid)
{
SetPlayerPos(playerid, 2232.7930,-2458.5513,61.6104);
SetPlayerFacingAngle(playerid, 97.1613);
if(GetPVarInt(playerid,\"skinTimer\") == -1)
{
CameraInterpolate(playerid);
SetPVarInt(playerid, \"skinTimer\", SetTimerEx(\"CameraInterpolate\", CAMERA_TIME + 225, 1, \"i\", playerid));
}
return 1;
}
public OnPlayerRequestSpawn(playerid)
{
    KillTimer(GetPVarInt(playerid,\"skinTimer\"));
SetPVarInt(playerid, \"skinTimer\", -1);
SetCameraBehindPlayer(playerid);
return 1;
}
public CameraInterpolate(playerid)
{
    switch(GetPVarInt(playerid,\"cameraInterpolate\"))
{
case 0:
{
   InterpolateCameraPos(playerid, 2228.596435, -2462.059082, 62.675743, 2226.085937, -2457.546875, 62.636756, CAMERA_TIME);
   InterpolateCameraLookAt(playerid, 2232.7930,-2458.5513,61.6104, 2232.7930,-2458.5513,61.6104, CAMERA_TIME);
}
case 1:
{
   InterpolateCameraPos(playerid, 2226.085937, -2457.546875, 62.636756, 2231.406250, -2456.153564, 61.862873, CAMERA_TIME);
   InterpolateCameraLookAt(playerid, 2232.7930,-2458.5513,61.6104, 2232.7930,-2458.5513,61.6104, CAMERA_TIME);
}
case 2:
{
   InterpolateCameraPos(playerid, 2231.406250, -2456.153564, 61.862873, 2228.596435, -2462.059082, 62.675743, CAMERA_TIME);
   InterpolateCameraLookAt(playerid, 2232.7930,-2458.5513,61.6104, 2232.7930,-2458.5513,61.6104, CAMERA_TIME);
}
}
SetPVarInt(playerid, \"cameraInterpolate\", GetPVarInt(playerid,\"cameraInterpolate\") + 1);
if(GetPVarInt(playerid,\"cameraInterpolate\") > 2) SetPVarInt(playerid, \"cameraInterpolate\", 0);
return 1;
}

12
SA-MP: Szerverfejlesztés / Egyszerûsítsük le az idõzítõket
« Dátum: 2012. május 08. - 20:23:11 »
Ezek a kódok lényegében milliszekundummá váltják át a megadott másodpercek, percek, órák, napok mennyiségét, melyek összeadódnak.
 
#define second(%1) \\
    (%1 * 1000)
#define minute(%1) \\
    (second(%1) * 60)
#define hour(%1) \\
    (minute(%1) * 60)
#define day(%1) \\
    (hour(%1) * 24)
#define week(%1) \\
    (day(%1) * 7)

 
Szemléltetés:
 
  • A MyFunction() függvény 2 óra 30 perc 25 másodperc múlva lesz meghívva.

  • A felirat 30 másodpercig (fél percig) fog megjelenni mindenkinek.


 
public OnFilterScriptInit()
{
SetTimer(\"MyFunction\", hour(2) + minute(30) + second(25), 0);
GameTextForAll(\"Gametext\", second(30), 1);
return 1;
}

13
SA-MP: Szerverfejlesztés / MoveObjectEx
« Dátum: 2012. május 08. - 20:15:38 »
A MoveObject() függvényben eredetileg sebességként az tudjuk megadni, hogy mekkora legyen a másodpercenként megtett egységek száma. Ebben a függvényben viszont sebesség helyett meg tudjuk azt adni, hogy mennyi ideig tartson a mozgás (ezredmásodpercben mérve).
 
// -----------------------------------------------------------------------------
// Név: MoveObjectEx
// Készítette: GameStar
// Frissítve: 2012. május 8.
// -----------------------------------------------------------------------------
stock MoveObjectEx(objectid, Float:X, Float:Y, Float:Z, Time, Float:RotX = -1000.0, Float:RotY = -1000.0, Float:RotZ = -1000.0)
{
    new Float:x, Float:y, Float:z;
    GetObjectPos(objectid, x, y, z);
    return MoveObject(objectid, X, Y, Z, floatdiv(floatabs(floatsqroot(floatpower(floatsub(X,x),2)+floatpower(floatsub(Y,y),2)+floatpower(floatsub(Z,z),2))),floatdiv(Time,1000)), RotX, RotY, RotZ);
}

 
Példa:
 
MoveObjectEx(object, 10000, 10000, 10000, 3500);

 
Ez az objektum tehát 3,5 (3500 ezredmásodperc) másodperc alatt fog a megadott koordinátákra érni.

14
SA-MP: Szerverfejlesztés / Kapu készítõ
« Dátum: 2012. április 29. - 22:50:36 »
Ezzel a felülettel könnyedén készíthetsz parancsra vagy automatikusan nyíló kapukat.
http://gtaforum.hu/index.php/page,gates.html

15
SA-MP: Szerverfejlesztés / fixchars 2
« Dátum: 2012. április 17. - 19:32:08 »
fixhars 2
 
Mi ez?
Alapértelmezetten az ékezetes karakterek hibásan jelennek meg bizonyos helyeken (Menu, GameText, TextDraw, stb).
Ha beágyazod ezt, akkor viszont nem. Ez a kiadás már egy felújított változata a 2010-es kiadásomnak, amelynek idõközben megjelent már más által átalakított változata is.
Demó:
\"width=400http://noob.hu/2012/04/17/sa-mp-000_1.png[/img]
Használat:
1. Rakd be az aktuálisan használt pawno/includes mappába
2. Ágyazd be a szkriptbe / módba
 
#include <fixchars>

 
Letöltés
* Letöltés (fixchars 2 - 2. kiadás)
2. kiadás:
 
  • 0.3e támogatás hozzáadva

  • TextDrawCreate() hiba javítása

  • fixchars() függvény újraírva

  • unfixchar(), unfixchars() hozzáadva


Példa a használatra (az autimatikuson felül):
 
public OnFilterScriptInit()
{
new string[32]=\"Üdv nálunk!\";
fixchars(string);
    print(string);
    unfixchars(string);
    print(string);
    return 1;
}

 

// ----------------------------------
// Magyar karakterek megjelenítésének automatikus javítása
// Használathoz csak be kell ágyazni: #include <fixchars>
// Készítette GameStar 2010 (frissítve 2012 április)
// Weboldal: www.gtaforum.hu
// ----------------------------------
#include <a_samp>
#if defined fixchars_included
#endinput
#endif
#define fixchars_included
stock fixchar(chr)
{
switch(chr)
{
    case \'ö\': return \'¨\';
    case \'Ö\': return \'‘\';
    case \'ü\': return \'¬\';
    case \'Ü\': return \'•\';
    case \'ó\': return \'¦\';
    case \'Ó\': return \'¬\';
    case \'õ\': return \'§\';
    case \'Õ\': return \'\';
    case \'ú\': return \'ª\';
    case \'Ú\': return \'“\';
    case \'é\': return \'¾\';
    case \'É\': return \'‡\';
    case \'á\': return \'˜\';
    case \'Á\': return \'\';
    case \'û\': return \'«\';
    case \'Û\': return \'·\';
    case \'í\': return \'¢\';
    case \'Í\': return \'‹\';
}
return chr;
}
stock fixchars(string[])
{
new chr;
while(string[chr])
{
    string[chr] = fixchar(string[chr]);
    chr++;
}
return 1;
}
stock unfixchar(chr)
{
switch(chr)
{
    case \'¨\': return \'ö\';
    case \'‘\': return \'Ö\';
    case \'¬\': return \'ü\';
    case \'•\': return \'Ü\';
    case \'¦\': return \'ó\';
    case \'¬\': return \'Ó\';
    case \'§\': return \'õ\';
    case \'\': return \'Õ\';
    case \'ª\': return \'ú\';
    case \'“\': return \'Ú\';
    case \'¾\': return \'é\';
    case \'‡\': return \'É\';
    case \'˜\': return \'á\';
    case \'\': return \'Á\';
    case \'«\': return \'û\';
    case \'·\': return \'Û\';
    case \'¢\': return \'í\';
    case \'‹\': return \'Í\';
}
return chr;
}
stock unfixchars(string[])
{
new chr;
while(string[chr])
{
    string[chr] = unfixchar(string[chr]);
    chr++;
}
return 1;
}
stock fixchars_GameTextForPlayer(playerid,text[],time,style)
{
    fixchars(text);
return GameTextForPlayer(playerid,text,time,style);
}
#define GameTextForPlayer fixchars_GameTextForPlayer
stock fixchars_GameTextForAll(text[],time,style)
{
    fixchars(text);
return GameTextForAll(text,time,style);
}
#define GameTextForAll fixchars_GameTextForAll
stock Text:fixchars_TextDrawCreate(Float:x, Float:y, text[])
{
    fixchars(text);
return TextDrawCreate(x,y,text);
}
#define TextDrawCreate fixchars_TextDrawCreate
stock Menu:fixchars_CreateMenu(title[], columns, Float:x, Float:y, Float:col1width, Float:col2width = 0.0)
{
    fixchars(title);
return CreateMenu(title,columns,x,y,col1width,col2width);
}
#define CreateMenu fixchars_CreateMenu
stock fixchars_SetMenuColumnHeader(Menu:menuid, column, columnheader[])
{
    fixchars(columnheader);
return SetMenuColumnHeader(menuid, column, columnheader);
}
#define SetMenuColumnHeader fixchars_SetMenuColumnHeader
stock fixchars_AddMenuItem(Menu:menuid, column, menutext[])
{
    fixchars(menutext);
return AddMenuItem(menuid, column, menutext);
}
#define AddMenuItem fixchars_AddMenuItem
stock fixchars_TextDrawSetString(Text:text, string[])
{
    fixchars(string);
return TextDrawSetString(text,string);
}
#define TextDrawSetString fixchars_TextDrawSetString
// 0.3e
#if defined CreatePlayerTextDraw
stock fixchars_CreatePlayerTextDraw(playerid, Float:x, Float:y, text[])
{
fixchars(text);
return CreatePlayerTextDraw(playerid, x, y, text);
}
#define CreatePlayerTextDraw fixchars_CreatePlayerTextDraw
#endif
#if defined PlayerTextDrawSetString
stock fixchars_PlayerTextDrawSetS(playerid, PlayerText:text, string[])
{
fixchars(string);
return PlayerTextDrawSetString(playerid,text,string);
}
#define PlayerTextDrawSetString fixchars_PlayerTextDrawSetS
#endif

 
[mod]Nincs reklám![/mod]

Oldalak: [1] 2 3 ... 6
SimplePortal 2.3.7 © 2008-2024, SimplePortal