GTA Közösség - A magyar GTA fórum

San Andreas Multiplayer (SA-MP) => SA-MP: Szerverfejlesztés => Segítségkérés => A témát indította: bencarter007 - 2015. Augusztus 22. - 11:31:35

Cím: egy parancs után a szerver megszűnik komunikálni a külvilággal, de nem crashel
Írta: bencarter007 - 2015. Augusztus 22. - 11:31:35
szervusztok!
irtam egy ilyen dolgot, de amint használom, a szerver nem kommunikál tovább.
 
CMD:setleader(playerid, params[])
{
new targetid,leader;
if (sscanf(params, \"ud\", targetid,leader)) SendClientMessage(playerid, -1, \"[TIPP]: /setleader <playerid> <frakció>\");
if (targetid == INVALID_PLAYER_ID) SendClientMessage(playerid, COLOR_ERROR,\"[HIBA]: Nincs ilyen játékos!\");
else
{
    pInfo[targetid][LeaderJob] = leader;
    pInfo[targetid][LeaderRank] = 5;
}
return 1;
}

 
tulajdonképpen olyan, mintha kifagyna, de mégsem. a crashdetect nem mutat semmit, a konzol fut tovább, ám a játékosok felé nem mennek adatcsomagok és a szerver sem érzékeli a játékosok által küldött adatcsomagokat. Ötlet?
Cím: egy parancs után a szerver megszűnik komunikálni a külvilággal, de nem crashel
Írta: Kovacs_Richard - 2015. Augusztus 23. - 21:46:28
miután kifagy és kilép egy játékos akkor eltűnik az online listáról? vagy teljesen kifagy az egész?
Cím: egy parancs után a szerver megszűnik komunikálni a külvilággal, de nem crashel
Írta: bencarter007 - 2015. Augusztus 24. - 13:01:29
a konzol továbbra is fut, de nem fogad sem konzol parancsokat, sem pedig adatokat a játékosoktól. a kliens azt mutatja, hogy a játékosok fent vannak. a szerver nem fogadja a játékos parancsait, mintha mindenkit kickelt volna, csak nem jelezné.
Cím: egy parancs után a szerver megszűnik komunikálni a külvilággal, de nem crashel
Írta: CMike - 2015. Augusztus 24. - 13:11:53
Házi szervereken ea laggos hostoknal (clans.hu) ez gyakran elofordul, próbálj egy másik hostot is
Cím: egy parancs után a szerver megszűnik komunikálni a külvilággal, de nem crashel
Írta: bencarter007 - 2015. Augusztus 24. - 14:39:26
csakhogy a házi és a hosztos szerveren is ugyanezt csinálja, ugyanennél a parancsnál, meg még egy pár parancsnál, de nem birok rájönni, hogy mi az oka. a hosztos szerverem nagyonis jó, kevesen használják és egyelőre laggmentes. biztosan a paranccsal van a baj, csak nem tudom hogy melyik részével.
Cím: egy parancs után a szerver megszűnik komunikálni a külvilággal, de nem crashel
Írta: Kovacs_Richard - 2015. Augusztus 24. - 14:58:27
végtelen ciklusnál szokott ez történni, de ebben a kódban nem látok ciklust...és még olyan függvényt sem amiben kiakadhat...
Próbáld ki, hogy kikommentezet az egész parancs tartalmát és kiírsz valamit helyette, mondjuk egy X-et...aztán ha nem fagy ki akkor darabokban rakd vissza a kódot és keresd meg mi fagy ki...
nincs véletlen egy script amiben ugyanez a parancs van és ott fagy ki és nem itt?
Cím: egy parancs után a szerver megszűnik komunikálni a külvilággal, de nem crashel
Írta: blackdog476 - 2015. Augusztus 24. - 20:23:42
Vagy printtel irogass ki szamokat midnen funkcio utan hogy meddig jut el..
Cím: egy parancs után a szerver megszűnik komunikálni a külvilággal, de nem crashel
Írta: bencarter007 - 2015. Augusztus 29. - 01:52:24
most már parancs sem kell hozzá... :D
házi szerveren gyönyörűen fut, a szervergépen meg már b@szik rá menni.
se parancsok, se mentések, se ciklusok, semmi -.-
Editke: a szerver a játékos bejelentkezésig eljut, bejelentkezik, a spawnolást már nem érzékeli a szerver.
 

if(dialogid == DIALOG_LOGIN)
    {
        if(response) // If they clicked \'Cancel\' or pressed esc
        {
            new string[24+4];
          format(string,sizeof(string),\"users/%s.ini\",pName(playerid));
    dfile_Open(string);
    if(!strcmp(inputtext, dfile_ReadString(\"Password\")))
   {
       pInfo[playerid] = dfile_ReadInt(\"Admin\");
       pInfo[playerid][Logins] = dfile_ReadInt(\"Logins\");
       pInfo[playerid][Warns] = dfile_ReadInt(\"Warns\");
       pInfo[playerid][PosX] = dfile_ReadFloat(\"PosX\");
      pInfo[playerid][PosY] = dfile_ReadFloat(\"PosY\");
      pInfo[playerid][PosZ] = dfile_ReadFloat(\"PosZ\");
       pInfo[playerid][Money] = dfile_ReadInt(\"Money\");
       pInfo[playerid][Kills] = dfile_ReadInt(\"Kills\");
       pInfo[playerid][Deaths] = dfile_ReadInt(\"Deaths\");
       pInfo[playerid][interior] = dfile_ReadInt(\"Interior\");
       pInfo[playerid][skin] = dfile_ReadInt(\"Skin\");
       pInfo[playerid][sex] = dfile_ReadInt(\"Sex\");
       pInfo[playerid][Age] = dfile_ReadInt(\"Age\");
       pInfo[playerid][Money] = dfile_ReadInt(\"Money\");
       pInfo[playerid][Kills] = dfile_ReadInt(\"Kills\");
       pInfo[playerid][Deaths] = dfile_ReadInt(\"Deaths\");
       pInfo[playerid][Wanted] = dfile_ReadInt(\"Wanted\");
      pInfo[playerid][Job] = dfile_ReadInt(\"Job\");
      pInfo[playerid][LeaderJob] = dfile_ReadInt(\"LeaderJob\");
      pInfo[playerid][LeaderRank] = dfile_ReadInt(\"LeaderRank\");
      pInfo[playerid][Family] = dfile_ReadInt(\"Family\");
      pInfo[playerid][FamilyRank] = dfile_ReadInt(\"FamilyRank\");
      pInfo[playerid][CarJacks] = dfile_ReadInt(\"CarJacks\");
      pInfo[playerid][JailTime] = dfile_ReadInt(\"JailTime\");
      pInfo[playerid][AdminJailTime] = dfile_ReadInt(\"AdminJailTime\");
      pInfo[playerid][Joint] = dfile_ReadInt(\"Joint\");
      pInfo[playerid][Marihuana] = dfile_ReadInt(\"Marihuana\");
      pInfo[playerid][MarihuanaLeaves] = dfile_ReadInt(\"MarihuanaLeaves\");
      pInfo[playerid][Cocaine] = dfile_ReadInt(\"Cocaine\");
      pInfo[playerid][beer] = dfile_ReadInt(\"Beer\");
       pInfo[playerid][Water] = dfile_ReadInt(\"Water\");
       pInfo[playerid][sandwich] = dfile_ReadInt(\"Sandwich\");
       pInfo[playerid][bagett] = dfile_ReadInt(\"Bagett\");
       pInfo[playerid][Crips] = dfile_ReadInt(\"Crips\");
       pInfo[playerid][Cigarettes] = dfile_ReadInt(\"Cigarettes\");
       pInfo[playerid][Paper] = dfile_ReadInt(\"Paper\");
       pInfo[playerid][Lighter] = dfile_ReadInt(\"Lighter\");
       pInfo[playerid][bandage] = dfile_ReadInt(\"Bandage\");
       pInfo[playerid][Pills] = dfile_ReadInt(\"Pills\");
       pInfo[playerid][Lighter] = dfile_ReadInt(\"Lighter\");
       pInfo[playerid][bandage] = dfile_ReadInt(\"Bandage\");
      pInfo[playerid][JapaneseSkill] = dfile_ReadInt(\"JapaneseSkill\");
      pInfo[playerid][RussianSkill] = dfile_ReadInt(\"RussianSkill\");
      pInfo[playerid][spanishSkill] = dfile_ReadInt(\"SpanishSkill\");
      GivePlayerMoney(playerid,pInfo[playerid][Money]);
      LoggedIn[playerid] = true;
      CarJackTime[playerid] = 5*60;
       pInfo[playerid][Logins] ++;
      SpawnPlayer(playerid);
      printf(\"%s bejelentkezett!\",pName(playerid));
      if(pInfo[playerid] == 1) SendClientMessage(playerid,-1,\"Üdvözöllek, admin segéd!\");
      if(pInfo[playerid] == 2) SendClientMessage(playerid,-1,\"Üdvözöllek, admin!\");
      if(pInfo[playerid] == 3) SendClientMessage(playerid,-1,\"Üdvözöllek, főadmin!\");
      if(pInfo[playerid] == 4) SendClientMessage(playerid,-1,\"Üdvözöllek, fejlesztő!\");
      if(pInfo[playerid] == 5) SendClientMessage(playerid,-1,\"Üdvözöllek, tulajdonos!\");
   }
   else ShowPlayerDialog(playerid, DIALOG_LOGIN, DIALOG_STYLE_PASSWORD, \"Bejelentkezés\", \"Az általad megadott jelszó hibás!\\nGépeld be a jelszavad!\", \"Belép\", \"Kilép\");
        }
        else // Pressed ENTER or clicked \'Login\' button
        {
            Kick(playerid);
        }
        return 1; // We handled a dialog, so return 1. Just like OnPlayerCommandText.
    }

 
 

public OnPlayerSpawn(playerid)
{
if(!IsPlayerNPC(playerid))
{
    Tempomat[playerid] = 0;
    printf(\"%s spawnolt!\",pName(playerid));
if (LoggedIn[playerid] == false)
{
            SetPlayerPos(playerid, 1461.0857,-894.0391,55.0890);
   SetPlayerCameraPos(playerid, 1480.6654,-861.4821,58.1107);
   SetPlayerCameraLookAt(playerid, 1417.5055,-800.6302,81.1883);
    Freeze(playerid);
}
else if (LoggedIn[playerid] == true)
{
    if(WeatherID == 1) SetWeather(1);
   else if(WeatherID == 2) SetWeather(3);
   else if(WeatherID == 3) SetWeather(4);
   else if(WeatherID == 4) SetWeather(8);
   else if(WeatherID == 5) SetWeather(4);
   else if(WeatherID == 6) SetWeather(9);
   SetCameraBehindPlayer(playerid);
    if(pInfo[playerid][Logins] >= 1)
   {
      SetPlayerPos(playerid,pInfo[playerid][PosX],pInfo[playerid][PosY],pInfo[playerid][PosZ]);
      SetPlayerInterior(playerid,pInfo[playerid][interior]);
      SetPlayerSkin(playerid,pInfo[playerid][skin]);
      ResetPlayerWeapons(playerid);
             UnFreeze(playerid);
       if(pInfo[playerid][JailTime] > 0)
       {
           SendClientMessage(playerid,COLOR_ERROR,\"Letöltetlen börtönbüntetés!\");
           SendClientMessage(playerid,COLOR_ERROR,\"A börtönben ébredtél...\");
           Jail(playerid,pInfo[playerid][JailTime]);
      }
    }
    else if(pInfo[playerid][Logins] == 0)
   {
      StartTutorial(playerid);
    }
}
}
else
{
    new cart = CreateVehicle(449,-2264.6492,541.1763,35.1227,181.3010,0,0,-1);
PutPlayerInVehicle(playerid,cart,0);
}
return 1;
}

 
még editke:
a botot sem engedi felcsatlakozni, pedig minden rendben lenne vele. ki van kerülve a login panel is, a botok száma
maxnpc 100 0

, nem igazán értem már a dolgot.
Cím: egy parancs után a szerver megszűnik komunikálni a külvilággal, de nem crashel
Írta: divkn - 2015. Augusztus 29. - 03:30:29
Valószínű hogy egy véget nem érő cikluson megy keresztül a szerver amiért nem válaszol. Nem néztem meg a második kódot, de az első posztnál hiányzik egy return a(z) az sscanf if elágazásában. Bár ahogy nézem, ez nem okozna problémát, ha jó is a parancs, akkor mindenképp elsén túl megy, ha rossz, akkor is invalid targetid értéket kap. Ha mégis lenne vele valami akkor a konzol mindenképp jelezné hogy index out of bounds.
Cím: egy parancs után a szerver megszűnik komunikálni a külvilággal, de nem crashel
Írta: bencarter007 - 2015. Szeptember 11. - 09:24:24
megtaláltam a hibát, az
onplayerupdate

 szórakozott.... zárok!