Account system

    Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

    • also, hinter "else", "if" und "while" und allen Klammern (nur diese { } ), brauchst du kein Semikolon, aber wenn du sowas hast wie: m_pPlayer->m_Inv = true; , dann musst du ein Semikolon machen...

      //Edit natürlich auch hinter "else if" (wie du es so schön falsch gemacht hast :P )

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Assa ()

    • würde helfen, wenn du die entsprechenden Zeilen mit anheftest :)
      Im Moment scheint es so, als wenn du auf eine Variable vom Typ Boolean zugreifen möchtest, bzw. auf einen Member dieses (Daten-)Types, was bei Datentypen generell untersagt und auch meist nicht möglich ist.
      Du müsstest nun eine eigene Klasse erstellen und mit der arbeiten ( was bei einem Accountsystem sowieso angebracht ist ;) )
    • gamecontext.cpp
      [cpp]else if(MsgID == NETMSGTYPE_CL_CALLVOTE) ; // <-- Zeile 819-964
      {
      if(g_Config.m_SvSpamprotection && pPlayer->m_LastVoteTry && pPlayer->m_LastVoteTry+Server()->TickSpeed()*3 > Server()->Tick())
      return;

      int64 Now = Server()->Tick();
      pPlayer->m_LastVoteTry = Now;
      if(pPlayer->GetTeam() == TEAM_SPECTATORS)
      {
      SendChatTarget(ClientID, "Spectators aren't allowed to start a vote.");
      return;
      }

      if(m_VoteCloseTime)
      {
      SendChatTarget(ClientID, "Wait for current vote to end before calling a new one.");
      return;
      }

      int Timeleft = pPlayer->m_LastVoteCall + Server()->TickSpeed()*60 - Now;
      if(pPlayer->m_LastVoteCall && Timeleft > 0)
      {
      char aChatmsg[512] = {0};
      str_format(aChatmsg, sizeof(aChatmsg), "You must wait %d seconds before making another vote", (Timeleft/Server()->TickSpeed())+1);
      SendChatTarget(ClientID, aChatmsg);
      return;
      }

      char aChatmsg[512] = {0};
      char aDesc[VOTE_DESC_LENGTH] = {0};
      char aCmd[VOTE_CMD_LENGTH] = {0};
      CNetMsg_Cl_CallVote *pMsg = (CNetMsg_Cl_CallVote *)pRawMsg;
      const char *pReason = pMsg->m_Reason[0] ? pMsg->m_Reason : "No reason given";

      if(str_comp_nocase(pMsg->m_Type, "option") == 0)
      {
      CVoteOptionServer *pOption = m_pVoteOptionFirst;
      while(pOption)
      {
      if(str_comp_nocase(pMsg->m_Value, pOption->m_aDescription) == 0)
      {
      str_format(aChatmsg, sizeof(aChatmsg), "'%s' called vote to change server option '%s' (%s)", Server()->ClientName(ClientID),
      pOption->m_aDescription, pReason);
      str_format(aDesc, sizeof(aDesc), "%s", pOption->m_aDescription);
      str_format(aCmd, sizeof(aCmd), "%s", pOption->m_aCommand);
      break;
      }

      pOption = pOption->m_pNext;
      }

      if(!pOption)
      {
      str_format(aChatmsg, sizeof(aChatmsg), "'%s' isn't an option on this server", pMsg->m_Value);
      SendChatTarget(ClientID, aChatmsg);
      return;
      }
      }
      else if(str_comp_nocase(pMsg->m_Type, "kick") == 0)
      {
      if(!g_Config.m_SvVoteKick)
      {
      SendChatTarget(ClientID, "Server does not allow voting to kick players");
      return;
      }

      if(g_Config.m_SvVoteKickMin)
      {
      int PlayerNum = 0;
      for(int i = 0; i < MAX_CLIENTS; ++i)
      if(m_apPlayers && m_apPlayers[i]->GetTeam() != TEAM_SPECTATORS)
      ++PlayerNum;

      if(PlayerNum < g_Config.m_SvVoteKickMin)
      {
      str_format(aChatmsg, sizeof(aChatmsg), "Kick voting requires %d players on the server", g_Config.m_SvVoteKickMin);
      SendChatTarget(ClientID, aChatmsg);
      return;
      }
      }

      int KickID = str_toint(pMsg->m_Value);
      if(KickID < 0 || KickID >= MAX_CLIENTS || !m_apPlayers[KickID])
      {
      SendChatTarget(ClientID, "Invalid client id to kick");
      return;
      }
      if(KickID == ClientID)
      {
      SendChatTarget(ClientID, "You can't kick yourself");
      return;
      }
      if(Server()->IsAuthed(KickID))
      {
      SendChatTarget(ClientID, "You can't kick admins");
      char aBufKick[128];
      str_format(aBufKick, sizeof(aBufKick), "'%s' called for vote to kick you", Server()->ClientName(ClientID));
      SendChatTarget(KickID, aBufKick);
      return;
      }

      str_format(aChatmsg, sizeof(aChatmsg), "'%s' called for vote to kick '%s' (%s)", Server()->ClientName(ClientID), Server()->ClientName(KickID), pReason);
      str_format(aDesc, sizeof(aDesc), "Kick '%s'", Server()->ClientName(KickID));
      if (!g_Config.m_SvVoteKickBantime)
      str_format(aCmd, sizeof(aCmd), "kick %d Kicked by vote", KickID);
      else
      {
      char aAddrStr[NETADDR_MAXSTRSIZE] = {0};
      Server()->GetClientAddr(KickID, aAddrStr, sizeof(aAddrStr));
      str_format(aCmd, sizeof(aCmd), "ban %s %d Banned by vote", aAddrStr, g_Config.m_SvVoteKickBantime);
      Console()->Print(IConsole::OUTPUT_LEVEL_STANDARD, "server", aCmd);
      }
      }
      else if(str_comp_nocase(pMsg->m_Type, "spectate") == 0)
      {
      if(!g_Config.m_SvVoteSpectate)
      {
      SendChatTarget(ClientID, "Server does not allow voting to move players to spectators");
      return;
      }

      int SpectateID = str_toint(pMsg->m_Value);
      if(SpectateID < 0 || SpectateID >= MAX_CLIENTS || !m_apPlayers[SpectateID] || m_apPlayers[SpectateID]->GetTeam() == TEAM_SPECTATORS)
      {
      SendChatTarget(ClientID, "Invalid client id to move");
      return;
      }
      if(SpectateID == ClientID)
      {
      SendChatTarget(ClientID, "You can't move yourself");
      return;
      }

      str_format(aChatmsg, sizeof(aChatmsg), "'%s' called for vote to move '%s' to spectators (%s)", Server()->ClientName(ClientID), Server()->ClientName(SpectateID), pReason);
      str_format(aDesc, sizeof(aDesc), "move '%s' to spectators", Server()->ClientName(SpectateID));
      str_format(aCmd, sizeof(aCmd), "set_team %d -1 %d", SpectateID, g_Config.m_SvVoteSpectateRejoindelay);
      }

      if(aCmd[0])
      {
      SendChat(-1, CGameContext::CHAT_ALL, aChatmsg);
      StartVote(aDesc, aCmd, pReason);
      pPlayer->m_Vote = 1;
      pPlayer->m_VotePos = m_VotePos = 1;
      m_VoteCreator = ClientID;
      pPlayer->m_LastVoteCall = Now;
      }
      }


      [/cpp]
    • Patafix: Da war ein Link mit dem Sourcecode eines Accountsystems drin.

      Glaube das hilft dem Spacko eher da er sowieso 0 coden kann und nicht mal lesen was im Error Output steht.
      Die ganzen Spasten sollten alle gebannt werden.
      Edit Pata: github.com/fisted/teeworlds/tree/account, wäre nett wenn du infos freundlichr verpacken könntest ;)

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Patafix ()