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


Üzenetek - Gamestar

Oldalak: 1 [2] 3 4 ... 36
16
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)
 

17
SA-MP: Szerverfejlesztés / Mktime és Date függvények (Unix-idõ)
« Dátum: 2012. május 27. - 23:55:15 »
Idézetet írta: ZyZu date=1338149082\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"22065\" data-ipsquote-contentclass=\"forums_Topic
Ez bonyolult de jó lett!  :D  :yes:
 
Nem az, de hasznos dolog. Amúgy ezek a kódok nem a YSI_misc-bõl vannak, nem?

18
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

19
SA-MP: Szerverfejlesztés / Változó IP kitiltása
« Dátum: 2012. május 26. - 10:25:08 »
Megcrackeli a játékot

20
SA-MP: Szerverfejlesztés / Változó IP kitiltása
« Dátum: 2012. május 25. - 21:10:16 »
Kevesebb

21
SA-MP: Szerverfejlesztés / Változó IP kitiltása
« Dátum: 2012. május 25. - 21:01:46 »
Idézetet írta: kurta999 date=1337961123\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"21911\" data-ipsquote-contentclass=\"forums_Topic
Szép kód.
Végre valaki bitmûveleteket használ  ;D
Amúgy nekem ez a megoldás nemjött be, mivel valamikor a teljes IP cím változik a játékosnak.
 
Köszi. Megértem, de már páran kérték ezt a kódot. Teljes hatékonyság meg úgy sincs.

22
Minek MAX_PLAYERS (500)-ig ciklus, amikor még a GetMaxPlayers() (a szerverkonfigurációban meghatározott férõhelyek száma)-ig is sok?

23
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]

24
SA-MP: Szerverfejlesztés / Gergely öröknaptár
« Dátum: 2012. május 18. - 11:05:33 »
Régen írtam egy hasonlót: http://sampforum.hu/index.php?topic=25799.0

25
Fórum Archívum (Témák/Fórumok) / GTA 2 kamera
« Dátum: 2012. május 16. - 12:50:45 »
Idézetet írta: Flash date=1337165122\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"21522\" data-ipsquote-contentclass=\"forums_Topic
Hát ennek nem sok értelmét látom.
 
Én meg a hozzászólásodnak...

26
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)!
 

27
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\"
 

28
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)

29
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;
}

30
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;
}

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