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

Oldalak: 1 ... 4 5 [6] 7 8 ... 16
76
Pluginok és Programok / [WIP] SA-MP++
« Dátum: 2014. március 30. - 22:39:08 »
Kíváló munka!
cegui alapból, Lua és Python-ba lehet scriptelni.
Gondolom alaposan átkellet dolgozni, hogy támogassa pawn-n nyelvet, de szerintem pawn nem is alkalmas rá.
Esetleg c++-be csináltad és úgy hívod meg a függvényeket.

77
Segítségkérés / Kisebb kérdések
« Dátum: 2014. március 22. - 14:42:59 »
Sziasztok!
Hogyan tudok létrehozni, vagy mivel tudok rajzolni lekerekített téglalap textdraw-t?
Mivel rajzolják az egyedi kilométeróra textdrawjait?

78
Idézetet írta: kurta999 date=1395326144\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"43485\" data-ipsquote-contentclass=\"forums_Topic
Tervezem a scriptet átírni pluginba, szeretném tudni ki venné hasznát, ha meg is csinálnám.
Miért is lenne jobb pluginba?
 
  • Összes verziójú MTA map (MTA DM, Race, még jackob object packja is) konvertálása sokkal könyebb és gyorsabb módon - XML-el olvasná a fájlokat így nem lenne vele annyi gond

  • Átkonvertált dolgokat csoportosan írná a fájlba, nem egy az egyben, ahogy kiolvassa. Pl. egymás után lennének a kocsik, objectek és nem össze vissza ahogy az MTA mapban

  • Összes mapodat bepakolnád a scriptfilesen belül egy maps nevû mappába, onnan mind az összeset ugyanazzal a névvel egy \"maps_out\" nevû mappába beleírná PAWN formátumban. Kapásból nem kéne a source.map-ba másolni a sok konvertálni való mapot.

  • Kezdetnek nem tervezek linux verizót mert ott kicsit más a fájlkezelés és nem értek hozzá


Szóval hasznát venné ennek valaki, vagy nem?
 
Én hasznát venném neki, hasznos lenne. :)

79
Segítségkérés / legközelebbi kocsi
« Dátum: 2014. március 12. - 18:28:17 »
GetVehicleDistanceFromPoint függvény kiszámítja, hogy egy adott jármû milyen messze van egy adott pontól.
IsPlayerInRangeOfPoint függvény ellenõrzi, hogy az adott játékos benne van-e az adott sugarú körben.
Egy példakód tõlem IsPlayerInRangeOfPoint függvény használatával:
 
