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

Oldalak: 1 2 [3] 4 5 ... 12
32
SA-MP: Szerverfejlesztés / CreateZoneSquare()
« Dátum: 2012. Július 22. - 14:18:20 »
Mivel még nem láttam ilyen kódot és nekem szükségem volt egy olyanra, ami egy megadott pont alapján általam beírt átlóval megcsinál egy négyzetet a térképen bandazónából, ezért megírtam. Nem nagy függvény, de kirakom, mivel lehet, hogy valakinek hasznára válik.
Kép, hogy mi is akar ez lenni:
\"ZoneBox.jpg\"
Kis méretben szerintem nagyon profi megoldás a kis dolgok jelzésére a térképen.
Csak simán megadsz neki egy kordinátát, a kordináták után beírod, hogy mekkora legyen az \"átló\" és meg is van.
A zóna ID-jével tér vissza.
 

stock CreateZoneSquare(Float:x, Float:y, Float:sinus_multiplier)
{
return GangZoneCreate(   x + (sinus_multiplier * floatsin(-45.0, degrees)),
               y + (sinus_multiplier * floatcos(-225.0, degrees)),
               x + (sinus_multiplier * floatsin(-225.0, degrees)),
               y + (sinus_multiplier * floatcos(-45.0, degrees)));
}

 
Esetleg ha kell teszt parancs valakinek  ;D
(Pl.: /zone 50)
 

CMD:zone(playerid, params[])
{
new
Float:fPos[3];
GetPlayerPos(playerid, fPos[0], fPos[1], fPos[2]);
GangZoneShowForAll(CreateZoneSquare(fPos[0], fPos[1], float(strval(params))), (random(0xFFFFFF) << 8) | 0xAA);
return 1;
}

33
Kérdések, Segítség / IP cím, mint szöveg
« Dátum: 2012. Július 08. - 21:02:17 »
Üdv!
Van egy olyan program, ami beállítja az IP címedet, mind egy stringet, pl: asd.hu:7777 vagy valami ilyesmi.
Ez azért kéne, mert akkor elég lenne ezt használnom, mivel dinamikus az IP-m, csak nemtudom, hogy mi az, mert elfelejtettem a nevét.
Ha valaki leírná, nagyon megköszönném.
(Faszom kivan vele, hogy cPanel-be mindig engedélyezni kell az IP címet, fõleg most a fos nettel, hogy napi renden 2-3 alkalommal kipottyan és az IP is más lesz)

34
Off Telep / Ilyet még nem láttál, fogadjunk!
« Dátum: 2012. Március 17. - 19:41:30 »
Elõrször ezt nézd meg, ha már ELOLVASTAD, AKKOR CSAK UTÁNA A KÖVETKEZÕT!
http://nemkutya.com/2012/03/ezt-mennyire-talaljatok-betegesnek/



http://kepfeltoltes.hu/view/090805/K_p_www.kepfeltoltes.hu_.jpg
Besz*rás xDDDDDDDDDDDDDDDDDDDDDDDDDDDDDDD
Köcsög pingvin**szogató

35
OnPlayerKeyStateChange
Ez az eljárás akkor hívódik meg, mikor a játékos lenyom vagy elenged egy \"speciális (Kivéve a Fel-Le, Jobbra-Balra)\" gombot. Ezeket a gombokat a GetPlayerKeys() segítségével tudjuk ellenõrizni.
Paraméterek:
 
( playerid, newkeys, oldkeys )

 
playerid - Annak a játékosnak az azonosítója, aki megnyomta a gombot.
newkeys - A változó, ami a játékos által lenyomott gombok bitjeit tárolja.
oldkeys - A változó, amit azokat a biteket tárolja, amit a mostani gomb lenyomás elõtt tárolt. (Ha lenyomom az X betût, aztán Y-t, akkor amikor az Y-t lenyomta, akkor az X lesz az old keys)
Visszatérés 1 - Megengedi az eljárásnak hogy meghívódjon a többi scriptben. Ez mindig meghívódik a játékmódban, tehát a 0 visszatérés csak a filterscripteket akadályozza.
Információ


Ez az eljárás akkor hívódik meg, amikor a játékos lenyom, vagy elenged egy speciális gombot. Csakhogy nem minden gomb tartozik ide, csak azok a gombok, amik használva vannak alapból a játékban. Például ha az \"A\" betût akarod ellenõrizni, akkor azt nem lehet vele, de viszont azt igen, amikor lenyomja a sprint gombot. Azt a gombot fogja sprint gombnak venni, ami a játékosnak be van állítva. Ha SPACE, akkor SPACE, ha H, akkor azt, stb..
Paraméterek


