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

Oldalak: [1] 2 3 ... 7
1
Fórum Archívum (Témák/Fórumok) / codes4free.net
« Dátum: 2014. Június 19. - 19:39:02 »
Üdv.
Egy kis segítség kellene kíváncsi vagyok hogy tényleg lehet-e valamire használni ezt a weboldalt, semmi mást nem kell csinálni csak rá kell kattintani a lenti linkre.
-delete-
Akit érdekel az megnézi és talán felhasználja saját céljaira is, persze neki más azonosító kódja lesz.
Aki megnézi a weboldalt a fenti linken az pontot szerez nekem a jelenlegi IP címemre, elõre is köszönöm azoknak akik megnézik.
Ha elegendõ pont gyûlik össze akkor kitudom próbálni hogy tényleg hasznos-e a weboldal vagy sem, ez olyan 20 látogatottságot igényel kb. a fenti linken.

2
dsadasdsa

3
Képek / Videók / Hollandia - Magyarország 8:1 (Official)
« Dátum: 2013. November 01. - 17:41:21 »
Elég szomorú hogy ebbe ölte bele kormányunk az adófizetõk pénzét.
A videó közepe felé már együtt nevettem sõt már röhögtem is az ürgével, és rajta is.
e7k1IJ-GQOc
Magyarország jobban teljesít.  :D

4
Fórum Archívum (Témák/Fórumok) / Re:Bitmûveletek a gyakorlatban.
« Dátum: 2013. Július 21. - 19:20:07 »
                         l

5
Fórum Archívum (Témák/Fórumok) / Re:MYSQL_WATTAFAKK?!?!?!?!!
« Dátum: 2013. Július 17. - 09:15:04 »
WATTAFAKK?!?!?!?!!  (meuu)?[/quote]

6
Tanuljunk PAWN nyelvet / Bitmûveletek a gyakorlatban.
« Dátum: 2013. Július 14. - 01:23:07 »
Mivel látom hogy elég kevesen alkalmazzák ezen dolgokat sa-mp szkriptelés terén ezért megpróbálok pár példát írni alkalmazásukra természetesen ahogy sikerül valami újabb hasznos gyakorlati alkalmazást kitalálnom vagy találnom, frissíteni fogom ezen leírásszerûséget.
Itt nem fogok kitérni a bitmûveletek mûködésre arra ott van Anthony által írt leírás: Bitmûveletek, valamint gyakorlati alkalmazás a SA:MP-ban
Az egyik segítség kérés témában felmerült problémára való megoldásként jött az ötlet, mivel ott említettem hogy egyszerûbb lenne bitmûveletekkel megvalósítani a dolgot miszerint szeretnénk egy játékosnak egyszerre több munkát is engedélyezni, úgy hogy minél kevesebb memóriát használunk fel, természetesen egyszerûen törölni akár az összes meglévõ munkát.
Ennyit az elõzményrõl.


A kiegészítõ szövegek után szereplõ bináris értékek a bitmûveletek után történt változás eredményét szemléltetik!
 
enum 
(<<= 1)
{
MUNKA_NONE,   // 0b00000000000000000000000000000000
MUNKA_1 = 1,   // 0b00000000000000000000000000000001
MUNKA_2,   // 0b00000000000000000000000000000010
MUNKA_3,   // 0b00000000000000000000000000000100
MUNKA_4,   // 0b00000000000000000000000000001000
MUNKA_5,   // 0b00000000000000000000000000010000
MUNKA_6,   // 0b00000000000000000000000000100000
MUNKA_7,   // 0b00000000000000000000000001000000
MUNKA_8,   // 0b00000000000000000000000010000000
MUNKA_9,   // 0b00000000000000000000000100000000
MUNKA_10,   // 0b00000000000000000000001000000000
MUNKA_11,   // 0b00000000000000000000010000000000
MUNKA_12,   // 0b00000000000000000000100000000000
MUNKA_13,   // 0b00000000000000000001000000000000
MUNKA_14,   // 0b00000000000000000010000000000000
MUNKA_15,   // 0b00000000000000000100000000000000
MUNKA_16,   // 0b00000000000000001000000000000000
MUNKA_17,   // 0b00000000000000010000000000000000
MUNKA_18,   // 0b00000000000000100000000000000000
MUNKA_19,   // 0b00000000000001000000000000000000
MUNKA_20,   // 0b00000000000010000000000000000000
MUNKA_21,   // 0b00000000000100000000000000000000
MUNKA_22,   // 0b00000000001000000000000000000000
MUNKA_23,   // 0b00000000010000000000000000000000
MUNKA_24,   // 0b00000000100000000000000000000000
MUNKA_25,   // 0b00000001000000000000000000000000
MUNKA_26,   // 0b00000010000000000000000000000000
MUNKA_27,   // 0b00000100000000000000000000000000
MUNKA_28,   // 0b00001000000000000000000000000000
MUNKA_29,   // 0b00010000000000000000000000000000
MUNKA_30,   // 0b00100000000000000000000000000000
MUNKA_31,   // 0b01000000000000000000000000000000
MUNKA_32   // 0b10000000000000000000000000000000
}

 
Megjegyzés: Nem véletlenül szerepel a MUNKA_32 mivel ennyi a maximálisan állítható bit érték egy változóba 32 bit esetén.
Több munka egyszerre történõ megadása:
 
   Job[playerid] |= MUNKA_2;  // Ez az érték megadása a következõ sor szemléltetése végett szerepel. // 0b00000000000000000000000000000010
