Szerző Téma: Legtöbb ponttal rendelkezõ játékos kiszámítása  (Megtekintve 1558 alkalommal)

Legtöbb ponttal rendelkezõ játékos kiszámítása
« Dátum: 2014. július 23. - 21:50:05 »
0 Show voters
Hali!
hogy lehet kiszámolni a legtöbb ponttal rendelkezõt?
« Utoljára szerkesztve: 2014. július 23. - 22:05:50 írta Dfoglalo »

Legtöbb ponttal rendelkezõ játékos kiszámítása
« Válasz #1 Dátum: 2014. július 23. - 21:59:18 »
0 Show voters
Mit használsz?
Mysql,dini, egyéb?
 Mysql-el a lekérdezést pl. így lehet írni:
 
SELECT XY FROM TABLE WHERE ki = kivel LIMIT hány darab ASC(növekvõ) | DESC(csökkenõ)

 
[mod]Kihelyeztem a

taget.[/mod]
« Utoljára szerkesztve: 2014. július 23. - 22:06:45 írta Dfoglalo »

Legtöbb ponttal rendelkezõ játékos kiszámítása
« Válasz #2 Dátum: 2014. július 24. - 01:47:30 »
0 Show voters
Sima pawno, semmi más

Legtöbb ponttal rendelkezõ játékos kiszámítása
« Válasz #3 Dátum: 2014. július 24. - 11:13:53 »
0 Show voters
Nem a program nevét kérdezte, hanem a mentési formát mivel mentesz? Dini, MySql vagy valami más? Mivel a mentési hely adatbázisából kell lekérdezni az adatokat.

Legtöbb ponttal rendelkezõ játékos kiszámítása
« Válasz #4 Dátum: 2014. július 24. - 11:17:10 »
0 Show voters
AcErBiS_V8\" post=\"507465\" timestamp=\"1406193233\"]
Nem a program nevét kérdezte, hanem a mentési formát mivel mentesz? Dini, MySql vagy valami más? Mivel a mentési hely adatbázisából kell lekérdezni az adatokat.
 
[/quote]
felesleges a mentési cucc, mivel egy egyszerû GetPlayerScore-ra gondol.....
viszont a megoldás már bonyolultabb, mert többb külön változó kell, magyarán nem egy egyszerû code amit te most kérsz. xd kivéve, ha nincs rá valami kis inc...de ennek hiányában idõt igényel ezt megírni.

Nem elérhető Erik3333

  • 945
  • SMF | phpBB | TS3 | PHP | HTML | CSS | JS | PAWN | JAVA
    • Profil megtekintése
Legtöbb ponttal rendelkezõ játékos kiszámítása
« Válasz #5 Dátum: 2014. július 24. - 11:37:53 »
0 Show voters
Ilyenre gondoltál?
 