A paraméterek az összes gomb száma, amit elengedtél, vagy amit épp lenyomtál. Ez az eljárás akkor hívódik meg, amikor valamilyen gomb státusz megváltozik. (Tehát ha lenyomtál egy gombot és azt elengetted, vagy csak simán lenyomtál egy gombot). Az információ, amit a paraméterek visszaadnak, az nem úgy van, mint a többi átlagos eljárásnál. Egy paraméterben adja vissza több gomb adatait. Ezt bitmûveletek segítségével tudjuk ellenõrizni. Minden gombnak megvan a saját bitje, és megnézzük, hogy a bit igaz-e, vagy hamis-e. Ha igaz, akkor levan nyomva, ellentétben nincs.
Hogy NE ellenõrizd a gombot


Ha le akarod ellenõrizni, hogy valaki lenyomta a lövés gombot, akkor azt nyilván valóan így csinálnád:
[pawn]if (newkeys == KEY_FIRE)[/pawn]
A kód mûködin fog, csak nem úgy, ahogy annak kéne. Próbálj meg legugolni és lenyomni a lövés gombot - a kód már nem is mûködik. Miért is?
Mivel a newkeys nem egyenlõ a \"KEY_FIRE\"-vel, hanem \"KEY_FIRE\" kombinálva a \"KEY_CROUCH\"-al.
Hogy ellenõrizd a gombot


Most már tudjuk, hogy a változó két gomb adatait tartalmazza, ezért csak azt kéne megnézni, hogy az a gomb benne-e van, amit lenyomtunk. Erre a bit maszkolás a megoldás. Minden gombnak van saját bitje a változóban (Bár pár gombnak ugyanaz a bitje, de azok kocsiban vagy gyalog vannak. Szóval nemfog keveredni, mert nem kerülhetnek egyszerre bele a változóba.)
Jelenleg csak egy bitet kell megnéznünk:
[pawn]if (newkeys & KEY_FIRE)[/pawn]
Az egy darab \'&\'-jel az a bitenkénti ÉS és nempedig a logikai ÉS.
Ha leteszteled a kódot, akkor fog mûködni. Gugolás vagy futás közben, az lényegtelen, akkor fog menni, amikor le van nyomva a lövés gombod. Csakhogy ezzel van egy kis probléma: Ez a kód akkor fog mûködni, amikor le van nyomva a lövés gombod. Így jó is lenne, csakhogy mint elõbb leírtak miatt akkor is menni fog, ha a lövés gombod le van nyomva (Tartod az egéren a kezed) és közben te lenyomsz egy gombot. (Legugolsz, felállsz, sprintelsz, stb...)
Hogy ellenõrizd ha lenyomják a gombot


Itt jön használatba az \"oldkeys\" paraméter is. Elõször meg kell nézni, hogy a \"newkeys\"-ben benne-e van, és hogy NINCS-e az oldkeys-ben. Mivel ha benne lenne ott is, akkor valószínûleg eddig is levont neki nyomva és közben lenyomott egy másik gombot.
A következõ kód megoldja ezt:
[pawn]if ((newkeys & KEY_FIRE) && !(oldkeys & KEY_FIRE))[/pawn]
Ez csak akkor fog meghívódni, amikor a KEY_FIRE megtalálható a \"newkeys\"-ben és nem pedig akkor, amikor ez le van nyomva és közben más gombokat nyomkálsz.
Hogy ellenõrizd ha elengedik a gombot


Ugyanaz a megoldás, mint a fentiben, csak fordítva.
[pawn]if ((oldkeys & KEY_FIRE) && !(newkeys & KEY_FIRE))[/pawn]
Hogy ellenõrizz több gombot