Job[playerid] = MUNKA_1 | MUNKA_4 | MUNKA_3; // Ez a megoldás töröl minden korábban beállított munkát!! // // 0b00000000000000000000000000001101

 
Munkák egyesével történõ hozzáadása:
 
   Job[playerid] |= MUNKA_5;   // 0b00000000000000000000000000011101
Job[playerid] |= MUNKA_10;   // 0b00000000000000000000001000011101
Job[playerid] |= MUNKA_15;   // 0b00000000000000000100001000011101
Job[playerid] |= MUNKA_20;   // 0b00000000000010000100001000011101
Job[playerid] |= MUNKA_25;   // 0b00000001000010000100001000011101
Job[playerid] |= MUNKA_30;   // 0b00100001000010000100001000011101
Job[playerid] |= MUNKA_32;   // 0b10100001000010000100001000011101

 
Egy munka törlése:
 
   Job[playerid] &= ~MUNKA_5;   // 0b10100001000010000100001000001101

 
Egy munka törlése ha aktív, vagy aktiválása ha nincs beállítva:
 
   Job[playerid] ^= MUNKA_20; // Ez esetben törlés mivel már aktiválva van.   // 0b10100001000000000100001000001101
Job[playerid] ^= MUNKA_21; // Ez esetben aktiválás mivel nincs hozzáadva.   // 0b10100001000100000100001000001101

 
Több munka egyszerre történõ megadása régi értékek megtartása mellett:
 
   Job[playerid] |= MUNKA_11 | MUNKA_31 | MUNKA_22;   // 0b11100001001100000100011000001101   <--Ez az érték kerül egy kis ellenõrzésre a példában. (printf(\"%d - %d -> %b\")

 
Az elvállalt munka lehetõség kilistázása for ciklussal:
 
   static const
