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

Oldalak: 1 ... 14 15 [16] 17 18 ... 136
226
Segítségkérés / hp le!
« Dátum: 2013. Augusztus 06. - 14:34:46 »
Idézetet írta: Xeon date=1375780304\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"40969\" data-ipsquote-contentclass=\"forums_Topic
Elnézést, hogy beleszólok, de ez így nem csak akkor fog mûködni, ha egyik játékos sebzi meg a másikat? Tehát ha leesik stb., akkor nem lesz jó.
 
Hát teszteld le, nekem ezekre nincs már idõm hogy kiderítsem mely esetekben kerül meghívásra melyekben nem, mert hát ez a samp programozójának a ****ja hogy ezer visszahívás kell olyasvalaminek ami egy visszahívásban is elférne.
Ha nem mûködik akkor meg kell próbálni átírni ide:
http://wiki.sa-mp.com/wiki/OnPlayerTakeDamage
valamelyik visszahívás csak beválik. :D

227
Segítségkérés / RemoveAttachedObjectFromVehicle?
« Dátum: 2013. Augusztus 06. - 03:26:18 »
Idézetet írta: SkyLinE date=1375736079\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"40954\" data-ipsquote-contentclass=\"forums_Topic
Igen ezt így csináltam, csak utána úgy érzékeli, hogy még mindig rajta van az az adott dolog.
 
Az se rossz akkor, mondjuk ezt ki kellene próbálnom hogy törlöm és rögtön létrehozom az objectet és az AttachObjectToVehicle használata nélkül is úgy érzékeli mintha rajta lenne, mert akkor az egy újabb samp bug (hiba). :D

228
Segítségkérés / OnPlayerUpdate helyett
« Dátum: 2013. Augusztus 06. - 03:22:03 »
Hacsak annyi az nem sok.
Fájlba való mentés ne legyen, meg print illetve printf se, azok fájlba írnak, és az se jó ha tele floodolja a server_log fájlt, természetesen hiba keresés vagy mûködés tesztelésére szerepelhet benne csak ne maradjon ott, ha már minden megfelelõen mûködik.

229
Segítségkérés / hp le!
« Dátum: 2013. Augusztus 06. - 03:17:19 »
Idézetet írta: anorennia date=1375744679\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"40969\" data-ipsquote-contentclass=\"forums_Topic
kezdõnek mondanám magam inkább.. :/
Azért volt ott, hogy valaki belekössön...
rájöttem hogy miért nem jó ha minden igaz:
 
SetTimer(\"HPle\", 1000, true);   //1 másodpercenként fog lefutni a timer GameModeInit alá
new HPTIMER_PLR[MAX_PLAYERS];
forward HPle();
public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid)
{
        new Float:HP[MAX_PLAYERS];
        GetPlayerHealth(damagedid, HP[damagedid]);
        if(HP <= 90)
        {
                HPTIMER_PLR[damagedid] = 1;
        }
        return 1;
}
public HPle()
{
        new Float:HP[MAX_PLAYERS];
        for(new i = 0; i < MAX_PLAYERS;i++)
        {
        if(HPTIMER_PLR == 1)
        {
                GetPlayerHealth(HPTIMER_PLR, HP);
                SetPlayerHealth(HPTIMER_PLR, HP-1);
        }
        }
        return 1;
}
CMD:ellatas(playerid, params[])
{
        HPTIMER_PLR[playerid] = 0;
        return 1;
}

 
KÖZBEN ÚJÍTOTTAM
 
Jajj.
De alakul alakul, csak még nem nagyon tudod mi minek van.  >:D
 
   SetTimer(\"HPle\", 1000, true);   //1 másodpercenként fog lefutni a timer OnGameModeInit alá
new bool:HPTIMER_PLR[MAX_PLAYERS];
forward HPle();
public
OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid)
{
new
   Float:HP;
GetPlayerHealth(damagedid, HP);
if(HP <= 90) /*if(floatcmp(90, HP) == 1)*/ { HPTIMER_PLR[damagedid] = true; }
return 1;
}
     
public
HPle()
{
new
   Float:HP;
for(new i = 0; i < MAX_PLAYERS;i++)
{
   if(IsPlayerConnected(i))
   {
      if(HPTIMER_PLR)
      {
         GetPlayerHealth(i, HP);  // floatsub(HP, -1.0); SetPlayerHealth(i, HP);
         SetPlayerHealth(i, HP - 1);
      }
   }
}
return 1;
}
     