Ha azt akarod ellenõrizni, hogy a játékos lenyomja a lövés és a gugolás gombot, akkor a következõ kód mûködni fog.
[pawn]if ((newkeys & KEY_FIRE) && (newkeys & KEY_CROUCH))[/pawn]
De ha azt akarod ellenõrizni, hogy elõször lenyomta a lövés gombot, aztán pedig a gugolást, akkor ez a kód NEM FOG mûködni! Csak akkor fog mûködni, ha EGYSZERRE nyomja le azt a két gombot. A következõ megoldás sem fog rendesen mûködni:
[pawn]if ((newkeys & KEY_FIRE) && !(oldkeys & KEY_FIRE) && (newkeys & KEY_CROUCH) && !(oldkeys & KEY_CROUCH))[/pawn]
Miért nem? Mivel az OnPlayerKeyStateChange minden egyes gomb lenyomásnál/elengedésnél hívódik meg. Tehát ha õ lenyomja a \"KEY_FIRE\"-t, akkor meghívódik az OnPlayerKeyStateChange a \"KEY_FIRE\"-vel a \"newkeys\"-ben és nem az \"oldkeys\"-ben. Ekkor ha lenyomja a \"KEY_CROUCH\"-ot, akkor OnPlayerKeyStateChange meghívódik a \"KEY_CROUCH\"-al és a \"KEY_FIRE\"-vel a \"newkeys\"-ben, de közben a \"KEY_FIRE\" benen van az \"oldkeys\"-ben. Tehát itt hülyeséget csinál ez a megoldás: \"!(oldkeys & KEY_FIRE)\".  A megoldás nagyon egyszerû:
[pawn]if ((newkeys & (KEY_FIRE | KEY_CROUCH)) == (KEY_FIRE | KEY_CROUCH) && (oldkeys & (KEY_FIRE | KEY_CROUCH)) != (KEY_FIRE | KEY_CROUCH))[/pawn]
Ez a megoldás elsõ ránézésre nagyon komplikáltnak tûnik, pedig nem az. A kód azt csinálja, hogy ellenõrzi, hogy mind a két gomb benne-e van a \"newkeys\"-ben, de nincs-e az \"oldkeys\"-ben.
Egyszerûsítés


Gomb lenyomva tartása
Definíció:
[pawn]
// HOLDING(keys)
#define HOLDING(%0) \\
((newkeys & (%0)) == (%0))
[/pawn]
Egy gomb lenyomva tartása:
[pawn]if (HOLDING( KEY_FIRE ))[/pawn]
Több gomb lenyomva tartása:
[pawn]if (HOLDING( KEY_FIRE | KEY_CROUCH ))[/pawn]
Gomb lenyomása
Definíció:
// PRESSED(keys)
[pawn]#define PRESSED(%0) \\
(((newkeys & (%0)) == (%0)) && ((oldkeys & (%0)) != (%0)))[/pawn]
Egy gomb lenyomása:
[pawn]if (PRESSED( KEY_FIRE ))[/pawn]
Több gomb lenyomása:
[pawn]if (PRESSED( KEY_FIRE | KEY_CROUCH ))[/pawn]
Gomb elengedése
Definíció:
[pawn]// RELEASED(keys)
#define RELEASED(%0) \\
(((newkeys & (%0)) != (%0)) && ((oldkeys & (%0)) == (%0)))[/pawn]
Egy gomb elengedése:
[pawn]if (RELEASED( KEY_FIRE ))[/pawn]
Több gomb elengedése:
[pawn]if (RELEASED( KEY_FIRE | KEY_CROUCH ))[/pawn]
Példák


Nitró amikor lenyomja a lövés gombot
[pawn]
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if (PRESSED(KEY_FIRE))
{
   if (IsPlayerInAnyVehicle(playerid))
   {
      AddVehicleComponent(GetPlayerVehicleID(playerid), 1010);
   }
}
return 1;
}
[/pawn]
Szuper ugrás
[pawn]
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if (PRESSED(KEY_JUMP))
{
   new
      Float:x,
      Float:y,
      Float:z;
   GetPlayerPos(playerid, x, y, z);
   SetPlayerPos(playerid, x, y, z + 10.0);
}
return 1;
}
[/pawn]
Halhatatlanság amíg az ENTER gombot nyomja
[pawn]
new
Float:gPlayerHealth[MAX_PLAYERS];
#if !defined INFINITY
#define INFINITY (Float:0x7F800000)
#endif
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
if (PRESSED(KEY_ACTION))
{
   // They just pressed the action key, save their
   // old health for restoration.
   GetPlayerHealth(playerid, gPlayerHealth[playerid]);
   SetPlayerHealth(playerid, INFINITY);
}
else if (RELEASED(KEY_ACTION))
{
   // They just let go of action - restore
   // their old health again.
   SetPlayerHealth(playerid, gPlayerHealth[playerid]);
}
return 1;
}
[/pawn]
Magyarázat