M_name[][] =
{
\"MUNKA_1\", \"MUNKA_2\", \"MUNKA_3\", \"MUNKA_4\", \"MUNKA_5\", \"MUNKA_6\", \"MUNKA_7\", \"MUNKA_8\", \"MUNKA_9\", \"MUNKA_10\",
\"MUNKA_11\", \"MUNKA_12\", \"MUNKA_13\", \"MUNKA_14\", \"MUNKA_15\", \"MUNKA_16\", \"MUNKA_17\", \"MUNKA_18\", \"MUNKA_19\", \"MUNKA_20\",
\"MUNKA_21\", \"MUNKA_22\", \"MUNKA_23\", \"MUNKA_24\", \"MUNKA_25\", \"MUNKA_26\", \"MUNKA_27\", \"MUNKA_28\", \"MUNKA_29\", \"MUNKA_30\", \"MUNKA_31\", \"MUNKA_32\"
};
for(new i; i < cellbits; i++)
{
if(Job[playerid] & (1 << i)) printf(\"Vállalt: %s\", M_name);
}

 
A beállított munkák számlálása:
 
stock
bitcount(num) // Ezt természetesen valahova máshova kell másolni a módban, szkriptben.
{
new
count = 0 ;
while(num)
{
num &= (num - 1) ;
printf(\"--- %b\", num);
count++;
}
return count ;
}
printf(\"%d elvállalt munkád van.\", bitcount(Job[playerid]));

 
Ellenõrzés hogy melyik munkát vállalta a játékos:
 
   if(Job[playerid] == MUNKA_NONE)    printf(\"Nincs egy munka sem: MUNKA_NONE\");
if(Job[playerid] & MUNKA_1)       printf(\"Vállalt munka: MUNKA_1\");
if(Job[playerid] & MUNKA_2)       printf(\"Vállalt munka: MUNKA_2\");
if(Job[playerid] & MUNKA_3)       printf(\"Vállalt munka: MUNKA_3\");
if(Job[playerid] & MUNKA_4)       printf(\"Vállalt munka: MUNKA_4\");
if(Job[playerid] & MUNKA_5)       printf(\"Vállalt munka: MUNKA_5\");
if(Job[playerid] & MUNKA_6)       printf(\"Vállalt munka: MUNKA_6\");
if(Job[playerid] & MUNKA_7)       printf(\"Vállalt munka: MUNKA_7\");
if(Job[playerid] & MUNKA_8)       printf(\"Vállalt munka: MUNKA_8\");
if(Job[playerid] & MUNKA_9)       printf(\"Vállalt munka: MUNKA_9\");
if(Job[playerid] & MUNKA_10)       printf(\"Vállalt munka: MUNKA_10\");
if(Job[playerid] & MUNKA_11)       printf(\"Vállalt munka: MUNKA_11\");
if(Job[playerid] & MUNKA_12)       printf(\"Vállalt munka: MUNKA_12\");
if(Job[playerid] & MUNKA_13)       printf(\"Vállalt munka: MUNKA_13\");
if(Job[playerid] & MUNKA_14)       printf(\"Vállalt munka: MUNKA_14\");
if(Job[playerid] & MUNKA_15)       printf(\"Vállalt munka: MUNKA_15\");
if(Job[playerid] & MUNKA_16)       printf(\"Vállalt munka: MUNKA_16\");
if(Job[playerid] & MUNKA_17)       printf(\"Vállalt munka: MUNKA_17\");
if(Job[playerid] & MUNKA_18)       printf(\"Vállalt munka: MUNKA_18\");
if(Job[playerid] & MUNKA_19)       printf(\"Vállalt munka: MUNKA_19\");
if(Job[playerid] & MUNKA_20)       printf(\"Vállalt munka: MUNKA_20\");
if(Job[playerid] & MUNKA_21)       printf(\"Vállalt munka: MUNKA_21\");
if(Job[playerid] & MUNKA_22)       printf(\"Vállalt munka: MUNKA_22\");
if(Job[playerid] & MUNKA_23)       printf(\"Vállalt munka: MUNKA_23\");
if(Job[playerid] & MUNKA_24)       printf(\"Vállalt munka: MUNKA_24\");
if(Job[playerid] & MUNKA_25)       printf(\"Vállalt munka: MUNKA_25\");
if(Job[playerid] & MUNKA_26)       printf(\"Vállalt munka: MUNKA_26\");
if(Job[playerid] & MUNKA_27)       printf(\"Vállalt munka: MUNKA_27\");
if(Job[playerid] & MUNKA_28)       printf(\"Vállalt munka: MUNKA_28\");
if(Job[playerid] & MUNKA_29)       printf(\"Vállalt munka: MUNKA_29\");
if(Job[playerid] & MUNKA_30)       printf(\"Vállalt munka: MUNKA_30\");
if(Job[playerid] & MUNKA_31)       printf(\"Vállalt munka: MUNKA_31\");
if(Job[playerid] & MUNKA_32)       printf(\"Vállalt munka: MUNKA_32\");

 
Összes munka törlése.   Pl.: OnPlayerConnect-hez
 
   printf(\"%d - %d -> %b\", 0b11100001001100000100011000001101, Job[playerid], Job[playerid]); // Egy kis ellenõrzés tényleg jók-e a bitmûveletek.
Job[playerid] = MUNKA_NONE; // 0b00000000000000000000000000000000

 
Példa szkript gyors tesztelésre:



#include <a_samp>
 
enum
(<<= 1)
{
MUNKA_NONE,   // 0b00000000000000000000000000000000
MUNKA_1 = 1,   // 0b00000000000000000000000000000001
MUNKA_2,   // 0b00000000000000000000000000000010
MUNKA_3,   // 0b00000000000000000000000000000100
MUNKA_4,   // 0b00000000000000000000000000001000
MUNKA_5,   // 0b00000000000000000000000000010000
MUNKA_6,   // 0b00000000000000000000000000100000
MUNKA_7,   // 0b00000000000000000000000001000000
MUNKA_8,   // 0b00000000000000000000000010000000
MUNKA_9,   // 0b00000000000000000000000100000000
MUNKA_10,   // 0b00000000000000000000001000000000
MUNKA_11,   // 0b00000000000000000000010000000000
MUNKA_12,   // 0b00000000000000000000100000000000
MUNKA_13,   // 0b00000000000000000001000000000000
MUNKA_14,   // 0b00000000000000000010000000000000
MUNKA_15,   // 0b00000000000000000100000000000000
MUNKA_16,   // 0b00000000000000001000000000000000
MUNKA_17,   // 0b00000000000000010000000000000000
MUNKA_18,   // 0b00000000000000100000000000000000
MUNKA_19,   // 0b00000000000001000000000000000000
MUNKA_20,   // 0b00000000000010000000000000000000
MUNKA_21,   // 0b00000000000100000000000000000000
MUNKA_22,   // 0b00000000001000000000000000000000
MUNKA_23,   // 0b00000000010000000000000000000000
MUNKA_24,   // 0b00000000100000000000000000000000
MUNKA_25,   // 0b00000001000000000000000000000000
MUNKA_26,   // 0b00000010000000000000000000000000
MUNKA_27,   // 0b00000100000000000000000000000000
MUNKA_28,   // 0b00001000000000000000000000000000
MUNKA_29,   // 0b00010000000000000000000000000000
MUNKA_30,   // 0b00100000000000000000000000000000
MUNKA_31,   // 0b01000000000000000000000000000000
MUNKA_32   // 0b10000000000000000000000000000000
}
new
Job[MAX_PLAYERS];
public
OnFilterScriptInit()
{
// Több munka egyszerre történõ megadása:
Job[0] |= MUNKA_2;  // Ez az érték megadása a következõ sor szemléltetése végett szerepel. // 0b00000000000000000000000000000010
Job[0] = MUNKA_1 | MUNKA_4 | MUNKA_3; // Ez a megoldás töröl minden korábban beállított munkát!! // // 0b00000000000000000000000000001101
// Munkák egyesével történû hozzáadása:
Job[0] |= MUNKA_5;   // 0b00000000000000000000000000011101
Job[0] |= MUNKA_10;   // 0b00000000000000000000001000011101
Job[0] |= MUNKA_15;   // 0b00000000000000000100001000011101
Job[0] |= MUNKA_20;   // 0b00000000000010000100001000011101
Job[0] |= MUNKA_25;   // 0b00000001000010000100001000011101
Job[0] |= MUNKA_30;   // 0b00100001000010000100001000011101
Job[0] |= MUNKA_32;   // 0b10100001000010000100001000011101
// Egy munka törlése:
Job[0] &= ~MUNKA_5;   // 0b10100001000010000100001000001101
// Egy munka törlése ha aktív, vagy aktiválása ha nincs beállítva:
Job[0] ^= MUNKA_20; // Ez esetben törlés mivel már aktiválva van.      // 0b10100001000000000100001000001101
Job[0] ^= MUNKA_21; // Ez esetben aktiválás mivel nincs hozzáadva.   // 0b10100001000100000100001000001101
// Több munka egyszerre történõ megadása régi értékek megtartása mellett:
Job[0] |= MUNKA_11 | MUNKA_31 | MUNKA_22;   // 0b11100001001100000100011000001101
// Ellenõrzés hogy melyik munkát vállalta a játékos:
if(Job[0] == MUNKA_NONE)    printf(\"Nincs egy munka sem: MUNKA_NONE\");
if(Job[0] & MUNKA_1)          printf(\"Vállalt munka: MUNKA_1\");
if(Job[0] & MUNKA_2)          printf(\"Vállalt munka: MUNKA_2\");
if(Job[0] & MUNKA_3)          printf(\"Vállalt munka: MUNKA_3\");
if(Job[0] & MUNKA_4)          printf(\"Vállalt munka: MUNKA_4\");
if(Job[0] & MUNKA_5)          printf(\"Vállalt munka: MUNKA_5\");
if(Job[0] & MUNKA_6)          printf(\"Vállalt munka: MUNKA_6\");
if(Job[0] & MUNKA_7)          printf(\"Vállalt munka: MUNKA_7\");
if(Job[0] & MUNKA_8)          printf(\"Vállalt munka: MUNKA_8\");
if(Job[0] & MUNKA_9)          printf(\"Vállalt munka: MUNKA_9\");
if(Job[0] & MUNKA_10)       printf(\"Vállalt munka: MUNKA_10\");
if(Job[0] & MUNKA_11)       printf(\"Vállalt munka: MUNKA_11\");
if(Job[0] & MUNKA_12)       printf(\"Vállalt munka: MUNKA_12\");
if(Job[0] & MUNKA_13)       printf(\"Vállalt munka: MUNKA_13\");
if(Job[0] & MUNKA_14)       printf(\"Vállalt munka: MUNKA_14\");
if(Job[0] & MUNKA_15)       printf(\"Vállalt munka: MUNKA_15\");
if(Job[0] & MUNKA_16)       printf(\"Vállalt munka: MUNKA_16\");
if(Job[0] & MUNKA_17)       printf(\"Vállalt munka: MUNKA_17\");
if(Job[0] & MUNKA_18)       printf(\"Vállalt munka: MUNKA_18\");
if(Job[0] & MUNKA_19)       printf(\"Vállalt munka: MUNKA_19\");
if(Job[0] & MUNKA_20)       printf(\"Vállalt munka: MUNKA_20\");
if(Job[0] & MUNKA_21)       printf(\"Vállalt munka: MUNKA_21\");
if(Job[0] & MUNKA_22)       printf(\"Vállalt munka: MUNKA_22\");
if(Job[0] & MUNKA_23)       printf(\"Vállalt munka: MUNKA_23\");
if(Job[0] & MUNKA_24)       printf(\"Vállalt munka: MUNKA_24\");
if(Job[0] & MUNKA_25)       printf(\"Vállalt munka: MUNKA_25\");
if(Job[0] & MUNKA_26)       printf(\"Vállalt munka: MUNKA_26\");
if(Job[0] & MUNKA_27)       printf(\"Vállalt munka: MUNKA_27\");
if(Job[0] & MUNKA_28)       printf(\"Vállalt munka: MUNKA_28\");
if(Job[0] & MUNKA_29)       printf(\"Vállalt munka: MUNKA_29\");
if(Job[0] & MUNKA_30)       printf(\"Vállalt munka: MUNKA_30\");
if(Job[0] & MUNKA_31)       printf(\"Vállalt munka: MUNKA_31\");
if(Job[0] & MUNKA_32)       printf(\"Vállalt munka: MUNKA_32\");
// Összes munka törlése.   Pl.: OnPlayerConnect-hez
printf(\"%d - %d -> %b\", 0b11100001001100000100011000001101, Job[0], Job[0]); // Egy kis ellenõrzés tényleg jók-e a bitmûveletek.
Job[0] = MUNKA_NONE; // 0b00000000000000000000000000000000
printf(\"%b\", Job[0]);
// Tényleg törölt minden munkát? :D
if(Job[0] == MUNKA_NONE)    printf(\"Nincs egy munka sem: MUNKA_NONE\");
if(Job[0] & MUNKA_1)          printf(\"Vállalt munka: MUNKA_1\");
if(Job[0] & MUNKA_2)          printf(\"Vállalt munka: MUNKA_2\");
if(Job[0] & MUNKA_3)          printf(\"Vállalt munka: MUNKA_3\");
if(Job[0] & MUNKA_4)          printf(\"Vállalt munka: MUNKA_4\");
if(Job[0] & MUNKA_5)          printf(\"Vállalt munka: MUNKA_5\");
if(Job[0] & MUNKA_6)          printf(\"Vállalt munka: MUNKA_6\");
if(Job[0] & MUNKA_7)          printf(\"Vállalt munka: MUNKA_7\");
if(Job[0] & MUNKA_8)          printf(\"Vállalt munka: MUNKA_8\");
if(Job[0] & MUNKA_9)          printf(\"Vállalt munka: MUNKA_9\");
if(Job[0] & MUNKA_10)       printf(\"Vállalt munka: MUNKA_10\");
if(Job[0] & MUNKA_11)       printf(\"Vállalt munka: MUNKA_11\");
if(Job[0] & MUNKA_12)       printf(\"Vállalt munka: MUNKA_12\");
if(Job[0] & MUNKA_13)       printf(\"Vállalt munka: MUNKA_13\");
if(Job[0] & MUNKA_14)       printf(\"Vállalt munka: MUNKA_14\");
if(Job[0] & MUNKA_15)       printf(\"Vállalt munka: MUNKA_15\");
if(Job[0] & MUNKA_16)       printf(\"Vállalt munka: MUNKA_16\");
if(Job[0] & MUNKA_17)       printf(\"Vállalt munka: MUNKA_17\");
if(Job[0] & MUNKA_18)       printf(\"Vállalt munka: MUNKA_18\");
if(Job[0] & MUNKA_19)       printf(\"Vállalt munka: MUNKA_19\");
if(Job[0] & MUNKA_20)       printf(\"Vállalt munka: MUNKA_20\");
if(Job[0] & MUNKA_21)       printf(\"Vállalt munka: MUNKA_21\");
if(Job[0] & MUNKA_22)       printf(\"Vállalt munka: MUNKA_22\");
if(Job[0] & MUNKA_23)       printf(\"Vállalt munka: MUNKA_23\");
if(Job[0] & MUNKA_24)       printf(\"Vállalt munka: MUNKA_24\");
if(Job[0] & MUNKA_25)       printf(\"Vállalt munka: MUNKA_25\");
if(Job[0] & MUNKA_26)       printf(\"Vállalt munka: MUNKA_26\");
if(Job[0] & MUNKA_27)       printf(\"Vállalt munka: MUNKA_27\");
if(Job[0] & MUNKA_28)       printf(\"Vállalt munka: MUNKA_28\");
if(Job[0] & MUNKA_29)       printf(\"Vállalt munka: MUNKA_29\");
if(Job[0] & MUNKA_30)       printf(\"Vállalt munka: MUNKA_30\");
if(Job[0] & MUNKA_31)       printf(\"Vállalt munka: MUNKA_31\");
if(Job[0] & MUNKA_32)       printf(\"Vállalt munka: MUNKA_32\");
return 1;
}

7
Fórum Archívum (Témák/Fórumok) / Re:[STOCK] GetPlayerID
« Dátum: 2013. Június 23. - 11:20:43 »
Játékos adat lekérdezésénél minden esetben for ciklusban alkalmazni kellene az IsPlayerConnected eljárást mivel ez egy elég egyszerû adatot tartalmazó eljárás, emiatt sokkal gyorsabban lefut mint a GetPlayerName funkció.
Az strfind meg -1-el tér vissza ha nem talál egyezést emiatt kicsit eltér a használata a többi funkciótól pl.: strcmp-tõl.
Míg az strcmp-nél alkalmazható a tagadás jele a függvény elõtt addig az strfind-él már rossz eredményhez vezethet.
 
if(strcmp(cmdtext, \"/sayhello\", true) == 0)
if(strfind(\"Are you in here?\", \"you\", true) != -1)

 
Mint látod a kettõ függvénynél a visszatérési értéket másra vizsgáljuk.
Az strfind vissza adja az azonosság kezdetének pozícióját, tehát ha nulla értéket ad vissza az már azt jelenti hogy a legelsõ karaktertõl már egyezik a keresett kifejezés.
 
strfind(\"Are you in here?\", \"Are\", true)[/quote]
Ha te letagadod a funkció elõtt akkor elég sok esetben hamis eredményt fogsz kapni, mivel a funkció elõtti letagadás (!): bármilyen eredmény jó ami nagyobb nullánál.
De az strfind-él a nulla értékû visszatérés már egyezést\\találatot jelent.

8
Fórum Archívum (Témák/Fórumok) / Re:Sokszor írja ki
« Dátum: 2013. Június 05. - 19:25:48 »
sorry belegondolva még se jó

9
SA-MP: Szerverfejlesztés / [FS]LockCar 0.3 v1.3.1
« Dátum: 2013. Június 01. - 22:03:31 »
Ez egy nagyon régi szkript, de ma este elõkapartam mivel láttam hogy elromlott a letöltési linkje a hivatalos fórumon, de ha már elõ szedtem egy kicsit frissítettem meg egyszerûsítettem is a kódot.  :D
A szkript egy alap /lock és /unlock  (jármûvek bezárása és nyitása) valamint rcon admin által használható /xunlock (összes lezárt jármû kinyitása) parancsot tartalmaz, a lényege a SetVehicleParamsForPlayer javítása mely 0.3a samp kliens óta a jármûvek betöltésének megváltozása óta rosszul mûködik, valójában törlõdik a beállított érték ezért a jármû megjelenésekor \"OnVehicleStreamIn\" újra le kell zárni a jármûvet a SetVehicleParamsForPlayer segítségével.
Letöltés:
http://pastebin.com/CPrHRdpg



// Vehicle Locked and UnLocked by.: Phento Date 10.03.03 v1.2
// Update 2013.06.01 by.: Zsolesszka
// Update 2013.06.03 Fixed, VehicleLocked array index (0-1999), GetPlayerVehicleID return valid vehicleid (1-2000)
#include <a_samp>
new
MaxPlayers,
VehicleLocked[MAX_VEHICLES] = { -1, ... };
stock
Un_Lock_Car(playerid, bool:locked)
{
if(GetPlayerVehicleSeat(playerid) != 0) SendClientMessage(playerid, 0x0099FFAA, \"You are not a driver!\");
else
{
new
   vehicleid = GetPlayerVehicleID(playerid);
if(VehicleLocked[vehicleid - 1] == ((locked)?(playerid):(-1))) SendClientMessage(playerid, 0x0099FFAA, (locked)?(\"Already vehicle locked!\"):(\"The vehicle not locked!\"));
else
{
   VehicleLocked[vehicleid - 1] = (locked)?(playerid):(-1);
   for(new p; p < MaxPlayers; p++)
   {
      if(IsPlayerConnected(p) && p != playerid) { SetVehicleParamsForPlayer(vehicleid, p, false, locked);   }
   }
   SendClientMessage(playerid, 0x0099FFAA, (locked)?(\"Vehicle locked!\"):(\"Vehicle unlocked!\"));
}
}
}
stock
UnLockAllCar(playerid)
{
for(new vehicleid = 1; vehicleid <= MAX_VEHICLES; vehicleid++)
{
if(VehicleLocked[vehicleid - 1] != playerid)
{
   VehicleLocked[vehicleid - 1] = -1;
   for(new p; p < MaxPlayers; p++)
   {
      if(IsPlayerConnected(p)) { SetVehicleParamsForPlayer(vehicleid, p, false, false); }
   }
}
}
}
public
OnFilterScriptInit()
{
MaxPlayers = GetMaxPlayers();
print(\"-----------------------------------\");
print(\"  Lock and Unlock Car by.: Zsolesszka\");
print(\"         v.1.3.1\");
print(\"-----------------------------------\\n\");
return 1;
}
public
OnPlayerDisconnect(playerid, reason)
{
UnLockAllCar(playerid);
return 1;
}
public
OnVehicleStreamIn(vehicleid, forplayerid)
{
if(VehicleLocked[vehicleid - 1] != -1 && VehicleLocked[vehicleid - 1] != forplayerid)
{
SetVehicleParamsForPlayer(vehicleid, forplayerid, false, true); // Relock vehicle
}
return 1;
}
public
OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(\"/lock\", cmdtext, true))
{
Un_Lock_Car(playerid, true);
return 1;
}
if(!strcmp(\"/unlock\", cmdtext, true))
{
Un_Lock_Car(playerid, false);
return 1;
}
if(!strcmp(\"/xunlock\", cmdtext, true))
{
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, 0x0099FFAA, \"You are not rcon admin!\");
UnLockAllCar(-1);
SendClientMessage(playerid, 0x0099FFAA, \"All Vehicle unlocked!\");
return 1;
}
return 0;
}
public
OnFilterScriptExit()
{
UnLockAllCar(-1);
return 1;
}

 
 
H. link
Javítva egy apró hiba miszerint ha az összes jármû létre van hozva a játékban, akkor pont a 2000-dik jármûnél rosszul mûködött, mondjuk nem sok olyan szerver van ahol a maximális jármûvek számát kihasználják, de hátha, és ezért javítottam. :D

10
Fórum Archívum (Témák/Fórumok) / Re:Pénz szerzés nyáron
« Dátum: 2013. Május 22. - 00:34:20 »
delete

11
Beszélgetés / Akit érdekel BHO free reg van határozatlan ideig.
« Dátum: 2013. Május 20. - 00:22:59 »
\"bithorlo.jpg\"

12
Fórum Archívum (Témák/Fórumok) / Re:Jelentkezés
« Dátum: 2013. Április 01. - 16:57:48 »
Az elképzelésemben valószínûleg nem kieséses verseny lesz hanem pontozásos, így mindenki aki részt vesz pontokat fog kapni minden zsûritagtól minden beadott feladat után és aki a legtöbb pontot gyûjti össze az nyeri a versenyt.
Ezzel azt szeretném elérni hogy minden résztvevõ végig kísérje és részt vegyen ebben a szkripter liga játékban, és ne essen ki rögtön az elsõ forduló után.

13
SA-MP: Szerverfejlesztés / ini_cut
« Dátum: 2013. Február 01. - 20:25:42 »
Biztos van már ebbõl is többféle verzió, ezért kreáltam egyet én is.  :angel:
Segítségével egy fájlból beolvasva kétfelé lehet szedni egy beolvasott sor adatait, melyet az egyenlõség jellel választanak el.
Példaként legyen a fájl neve Config.ini, a tartalma a következõ:
 

Autologin=1
AdminSkin=214
 
[/quote]
A példa szkript:
 
public 
OnFilterScriptInit()
{
new
File:F = fopen(\"Config.ini\", io_read),
str[128],
name[64],
value[64];
if(F)
{
while(fread(F, str))
{
   if(ini_cut(str, name, value)) printf(\"Error. line: %s\", str);
   else printf(\"%s <--> %s\", name, value);
}
fclose(F);
}
return 1;
}

 
Eredményként ezt kapjuk:
 
Autologin <--> 1
AdminSkin <--> 214
 
[/quote]
És a kód:
 
stock 
ini_cut(line[], name[], value[], const delim = \'=\') // author by Zsolesszka
{
new
ch,
pos = 0,
pos2 = 0,
bool:valid = true;
while((ch = line[pos++]) >= \' \')
{
while(line[pos] == \' \') pos++;
if(ch == delim) { valid = false; continue; }
if(valid)
   name[pos - 1] = ch, name[pos] = EOS;
else
   value[pos2++] = ch, value[pos2] = EOS;
}
return valid;
}

 
Megjegyzés:
Természetesen a string méretek megadásánál ügyelni kell a megfelelõ méretek megadására, a példában szerintem bõséges méreteket adtam meg, ha úgy kerül használatra akkor nem hiszem hogy gond lesz belõle, a hiba a következõ lenne: Ha túl hosszú nevet adna valaki a megjegyzésnek vagy az adatnak pl.: hblkahjdalhdaslkhflkhaslhxlkdhfaclhxlkdahflxahfxlahjfalxfdasfasdhflkas=2318732187632187632187361283762817362871638 de nem hiszem hogy ilyen extrém hosszú elnevezésekkel látna el bárki is valamilyen adatot.  :D

14
Fórum Archívum (Témák/Fórumok) / Re:ZCMD_fixed (0.3.1)
« Dátum: 2013. Január 19. - 00:05:26 »
Idézetet írta: hegdavid95 date=1358548563\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"32644\" data-ipsquote-contentclass=\"forums_Topic
Nagyon zsír :D Egyébként egy ötlet
 
format(funcname, sizeof(funcname), \"cmd_%s\", funcname);

 
Ez helyett nem lenne jobb ez? :D
 
strins(funcname,\"cmd_\",0,MAX_FUNC_NAME);

 

Nem lenne jobb, mivel az eredmény ez lenne /teszt parancs esetén:
 
tesztcmd_
[/quote]

15
Kérdések, Segítség / UPC mûholdas TV
« Dátum: 2013. Január 16. - 00:09:54 »
Mediacard
Csomagok
Vélemények
Szóval minden ami ezzel a témával kapcsolatos várnám a hozzászólásokat.
Kérdésként, arra lennék kíváncsi hogy DirektKártya+  Ci modullal  (közvetlen a tévébe csatlakoztatva) mûholdas vétellel kivitelezhetõ-e, és hogyan?
Egyáltalán van-e valaki akinek már van, milyen beltéri egység kell hozzá ha egyáltalán kell?
Vagy csak kábeles szolgáltatással érhetõ-e el a közvetlen ci modullal + elõfizetõi kártyával  történõ mûsorvétel?
Ui.:
Sose használtam még parabola antennát, ezért érdeklõdök.

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