CMD:ellatas(playerid, params[])
{
HPTIMER_PLR[playerid] = false;
return 1;
}

 
Persze nincs tesztelve, és lehetséges hogy a lebegõpontos értékek csökkentésénél és ellenõrzésénél floatsub illetve floatcmp használata szükséges.

230
Segítségkérés / széf hely változtatása!
« Dátum: 2013. Augusztus 05. - 21:44:19 »
Hát nem ebben az idézett kód részletben.
Keress rá ezekre az értékekre:
19997
19996
19995
19994
Ezek a dialogid-k, és valószínû hogy valami ShowPlayerDialog funkcióban találod, na ott lehet az ami szabályozza hol jelenjen meg az meg ha minden igaz IsPlayerInRangeOfPoint eljárás lesz.

231
Segítségkérés / hp le!
« Dátum: 2013. Augusztus 05. - 21:39:57 »
Idézetet írta: anorennia date=1375727248\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"40969\" data-ipsquote-contentclass=\"forums_Topic
Sscanf2 szükséges hozzá:
 
SetTimer(\"HPle\", 1000, true);   //1 másodpercenként fog lefutni a timer GameModeInit alá
new HPTIMER_PLR[MAX_PLAYERS];
forward HPle(playerid);
public OnPlayerGiveDamage(playerid, damagedid, Float: amount, weaponid)
{
new Float:HP[MAX_PLAYERS];
GetPlayerHealth(damagedid, HP[damagedid]);
if(HP[damagedid] <= 90)
{
HPTIMER_PLR[playerid] = 1;
}
return 1;
}
public HPle(playerid)
{
new Float:HP[MAX_PLAYERS];
if(HPTIMER_PLR[playerid] == 1)
{
GetPlayerHealth(HPTIMER_PLR[playerid], HP[playerid]);
SetPlayerHealth(HPTIMER_PLR[playerid], HP[playerid]-1);
}
return 1;
}
CMD:ellatas(playerid, params[])
{
HPTIMER_PLR[playerid] = 0;
return 1;
}

 

Ez minek MAX_PLAYERS, mindkét helyen?
 
new Float:HP[MAX_PLAYERS];

232
Segítségkérés / OnPlayerUpdate helyett
« Dátum: 2013. Augusztus 05. - 21:12:46 »
Ahhoz tudni kellene milyen eljárásokat írsz OnPlayerUpdate alá, majd azok után lehetne tanácsot adni hogy ezt meg azt a részét másképp/jobban is meglehetne oldani.

233
Segítségkérés / RemoveAttachedObjectFromVehicle?
« Dátum: 2013. Augusztus 05. - 21:09:30 »
Hozd létre újra mikor törlöd és úgy tûnik majd mintha csak levetted volna.
Csak egy kis logika. :D

234
Segítségkérés / Tuning probléma
« Dátum: 2013. Augusztus 03. - 23:15:19 »
Ez alatt próbáld megírni:
http://wiki.sa-mp.com/wiki/OnVehicleStreamIn
Persze ellenõriztesd is le hogy van-e már rajt olyan tuning elem:
http://wiki.sa-mp.com/wiki/GetVehicleComponentType

235
Segítségkérés / Mysql milyen táblaszerkezet legyen, az alábbi adatnak?
« Dátum: 2013. Augusztus 03. - 23:11:23 »
Most arra gondoltam hogy 4 számmezõt hoznál létre játékosonként mysql-ben majd ezt az adatot tárolnád egy ilyen változóban:
 
new
ajandek[MAX_PLAYERS][4]; // 32, 64, 96, 128 bit, tehát 128 ajándékdoboz
ajandek[playerid][0] = cache_get_row_int(...
ajandek[playerid][1] = cache_get_row_int(...
ajandek[playerid][2] = cache_get_row_int(...
ajandek[playerid][3] = cache_get_row_int(...

 
Majd bitmûveletekkel állítanád be melyiket vette fel és kérdeznéd is le ellenõrzésként.
 
#include <a_samp>
new
ajandek[MAX_PLAYERS][4]; // 32, 64, 96, 128 bit, tehát 128 ajándékdoboz
stock
set_bitarray(array[], const value, size = sizeof(array))
{
if(1 <= value <= (size * cellbits))
{
new
   slot = value >>> 5,
   bit = value & 31;
array[slot] |= 1 << bit;
}
}
stock
get_bitarray(array[], const value, size = sizeof(array))
{
if(1 <= value <= (size * cellbits))
{
return (array[value >>> 5] & (1 << (value & 31))) || false;
}
return false;
}
 
public
OnFilterScriptInit()
{
for(new i = 0; i < 10; i++)
{
new
   rand = random(100) + 1;
printf(\"Randomként 10 darab felvett ajándék azonosítószáma: %d\", rand);
set_bitarray(ajandek[0], rand);  // Felvett ajándék beállítása
}
for(new i; i < 100; i++)
{
if(get_bitarray(ajandek[0], i)) printf(\"A 20 darab felvett ajándék azonosítószáma: %d\", i); // Lekérdezés melyiket vette fel
}
return 1;
}

236
Segítségkérés / Random kérdéssor MySql-bõl
« Dátum: 2013. Augusztus 03. - 21:07:17 »
Ahogy írja ezt a hibát úgy bemásolnád a pawn kódod?
Úgy talán ha én is kitudom próbálni vagy ha látnám akkor tudnám mondani mi a hiba.
De biztosra veszem hogy csatlakozási hiba lehet, mert annak nem így kellene mûködnie hogy megadod az 1-es értéket, hanem a csatlakozás azonosítót kellene vissza adnia a mysql_connect-nek, valószínûleg emiatt írja hogy nincs aktív adat tárolva.
Még a mysql_connect után írd be ezt hátha kidob valami hasznos információt:
 
mysql_log(LOG_ERROR | LOG_WARNING | LOG_DEBUG);

237
Segítségkérés / mysql_tquery függvény pontos paraméterei
« Dátum: 2013. Augusztus 03. - 20:59:26 »
A SetTimerEx függvényt ismeritek talán.
Nahát a mysql_tquery végén szereplõ ( format[], {Float,_}:...);) ugyanaz, tehát extra paraméterekkel küldhetõ tovább a kérés/utasítás.
Leggyakrabban játékos azonosítót szokás küldeni.
 
\"d\", playerid);
//vagy
\"dd\", playerid, 23);

 
Ennek megfelelõen a meghívásra kerülõ visszahívás (callback) paramétereinek is meg kell felelnie:
 
public loadranddata(playerid);
public akarmi(playerid, int);

238
Segítségkérés / Random kérdéssor MySql-bõl
« Dátum: 2013. Augusztus 03. - 09:37:14 »
A többi mysql log adatot is másold be, nálam a csatlakozás azonosító:
 
[09:29:45] [DEBUG] mysql_tquery - connection handle: 1
[/quote]
Így valószínû hogy valami csatlakozási probléma lehet.
De az is lehet hogy ez is valami bug a mysql pluginnál mivel nagyon kezd szét esni a project. :D
A változónál amelyik a csatlakozás azonosítót tárolja adj meg neki 1 értéket alapból, mintha csatlakozva lenne:
 
new Mod_CH = 1;

239
Segítségkérés / játékos hp-nak megállapítása
« Dátum: 2013. Augusztus 01. - 19:58:29 »
Idézetet írta: BoOy date=1375303985\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"40714\" data-ipsquote-contentclass=\"forums_Topic

#include <a_samp>
new count[MAX_PLAYERS];
forward CheckHealth();
public OnFilterScriptInit()
{
SetTimer(\"CheckHealth\",1000,0);
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
public CheckHealth()
{
for(new i;i<MAX_PLAYERS;i++)
{
new Float:health;
GetPlayerHealth(i,health);
if(health < 20)
{
    if(count == 0)//hogy ne floodoljon az üzenet
    {
       //Ide lesz az anim stb.
       SendClientMessage(i,-1,\"Megsebesültél annyira hogy nem tudsz felkelni!!\");
       TogglePlayerControllable(i,0);
       count++;
    }
}
else return count = 1;
}
return 1;
}

 

Ez alatt nem lehetne létrehozni ezt a dolgot?
http://wiki.sa-mp.com/wiki/OnPlayerTakeDamage
Mert akkor nem kell idõnként az összes játékost életét ellenõrizni hanem csak akkor mikor sebzõdik és csak annak a játékosnak.

240
Segítségkérés / Random kérdéssor MySql-bõl
« Dátum: 2013. Július 31. - 21:30:29 »
Idézetet írta: hegdavid95 date=1375298122\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"40641\" data-ipsquote-contentclass=\"forums_Topic
Nem okoskodásként de ez így szerintem visszatérhet azonos kérdésekkel, ha pont véletlen ugyanazok a számok sorsolódnak ki.
Így 100% hogy nem lesz két egyforma:
 
SELECT DISTINCT * FROM `tablename` ORDER BY RAND() LIMIT 20

 

Sose volt egyforma tudomásom szerint, de utána fogok nézni.
Mivel pontosan azért lassú ez a fajta rand lehetõség mysql-ben mert az egész adattábla adatait véletlenszerûen elrendezi és úgy térne vissza az összes sorral, de csak 20 sor adattal tér vissza mert limitnek ennyi van megadva, talán ha kevesebb adatsor van benne mint a limit akkor lenne benne egyezés de még akkor se hiszem.
@Dexter95
Jó akkor le kellene szedned egy mysql plugint, és installálnod kellene a samp szerveredhez (csak be kell másolni a megfelelõ helyre9 de mivel linux pár verziót lehet le kell töltened hogy valamelyiket gond nélkül betöltse a sa-mp szervered.
http://forum.sa-mp.com/showthread.php?t=56564
https://code.google.com/p/sa-mp-mysql-plugin/
Ui.:
A pawn kódot meg megírom lehet még ma este, de csak beolvasás részt.
Edit:
OnGameModeInit alá vagy OnFilterScriptInit alá:
 
new
Mod_CH;
Mod_CH = mysql_connect(.......); // Ide be kell írni a csatlakozási adatokat, phpmyadminon látnod kell ÁLLAPOT FOLYAMATOK-nál a csatlakozott állapotot ha fut a szervered, persze a sa-mp szerver is írni fogja több helyen is ha beleírod de mysql_log.txt fájl biztosan jelzi. (sa-mp szervered mellett fogod találni a plugin hozza létre)
// Jelenleg sajnos csak egy csatlakozással mûködik a mysql plugin de most kicsit nagyon bezavarták a native kódokat, a plugin-t fejlesztik remélhetõleg jelenleg is, ezért nem árt vissza vissza nézni újabb verzióért.

 
Ahol meghívásra kerül a dolog oda kell ezt írni:
 
mysql_tquery(Mod_CH, \"SELECT * FROM `tablename` ORDER BY RAND() LIMIT 20\", \"THREAD_loadranddata\", \"\", \"\"); // olyan kérés mely egy új visszatérésbe küldi az adatokat (több szálon futó program ha a processzor magok száma lehetõvé teszi (kevesebb lagg meg bla bla bla ) meg kell szokni a használatát. :D

 

forward THREAD_loadranddata(); // Thread több szálon futó visszahívás mely nem laggoltatja a szervert, háttérben fut, ha készen vannak az adatok akkor kerül meghívásra ez a visszahívás
public THREAD_loadranddata()
{
new
rows,
fields;
cache_get_data(rows, fields, Mod_CH); // sorok illetve mezõk számának lekérése
 
new
ID,
str1[32], // Kérdés tárolása (karakterlánc (31 + NULL karakter) persze növelni kell ha több az adatbázisban
str2[32],
str3[32],
megoldas;
if(rows) // Van-e adatsor?
{
for(new i; i < rows; i++) // végig megyünk az összes visszatért adatsoron
{
   // ID = cache_get_row_int(i, 0, Mod_CH);  // Ha kell egyáltalán.
   cache_get_row(i, 1, str1, Mod_CH, 32);   // (i)sor , (1)mezõ (gondolom elsõ kérdés mezõszáma a második mezõ lehet, az elsõ mezõszám a mysql id), (str1)változó a kérdésnek, (Mod_CH)csatlakozás azonosító, (32)változó mérete
   cache_get_row(i, 2, str2, Mod_CH, 32);
   cache_get_row(i, 3, str3, Mod_CH, 32); // Figyelni kell hogy létezzen is mysql-ben mezõ 3-dik (vagy negyedik vagy több), ha nincs, szerver összeomlás is lehet.
   megoldas = cache_get_row_int(i, 4, Mod_CH);
   //persze lehet másképp is:
   // cache_get_field_content(i, \"kerdes1\", str1, Mod_CH, 32);
   // cache_get_field_content(i, \"kerdes2\", str2, Mod_CH, 32);
   // cache_get_field_content(i, \"kerdes3\", str3, Mod_CH, 32);
   // megoldas = cache_get_field_content_int(i, \"valasz\", Mod_CH);
   printf(\"%d | %s | %s | %s | %d\", ID, str1, str2, str2, megoldas);
}
} else print(\"nincs adatsor !!!!\");
return 1;
}

Oldalak: 1 ... 14 15 [16] 17 18 ... 136
SimplePortal 2.3.7 © 2008-2024, SimplePortal