Nem kell aggódnod, hogy ezek a dolgok hogyan mennek végbe, végbe mennek és kész. HOLDING (Tartás) érzékeli, ha a játékos tartja a gombot. Tehát addig megy a holding, amíg azt a gombot el nem engeded. PRESSED érzékeli, ha csak simán lenyomtad a gombot. RELEASED érzékeli, ha elengedted a gombot. Ajánlott tovább olvasni, itt jön a lényeg:
Bináris számrendszerben a KEY_SPRINT a következõ:
 

0b00001000

 
Tehát a 4. bit. Ha a 4. bit igaz, akkor benne van a KEY_SPRINT és ha ellenõrizni akarjuk, hogy benne-e van, akkor csak megkell nézni, hogy a KEY_SPRINT benne-e van.
 
(newkeys & KEY_SPRINT)

 
vagy
 
(neweys & (1 << 3))

 
0001 binárisan az egy, ha ezt eltoljuk 3-al balra, akkor a következõ lesz: 1000 (8), ez pedig a KEY_SPRINT (8). Szóval itt a fenti megoldás sokkal egyszerûbb és átláhatóbbb. Ezt csak példának írtam.
KEY_SPRINT:
 

0b00001000

 
A KEY_JUMP pedig:
 

0b00100000

 
Ezek után a bitenkénti VAGY lefut és \"egyberakja\" õket.
Jelen esetben ez lesz a kívánt érték, amiben lefutott a bitenkénti VAGY a két érték között.
 

0b00101000

 
Kapcsolódó eljárások
OnPlayerStateChange: Ez az eljárás akkor hívódik meg, mikor a játékos megváltoztatja az állapotát.
Kapcsolódó függvények
GetPlayerKeys: Lekérdezi, hogy a játékos milyen gombot nyomott meg.
Eredeti téma: http://wiki.sa-mp.com/wiki/OnPlayerKeyStateChange

36
Függvények / GetPVarNameAtIndex(playerid, index, ret_varname[], ret_len)
« Dátum: 2012. Március 05. - 19:25:14 »
GetPVarNameAtIndex
Lekéri a játékos változó nevét az azonosítója szerint.
Paraméterek:
 
( playerid, index, ret_varname[], ret_len )

 
playerid - Annak a játékosnak az azonosítója, akinek le szeretnénk kérdezni a PVar nevét a megadott azonosító alapján.
index - Az azonosító, amiek PVar-nak le szeretnénk kérdezni a nevét.
ret_varname - Karakterlánc neve, amiben beleírja a PVar nevét.
ret_len - A \"ret_varname\" métere.
Visszatérés 0-val tér vissza, ha a változó nem létezik, ellentétben pedig 1-el.
Példa a használatra:
 

GetPVarNameAtIndex(player1, i, country, sizeof(country))
print(counry);

 
Kapcsolódó függvények
SetPVarInt
GetPVarInt
SetPVarFloat
GetPVarFloat
SetPVarString
GePVarString
Eredeti téma: Nincs

37
Függvények / GetPVarsUpperIndex(playerid)
« Dátum: 2012. Március 05. - 19:18:51 »
GetPVarsUpperIndex
Lekéri a megadott játékosnak a legmagasabb PVar azonosítóját.
Paraméterek:
 
( playerid )

 
playerid - Annak a játékosnak az azonosítója, akinek le szeretnénk kérdezni a legmagasabb PVar azonosítót.
Visszatérés A legmagasabb azonosítójú PVar azonosítóját adja vissza.
Példa a használatra:
 