new legtobbPont,legtobbPontPID,pont;
for(new id = 0; id < MAX_PLAYERS; id++)
{
if(!IsPlayerConnected(id)) continue;
pont = GetPlayerScore(id);
if(pont > legtobbPont)
{
legtobbPont = pont;
legtobbPontPID = id;
}
}
new string[64];
format(string, sizeof(string), \"Legnagyobb pontú játékos: %d | Pontjai: %d db\", legtobbPontPID, legtobbPont);
SendClientMessage(playerid, -1, string);
« Utoljára szerkesztve: 2014. július 24. - 11:45:10 írta Gun22 »

Legtöbb ponttal rendelkezõ játékos kiszámítása
« Válasz #6 Dátum: 2014. július 24. - 11:47:02 »
0 Show voters
Idézetet írta: Gun22 date=1406194673\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"49631\" data-ipsquote-contentclass=\"forums_Topic
Ilyenre gondoltál?
 
new legtobbPont,legtobbPontPID,pont;
for(new id = 0; id < MAX_PLAYERS; id++)
{
if(!IsPlayerConnected(id)) continue;
pont = GetPlayerScore(id);
if(pont > legtobbPont)
{
legtobbPont = pont;
legtobbPontPID = id;
}
}
new string[64];
format(string, sizeof(string), \"Legnagyobb pontú játékos: %d | Pontjai: %d db\", legtobbPontPID, legtobbPont);
SendClientMessage(playerid, -1, string);

 

ezt tesztelted, és mûködik, vagy csak szimplán megírtad? xd mert szerintem ez így bugolni fog, ezért is nem próbáltam így megírni neki...

Nem elérhető Szasza

  • 388
    • Profil megtekintése
Legtöbb ponttal rendelkezõ játékos kiszámítása
« Válasz #7 Dátum: 2014. július 27. - 10:18:55 »
0 Show voters
Idézetet írta: Gun22 date=1406194673\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"49631\" data-ipsquote-contentclass=\"forums_Topic
Ilyenre gondoltál?
 
new legtobbPont,legtobbPontPID,pont;
for(new id = 0; id < MAX_PLAYERS; id++)
{
if(!IsPlayerConnected(id)) continue;
pont = GetPlayerScore(id);
if(pont > legtobbPont)
{
legtobbPont = pont;
legtobbPontPID = id;
}
}
new string[64];
format(string, sizeof(string), \"Legnagyobb pontú játékos: %d | Pontjai: %d db\", legtobbPontPID, legtobbPont);
SendClientMessage(playerid, -1, string);

 

IDe : format(string, sizeof(string), \"Legnagyobb pontú játékos: %d | Pontjai: %d db\", legtobbPontPID, legtobbPont);
Nem inkább ez kellet volna? format(string, sizeof(string), \"Legnagyobb pontú játékos ID-je: %d | Pontjai: %d db\", legtobbPontPID, legtobbPont);

Dupla hozzászólás automatikusan összefûzve. ( [time]2014. Július 27. 10:23:28[/time] )

[pawn] if(pont > legtobbPont)
 {
                legtobbPont = pont;
                legtobbPontPID = id;
 }[/pawn]
WTF???????? ez 100 hogy nem mûködik
« Utoljára szerkesztve: 2014. július 27. - 10:24:03 írta Szasza »

Nem elérhető BackUP

  • 908
    • Profil megtekintése
Legtöbb ponttal rendelkezõ játékos kiszámítása
« Válasz #8 Dátum: 2014. július 27. - 13:07:44 »
0 Show voters
Volt egy segítségkérés, ahol szavazós szkriptet kértek. Arra a kérésre írtam én egy szkriptet, amiben nagyon egyszerûen megoldottam a legtöbb szavazat kiszámítását.
Szerintem ezt feltudod használni, semmi inc nem szükséges.
for(new i; i < sizeof(szavazatok); i++)
{   
      if(szavazatok > nyertespalya) nyertespalya = i;
}
majd:
if(nyertespalya == 1)
{
       SendClientMessageToAll(-1,\"Az 1. pálya nyert\");
}
Nemtudom így mennyire érthetõ, neked itt van a teljes szkript is, hátha feltudod használni:



#include <a_samp>
#include <zcmd>
#define SZAVAZAS_IDO 15 // ide írd, hogy automatikusan hány percenként induljon az új szavazás.
#define SZAVAZO_IDO 3 // ide írd, hogy hány másodpercig tartson a szavazás. (( ha letelt, utána vált pályát ))
#define DIALOG_SZAVAZAS 53 // ide írd a dialog ID-jét, hogy a módban lévõ dialogokkal ne keveredjen össze.
#define SZAVAZDIALOG ShowPlayerDialog(i, DIALOG_SZAVAZAS, DIALOG_STYLE_LIST, \"Szavazás\",\"Pálya1\\nPálya2\\nPálya3\",\"Szavaz\",\"\") // elég itt átírni a szavazós dialogot!
forward szavazas();
forward SzavazoIdo();
new szavazastimer;
new bool:szavazhat[MAX_PLAYERS];
new szavazatok[3]; //  a négyzetes zárójelbe akkora számot írj, amennyi pályára lehet szavazn
new nyertespalya = 0;
public szavazas()
{
for(new i;i < MAX_PLAYERS; i++)
{
    szavazhat = true;
    SZAVAZDIALOG;
}
KillTimer(szavazastimer);
SetTimer(\"SzavazoIdo\",1000*SZAVAZO_IDO,false);
ErtekReset();
}
public SzavazoIdo()
{
SendClientMessageToAll(-1,\"[szavazás] a szavazás ideje letelt!\");
szavazastimer = SetTimer(\"szavazas\",1000*60*SZAVAZAS_IDO,false);
new str1[15];
new str2[15];
new str3[15];
format(str1,sizeof(str1),\"* Pálya1: %d\",szavazatok[0]);
format(str2,sizeof(str2),\"* Pálya2: %d\",szavazatok[1]);
format(str3,sizeof(str3),\"* Pálya3: %d\",szavazatok[2]);
SendClientMessageToAll(-1, \" ------  SZAVAZATOK ------\");
SendClientMessageToAll(-1, str1);
SendClientMessageToAll(-1, str2);
SendClientMessageToAll(-1, str3);
SendClientMessageToAll(-1, \" \");
for(new i; i < sizeof(szavazatok); i++){    if(szavazatok > nyertespalya) nyertespalya = i;}
for(new ix; ix < MAX_PLAYERS; ix++)
{
szavazhat[ix] = false;
}
if(nyertespalya == szavazatok[0])
{
    SendClientMessageToAll(-1,\"Az 1. pálya nyert\");
    // ha az 1. pálya a nyertes, akkor ez történjen
}
else if(nyertespalya == szavazatok[1])
{
    SendClientMessageToAll(-1,\"A 2. pálya nyert\");
    // ha a 2. pálya a nyertes, akkor ez történjen
}
else if(nyertespalya == szavazatok[2])
{
    SendClientMessageToAll(-1,\"A 3. pálya nyert\");
    // ha a 3. pálya a nyertes, akkor ez történjen
}
}
public OnFilterScriptInit()
{
print(\" * Szavazás rendszer betöltve!\");
szavazastimer = SetTimer(\"szavazas\",1000*60*SZAVAZAS_IDO,false);
return 1;
}
CMD:szavazas(playerid, params[])
{
if(!IsPlayerAdmin(playerid)) return 0;
KillTimer(szavazastimer);
for(new i;i < MAX_PLAYERS; i++)
{
    SZAVAZDIALOG;
    szavazhat = true;
}
SetTimer(\"SzavazoIdo\",1000*SZAVAZO_IDO,false);
ErtekReset();
return 1;
}
public OnFilterScriptExit(){return 1;}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
switch(dialogid)
{
    case DIALOG_SZAVAZAS:
    {
        new name[30];
        GetPlayerName(playerid, name, 40);
        if(listitem == 0)
   {
       if(szavazhat[playerid] == false) return SendClientMessage(playerid, -1, \"Elkéstél..\");
       new string[128];
       format(string, sizeof(string), \"[szavazás] %s a(z) 1. pályára szavazott!\",name);
       SendClientMessageToAll(-1,string);
       szavazatok[0] ++;
   }
   if(listitem == 1)
   {
       if(szavazhat[playerid] == false) return SendClientMessage(playerid, -1, \"Elkéstél..\");
       new string[128];
       format(string, sizeof(string), \"[szavazás] %s a(z) 2. pályára szavazott!\",name);
       SendClientMessageToAll(-1,string);
       szavazatok[1] ++;
   }
   if(listitem == 2)
   {
       if(szavazhat[playerid] == false) return SendClientMessage(playerid, -1, \"Elkéstél..\");
       new string[128];
       format(string, sizeof(string), \"[szavazás] %s a(z) 3. pályára szavazott!\",name);
       SendClientMessageToAll(-1,string);
       szavazatok[2] ++;
   }
    }
}
return 1;
}
stock ErtekReset()
{
szavazatok[0] = 0;
szavazatok[1] = 0;
szavazatok[2] = 0; // addig folytasd ameddig el nem érsz a szavazatok változó maximális értékéig! (( Figyelem! ha a változónak pl: 5-ös értéke van, akkor 0-4ig számozható! ))

 
}
 
Picit gondolkodtam, és bár szerintem ez nem mûködik neked ilyen módon lehetne megoldani:
 
#include <a_samp>
#define PONTPERC 10 // Ennyi percenként ellenõriz
new Pontok[MAX_PLAYERS];
 
public OnFilterScriptInit()
{
SetTimer(\"KinekVanLegtobbPontja\",1000*60*PONTPERC,true);
return 1;
}
forward KinekVanLegtobbPontja();
public KinekVanLegtobbPontja()
{
//new kinekmennyi[MAX_PLAYERS];
new legtobbpontju;
new name[30];
new str[90];
for(new ix; ix < MAX_PLAYERS; ix++)
{
    GetPlayerScore(ix, Pontok[ix]);
}
    for(new i; i < sizeof(Pontok); i++)
{
if(Pontok > MAX_PLAYERS) legtobbpontju = i;
}
GetPlayerName(legtobbpontju, name, 30);
format(str,sizeof(str),\"A legtöbb pontja %s-nak/nek van!\",name);
SendClientMessageToAll(-1,str);
}

 
Mégegyszer mondom, csak 5perc alatt megírtam, nem teszteltem és nem is mûködik 90%ban.
Remélem tudsz vele kezdeni valamit.
UI.: Nagyon szar ez az új \'Code\' tag stílus vagy mi ez.. Ha kijelölöd, vagy kimásolod látszik az is amit így nem jelenít meg.

Nem elérhető Szasza

  • 388
    • Profil megtekintése
Legtöbb ponttal rendelkezõ játékos kiszámítása
« Válasz #9 Dátum: 2014. július 27. - 14:00:35 »
0 Show voters
Idézetet írta: BackUP date=1406459264\" data-ipsquote-contentapp=\"forums\" data-ipsquote-contenttype=\"forums\" data-ipsquote-contentid=\"49631\" data-ipsquote-contentclass=\"forums_Topic
UI.: Nagyon sz*r ez az új \'Code\' tag stílus vagy mi ez.. Ha kijelölöd, vagy kimásolod látszik az is amit így nem jelenít meg.
 
Tényleg szar... de nem nem jeleníti meg hanem fehérrel jeleníti meg... és beleolvad a háttérbe :/

Nem elérhető BackUP

  • 908
    • Profil megtekintése
Legtöbb ponttal rendelkezõ játékos kiszámítása
« Válasz #10 Dátum: 2014. július 27. - 14:30:18 »
0 Show voters
De akkor a sötétebb árnyalaton, ami szinte szürke miért úgyan olyan mint a világos fehéren? Ott ezesetben látszódnia kellene, vagy csak én vagyok vak :D
Mindegy, attól még nem változott semmi.

Legtöbb ponttal rendelkezõ játékos kiszámítása
« Válasz #11 Dátum: 2014. július 27. - 16:52:05 »
0 Show voters
elég az offokból, mindegy már a cucc, azért köszi!

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal