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

Oldalak: [1] 2 3 4
1
SA-MP: Szerverfejlesztés / CoD4 style regeneráció
« Dátum: 2014. Július 31. - 00:37:48 »
Teljesen hülyeség 500-as (MAX_PLAYERS, bár kinek mennyi...) tömböt létrehozni.
A for ciklus ugye mindig újra lefut, tehát ha benne létrehozol egy változót azt minden lefutásnál létrehozza 0 értékkel.
Tehát az én kódom, ahogy szerintem helyes lenne az egész szkript:
 

public OnFilterScriptInit()
{
SetTimer(\"Regeneration\", 5000, true);
}
forward Regeneration();
public Regeneration()
{
for(new i; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
   new Float:Health;
   GetPlayerHealth(i,Health);
   if (Health < 100.1 && Health > 0)
   {
      SetPlayerHealth(i, Health + 5.0);
   }
}
}
}

 
+ Pár kérdés:
 
Idézetet írta: Flash date=1406713406\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"49748\" data-ipsquote-contentclass=\"forums_Topic
1. SetTimer helyett SetTimerEx a helyes
 
Miért nem jó a SetTimer? Hisz\' nem kellenek paraméterek.
 

2. Miért teszed for ciklusba a változót?
 
[/quote]
Nem tudom értelmezni ezt. Tán azért mert ott hozza létre? Este van, ha hülyeséget mondok szorri.
 

4. Mi értelme van több mint 1 percig az életét feltölteni? a Call of Duty-ban se ennyi idõ sõt a fele se ha jól tudom.
 
[/quote]
Ezt megint csak nem értem. Most már éjszaka van.
 

6. Miért nincs KillTimer? Úgy hatásosabb lenne, hogy akkor indítod el a bizonyos játékosnak a timert hogyha az élete kevesebb mint 100%
 
[/quote]
Ebben maximum ott értek egyet, hogy egy KillTimer az OnFilterScriptExit alá kéne. (Persze a szkriptbe nem írtam bele...)
Viszont az, hogy minden játékosnak külön timer csak pazarló lenne.
Ezeket mind úgy mondom, hogy nem teszteltem.
Pluszt, minuszt érthetõ okokból nem tudok adni, de azért nem lett annyira rossz.

2
Rendezvények / SA-MP 0.2.5 Bétateszt
« Dátum: 2014. Április 16. - 14:23:32 »
Üdv, jelentkeznék.

3
Rendezvények / SA-MP 0.2.5 Bétateszt
« Dátum: 2014. Április 16. - 14:23:32 »
Üdv, jelentkeznék.

4
Segítségkérés / lassú mysql lekérdezés
« Dátum: 2013. November 26. - 17:50:17 »
You are my hero!
Megvan, tökéletes. Köszöntem a segítséget, úszik a +.

5
Segítségkérés / lassú mysql lekérdezés
« Dátum: 2013. November 26. - 16:05:24 »
Sehogy sem akar összejönni.
Anno próbáltam már így a lekérdezést, de mint akkor is, most is az a hiba hogy csak is a legelsõ karaktert(playert (a félreértések elkerülése végett)) íratja ki ami megtalálható az adatbázisban.
Igen, csak azt. Mivel
 