printf(\"GetPVarsUpperIndex: %d\", GetPVarsUpperIndex(playerid));

 
Kapcsolódó függvények
SetPVarInt
GetPVarInt
SetPVarFloat
GetPVarFloat
SetPVarString
GePVarString
Eredeti téma: Nincs

38
SA-MP: verziók / SA-MP 0.3e client/server (Már megjelent)
« Dátum: 2012. Március 05. - 13:53:18 »
\"logo_forum.gif\"
 
SA-MP 0.3e RC
Fontos: SA-MP 0.3e hivatalosan megjelent. Az RC fázisnak vége.
SA-MP 0.3e fõleg egy biztonsági frissítés. Az új lehetõségek és modellek tervben vannak, a többi dolog majd sorra kerül a következendõ RC verziók során.
Kliens/szerver frissítés SA-MP 0.3e RC8
- Javítva a TextDraw-ra való kattintás a nem teljes képernyõs módban. Hasonló probléma volt a játékosra csatolt objectek szerkesztésével is.
- Részletesebben írja a dolgokat a \"crashinfo.txt\" fájlba, ez csak Windows szerveren mûködik.
- Játékos fagyasztási állapota törlõdik respawn után.
Ajánlott kliens frissítés SA-MP 0.3e RC7-3
- Javítva az a probléma, amikor az objecten a szöveg nem jelent meg bizonyos háttérszín miatt.
Ajánlott kliens frissítés SA-MP 0.3e RC7-2
- Volt egy probléma az object material változtatással (beleértve a szöveg változtatást is), amikor megváltoztattad akkor minden objecten megváltozott, aminek ugyanaz volt a model ID-je.
Kliens/szerver frissítés SA-MP 0.3e RC7
- Hozzáadva SetObjectMaterialText/SetPlayerObjectMaterialText, ami segítségével letudod cserélni egy object textúráját tetszõleges szövegre.
- Javítva az a probléma, amikor az ALT-TAB közben spawnolt játékosok véletlenszerûen bilincselve lettek neked.
- Jármû ülés ID ellenõrzése kevésbé pontos a repülõkhöz és a hajókhoz.
- Hozzáadva 2 új paraméter a SetPlayerAttachedObject-hez. E dolog igényli a scriptek újrafordítását a 0.3e-s függvénykönyvtárakkal.
- Material színek ARGB formátumban vannak.
- Új objectek cessiltõl: Átlátszó objectok a szövegekhez, pár jelenlegi háznak a modelje \"nyitottan\" és hozzá belsõ.
Kliens/szerver frissítés SA-MP 0.3e RC6
- Javítva az a fagyás, amikor a jármûben a kamerát hátranézetbe állítottad és törlõdött a kocsi.
- Pay\'n\'Spray ikonok törölve.
- Hozzáadva a GetVehicleModelInfo() függvény, amivel a jármûnek a speciális részeinek a helyét tudod lekérni. Pl.: Elsõ lökhárító, kerék, stb..
- A játékos feje nem mozog, amikor a felcsatolt objecteket szerkeszted rajta.
- Hozzáadva a SetObjectMaterial() és SetPlayerObjectMaterial(). Ezek segítségével meg tudod változtatni egy model textúráját egy másik model textúrájára.
- Új objectek, amit cessil készített: Eladó tábla, gázmaszk, mariska ültetvény, póker asztal.
- Javítva az a hiba, amikor a megfagyasztott játékosok animációja nem szûnt meg a többi játékosnak.
Kliens/szerver frissítés SA-MP 0.3e RC5
- Volt egy új probléma, ami 0.3e RC4-ben keletkezett, amikor az elsüllyedt jármûvet törölte a játékosnak a kliens.
- Javítva az a hiba, amikor a textdraw színe átváltozott a kiválasztásban használt színné.
- Biztonsági védelem hozzáadva az eljárásokhoz, beleérte az OnDialogResponse()-t.
- Javítva a vödör modellel kapcsolatos textúra problémák.
- Minden játékosnak külön lehetõség a TextDraw-ok kezelésére, játékosonként külön 256db. TextDraw-ot használhatunk.  Jelenleg már két fajta text draw létezik: statikus és játékos. Minden textdraw funkciónak van játékos változata:
 

native PlayerText:CreatePlayerTextDraw(playerid, Float:x, Float:y, text[]);
native PlayerTextDrawShow(playerid, PlayerText:text);
native PlayerTextDrawHide(playerid, PlayerText:text);
native PlayerTextDrawSetString(playerid, PlayerText:text, string[]);
// ..[] stb

 
Kliens/szerver frissítés SA-MP 0.3e RC4
- Elvileg javítva van az a hiba, amikor a játék törölte a felrobbant kocsit és bekeveredtek az ID-k.
- Slotok száma 500-ra visszatéve. Linux szerver elérhetõ.
- Javítva az új modellok textúrája.
- Hozzáadva egy \"noclip flymode\" kamera filterscript.
- New models from cessil: 40 új fal, fekvõrendõr, vödör, sál.
- Be lehet kapcsolni szerver oldalon a játékosnak az egeret, és a játékos rátud kattintani a textdrawra:
 

native TextDrawSetSelectable(Text:text, set); // alapból 0 (nem érzékeli, ha rákattintasz)
native SelectTextDraw(playerid, hovercolor); // kurzor bekapcsolása, tehát rátud kattintani egy textdrawra.
native CancelSelectTextDraw(playerid);   // kurzor elrejtése a játékosnak
forward OnPlayerClickTextDraw(playerid, Text:clickedid);

 
Pár információ a SelectTextDraw()-hoz:
- Minden olyan textdrawnak, amire akarod, hogy rá lehessen kattintani meg kell adni a méretét a TextDrawTextSize()-vel, hogy beállítsa az arénát, amin belül érzékli az egeret. E funkció használata nélkül is lehetséges textdrawokat létrehozni.
- Ajánlatos bekapcsolni a TextDraw dobozt (box), hogy lásd azt a részt, amin belül érzékelni fogja, ha rákattintasz. Persze ezt a szerkesztés után kilehet kapcsolni, ez csak tanács.
Kliens/szerver frissítés SA-MP 0.3e RC3
- Javítva az a hiba, amikor a játékosra felcsatolt objectok megálltak a játékos helyén és ott lebegtek. Ez akkor keletkezett, amikor a játékos kiment a stream zónából.
- A játékosra felcsatolt objectok törlõdni fognak, ha a játékos újraspawnol vagy a skinválasztóban megy.
- cessil által készített új objectek hozzáadva: ~40 új fal (ajtók és ablakok) bilincsek, rendõr lámpák, fekvõrendõr, különbözõ színû fejhallgatók.
Képek az új bilincs objectrõl:
\"cuffed_action1as.png\"\"cuffed_action1bs.png\"
Kliens/szerver frissítés SA-MP 0.3e RC2
- Javítva az a hiba, amikor a jármûvet respawnoltad vagy törölted és a rajta lévõ játékosok a 0,0,0 kordinátára spawnoltak.
- Új függvények:
 

native AttachPlayerObjectToVehicle(playerid, objectid, vehicleid, Float:fOffsetX, Float:fOffsetY, Float:fOffsetZ, Float:fRotX, Float:fRotY, Float:RotZ);
native InterpolateCameraPos(playerid, Float:FromX, Float:FromY, Float:FromZ, Float:ToX, Float:ToY, Float:ToZ, time, cut = CAMERA_CUT);
native InterpolateCameraLookAt(playerid, Float:FromX, Float:FromY, Float:FromZ, Float:ToX, Float:ToY, Float:ToZ, time, cut = CAMERA_CUT);
native AttachCameraToObject(playerid, objectid);
native AttachCameraToPlayerObject(playerid, playerobjectid);

 
Kliens/szerver frissítés SA-MP 0.3e RC1
- Javítva az a halállal kapcsolatos hiba, amikor valamilyen animáció volt folyamatban és nem akartál meghalni. Ez a bug 0.3d-ben keletkezett.
- Javítva az hiba, amikor az 500 ID feletti játékosok színe fekete volt.
- Javítva az a hiba, amikor a szerver kickelte a játékost a SpawnPlayer() használatától a skinválasztóban.
- Javítva az a hiba, amikor a szerver böngészõ kifagyott, mivel a szerver hibás adatot küldött vissza.
Bár a SA-MP 0.3e fõleg biztonsági frissítés, de van pár új tulajdonság is benne:
- Hozzáadva pár új object, amit cessil készített: sétabot, cilinder és különbözõ típusú falak.
- A dialógoknak van egy úgynevezett külön címsora.
- Szerver oldalon le lehet kérni a játékos kliensének a verzióját a GetPlayerVersion() függvénnyel.
 
native GetPlayerVersion(playerid, const version[], len); // A játékos kliens verziójával tér vissza Pl: 0.3e RC1

 
- Új paraméter hozzáadva a SetPlayerCameraLookAt() függvényhez, ami segítségével mozgatni tudjuk a kamerát, de ez inkább olyan, mint a teleport.
 

#define CAMERA_CUT  2
#define CAMERA_MOVE 1
native SetPlayerCameraLookAt(playerid, Float:x, Float:y, Float:z, cut = CAMERA_CUT);

 
- Új beépített segédeszköz hozzáadva, ami segítségével könnyebben lehet szerkeszteni a játékosra felcsatolt objectokat és a sima objectokat is.

39
Segítségkérés / MySQL: Nemlétezõ sor kiválasztása? Lehetségs?
« Dátum: 2012. Március 03. - 12:45:05 »
Üdv!
Az lenne a kérdésem, hogy ha nekem a táblámban vannak a mezõ ID-k 1-tõl 100-ig, akkor valahogy lehetséges-e az, hogy kiválasztani a 150.-et?
De úgy értem ezt, mint amikor \"LEFT JOIN\"-al csatlakoztatsz a másik táblából valamit, és ha az üres (nem létezik), akkor \"NULL\"-al fog visszatérni.
Csak nekem ez azzal a különbséggel kell, hogy én nem mezõt akarok kiválasztani, hanem egy teljes sort.
Google-ba már mindent megnéztem, de ott mindig a mezõs megoldásra jutottam, nekem pedig nem arra lenen szüxégem.
Ez azért kéne, mert 10 lekérdezést lefuttatni minden spawnolásnál kicsit durva, még a thread-os pluginnal is, nem még a simával..
Egyszerûbb lenne \".. WHERE id = 5 OR id = 6 OR id = 7...\" megoldást alkalmazni, remélem van rá megoldás.
Elõre is köszönöm a válaszokat.
Most a következõ kódot használom, de errõl inkább nem mondok semmit :D
Ezt szeretném csak egy lekérdezéssel helyettesíteni és azért kéne az is, hogy az üres sorokat is kimutatja, hogy azt \"tudjam kihagyni\".
 

CMD:myobjects(playerid, params[])
{
for(new i; i < MAX_PLAYER_ATTACHED_OBJECTS; i++)
{
format(query, sizeof(query), \"SELECT `objectname` FROM `holdingobjects` WHERE `id` = %d\", g_pSavedObject[playerid]);
mysql_function_query(1, query, true, !\"THREAD_MyObjects\", !\"d\", playerid);
}
return 1;
}
forward THREAD_MyObjects(playerid);
public THREAD_MyObjects(playerid)
{
new
iCount = GetPVarInt(playerid, \"MOCount\"),
rows,
fields;
cache_get_data(rows, fields);
if(rows)
{
cache_get_row(0, 0, i_str);
}
else
{
i_str = \"Üres\";
}
if(!iCount++)
{
format(tmp, sizeof(tmp), \"Slot {\" #XCOLOR_GREEN2 \"}%d{\" #XCOLOR_WHITE \"}: ( %s )\", iCount, i_str);
}
else
{
GetPVarString(playerid, \"MODialog\", tmp, sizeof(tmp));
format(tmp, sizeof(tmp), \"%s\\r\\nSlot {\" #XCOLOR_GREEN2 \"}%d{\" #XCOLOR_WHITE \"}: ( %s )\", tmp, iCount, i_str);
}
if(iCount == 10)
{
strcat(tmp, \"\\n{\" #XCOLOR_RED \"}Felfrissítés\");
ShowPlayerDialog(playerid, DIALOG_HOLIST +2, DIALOG_STYLE_LIST, !\"{\" #XCOLOR_GREEN \"}Felcsatolható objectek\", tmp, !\"Ok\", !\"Mégse\");
DeletePVar(playerid, \"MODialog\");
DeletePVar(playerid, \"MOCount\");
}
else
{
SetPVarInt(playerid, \"MOCount\", iCount);
SetPVarString(playerid, \"MODialog\", tmp);
}
return 1;
}

40
Általános / Szervertulajoknak: Mennyi memóriát eszik a szerveretek?
« Dátum: 2012. Február 23. - 00:38:26 »
Hi all!
Csak kiváncsiságból nyitom ezt a témát, akinek van szervere, az írja le, hogy neki mennyi MB ramot eszik.
(Ha a hoston nem mutatja, akkor CTRL + ALT + DELETE -> Folyamatok -> Memória (De ezt lehetõleg úgy nézd meg, hogy vannak rajta legalább egyen))
Enyém az olyan 140 - 150 MB között fogyaszt.

41
Segítségkérés / Lekéni a legutolsó bitet, ami igaz
« Dátum: 2012. Február 15. - 17:10:26 »
Na én azt szeretném megcsinálni, hogy lekérni egy szám UTOLSÓ bitjét, ami igaz.
Tehát ha a szám így néz ki binárisan: 0b011001000, akkor az \"utolsó 1-es pozíciójával\" térjen vissza, az jelen esetben 6.
Próbáltam a FindMSB-t, de az nem éppen azt csinálja, amire nekem lenne szükségem.
Valakinek valami ötlet?
A következõ megoldást próbáltam, de ez ugyanazt a hülyeséget csinálja, mint a FindMSB.
[pawn]
for(new i; i < 32; i++)
{
printf(\"%d\", iMyVal & (1 << i));
if(iMyVal & (1 << i))
{
   iMaxPos = i;
}
}
// By Slice
stock FindMSB(iInput) {
    // http://graphics.stanford.edu/~seander/bithacks.html#IntegerLogDeBruijn
    static const
        aiDeBruijnBitPositionsPacked[32 char] = {
            0x0A010900,
            0x1D02150D,
            0x12100E0B,
            0x1E031916,
            0x1C140C08,
            0x0718110F,
            0x06171B13,
            0x1F04051A
        }
    ;
    if (iInput) {
        #emit LOAD.S.pri  iInput
        #emit MOVE.alt
        #emit SHR.C.alt   1
        #emit OR
        #emit MOVE.alt
        #emit SHR.C.alt   2
        #emit OR
        #emit MOVE.alt
        #emit SHR.C.alt   4
        #emit OR
        #emit MOVE.alt
        #emit SHR.C.alt   8
        #emit OR
        #emit MOVE.alt
        #emit SHR.C.alt   16
        #emit OR
        #emit CONST.alt   0x07C4ACDD
        #emit UMUL
        #emit SHR.C.pri   27
        #emit ADD.C       aiDeBruijnBitPositionsPacked
        #emit LODB.I      1
        #emit RETN
    }
    return -1;
}
[/pawn]

42
Fórum Archívum (Témák/Fórumok) / Re:[FS]xKapu
« Dátum: 2012. Február 07. - 17:21:33 »
-

43
Fórum Archívum (Témák/Fórumok) / ÁTHELYEZVE: Mód indítási hiba !
« Dátum: 2012. Február 05. - 12:17:17 »
A téma át lett helyezve a következõbe: Kérdések.
http://sampforum.hu/index.php?topic=20694.0" class="bbc_link">http://http://sampforum.hu/index.php?topic=20694.0

44
Tanuljunk PAWN nyelvet / [ Leírás ] #emit használata
« Dátum: 2012. Február 04. - 00:16:06 »
Pár órával ezelõtt Y_Less vette a fáradságot és írt egy teljes leírást az #emit-rõl.
Ez a leírás nem kezdõknek való, csak azoknak, akik már elég magas szinten vágják a PAWN scriptek mûködését.
A leírás angol, én csak azért nyitottam neki a témát, hogy aki esetleg nem nézi a hivatalos fórumot, az is megtalálja.
Aki pedig már ilyen szinten van, szerintem annak azért megvan az alap angol tudása, hogy megérti, mit is akar elmagyarázni.
http://forum.sa-mp.com/showthread.php?t=315531

45
Fórum Archívum (Témák/Fórumok) / Re:[TUT]GangZone készitése
« Dátum: 2012. Január 28. - 12:24:19 »
#include <a_samp>
new zona;
public OnFilterScriptInit()
{
zona = GangZoneCreate(1248.011, 2072.804, 1439.348, 2204.319);
return 1;
}
public OnGameModeInit()
{
//Ha a GameMode-odba teszed akkor ide írd akkor
//zona = GangZoneCreate(1248.011, 2072.804, 1439.348, 2204.319);
return 1;
}
public OnPlayerSpawn(playerid)
{
    GangZoneShowForPlayer(playerid, zona, 0xFB0000FF);
return 1;
}
Ha nemérted adok még fügvényeket mik mire jok ha komolyabb gang zona-t csinálnál
Figyelmel ha nem irod oda a változot akkor hiba lessz ird oda mindent csinálj igy
álj
GangZoneCreate : Létre hozza a játékosnak a Banda Zónát.
GangZoneDestroy : Elpusztítja a Banda Zónát.
GangZoneShowForPlayer : Meg jeleniti a játékosnak a Banda Zónát.
GangZoneShowForAll : Megjeleniti a Banda Zónát az összes játékosnak.
GangZoneHideForPlayer : Eltünteti a játékosnak a Banda Zónát.
GangZoneHideForAll : Az összes játékosnak eltünteti a bandazónát.
GangZoneFlashForPlayer : Villogni fog a banda zóna a játékosnak.
GangZoneFlashForAll : Az összes játékosnak villogni fog a banda zóna.
GangZoneStopFlashForPlayer : Meg álitja a villogást a játékosnak.
GangZoneStopFlashForAll : Meg álitja a villogást az összes játékosank

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