Clan System

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Es kann i.wie nur ein Clan in der DB gespeichert werden, wieso?



    COMMAND:createclan(playerid,params[])
    {
    new query[128],clan[11],name[MAX_PLAYER_NAME],str[128];
    GetPlayerName(playerid,name,sizeof(name));
    if(cWar[playerid][pLeader] || cWar[playerid][pMember] ==1) return SendClientMessage(playerid,COLOR_GRAU,"Du bist bereits in einem Clan aktiv");
    if(sscanf(params,"s[11]",clan)) return SendClientMessage(playerid,COLOR_GRAU,"BENUTZE: /createclan [ClanName]");
    format(query,128,"INSERT INTO Clans (Clanname,Leader) VALUES ('%s','%s') ",clan,name);
    mysql_function_query(mydb,query,false,"","");
    format(str,128," [CLAN] {FEFEFE}Du hast dir den Clan: %s erfolgreich erstellt!",clan);
    SendClientMessage(playerid,0xFF9600FF,str);
    cWar[playerid][pLeader] = 1;
    return 1;
    }


    ID in der Datenbank von dem Clan 0


    http://www.imagebanana.com/view/qq0hi0j4/dvvvddv.png

  • wie fragst du eigentlich ab, in welchem Clan wer ist?


    btw.


    muss aus if(cWar[playerid][pLeader] || cWar[playerid][pMember] ==1)
    nicht
    if(cWar[playerid][pLeader] == 1 || cWar[playerid][pMember] == 1) ?



    So wie du es machst, wird nämlich der Clanersteller immer zu "Clan 1" Leader. Zumindest wenn ich mich richtig errinnere wie das alles funktionierte.

    http://youtube.com/sixxaafx


    Ich habe dir bei einem Problem geholfen oder dir gefällt eines meiner Werke?
    Lass es mich Wissen, indem du auf dieses Bildchen klickst


  • mach ne for new schleife, die die maximale clan anzahl einmal durchgeht
    //e

    COMMAND:createclan(playerid,params[])
    {
    new query[128],clan[11],name[MAX_PLAYER_NAME],str[128];
    GetPlayerName(playerid,name,sizeof(name));
    for(new i=0;i<MAX_CLAN;i++)
    {
    if(cWar[playerid][pLeader] || cWar[playerid][pMember] ==1) return SendClientMessage(playerid,COLOR_GRAU,"Du bist bereits in einem Clan aktiv");
    if(sscanf(params,"s[11]",clan)) return SendClientMessage(playerid,COLOR_GRAU,"BENUTZE: /createclan [ClanName]");
    format(query,128,"INSERT INTO Clans (`id`,Clanname,Leader) VALUES ('%d','%s','%s') ",i,clan,name);
    mysql_function_query(mydb,query,false,"","");
    format(str,128," [CLAN] {FEFEFE}Du hast dir den Clan: %s erfolgreich erstellt!",clan);
    SendClientMessage(playerid,0xFF9600FF,str);
    cWar[playerid][pLeader] = 1;
    }
    return 1;
    }

    musst halt noch #define MAX_CLAN 100 oder so machen


  • Jetzt bekomme ich mind. 20 Nachrichten ingame und der clan wird 20x erstellt XD


    Müssen die dinger nicht aus der Schleife?

  • sry kleiner denkfehler^^

    COMMAND:createclan(playerid,params[])
    {
    new query[128],clan[11],name[MAX_PLAYER_NAME],str[128];
    GetPlayerName(playerid,name,sizeof(name));
    for(new i=0;i<MAX_CLAN;i++)
    {
    if(cWar[playerid][pLeader] || cWar[playerid][pMember] ==1) return SendClientMessage(playerid,COLOR_GRAU,"Du bist bereits in einem Clan aktiv");
    if(sscanf(params,"s[11]",clan)) return SendClientMessage(playerid,COLOR_GRAU,"BENUTZE: /createclan [ClanName]");
    format(query,128,"INSERT INTO Clans (`id`,Clanname,Leader) VALUES ('%d','%s','%s') ",i,clan,name);
    mysql_function_query(mydb,query,false,"","");
    format(str,128," [CLAN] {FEFEFE}Du hast dir den Clan: %s erfolgreich erstellt!",clan);
    SendClientMessage(playerid,0xFF9600FF,str);
    cWar[playerid][pLeader] = 1;
    return 1;
    }
    return 1;
    }



  • Jetzt wird wieder nur einer erstellt :/

  • @timm462f


    Das liegt daran, dass in dem letzten Beispiels des Themenerstellers die Variable i immer den Wert 0 hat.
    Frag vorher ab, ob es unter dieser ID schon einen Clan gibt:

    [...]
    for(new i = 0; i < max_clan; i++){
    if(clanInfo[i][clanExists] == 1)continue; //Wie auch immer du kennzeichnest, dass es den Clan gibt.
    [...]


    Außerdem ist der Code generell nicht ordentlich, da nirgendwo definiert ist, ob es einen Clan gibt oder nicht.
    Generell werden keine Clan-Variablen gespeichert.

  • also ich habe es jetzt so aber es wird nur einer erstellt



    ocmd:clanerstellen(playerid,params[])
    {
    if(ClanBool == 1)
    {
    CheckClan(playerid);
    return 1;
    }
    new ClanName[32],ClanTag[8],query[333],string[223];
    new jahr,stunde,minute,sekunde,monat,tag;
    gettime(stunde,minute,sekunde);
    getdate(jahr,monat,tag);
    if(!IsPlayerInRangeOfPoint(playerid,4.0,1317.6791,-1382.8806,13.8477)) return SendClientMessage(playerid,COLOR_RED,"Hier kannst du keinen Clan erstellen!");
    if(PlayerInfo[playerid][pClan] == 1) return SendClientMessage(playerid,COLOR_RED,"Du bist bereits in einem Clan aktiv");
    for(new i=0;i<MAX_CLAN;i++)
    {
    if(sscanf(params,"ss",ClanName,ClanTag))return SendClientMessage(playerid,COLOR_RED,"{FFD200}Benutzung:{FEFEFE}/Clanerstellen [Clan-Name] [Clan-Tag |max 8 Zeichen|]");
    if(PlayerInfo[playerid][pGeld]<100000) return SendClientMessage(playerid,COLOR_RED,"So viel Geld hast du nicht");
    PlayerInfo[playerid][pClan] = 1;
    format(query, sizeof(query), "INSERT INTO `Clans` (`ClanID`,`ClanName`,`ClanLeader`,`ClanTag`,`Uhrzeit`,`Datum`) VALUES ('%d','%s','%s','%s','%02d:%02d:%02d','%04d-%02d-%02d')",i,ClanName,PlayerName(playerid),ClanTag,stunde,minute,sekunde,jahr,monat,tag);
    mysql_query(query);
    format(string, sizeof(string), "[CLAN] Spieler %s hat sich erfolgreich den Clan %s mit dem Clan-Tag (%s) erstellt!", PlayerName(playerid),ClanName, ClanTag);
    SendClientMessageToAll(COLOR_WHITE,string);
    GiveMoney(playerid,-100000);
    return 1;
    }
    return 1;
    }