Beiträge von B3ST3

    das 2. tor geht trozdem nicht auf was amche ich falsch?



    forward Torschliessen();
    forward tornametimer();
    new Gate;


    Gate = CreateObject(969,209.88281250,1875.65026855,12.37789536,0.00000000,0.00000000,0.00000000);
    Gate1 = CreateObject(988,96.72574615,1920.61181641,17.24023247,0.00000000,0.00000000,270.00000000);


    if (strcmp("/tor", cmdtext, true, 10) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,10,209.88281250,1875.65026855,8.377895355225))
    {
    MoveObject(Gate,209.88281250,1875.65026855,8.377895355225,5.0);
    SetTimer("Torschliessen",5000,0);
    }
    else if(IsPlayerInRangeOfPoint(playerid,10,96.72574615,1920.61181641,17.24023247))
    {
    MoveObject(Gate1,96.72574615,1920.61181641,17.24023247,5.0);
    SetTimer("Torschliessen",5000,0);
    }
    return 1;
    }


    public Torschliessen()
    {
    MoveObject(Gate,209.88281250,1875.65026855,12.37789536,5.0);
    MoveObject(Gate1,96.72574615,1920.61181641,17.24023247,5.0);
    return 1;
    }

    okay danke klappt perfekt so wie ich es wollte jetzt habe ich aber noch eine frage wie kann mehrere tore rein machen die mit dem Befehl /tor geöffnet werden also z.b. ich habe 5 tore aber alle sollen den befehl /tor haben und sich nur öffnen wenn ich halt davor stehe wie mache ich das?...

    Hey Leute wie mache ich das das Tor aufgeht wenn man davor steht weil wenn ich /tor mache und ich irgentwo bin geht es trozdem auf....


    hier mal mein Command:


    forward Torschliessen();


    new Gate;


    if (strcmp("/tor", cmdtext, true, 10) == 0)
    {
    MoveObject(Gate,209.88281250,1875.65026855,8.377895355225,5.0);
    SetTimer("Torschliessen",5000,0);
    return 1;
    }


    public Torschliessen()
    {
    MoveObject(Gate,209.88281250,1875.65026855,12.37789536,5.0);
    return 1;
    }

    Okay Hier:


    #define dcmd(%1,%2,%3) if ((strcmp((%3)[1], #%1, true, (%2)) == 0) && ((((%3)[(%2) + 1] == 0) && (dcmd_%1(playerid, "")))||(((%3)[(%2) + 1] == 32) && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1
    #define DIALOG_LOGIN 3
    #define DIALOG_REG 4
    enum spieler_daten
    {
    skin,
    geld,
    score,
    eingeloggt,
    AdminLevel
    }
    new Spieler[MAX_PLAYERS][spieler_daten];


    public OnPlayerConnect(playerid)
    {
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.datei",pname);
    if(fexist(accFormat)) ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Abbrechen","Weiter"); // Falls der Acc existiert
    else ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Abbrechen","Weiter"); // Falls er nicht existiert
    TextDrawShowForPlayer(playerid,RealClock);
    TextDrawShowForPlayer(playerid,Datum);
    TextDrawShowForPlayer(playerid,Schrift);
    SetPlayerScore(playerid,dini_Int(accFormat,"score"));
    GivePlayerMoney(playerid,dini_Int(accFormat,"geld"));
    pBombStatus[playerid] = 0;
    pPlacedBomb[playerid] = 0;
    PlaceBombFunc[playerid] = 0;
    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.datei",pname);
    if(fexist(accFormat) && Spieler[playerid][eingeloggt])
    {
    dini_IntSet(accFormat,"skin",Spieler[playerid][skin]);
    dini_IntSet(accFormat,"score",GetPlayerMoney(playerid));
    dini_IntSet(accFormat,"geld",GetPlayerMoney(playerid));
    dini_IntSet(accFormat, "AdminLevel", Spieler[playerid][AdminLevel]);
    }
    Spieler[playerid][eingeloggt] = 0;
    Spieler[playerid][skin] = 0;
    return 1;
    }



    public OnPlayerSpawn(playerid)
    {

    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.datei",pname);
    SetPlayerArmour(playerid,100);
    return 1;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.datei",pname);
    if(response)
    {
    switch(dialogid) // dialogid auswählen
    {
    case DIALOG_LOGIN: // ID Login
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Abbrechen","Weiter");
    return SendClientMessage(playerid,0xFFFFFFFF,"Kein Passwort angegeben!");
    }
    if(strcmp(inputtext,dini_Get(accFormat,"Passwort")) == 0)
    {
    Spieler[playerid][skin] = dini_Int(accFormat,"skin");
    GivePlayerMoney(playerid,dini_Int(accFormat,"geld"));
    SetPlayerScore(playerid,dini_Int(accFormat,"score"));
    Spieler[playerid][AdminLevel] = dini_Int(accFormat, "AdminLevel"); // Das Level wird aus der Datei geladen
    Spieler[playerid][eingeloggt] = 1;
    SendClientMessage(playerid,0xFFFFFFFF,"Du wurdest erfolgreich eingeloggt.");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Abbrechen","Weiter");
    return SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort war Falsch!");
    }
    }
    case DIALOG_REG: // ID Registrieren
    {
    if(!strlen(inputtext)) // Text darf nicht = Null sein Null im Sinne von nichts
    {
    ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Abbrechen","Weiter");
    return SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort ist zu kurz!");
    }
    dini_Create(accFormat);
    dini_Set(accFormat,"Passwort",inputtext);
    dini_IntSet(accFormat, "AdminLevel" , 0); // Das Adminlevel auf 0 setzen.
    Spieler[playerid][AdminLevel] = 0;
    Spieler[playerid][eingeloggt] = 1;
    SendClientMessage(playerid,0xFFFFFFFF,"Account wurde angelegt und du wurdest eingeloggt.");
    }
    }
    }
    else
    {
    switch(dialogid)
    {
    case DIALOG_LOGIN:ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Abbrechen","Weiter");
    case DIALOG_REG:ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Abbrechen","Weiter");
    }
    return 1;
    }




    dcmd_setlevel(playerid,params[])
    {
    new pID, Level;
    if(sscanf(params, "ud",pID,Level))return SendClientMessage(playerid,0xFF0000FF,"Benutze: /setlevel [ID][Level]!"); //Falls nur /setlevel eingegeben wurde
    if (pID == INVALID_PLAYER_ID)return SendClientMessage(playerid,0xFF0000FF,"Spielerid ist nicht vorhanden!");
    // Falls eine falsche ID angegeben wurde, wird 0 returnt
    if (IsPlayerAdmin(playerid)) // Hier wird abgefragt ob das Level des Spielers der den Befehl eingegeben hat größer als 3 ist.
    {
    new adminstring[128],levelsetter[MAX_PLAYER_NAME], playername[MAX_PLAYER_NAME];
    GetPlayerName(pID,playername,sizeof playername);
    format(adminstring,sizeof(adminstring),"Admins/%s.sav",playername);
    GetPlayerName(playerid,levelsetter,sizeof(levelsetter));
    Spieler[pID][AdminLevel] = Level; //Hier wird die Levelvariable mit dem neu eingegebenen Level überschrieben
    dini_IntSet(adminstring,"AdminLevel",Level); // Und hier das neue Level in der Datei gespeichert.
    format(adminstring,sizeof(adminstring),"%s hat dein Level auf %d gesetzt!",levelsetter, Level);
    SendClientMessage(pID,0x33FF33FF, adminstring);
    }
    else return SendClientMessage(playerid, 0xFF0000FF, "Dein Level reicht nicht aus!");
    // Falls das Level nicht ausreicht wird dieser Text gesendet.
    return 1;
    }
    dcmd_kick(playerid,params[])
    {
    new pID, str[64];
    if(sscanf(params, "uz",pID,str))return SendClientMessage(playerid,0xFF0000FF,"USAGE: /kick ID Grund");
    //Falls nur /Kick eingegeben wurde
    if (pID == INVALID_PLAYER_ID)return SendClientMessage(playerid,0xFF0000FF,"Kein Spieler mit angegebener ID Online!");
    //Falsche Id
    if (pID == playerid)return SendClientMessage(playerid,0xFF0000FF,"Du kannst dich nicht selber kicken!");
    // Falls man seine eigene ID angegeben hat
    if(Spieler[playerid][AdminLevel] > 0) // Wenn das Level größer ist als 0
    {
    new ThePlayer[MAX_PLAYER_NAME], str2[128];
    GetPlayerName(pID,ThePlayer,sizeof(ThePlayer));
    format(str2,sizeof(str2),"%s wurde vom Server gekickt!(Grund: %s)",ThePlayer,str[0] ? str : "<Kein Grund>");
    // Falls kein Grund angegeben wird als Grund <Kein Grund> angegeben
    SendClientMessageToAll(0xFF0000FF,str);
    Kick(pID);
    }
    else return SendClientMessage(playerid, 0xFF0000FF, "Dein Level reicht nicht aus!");
    return 1;
    }

    Ich habe grade bisschen gesucht und gesehen das schonmal jemand dieses problem hatte....


    bitte helft mir ..... Wenn ich /kill ID mache wird das leben auf 0 gesetzt und man kann mit keinen Autos fahren,man hört auch den Sound nicht mehr.


    sobalt ich /heal ID mache wird man neu gespawnt und es geht wieder alles...

    mhm wo soll das denn da rein?


    public OnPlayerConnect(playerid)
    {
    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.datei",pname);
    if(fexist(accFormat)) ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Abbrechen","Weiter"); // Falls der Acc existiert
    else ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Abbrechen","Weiter"); // Falls er nicht existiert
    TextDrawShowForPlayer(playerid,RealClock);
    TextDrawShowForPlayer(playerid,Datum);
    TextDrawShowForPlayer(playerid,Schrift);
    pBombStatus[playerid] = 0;
    pPlacedBomb[playerid] = 0;
    PlaceBombFunc[playerid] = 0;
    return 1;
    }

    Ich habe grade bei mir ein Login/register System eingebaut es gefällt mir auch eigentlich ganz gut aber iwie bekomme ich es nicht hin das der Score/Skin/Geld speichert hier mal die daten:


    #define DIALOG_LOGIN 3
    #define DIALOG_REG 4



    enum spieler_daten
    {
    score,
    geld,
    skin,
    eingeloggt
    }
    new Spieler[MAX_PLAYERS][spieler_daten];



    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.datei",pname);
    if(fexist(accFormat))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Einloggen","-");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Registrieren","-");
    }


    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.datei",pname);
    if(fexist(accFormat) && Spieler[playerid][eingeloggt])
    {
    dini_IntSet(accFormat,"skin",Spieler[playerid][skin]);
    }


    new pname[MAX_PLAYERS],accFormat[128];
    GetPlayerName(playerid,pname,sizeof pname);
    format(accFormat,sizeof accFormat,"%s.datei",pname);
    if(response)
    {
    switch(dialogid) // dialogid auswählen
    {
    case DIALOG_LOGIN: // ID Login
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Einloggen","-");
    return SendClientMessage(playerid,0xFFFFFFFF,"Kein Passwort angegeben!");
    }
    if(strcmp(inputtext,dini_Get(accFormat,"Passwort")) == 0)
    if(strcmp(inputtext,dini_Get(accFormat,"geld")) == 0)
    if(strcmp(inputtext,dini_Get(accFormat,"score")) == 0)
    if(strcmp(inputtext,dini_Get(accFormat,"skin")) == 0)
    {
    Spieler[playerid][skin] = dini_Int(accFormat,"skin");
    Spieler[playerid][eingeloggt] = 1; // Spieler ist nun erfolgreich eingeloggt
    SendClientMessage(playerid,0xFFFFFFFF,"Du wurdest erfolgreich eingeloggt.");
    SendClientMessage(playerid,0xFFFFFFFF,"Bitte waehle jetzt dein gewünschten Skin aus.");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Einloggen","-");
    SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort war Falsch!");
    }
    }
    case DIALOG_REG:
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Registrieren","Abbrechen");
    return SendClientMessage(playerid,0xFFFFFFFF,"Das Passwort ist zu kurz!");
    }
    dini_Create(accFormat);
    dini_Set(accFormat,"Passwort",inputtext);
    Spieler[playerid][eingeloggt] = 1;
    SendClientMessage(playerid,0xFFFFFFFF,"Account wurde angelegt und du wurdest eingeloggt.");
    }
    }
    }
    else
    {
    switch(dialogid)
    {
    case DIALOG_LOGINhowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login","Bitte logge dich ein","Einloggen","-");
    case DIALOG_REGhowPlayerDialog(playerid,DIALOG_REG,1,"Registrieren","Bitte Registriere dich","Registrieren","Abbrechen");
    }
    return 1;
    }



    Wie gesagt es ist alles drin nur es wird halt nicht gespeichert wenn ich -2 score habe und ich server restarte ist alles auf 0

    Hey Leute ich habe ein Problem auf meinem Server,


    wenn man aufmeinem Server z.B. eine Bombe legt sollte man eig sterben aber das Leben bleibt auf 0 stehen und mann kann noch rumgehen aber nicht in Autos steigen weil man ja eig tot sein sollte. oder wenn ich mit dem admin befehl /kill ID eingebe ist das Leben auch auf 0 und man stirbt erst wenn man iwo runter springt. Wie kann das sein bitte helfen


    wenn einer das sehen will der kann auf mein Server kommen ich zeige es ihm.

    Hier:



    #define MAX_BOMBS 50
    new pBombStatus[MAX_PLAYERS];
    new pPlacedBomb[MAX_PLAYERS];
    new BombObject[MAX_PLAYERS][MAX_BOMBS+1];
    new PlaceBombFunc[MAX_PLAYERS];
    new PlaceBombTimer[MAX_PLAYERS];


    if(strcmp(cmdtext,"/tnt",true) == 0)
    {
    {
    if (IsPlayerAdmin(playerid))
    {
    if(PlaceBombFunc[playerid] == 0)
    {
    if(pBombStatus[playerid] < MAX_BOMBS)
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    for(new i=0;i<MAX_PLAYERS;i++) { PlayerPlaySound(i,1055,x,y,z-0.85); }
    pBombStatus[playerid] += 1;
    PlaceBombFunc[playerid] = 1;
    PlaceBombTimer[playerid] = SetTimerEx("PlaceBomb",1,1,"u",playerid);
    pPlacedBomb[playerid] = 1;
    }
    return 1;
    }
    }
    }
    }


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(newkeys == KEY_FIRE)
    {
    if(GetPlayerWeapon(playerid) == 0 || GetPlayerWeapon(playerid) == 4)
    {
    if(pPlacedBomb[playerid] == 1)
    {
    if(PlaceBombFunc[playerid] == 0)
    {
    new Float:x,Float:y,Float:z;
    GetObjectPos(BombObject[playerid][pBombStatus[playerid]],x,y,z);
    for(new i=0;i<MAX_PLAYERS;i++) { PlayerPlaySound(i,1055,x,y,z); }
    CreateExplosion(x,y,z,7,20);
    DestroyObject(BombObject[playerid][pBombStatus[playerid]]);
    pBombStatus[playerid] -= 1;
    }
    }
    }
    }
    return 1;
    }



    forward DestroyBombsFromPlayer(playerid);
    public DestroyBombsFromPlayer(playerid)
    {
    if(pBombStatus[playerid] > 0)
    {
    for(new i = 0; i<MAX_BOMBS+1; i++)
    {
    DestroyObject(BombObject[playerid][i]);
    }
    }
    pPlacedBomb[playerid] = 0;
    pBombStatus[playerid] = 0;
    return 1;
    }
    forward PlaceBomb(playerid);
    public PlaceBomb(playerid)
    {
    PlaceBombFunc[playerid] += 1;
    if(PlaceBombFunc[playerid] == 4)
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    BombObject[playerid][pBombStatus[playerid]] = CreateObject(1654,x,y,z-0.90,270.0,0.0,0.0);
    }
    if(PlaceBombFunc[playerid] == 5)
    {
    KillTimer(PlaceBombTimer[playerid]);
    PlaceBombFunc[playerid] = 0;
    TogglePlayerControllable(playerid, 1);
    }
    return 1;
    }


    sagt mir bitte was ich verändern soll bzw. was ich wo einfügen muss

    Ich habe grade in meinem Script C4 eingebaut joa aber das ist nicht so was ich will ... ich will halt sone bombe die öfters explodiert an verschiedenen stellen...


    Die Bombe sollte so aussehen:


    also halt so ein Befehl /bomb dann soll der eine bombe legen und dann z.B. auf taste "B" soll die gezündet werden und es sollen mehrere explosionen endstehen.

    Hey Leute ich brauche ein /goto befehl ich habe schon gesucht und so auch mehrere gefunden aber es ging bis jetzt keiner oder mir fehlte ein plugin..


    wäre sehr nett wenn mir einer den befehl + nötigen plugin reinstellt.


    wäre sehr nett^^....danke schonmal

    Ja also ich habe ein Register System und so ich bräuchte jetzt halt nur noch so das Score und Geld gespeichert wird ^^.


    Das Login/Register System von Mr.Monat habe ich schon 2-3 mal nachgemacht immer ist mein Script geschrottet.


    Und andere Login/register Systeme gehen bei mir auch nicht ich habe bis jetzt nur 2 Gute gefunden die ich auch benutze....


    Jetzt brauche ich halt nur noch das er das Speichert und noch ein Admin System

    Hey Leute,ich brauche dringend hilfe ich suche schons ehr lange nach einem Register/login System wo Geld gespeichert wird und wo man pro kill 1 Score mehr bekommt un das auch gespeichert wird....