format(query, sizeof(query), \"SELECT Name FROM users WHERE Clan = \'%s\'\", inputtext);
   mysql_query(query);
   mysql_store_result();
   if(mysql_num_rows() != 0)
   {
       new nevtarolo[24];//tároló a neveknek amiket kiolvas az adatbázisból
       mysql_fetch_row(linen);
       SendClientMessage(playerid, -1, linen);/////////////////////
       sscanf(linen, \"s[24]\", nevtarolo);
       mysql_free_result();

 
Így megpróbáltam kiíratni a linen sztringet a chat-be és ugyanúgy csak azt az 1. playert írta le (\"ami megtalálható az adatbázisban.\").
Ami igazából nekem nem is meglepõ mivel lekérdeztem azt ahol a Clan = \'%s\'-el, tehát azt nem határoztam meg hogy mennyit írasson ki.
Bár ez csak személyes elképzelés. Lehet nem így van.
Tehát a mostani kódom:
 
format(query, sizeof(query), \"SELECT Name FROM users WHERE Clan = \'%s\'\", inputtext);
   mysql_query(query);
   mysql_store_result();
   if(mysql_num_rows() != 0)
   {
       new nevtarolo[24];//tároló a neveknek amiket kiolvas az adatbázisból
       mysql_fetch_row(linen);
       SendClientMessage(playerid, -1, linen);
       sscanf(linen, \"s[24]\", nevtarolo);
       mysql_free_result();
       format(members, sizeof(members), \"%s%s%s\\n\", members, nevtarolo, (IsPlayerConnected(GetPlayerID(nevtarolo))) ? (#HGREEN#\"[ONLINE]\"#HWHITE#) : (#HRED#\"[OFFLINE]\"#HWHITE#));
   }
   //}
   strcat(listr, members);//összeilleszti a két stringet
   ShowPlayerDialog(playerid, CLANRANK2_DIALOG, DIALOG_STYLE_MSGBOX, \"Klán\", listr, \"Oké\", \"\");//a végén kiiratja dialog-ba

6
Segítségkérés / lassú mysql lekérdezés
« Dátum: 2013. November 25. - 20:37:29 »
Értelek (inkább csak félig), de viszont azt nem egészen hogy hogyan lehetne megoldani.
U.i: Egy kicsit félreértelmezhetõ amit a GetTableLines-hez írtam. Pontosabban: azzal az értékkel tér vissza amennyi sor található a táblában.

7
Segítségkérés / lassú mysql lekérdezés
« Dátum: 2013. November 25. - 18:58:16 »
Üdv.
Menjünk sorba. Tehát, van ez a kód:
 
new listr[600];//egész dialog string
    new members[24*50];//max név karakter szorozva max klántag
    format(listr, sizeof(listr), \"%s klán\\nLeader: %s\\nNyert háborúk: %d\\t\\tVesztett háborúk: %d\\n\\t\\tArány: %0.2f\\nTagok:\\n\"#HWHITE#\"\", inputtext, GetClanLeader(inputtext), GetClanWins(inputtext), GetClanLoss(inputtext), Float:GetClanWins(inputtext)/Float:GetClanLoss(inputtext));
   for(new i; i < GetTableLines(\"users\"); i++)//GetTableLines: tábla sorainak lekérdezése
   {
      format(query, sizeof(query), \"SELECT Name FROM users WHERE Clan = \'%s\' AND ID = %d\", inputtext, i);
      mysql_query(query);
      mysql_store_result();
      if(mysql_num_rows() != 0)
      {
          new nevtarolo[24];//tároló a neveknek amiket kiolvas az adatbázisból
          mysql_fetch_row(linen);
          sscanf(linen, \"s[24]\", nevtarolo);
          mysql_free_result();
          if(IsPlayerConnected(GetPlayerID(nevtarolo))) format(members, sizeof(members), \"%s%s%s\\n\", members, nevtarolo, (IsPlayerConnected(GetPlayerID(nevtarolo))) ? (#HRED#\"[OFFLINE]\"#HWHITE#) : (#HGREEN#\"[ONLINE]\"#HWHITE#));
      }
   }
   strcat(listr, members);//összeilleszti a két stringet
   ShowPlayerDialog(playerid, CLANRANK2_DIALOG, DIALOG_STYLE_MSGBOX, \"Klán\", listr, \"Oké\", \"\");//a végén kiiratja dialog-ba

 
A lényeges dolog ahol kiolvassa for ciklussal a tagokat az adatbázisból.
A probléma vele: Ha 1000 vagy még több karakter található az adatbázisban akkor egyszerûen lassan íratja ki a neveket és addig lefagy az egész szerver. (köbö 2-3 másodperc)
Ami elég érdekes mert ugye csak azokat olvassa ki akik a klánban vannak, mégis amikor 500, vagy esetleg kevesebb player volt beregisztrálva akkor pár tized másodperc alatt megoldotta, de minél több annál lassabban csinálja meg.
Ehhez kéne segítség.
Hogy lehetne megcsinálni hogy gyorsabban csinálja meg, vagy hogy ne fagyassza le a szervert, vagy máshogy kiolvasni?
+ Ha valaki olyat vesz észre a kódban ami pazarlás azt is megírhatja.
De a lényeges kérdés akkor: Hogy lehetne gyorsabbá tenni a lekérdezést?

8
Archívum / Budapest Real Life
« Dátum: 2013. Szeptember 24. - 20:18:51 »
Semmi komolyabb rendszer? Na mindegy, kinek a pap, kinek a pap... Pofonok és pofonok.
Teleport meg pláne nincs. Még mindig REAL life. Hiába vannak kicsit eltérõ dolgok a való élettõl, attól még mindig Real Life marad.
 
Idézetet írta: kizo45 date=1380029391\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"30623\" data-ipsquote-contentclass=\"forums_Topic
Azthiszem megtaláltam a szerveremet egy idõre. Henky néven találtok meg. :angel:
 
Örülök neki!

9
Archívum / Budapest Real Life
« Dátum: 2013. Szeptember 23. - 20:33:00 »
Az adminok között még van pár selejt... Arról kevésbé tehetek, nem tudok mindig fent lenni és ellenõrizni hogy milyenek is.
De az oldalon kint van az elérhetõségem, fórumra is lehet írni ilyen panaszokat, nem kell egybõl a rosszat látni. Arra való a panaszkönyv hogy oda írd a panaszodat.
Egyébként teljesen megértelek.

10
Segítségkérés / mysql sorok csökkenõ sor
« Dátum: 2013. Július 14. - 15:40:44 »
Ez tökéletes, köszöntem.
+

11
Segítségkérés / mysql sorok csökkenõ sor
« Dátum: 2013. Július 14. - 14:18:47 »
Üdv..
Tehát kérdés: Hogyan kell egy lista dialogba csökkenõ sorrendbe tenni mysql lekérdezéssel? (Nem tudom jobban megfogalmazni...)
Csak tipp hogy valamit ezzel kell:
 
SELECT oszlop1 FROM tabla ORDER BY oszlop2 DESC LIMIT 50

 
Így próbálkoztam:
 
new listr[750];
for(new i; i < 50; i++)
{
        mysql_query(\"SELECT ClanName FROM clans ORDER BY Wins DESC LIMIT 50\");
mysql_store_result();
if(mysql_num_rows() != 0)
{
    mysql_fetch_row(linen);
    new tarolo[30];
    sscanf(linen, \"s[30]\", tarolo);
    mysql_free_result();
    format(listr, sizeof listr, \"%s%s\\n\", listr, tarolo);
}
}
ShowPlayerDialog(playerid, CLANRANK_DIALOG, DIALOG_STYLE_LIST, \"Klán ranglista\", listr, \"Megnéz\", \"Kilép\");

 
De ezzel csak a legelsõ sort íratja ki ötvenszer.
Tehát megpróbálom újra megfogalmazni:
Van egy lista dialog, egy tábla, két oszlop.
a Dialogba kiíratni a táblában lévõ \'ClanName\' oszlopot a \'Wins\' oszlop alapján. A legtöbbet nyert legyen a legfelül.

12
Rendezvények / Springfest Triatlon - 2013 ( SAMP-World )
« Dátum: 2013. Április 28. - 18:58:33 »
Mostmár jók a linkek, csak elbénáztam vele.

14
Rendezvények / Springfest Triatlon - 2013 ( SAMP-World )
« Dátum: 2013. Április 28. - 17:29:18 »
Hát ez érdekes volt. Jövõre is lesz ilyen?

15
Archívum / Budapest Real Life
« Dátum: 2013. Január 03. - 15:10:25 »
TGF*
Elv. van felvétel a katonákhoz, itt tudsz jelentkezni:
http://brl.ucoz.net/forum/11
Persze elõször regisztrálni kell a fórumra.

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