CMD:jarmu(playerid,params[])
{
 
for(new i = 0; i < MAX_VEHICLES; i++)
{
if(i != INVALID_VEHICLE_ID)
{
   new Float:POS[3];
   GetVehiclePos(i,POS[0],POS[1],POS[2]); //lekéri a jármû pozícióját
   if(IsPlayerInRangeOfPoint(playerid,10.0,POS[0],POS[1],POS[2])) //lekéri, hogy a játékos benne van-e az adott sugarú körben
   {
      new str_[144];
      format(str_,sizeof(str_),\"%d azonosítójú jármû van a közeledben\",i);
      SendClientMessage(playerid,-1,str_);
      break; //leállítjuk a ciklust
   }
}
}
return 1;
}

80
Segítségkérés / terület foglalás
« Dátum: 2014. március 10. - 19:08:30 »
GangZoneFlashForAll függvény használatával alapból villog a bandazóna nem kell hozzá idõzítõ!
Elöszõr GangZoneShowForAll utána GangZoneFlashForAll használd, és villógni fog a zóna.

81
Segítségkérés / Gyors kérdés[ZCMD ]
« Dátum: 2014. március 10. - 15:26:06 »
A params nevû változóban tárolódik a parancs neve után beírt bármely szöveg:
Üres karakterláncot, isnull nevû függvénnyel ellenõrizhetjük.
Ha karakterlánc üres true értéket ad vissza az isnull függvény, ahogy itt is látható:
 
CMD:tanc(playerid,params[])
{
if(isnull(params))
{
SendClientMessage(playerid,-1,\" /tanc[1-4]\");
return 1;
}
//parancs többi része
return 1;
}

82
Archívum / Új Lokális Moderátorok
« Dátum: 2014. március 09. - 19:39:49 »
Szerintem még nyitva kellett volna hagyni egy kicsit, mert sokan még este küldték volna el a jelentkezésüket.
Gratulálok minden új moderátornak! :)

83
Én ezt a részt nem értem, hogy miért akarsz lekérni egy olyan sorból, egy olyan adatott ami lehet, hogy nem is létezik?
Mert ha nem létezõ sorból kérsz le adatott, akkor hibát ír ki a konzol-ba, ezért nem tud mit csinálni ezért értékként visszatér nullával.
Na most te ezt az értéket használod fel, hogy ha nincs ilyen sor.
Elõtte ellenõrizni kéne, hogy létezik-e az adott sor (cache_get_data függvénnyel), ha nem akkor kellene értéket adni, én így oldanám meg.
De te feltétel elõtt már lekérsz adatokat, vagy lekérsz egy sort, aztán ellenõrzõd, hogy létezik-e?!
Remélem érted, hogy mit akarok mondani.
 
forward THREAD_Autologin(playerid, queue);
public THREAD_Autologin(playerid, queue)
{
if(g_pQueryQueue[playerid] != queue) return QUERY_COLLISION(THREAD_Autologin);
new
    rows,
    fields;
cache_get_data(rows, fields);
if(rows) // Ha a sor nem üres
{
LoginPlayer(playerid);
SendClientMessage(playerid, COLOR_GREEN, \"Automatikusan bejelentkeztél!\");
}
return 1;
}
forward THREAD_OnPlayerConnect(playerid, queue);
public THREAD_OnPlayerConnect(playerid, queue)
{
// Ha a játékos csatlakozik vagy lelép, akkor a \"g_pQueryQueue[playerid]\" értéke mindig növekedik.
// Lekérdezésnél átvisszük ennek az értékét a \"queue\" nevû paraméterben, amit majd a lekérdezés lefutásánál ellenõrzünk.
// Ha a játékos lelépett, akkor \"g_pQueryQueue[playerid]\" egyel több lett, tehát nem egyenlõ a \"queue\" paraméter értékével.
// Ez esetben a lekérdezés nem fog lefutni, hanem egy figyelmezetõ üzenetet fog kiírni a konzolva, hogy \"query collision\".
// Nagyon fontos ez, mivel ha van egy lekérdezés, ami lekérdez valami \"titkos\" adatot az adatbázisból,
// közben belaggol a a mysql szerver, a lekérdezés eltart 5 másodpercig, feljön egy másik játékos és annak fogja kiírni az adatokat,
// mivel a lekérdezés lefutása közben lelépett a játékos és egy másik jött a helyére. Erre van ez a védelem, így ettõl egyáltalán nem kell tartani.
// Sima lekérdezéseknél (ház betöltés, egyéb betöltés, frissítés, stb.. sz*rságok) ilyen helyen nem szükséges ez a védelem.
if(g_pQueryQueue[playerid] != queue) return QUERY_COLLISION(THREAD_OnPlayerConnect);
new
szFetch[12],
serial[64];
cache_get_row(0, 0, szFetch);
SetPVarInt(playerid, \"LineID\", strval(szFetch));
// Ez itt egy \"átmeneti változó\", ami tárolja, hogy mi a reg id-je a játékosnak.
// Ha nulla, akkor nincs regisztrálva (mivel az SQL 0-t ad vissza, ha nemlétezõ a sor), ellentétben pedig igen.
g_PlayerFlags{playerid} = e_PLAYER_FLAGS:0; // Nullázuk az értékét, nem elég a nulla, kell elé a változó tagja is, különben figyelmeztet a fordító.
    if(!IsPlayerNPC(playerid)) // Csak játékosokra vonatkozik
{
SetPVarInt(playerid, \"RegID\", -1);
GetPlayerIp(playerid, g_szIP, sizeof(g_szIP));
gpci(playerid, serial, sizeof(serial));
getdate(year, month, day);
gettime(hour, minute, second);
format(g_szQuery, sizeof(g_szQuery), \"INSERT INTO `connections`(id, name, ip, serial, time) VALUES(0, \'%s\', \'%s\', \'%s\', \'%02d.%02d.%02d/%02d.%02d.%02d\')\", pName(playerid), g_szIP, serial, year, month, day, hour, minute, second);
mysql_pquery(1, g_szQuery);
// Autologin
// Leftuttatunk egy lekérdezést, ami ha befejezõdött, akkor meghívódik a \"THREAD_Autologin\" callback.
// A régebbi pluginnal ez egy funkcióban ment, szóval ha a mysql szerver belaggolt és a lekérdezés eltartott 5 másodpercig,
// akkor 5 másodpercig megfagyott a szerver.
// Itt nem fog megfagyni semeddig a szerver, mivel létrehoz neki egy új szálat, és az a szál fagy meg míg nem fut le a lekérdezés.
// Lefutás után pedig meghívja a \"THREAD_Autologin\" callbackot. Ez már logikus, hogy az alap szálon (main thread)-on fut.
//
// Fenti lekérdezéssel is szintén ez a helyzet, viszont ott nem vagyunk kiváncsi a kapott értékekre.
// Az a lefutása során az \"OnQueryFinish\" callbackot hívja meg, viszont itt nem történik semmi.
// Ugyanaz a helyzet az összes lekérdezéssel, ha kiváncsi lennék az értékére, akkor ugyanúgy a callback alá raknám a dolgokat, mint itt.
format(g_szQuery, sizeof(g_szQuery), \"SELECT * FROM `players` WHERE `name` = \'%s\' AND `ip` = \'%s\'\", pName(playerid), g_szIP);
mysql_pquery(1, g_szQuery, \"THREAD_Autologin\", \"dd\", playerid, g_pQueryQueue[playerid]);
}
     return 1;
}

 
Én valahogy így csinálnám:
 
forward THREAD_OnPlayerConnect(playerid, queue);
public THREAD_OnPlayerConnect(playerid, queue)
{
if(g_pQueryQueue[playerid] != queue) return QUERY_COLLISION(THREAD_OnPlayerConnect);
new rows,fields;
 
cache_get_data(rows, fields);
if(rows) // Ha a sor nem üres
{
new szFetch[12],
cache_get_row(0, 0, szFetch);
SetPVarInt(playerid, \"LineID\", strval(szFetch));
}
else
{
SetPVarInt(playerid, \"LineID\",0);
}
//+többi rész
}

 

public OnPlayerRequestClass(playerid, classid)
{
if(IsPlayerNPC(playerid)) return 1;
   
    //printf(\"%d\", g_PlayerFlags{playerid} & e_LOGGED_IN);
if(!(g_PlayerFlags{playerid} & e_LOGGED_IN)) // Felmutatjuk neki a megfelelõ dialógot
{
if(GetPVarInt(playerid, \"LineID\") != 0)
{
   LoginDialog(playerid);
}
else
{
   RegisterDialog(playerid);
}
}
return 1;
}

84
Beszélgetés / Konfiguráció - Kérdések
« Dátum: 2014. március 01. - 13:42:47 »
Szerintem Tápegységbõl vegyél valami komolyabbat, ne sajnáld rá a pénzt.
CHIEFTEC nem rossz márka, de 11 ezerbõl nem lehet csodát elvárni.

85
Fórum Archívum (Témák/Fórumok) / Re:CMDMessageToAdmins
« Dátum: 2014. február 26. - 22:19:46 »
Idézetet írta: Dfoglalo date=1393447293\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"46760\" data-ipsquote-contentclass=\"forums_Topic


CMDMessageToAdmins(/*Szín*/, \"Szöveg\");
stock CMDMessageToAdmins(color, string[])
{
    for(new i; i < MAX_PLAYERS; i++)
{
   if(IsPlayerConnected(i))
   {
      if(/*Adminszint(i)*/ >= 1)
       {
         SendClientMessage(i, color, string);
      }
   }
}
}
 
Minek oda szín? Bõven elég a szöveg, ugyanis abba is bele lehet írni a színt. Ráadásul oda többet, részletesebben, nem csak egyet az egész karakterláncra vonatkozóan. (Code tag?) Egyébként felesleges ennyi elágazás, az IsPlayerConnectedet és az admin szint ellenõrzést bõven teheted egy elágazásba, éssel (AND -> ÉS -> &&) összekötve õket. Amúgy tényleg ennyi az egész. A módodba csinálsz egy ilyen függvényt és azt használod, melyben minden játékoson végigmész. Ha a játékos caatlakozott és admin e, akkor pedig elküldöd neki az üzenetet.
 
[/quote]
Igen csak az elfelejtetted mondani, hogy amikor egy karakterláncba színt formázol bele, az kapásból 8 blokkot foglal le kapcsos zárójellel együtt.
SendClientMessage függvényben nem végtelen a megjeleníthetõ karakterek száma, így ez nagyon nem mindegy, ha pl egy hosszabb üzenetet akarsz kiíratni.

86
Fórum Archívum (Témák/Fórumok) / Általános
« Dátum: 2014. február 23. - 19:19:30 »
Hogyan lesz megoldva benne az esc menü?
Remélem nem olyan lesz mint SAMP-ba, MTA-s megoldás jobban tetszene számomra.

87
Archívum / Sandbox Server - 2015 - FRISSÍTVE
« Dátum: 2014. február 22. - 18:16:33 »
Tetszik, már alig várom.
Már van újabb mysql plugin (r37) is használjátok azt.
Én is jelentkezni szeretnék a tesztre. :)

88
Archívum / MYSQL Hiba
« Dátum: 2014. február 22. - 14:10:08 »
Neked egy mysql server kell (pl XAMPP) amin létrehozol egy adatbázist.
A te esetedben nem tud mysql modul csatlakozni mert nincs mihez, ezért ír ki ennyi hibaüzenetet.
Az általad létrehozott adatbázis adatait kell megadnod (felhasználónév, jelszó, adatbázis neve), hogy msql modul tudjon csatlakozni az adatbázishoz.

89
Archívum / MYSQL Hiba
« Dátum: 2014. február 18. - 21:31:35 »
Nem foglalkozom lua-val, de szeirntem mysql plugin vagy modul nem tud csatlakozni az adatbázishoz.

90
Pluginok és Programok / PAWN Compiler Zeex javításaival
« Dátum: 2014. február 17. - 22:38:17 »
Köszönjük, ez nagyon hasznos.
Legalább nem kell felesleges változókat létrehozni, és strcat függvény használni, hogy ha hosszabb karakterláncot szeretnék létrehozni.
Lehet format függvénnyel is, de abban az esetben is szükségesek plusz változók.

Oldalak: 1 ... 4 5 [6] 7 8 ... 16
SimplePortal 2.3.7 © 2008-2024, SimplePortal