Szerző Téma: Százalék  (Megtekintve 833 alkalommal)

Százalék
« Dátum: 2013. Július 04. - 17:08:24 »
0 Show voters
Sziasztok. Lehet beteg egy gondolat de kiváncsi vagyok rá hogy meg lehet-e oldani a következõt:
A szerver 10-5 percenként irná hogy a Szerver xz százalékban van kész! És a százalékot pl úgy számolná hogy a sorok szerint. Nem tudom hogy le lehet-e kérni hogy hány soros a mod vagy valami más szerint kérdezné le hogy hány százalékban van kész a szerver. Elõre is köszönöm.

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
Százalék
« Válasz #1 Dátum: 2013. Július 04. - 17:28:42 »
+1 Show voters
Kedves Témanyitó!
Azt nem tudom, hogy kell lekérdezni, de a többi részét tudom.
Lekérdezed a sorok számát - valahogy -, és eltárolod pl. SorokSzama változóba.
Egy új változóba pl. KelloSorok értékét beállítod 20000-re (pl. annyi kéne a kész módhoz).
Aztán fogod a KelloSorokat, elosztod 100-al, eltárolod pl. EgySzazalek változóba.
Következõ lépésként a SorokSzama-t elosztod az EgySzazalekkal, és kijön, hogy hány %-a van kész a módnak. Utána csak ki kell írni mindenkinek. Pofon egyszerû, csak egy kis matek. Íme ugyanez kódban:
 

new SorokSzama;
new KelloSorok = 20000;
new EgySzazalek;
new Ertek;
new string[256];
public /* OnFilterScriptInit() vagy OnGameModeInit */
{
      SetTimerEx(\"Timer\", 600000,  1, \"i\", playerid); // 10 perces Timer
}
forward Timer(playerid);
public Timer(playerid)
{
      SorokSzama = /* Valahogy lekérdezed a sorok számát */;
      KelloSorok/100 = EgySzazalek; // Elosztod, hogy megkapd az 1%-ot
      SorokSzama/EgySzazalek = Ertek; // Megkapod. hogy hány %-ban kész a mód
      format(string, sizeof string, \"A szerver %d%-ban van kész!\", Ertek);
      SendClientMessageToAll(0xFFFFFFAA, string); // Kiírod mindenkinek
}

 
Remélem valamelyest segítettem :) És remélem, hogy semmit sem írtam el :P :D
Üdv: Dfoglalo

Százalék
« Válasz #2 Dátum: 2013. Július 04. - 17:38:49 »
0 Show voters
Ezt értem. Csak nem tudom hogy kérdezzem le. Egyébként playerid-t minek viszed át?

Nem elérhető Epsilon

  • 1854
    • Profil megtekintése
Százalék
« Válasz #3 Dátum: 2013. Július 04. - 18:23:18 »
+1 Show voters
#define SorokSzama 6969

 
A szám értelemszerûen példa, minden átfordításnál megnézed hány soros a mód és átírod.
Definiálhatod a \'Kellõsorokat\' is, de ha sosem változtatod és csak egyszer használod nem kell. Csak írd oda kommentben honnan jött a szám.
A playerid pedig valóban nem kell, elég a SetTimer.
A számítást pedig elvégezheted a format függvényen belül is, nem bonyolult, felesleges új változó.
 
format(string, sizeof string, \"A szerver %d%-ban van kész!\", (SorokSzama/654321)*100); // 654321 - 100% sorszám

Százalék
« Válasz #4 Dátum: 2013. Július 04. - 18:36:01 »
0 Show voters
Hibát ír az elsõ megoldásra.
 
C:\\Users\\Easy987\\Desktop\\Minden\\Drift\\gamemodes\\mod.pwn(182) : error 022: must be lvalue (non-constant)
C:\\Users\\Easy987\\Desktop\\Minden\\Drift\\gamemodes\\mod.pwn(182) : warning 215: expression has no effect
C:\\Users\\Easy987\\Desktop\\Minden\\Drift\\gamemodes\\mod.pwn(183) : error 022: must be lvalue (non-constant)
C:\\Users\\Easy987\\Desktop\\Minden\\Drift\\gamemodes\\mod.pwn(183) : warning 215: expression has no effect

Nem elérhető Dfoglalo

  • 4069
  • Globális Moderátor
    • Profil megtekintése
Százalék
« Válasz #5 Dátum: 2013. Július 04. - 18:52:09 »
+1 Show voters
Hát igen, lehet definiálással is. Egyébként szerintem nem megoldható a sorok lekérdezése... De szerintem a Kedves Témanyitó nem szeretné minden alkalommal átírni a SorokSzama-t. Pár mondat nyilvánvaló rizsán túl: elnézést, tényleg nem playerid-nek kellett volna írni, hiszen mindenki látja :D Bocsi :P A hibáiról: pontosan melyik sorok a hibaüzenetben leírtak?

Százalék
« Válasz #6 Dátum: 2013. Július 04. - 18:55:11 »
0 Show voters
Sikerült megoldani. köszönöm mindenkinek. Mentek a +-ok.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal