Beiträge von Defcon666

    Also wie ihr aus der Überschrift erkennen könnt will nun gerne mal wissen was sollte ich eher benutzen


    ein enum mit den ganzen Spielerdaten oder doch lieber für jede Variabel einmal eine SetPVar << zu machen ?!


    Was sagt ihr was sagen hier die experten lohnt es sich bei massen an Variabeln SetPVar zu nehmen und nicht ein enum ?

    einfach mit
    ShowPlayerDialog(playerid,1,1,"Login","Bitte Passwort eingeben!","Ok"," ");


    Ich empfehle aber das bei Connect automatisch zu machen !
    das hier ist nur ein Beispielcode aus mein GM xD



    GetPlayerName(playerid,Spieler[playerid][NAME],MAX_STRING_NAME);
    format(Spieler[playerid][DATEI],128,"spieler/%s.user",Spieler[playerid][NAME]);

    Spieler[playerid][LOGIN] = 0;
    if(fexist(Spieler[playerid][DATEI]))
    {
    ShowPlayerDialog(playerid,1,1,"Login","Passwort:","Ok"," ");
    }else{
    ShowPlayerDialog(playerid,0,1,"Registration","Bitte Wunschpasswort eingeben!","Ok"," ");
    }

    Hiermit rufst du es auf!
    ShowPlayerDialog(playerid,1,1,"NamenChange","Bitte Namen eingeben!","Ok"," ");


    Hiermit wird alles in Wallung gebracht !
    public OnDialogResponse(playerid,dialogid,response,listitem,inputtext[]){
    if(response)
    {
    switch(dialogid)
    {
    case 1:
    {
    SetPlayerName(playerid, inputtext");
    }
    }
    }
    else
    {
    switch(dialogid)
    {
    case 1:ShowPlayerDialog(playerid,1,1,"NamenChange","Bitte Namen eingeben!","Ok"," ");
    }
    }
    return 1;}


    und am ende hoffe ich mal auf ein dickes Danke !

    okay
    EIN Error is schon mal raus?
    aber ich kapier den error echt nicht??


    error 017: undefined symbol "imputtext"??
    wie soll ich des definieren?
    mit #define würd es ja nix bringen


    böse xD ich habe echt geppent xD


    Tutorial >>> SUCHE: imputtext ERSETZTEN MIT : inputtext

    Klammerfehler ich denke mal nun sind alle raus =/


    public OnDialogResponse(playerid,dialogid,response,listitem,inputtext[]){
    if(response)
    {
    switch(dialogid)
    {
    case 1:
    {
    if(!strlen(inputtext)){return ShowPlayerDialog(playerid,1,1,"Login","Bitte Passwort eingeben!","Ok"," ");}
    new tmppass[64];
    strmid(tmppass,imputtext, 0, strlen(imputtext), 255);
    Encrypt(tmppass);
    OnPlayerLogin(playerid,tmppass);
    }
    }
    }
    else
    {
    switch(dialogid)
    {
    case 1:ShowPlayerDialog(playerid,1,1,"Login","Bitte Passwort eingeben!","Ok"," ");
    }
    }
    return 1;}

    aber ihrgendwie muss es doch gehen =) oder alle paar sekunden einfach die Position Prüfen und dann immer eine Variabel zählen wenn die werte gleich sind !
    mhh ist aber ein Timer und ich bin Froh das ich derzeit bei mir alles in einen habe !

    Deins:
    ShowPlayerDialog(playerid,1,1,"Login","Bitte Passwort eingeben!","Ok"," ");}



    Meins:
    ShowPlayerDialog(playerid, login, ]DIALOG_STYLE_INPUT,
    is da meins nicht richtig? weil ich brauch ja inputt? dann muss ja Style:input da stehen?


    0 - DIALOG_STYLE_MSGBOX
    1 - DIALOG_STYLE_INPUT
    2 - DIALOG_STYLE_LIST


    Gähnnnn !


    EDIT: Beides Benutzbar *trink*

    Sollte klappen weil sonst brauch ich ein Kaffe und ein Menü von Macces um wieder denken zu können !


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {


    if(dialogid == login)
    {
    if(response == 1)
    {
    if(!strlen(inputtext)){return ShowPlayerDialog(playerid,1,1,"Login","Bitte Passwort eingeben!","Ok"," ");}
    new tmppass[64];
    strmid(tmppass,imputtext, 0, strlen(imputtext), 255);
    Encrypt(tmppass);
    OnPlayerLogin(playerid,tmppass);
    {
    // Anmelden und so weiter


    }
    else
    {
    GameTextForPlayer(playerid, "~p~DEPP :P", 5000, 4);
    }
    }
    }
    }

    Sollte reichen da du keine abfrage brauchst wegen ob der es nochmal macht !




    if(!strlen(inputtext)){return ShowPlayerDialog(playerid,1,1,"Login","Bitte Passwort eingeben!","Ok"," ");}
    new tmppass[64];
    strmid(tmppass,imputtext, 0, strlen(imputtext), 255);
    Encrypt(tmppass);
    OnPlayerLogin(playerid,tmppass);

    Weil Duisburg angst hat vor Krawallen oder andere sachen das andere sachen behindert werden z.b Verkehr !
    Duisburg hat den schlimmsten fehler gemacht und ein kleines Gelände ausgesucht dabei sogar ein Zaun gesetzt und damit nur ein eingang und ausgang geschaffen und das unter einer brücke dümmer geht es echt nicht mehr -,-


    Ich war mit meiner Kollegin vor ort und ich habe das pech wiederfahren das ich unter menschen gekommen bin weil es gang und gebe war geschubst zu werden !
    diese Organisiation war unter aller sau die hätten die eingänge alle runderherum frei lassen sollen -,-
    aber nein da wollten wohl welche wieder sparen !



    Loveparade 2011-2012-2013 wird es nicht mehr geben weil wer will zu etwas kommen wo es tote gab obwohl da party sein sollte -,-


    aber auch dumm das alle wiederum reinstürmen wollen -,- naja Menschen einfach !

    sonst mach es doch einfach so das die teams zwischen
    0
    1
    gewählt werden und nicht nach
    1
    2
    also das du Define 1 zu 0 und 2 zu 1 machst !


    if(TEAM_GREEN_ANZAHL == 0 &&TEAM_GREEN_ANZAHL == 0) // Ist Keiner der Team besetzt wird das hier aufgerufen!
    {
    zufallzahl = rand(1); // Zahl zwischen 0 und 1
    }


    und danach immer wieder testen =) sollte ihrgendwie gehen dann =) du musst aber immer /ctboff machen davor !!!!

    Soooo Update xD
    Infos im Quellcode ! sollte dann logisch werden ! versuche es mal weil bei mir in den Demo script geht es ! weil sonst kann ich nicht mehr helfen =)




    #define TEAM_GREEN 1
    #define TEAM_BLUE 2


    new TEAM_GREEN_ANZAHL;
    new TEAM_BLUE_ANZAHL;



    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/ctb", cmdtext, true, 10) == 0)
    {
    IsInCTB[playerid]=1;
    SendClientMessage(playerid,COLOR_YELLOW,"Willkommen im Capture the Boat.");


    new zufallzahl;
    if(TEAM_GREEN_ANZAHL == 0 &&TEAM_GREEN_ANZAHL == 0) // Ist Keiner der Team besetzt wird das hier aufgerufen!
    {
    zufallzahl = rand(1); // Zahl zwischen 0 und 1
    zufallzahl = zufallzahl +1; // der wert von oben wird +1 genommen!
    }

    if(zufallzahl == TEAM_GREEN || TEAM_GREEN_ANZAHL != TEAM_BLUE_ANZAHL && TEAM_GREEN_ANZAHL<= TEAM_BLUE_ANZAHL)
    // WENN zufallzahl [GLEICH] 1 [ODER] TEAM_GREEN_ANZAHL [UNGLEICH] TEAM_BLUE_ANZAHL [UND] TEAM_GREEN_ANZAHL[KLEINER/GLEICH] TEAM_BLUE_ANZAHL
    {
    TEAM_GREEN_ANZAHL++; // Team hat ein mehr einmal die Anzahl erhöhen !
    gTeam[playerid] = TEAM_GREEN; // Weist gTeam die TEAM_GREEN also 1 zu !
    SetPlayerPos(playerid,1980.0054,-266.6487,2.9653); // Pos SPAWN
    InGreenTeam[playerid] = 1; // finde ich unütze aber naja deine sache =)
    }
    if(zufallzahl == TEAM_BLUE || TEAM_GREEN_ANZAHL != TEAM_BLUE_ANZAHL && TEAM_GREEN_ANZAHL>= TEAM_BLUE_ANZAHL)
    {
    TEAM_BLUE_ANZAHL++;
    gTeam[playerid] = TEAM_BLUE;
    SetPlayerPos(playerid,2359.2703,540.5911,1.7969);
    InBlueTeam[playerid] = 1;
    }


    TextDrawShowForPlayer(playerid,CTBDRAW);
    return 1;
    }

    if (strcmp("/ctboff", cmdtext, true, 10) == 0)
    {
    IsInCTB[playerid]=0;
    if(gTeam[playerid] == TEAM_GREEN)
    {
    TEAM_GREEN_ANZAHL--; // Abzahl abziehen bei rausgehen !
    InGreenTeam[playerid] = 0;
    }
    if(gTeam[playerid] == TEAM_BLUE)
    {
    TEAM_BLUE_ANZAHL--; // Abzahl abziehen bei rausgehen !
    InBlueTeam[playerid] = 0;
    }
    gTeam[playerid] = 0;
    SpawnPlayer(playerid);
    TextDrawHideForPlayer(playerid,CTBDRAW);
    return 1;
    }

    return 0;
    }

    zeig mal dein Loginsystem ! wo alles geladen wird !


    INFO: Mach eine Variabel mit den Geld um cheaten zu umgehen ! alles was abgeht muss auf diese Variabel auch abgehen ! das spart dir das einer mal ebend eine haufen summe geld cheatet sicher ist sicher =)

    8D = xD garnicht schlecht soll der mal testen xD


    Hier ich habe grade langeweile und mein Selfmade erlaubt mir grade für andere zu coden xD.
    das hier ist zwar nicht deine lösung weil ich sehe eigendlich kein fehler!




    new TEAM_GREEN_ANZAHL;
    new TEAM_BLUE_ANZAHL;


    if (strcmp("/ctb", cmdtext, true, 10) == 0)
    {
    IsInCTB[playerid]=1;
    SendClientMessage(playerid,COLOR_YELLOW,"Willkommen im Capture the Boat.");
    if(TEAM_GREEN_ANZAHL != TEAM_BLUE_ANZAHL && TEAM_GREEN_ANZAHL<= TEAM_BLUE_ANZAHL)
    {
    TEAM_GREEN_ANZAHL++;
    gTeam[playerid] = 1;
    SetPlayerPos(playerid,1980.0054,-266.6487,2.9653);
    InGreenTeam[playerid] = 1;
    }
    if(TEAM_GREEN_ANZAHL != TEAM_BLUE_ANZAHL && TEAM_GREEN_ANZAHL>= TEAM_BLUE_ANZAHL)
    {
    TEAM_BLUE_ANZAHL++;
    gTeam[playerid] = 2;
    SetPlayerPos(playerid,2359.2703,540.5911,1.7969);
    InBlueTeam[playerid] = 1;
    }

    TextDrawShowForPlayer(playerid,CTBDRAW);
    return 1;
    }

    Mhh warum aber zufall ? was ist wenn aufeinmal ein team 5 hat und das andere nur 2 ? mies oder ?


    mach doch einfach genau so das wenn team1 einen mehr hat als team2 wird der nächste spieler in team2 geleitet !
    würde doch ausgleich schaffen als so ein zufall :thumbup:



    Zu dein Problem ich finde da kein fehler in den zeilen !



    if (strcmp("/ctb", cmdtext, true, 10) == 0)
    {
    IsInCTB[playerid]=1;
    SendClientMessage(playerid,COLOR_YELLOW,"Willkommen im Capture the Boat.");
    gTeam[playerid] = 1+random(1);
    if(gTeam[playerid] == TEAM_GREEN)
    {
    SetPlayerPos(playerid,1980.0054,-266.6487,2.9653);
    InGreenTeam[playerid] = 1;
    }
    else
    {
    SetPlayerPos(playerid,2359.2703,540.5911,1.7969);
    InBlueTeam[playerid] = 1;
    }

    TextDrawShowForPlayer(playerid,CTBDRAW);
    return 1;
    }



    wie hast du TEAM_GREEN und BLUE definiert?


    Kann ich dir wohl sagen xD


    #define TEAM_GREEN 1
    #define TEAM_BLUE 2