Szerző Téma: GyorsTimer,ami lefut minden playeren  (Megtekintve 821 alkalommal)

Nem elérhető tudvari

  • 1264
  • Fejlesztő
    • Profil megtekintése
GyorsTimer,ami lefut minden playeren
« Dátum: 2012. május 27. - 19:48:05 »
0 Show voters
Üdv,van egy timerem ami gyorsan ismétlõdik,és a szerver összes playerére kihat.De valamiért nem megy.Lehet,hogy attól megy tönkre,ha valaki feljön a szerverre.
Várom az észrevételeket :D
 
public GyorsTimer()
{
new p;
for(p = 0; p < MAX_PLAYERS; p++)
{
if(Belepve[p] != 0)
{
    new Float:Armour;
    new Float:HP;
    GetPlayerArmour(p,Armour);
    GetPlayerHealth(p,HP);
    if(Armour > 100)
    {
      SetPlayerArmour(p,100);
    }
    if(HP > 100)
    {
      SetPlayerHealth(p,100);
    }
    if(JatekosInfo[p][ViszValakit] != 0)
    {
              new Float:Xpoz, Float:Ypoz, Float:Zpoz, Int, VW;
      GetPlayerPos(p, Xpoz, Ypoz, Zpoz);
      VW = GetPlayerVirtualWorld(p);
      Int = GetPlayerInterior(p);
      new vittember;
      vittember = JatekosInfo[p][ViszValakit];
      SetPlayerPos(vittember, (Xpoz+0.5), Ypoz, Zpoz);
      SetPlayerInterior(vittember, Int);
      SetPlayerVirtualWorld(vittember, VW);
    }
    if(JatekosInfo[p][Taxiban] > 0 &&   JatekosInfo[p][Viteldij] < 15)
   {
       JatekosInfo[p][Taxiban] ++;
   }
            if(JatekosInfo[p][Taxiban] == 15)
   {
       JatekosInfo[p][Taxiban] = 1;
       JatekosInfo[p][Penz] -= JatekosInfo[p][Viteldij];
   }
   if(JatekosInfo[p][szomjusag] > 100)
   {
       JatekosInfo[p][szomjusag] = 100;
   }
   if(JatekosInfo[p][Ehseg] > 100)
   {
       JatekosInfo[p][Ehseg] = 100;
   }
   if(JatekosInfo[p][Almossag] > 100)
   {
       JatekosInfo[p][Almossag] = 100;
   }
   if(JatekosInfo[p][szomjusag] < 0)
   {
       JatekosInfo[p][szomjusag] = 0;
   }
   if(JatekosInfo[p][Ehseg] < 0)
   {
       JatekosInfo[p][Ehseg] = 0;
   }
   if(JatekosInfo[p][Almossag] < 0)
   {
       JatekosInfo[p][Almossag] = 0;
   }
}
}
return 1;
}

GyorsTimer,ami lefut minden playeren
« Válasz #1 Dátum: 2012. május 28. - 00:12:41 »
0 Show voters
SetTimer(\"Gyorstimer\", stb...); -t másold be

Nem elérhető tudvari

  • 1264
  • Fejlesztő
    • Profil megtekintése
GyorsTimer,ami lefut minden playeren
« Válasz #2 Dátum: 2012. május 28. - 00:30:45 »
0 Show voters
OnGameModeInit alatt:
 
SetTimer(\"GyorsTimer\", 1000, true);

GyorsTimer,ami lefut minden playeren
« Válasz #3 Dátum: 2012. május 28. - 00:32:37 »
0 Show voters
Minden playerre kihat? azt kéne kovácsolni?:D

Nem elérhető tudvari

  • 1264
  • Fejlesztő
    • Profil megtekintése
GyorsTimer,ami lefut minden playeren
« Válasz #4 Dátum: 2012. május 28. - 00:36:37 »
0 Show voters
   new p;
for(p = 0; p < MAX_PLAYERS; p++)
{

 
erre a for ciklusra gondoltam.
Csak lehetséges,hogy azután állt le a timer,hogy feljött egy másik játékos.Ha egyedül vagyok fent,mûködik.
Igen,azt szeretném,mert elvégre a p változó az az összes playert jelképezi.

GyorsTimer,ami lefut minden playeren
« Válasz #5 Dátum: 2012. május 28. - 00:41:22 »
0 Show voters
akkor pedig
 
forward GyorsTimer(playerid);

 

public GyorsTimer(playerid)
{
stb...
}

 
és a gyorstimer alatt írd át a \"p\"-t \"playerid\"-re
aztán az
OnPlayerConnect

 alá
 
SetTimerEx(\"GyorsTimer\", true, \"ddd\", playerid);
« Utoljára szerkesztve: 2012. május 28. - 00:46:12 írta gergo107 »

Nem elérhető tudvari

  • 1264
  • Fejlesztő
    • Profil megtekintése
GyorsTimer,ami lefut minden playeren
« Válasz #6 Dátum: 2012. május 28. - 08:58:04 »
0 Show voters
Tudom,hogy így is lehet,a többi timerem így van.De SeeRPG modban láttam ezt az alkalmazási módszert,így gondoltam:hát ha jobb a szervernek mindenkin végigfutni ezzel a pár sorral.
De akkor gondolom,valamiért nem jó.Bár nem tudom,See-n ,hogy mûködött.

GyorsTimer,ami lefut minden playeren
« Válasz #7 Dátum: 2012. május 28. - 12:13:18 »
0 Show voters
new Timerek[akármennyi] = -1;?

 
erre gondolsz?
de amúgy azért mert ott mindenhol úgy van megcsinálva hogy az összes playerre kihasson de mivel
if

 lekérdezi a dolgokat ezért nem hat ki minden playerre
« Utoljára szerkesztve: 2012. május 28. - 12:18:37 írta gergo107 »

Nem elérhető tudvari

  • 1264
  • Fejlesztő
    • Profil megtekintése
GyorsTimer,ami lefut minden playeren
« Válasz #8 Dátum: 2012. május 28. - 12:46:37 »
0 Show voters
Nem mondod :D
De ha például negatív lesz az éhségem,akkor nem állítja át nullára.Erre gondoltam.Én írtam,tudom mit írtam,csak azt nem tudom,hogy a több player miért befolyásolja.
Mindegy,már átírtam személyes timerbe.Azért köszi.

 

SimplePortal 2.3.7 © 2008-2024, SimplePortal