Beiträge von Rapfabrik

    Hy leute,


    Ich muss mich doch immer über /rcon login [password] einloggen damit ich meine IsPlayerAdmin commands nutzen kann und nun wolte ich fragen ob es dafür ein DCMD Command gibs mit den man sich z.b mit /alogin [password] einloggt ... wenn es geht auch bitte das es für jeden steht Adminx hat sich als Admin eingeloggt!


    Danke für eure Nette Hilfe

    Nimmt euch ein beispiel an


    [NSG]Bright


    kurz und strenk rein gehaun :D


    Danke funktioniert 1A [NSG]Bright :)



    Thema erledigt


    MFg Rapfabrik

    was hat das mit Kick zu tun ???? :thumbdown: :thumbdown:


    WTF.. alta was ist mit dir?


    Kick? verstehst du nicht?


    Ok !


    Kick: Wenn ein Spieler vom Server fliegt ohne das wahrscheinlich zu wollen dann wird er vom server ODER ADMIN geKICKT das Heist er wird gegen sein willen vom Server weck geschmissen ohne das er es verhindern kann!!! Dann steht da oben im chat "Server closed the connnection" auch dir gebe ich ein tipp wenn du im server bist und sowas wie "Server closed the connection" liest bitte denn server verlässt weil dann bist du quasi nicht mehr im Online Game. Ich hoffe du hast verstanden warum das damit zu tun hat.


    So zum Thema!


    Wenn Spieler A ( ID 1 ) sich einloggt dann muss er doch passwort eingeben (ja das muss er ojaa das muss er sicherlich :D )
    Und wenn er 3x Falsch macht dann kommt schon das böse rote "Server closed the connection"
    Das gehört sich auch so.


    Aber dann kommt Spieler B ( ID 0) rein und macht ausersehen ein Falsches passwort ( nicht 2 nur 1 )
    Jetzt hat er doch noch 2 Versuche oder? Doch hat er weil Spieler A (ID 1) es ja auch hatte
    aber nein spieler B (ID 0) wird gleich beim ersten mal gekickt "Server closed the connection"


    Also id 0 ist das Problem !!! Wie kann ich den bug beseitigen?


    Hoffe ich habe mich genug ausgedrückt!


    MFg Rapfabrik

    Hallo


    Ich habe ien problem unzwar funktioniert diese funktion nur bei der ID 0..



    {
    new pname2[MAX_PLAYER_NAME];
    new pname3[MAX_PLAYER_NAME];
    new string2[64];
    new string3[128];
    GetPlayerName(playerid, pname2, sizeof(pname2));
    format(string2, sizeof(string2), "%s.cer", pname2);
    new File: UserFile = fopen(string2, io_read);


    if (UserFile)
    {
    new valtmp[128];
    fread(UserFile, valtmp);strmid(PlayerInfo[playerid][pPasswort], valtmp, 0, strlen(valtmp)-1, 255);


    if ((strcmp(PlayerInfo[playerid][pPasswort], string, true, strlen(valtmp)-1) == 0))
    {
    new key[128],val[128];
    new Data[128];
    while(fread(UserFile,Data,sizeof(Data)))
    {
    key = ini_GetKey(Data);
    if( strcmp( key , "Kills" ,true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pKills] = strval( val ); }
    if( strcmp( key , "Deaths",true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pDeaths] = strval( val ); }
    if( strcmp( key , "Geld" ,true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pCash] = strval( val ); }
    GivePlayerMoney(playerid,PlayerInfo[playerid][pCash]);
    }
    fclose(UserFile);
    gPlayerLogged[playerid] = 1;
    gPlayerAccount[playerid] = 1;
    new kills = PlayerInfo[playerid][pKills];
    SetPlayerScore(playerid, kills);
    GetPlayerName(playerid, pname3, sizeof(pname3));
    format(string3, sizeof(string3), "Willkommen %s, du hast dich erfolgreich eingeloggt!", pname3);
    SpawnPlayer(playerid);
    SendClientMessage(playerid, WEIS,string3);
    }
    else
    {
    Versuche[playerid]++;
    if(Versuche[playerid] == 1) { SendClientMessage(playerid, ROT, "Falsches Passwort noch 2 versuche"); }
    else if(Versuche[playerid] == 2){ SendClientMessage(playerid, ROT, "Falsches Passwort letzte chance bevor du gekickt wirst"); }
    else if(Versuche[playerid] > 2) { Kick(playerid); }


    fclose(UserFile);
    }
    }
    return 1;
    }


    also wenn amn 1 mal falsch macht hat man noch Zwei chancen es richtig zu machen.
    Aber das klappt nur bei der Id 0 also wenn der spieler id 0 hat :(
    sonst wird man gleich beim ersten mal gekickt!


    Hoffe jemand kann mir dabei helfen !!!


    Danke


    MFg

    Hab jetzt nicht ganz verstanden :(


    hier mal der code komplett



    dcmd_kick(playerid,params[])
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsPlayerAdmin(playerid))
    {
    if (gPlayerLogged[playerid] != 0){}
    else
    {
    SendClientMessage(playerid, ROT, "Du bist nicht eingeloggt (log dich mit /login (Passwort) ein !");
    }
    }
    }


    new
    sGrund[128],
    pID;

    if(sscanf(params, "dz",pID,sGrund)) {
    return SendClientMessage(playerid,ROT,"Benutze: /kick [playerid] [grund]");
    }


    if(!IsPlayerConnected(pID)) {
    return SendClientMessage(playerid,ROT,"Kein Spieler mit angegebener ID Online");
    }
    new
    ThePlayer[MAX_PLAYER_NAME],
    string[128];
    GetPlayerName(pID,ThePlayer,sizeof(ThePlayer));
    format(string,sizeof(string),"%s (ID %d) wurde von einen Admin gekickt,Grund: %s",ThePlayer,pID,sGrund[0] ? sGrund : "<Kein Grund>");
    SendClientMessageToAll(GELB,string);
    Kick(pID);
    return 1;
    }



    also wenn ein normaler spieler kick mach soll einfach nichts geschehen ... (leer)
    aber das geht irgend wie nicht ...
    der normaler Spieler kann trotzdem kick machen.. hoffe es geht bald


    danke

    Moin leute,


    warum funktioniert der cod enicht richtig?



    dcmd_kick(playerid,params[])
    {
    if(IsPlayerConnected(playerid))
    {
    if(IsPlayerAdmin(playerid))
    {
    if (gPlayerLogged[playerid] != 0){}
    else
    {
    SendClientMessage(playerid, ROT, "Du bist nicht eingeloggt (log dich mit /login (Passwort) ein !");
    }
    }
    }


    also es sollen nur admins benutzen können !!!


    geht aber leider net..


    danke für eine hilfe

    also momentan wenn ich /stats mache bekomme ich das hier:



    kills,deaths,cash



    Aber ich will das sowas steht :


    kills,deaths,cash,Bank


    und bank soll auch gespeichert werden also wenn man geld lagert und abhebt!


    hier sind mal die commands die ich schon haben ( fehlr nur noch das es abgespeichert wird):

    //---laggern---//
    dcmd_laggern(playerid,params[])
    {
    new
    string[50],
    amount;
    if(sscanf(params,"d",amount))
    {
    return SendClientMessage(playerid, ROT, "Benutze: /laggern <Betrag>!");
    }
    else if(amount < 0 || amount > GetPlayerMoney(playerid))
    {
    return SendClientMessage(playerid, ROT, "Du hast nicht genügend Geld auf der Hand!");
    }
    else
    {
    GivePlayerMoney(playerid,-amount);
    PlayerInfo[playerid][pBank] += amount;
    format(string,sizeof(string),"Du hast $%d auf dein Bankkonto eingezahlt",amount);
    SendClientMessage(playerid,GELB,string);
    }
    return 1;
    }


    //---abheben---//
    dcmd_abheben(playerid,params[])
    {
    new
    string[50],
    amount;
    if(sscanf(params,"d",amount))
    {
    return SendClientMessage(playerid, ROT, "Benutze: /abheben <Betrag>!!");
    }
    else if(amount < 0 || amount > PlayerInfo[playerid][pBank])
    {
    return SendClientMessage(playerid, ROT, "Du hast nicht genügend Geld in deiner Bank!");
    }
    else
    {
    GivePlayerMoney(playerid,amount);
    PlayerInfo[playerid][pBank] -= amount;
    format(string,sizeof(string),"Du hast $%d von deinem Bankkonto abgehoben",amount);
    SendClientMessage(playerid,GELB,string);
    }
    return 1;
    }


    Die commands sind ja eh richtig gleibt nur das mit dem bankgeld speichern!!!


    P.S: laggern und abheben kann man überall also kein playertopoint oder so ;)


    Danke.

    Hallo Leute,


    Also ich habe nun folgendes in mein script


    kill,
    death,
    cash,


    nun habe ich ein Banksystem erstellen wollen...
    und habe 2 kommandos für laggern und abheben genommen ( dcmd:abheben ) (dcmd_laggern)


    und nun habe ich genau das gleich eingefügt was bei cash in mein script stand also wenn da jetzt


    [blablablablbalbalbalbalbalbalablablbalbalbalablabl](pcash)....stand dann habe ich das gemacht
    [blablablablbalbalbalbalbalbalablablbalbalbalablabl](pBank)....pcash in pBank geändert nicht mehr!!!


    und nun wenn ich im spiel /stats machen dann kommt bei bank genau das gleiche wie es bei cahs steht...


    cash: 123$
    Bank: 123$


    auf wenn ich /abheben 1 mache kommt es bei der bank auch dazu , soll aber abgezogen werden...


    wie kann ich das denn machen?
    also das Bank eine einige speicher ort hat.....<--- wenn ich das AUCH verstanden habe kann ich mich als einen Fortgeschrittenen Scripter bezeichnen:D


    Danke im vorraus...

    Hallo,


    habe ein login system in mein gm und wenn ich /login <egal welches password> dann loggt es mich trotzdem ein O.o obwohl da stehen müsste du hast noch 2 versuche dann eins dann kick...


    könnte sich das einmal jemand anschuan dank :D



    public OnPlayerLogin(playerid,const string[])
    {
    new pname2[MAX_PLAYER_NAME];
    new pname3[MAX_PLAYER_NAME];
    new string2[64];
    new string3[128];
    GetPlayerName(playerid, pname2, sizeof(pname2));
    format(string2, sizeof(string2), "%s.cer", pname2);
    new File: UserFile = fopen(string2, io_read);


    if (UserFile)
    {
    new valtmp[128];
    fread(UserFile, valtmp);strmid(PlayerInfo[playerid][pPasswort], valtmp, 0, strlen(valtmp)-1, 255);


    if ((strcmp(PlayerInfo[playerid][pPasswort], string, true, strlen(valtmp)-1) == 0))
    {
    new key[128],val[128];
    new Data[128];
    while(fread(UserFile,Data,sizeof(Data)))
    {
    key = ini_GetKey(Data);
    if( strcmp( key , "Kills" ,true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pKills] = strval( val ); }
    if( strcmp( key , "Deaths",true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pDeaths] = strval( val ); }
    if( strcmp( key , "Geld" ,true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pCash] = strval( val ); }
    if( strcmp( key , "Bank" ,true ) == 0 ) { val = ini_GetValue( Data ); PlayerInfo[playerid][pBank] = strval( val ); }
    GivePlayerMoney(playerid,PlayerInfo[playerid][pCash]);
    GivePlayerMoney(playerid,PlayerInfo[playerid][pBank]);
    }
    fclose(UserFile);
    gPlayerLogged[playerid] = 1;
    gPlayerAccount[playerid] = 1;
    new kills = PlayerInfo[playerid][pKills];
    SetPlayerScore(playerid, kills);
    GetPlayerName(playerid, pname3, sizeof(pname3));
    format(string3, sizeof(string3), "Willkommen %s, du hast dich erfolgreich eingeloggt!", pname3);
    SpawnPlayer(playerid);
    SendClientMessage(playerid, WEIS,string3);
    }
    else
    {
    Versuche[playerid]++;
    if(Versuche[playerid] == 1) { SendClientMessage(playerid, ROT, "Falsches Passwort noch 2 versuche"); }
    else if(Versuche[playerid] == 2){ SendClientMessage(playerid, ROT, "Falsches Passwort letzte chance bevor du gekickt wirst"); }
    else if(Versuche[playerid] > 2) { Kick(playerid); }


    fclose(UserFile);
    }
    }
    return 1;
    }

    Hallo,


    wie schuat dieser befehl in Dcmd aus?



    //---Enter---//
    if(strcmp("/enter", cmdtext, true) == 0) // so hier ? dcmd_enter(playerid,params[])
    {
    if(IsPlayerConnected(playerid))
    {
    if(gTeam[playerid] == TEAM_COPS)
    {
    if (PlayerToPoint(3.0, playerid,1568.4795,-1690.1753,5.8906))// wo man /enter eingeben kann, das 3.0 ist der Radius
    {
    SetPlayerPos(playerid,246.4, 110.84, 1003.22);//Position wo der Spieler hinteleportiert wird bei /enter
    SetPlayerInterior(playerid,10);// Interoir(nur bei selbst gemachten Objekten)
    GameTextForPlayer(playerid, "~w~ Cop-Base", 5000, 1);// Text die kommt wenn man zu dem Punkt Teleoprtiert wird
    }}


    //grove
    if(gTeam[playerid] == TEAM_GROVE)
    {
    if (PlayerToPoint(3.0, playerid,2523.2729,-1679.2501,15.4970))// wo man /enter eingeben kann, das 3.0 ist der Radius
    {
    SetPlayerPos(playerid,2451.1497,-1685.2985,1013.5078);//Position wo der Spieler hinteleportiert wird bei /enter
    SetPlayerFacingAngle( playerid, 180 ); // Dreh grad
    SetPlayerInterior(playerid,2);// Interoir(nur bei selbst gemachten Objekten)
    GameTextForPlayer(playerid, "~w~ GroveStreet Base", 5000, 1);// Text die kommt wenn man zu dem Punkt Teleoprtiert wird
    }}
    //Arme
    if(gTeam[playerid] == TEAM_ARME)
    {
    if (PlayerToPoint(3.0, playerid,2721.1414,-2380.0479,17.3403))// wo man /enter eingeben kann, das 3.0 ist der Radius
    {
    SetPlayerPos(playerid,314.820984, -141.431992, 999.661987);//Position wo der Spieler hinteleportiert wird bei /enter
    SetPlayerFacingAngle( playerid, 180 ); // Dreh grad
    SetPlayerInterior(playerid,7);// Interoir(nur bei selbst gemachten Objekten)
    GameTextForPlayer(playerid, "~w~ Arme Base", 5000, 1);// Text die kommt wenn man zu dem Punkt Teleoprtiert wird
    }
    }
    //Zombie
    if(gTeam[playerid] == TEAM_ZOMBIE)
    {
    if (PlayerToPoint(3.0, playerid,940.7739,-1085.2761,24.2962))// wo man /enter eingeben kann, das 3.0 ist der Radius
    {
    SetPlayerPos(playerid,295.138977, 1474.469971, 1080.519897);//Position wo der Spieler hinteleportiert wird bei /enter
    SetPlayerInterior(playerid,15);// Interoir(nur bei selbst gemachten Objekten)
    GameTextForPlayer(playerid, "~w~ Zombie Base", 5000, 1);// Text die kommt wenn man zu dem Punkt Teleoprtiert wird
    }
    }
    }
    return 1;
    }


    wäre echt cool wenn es einer mir erklären könnte !!!



    Danke!

    Ok danke funktioniert 1A *freu* :thumbup:


    könnt ihr mir auch die 2 Frage beantworten ..:D


    Danke....!!!!!!!! 8)


    Zitat:


    *Das (das befehl /klau) nur Nutzbar ist wenn man Eingeloggt ist ( login registersystem schon drinnen ) [if(gPlayerLogged[playerid] == 1)] <- das irgend wo einfügen oder?

    geht alles nicht...


    ich werd noch verückt...


    an die includes kann es nciht liegen oder :(



    edit


    Kann es sein das mein Gamemode automatisch einen anderen sa-mp version genommen hat z.b. 0.2x oder 0.2.2 oder so?



    Jetzt gehts irgend wie wieder O.o


    habe alles neu 2x aufgesetzt und naja jetzt gehts..


    sowas behindertes will ich hoffentlich nicht wieder erleben.......



    Danke für alle die helfen wollten mfg