Beiträge von M4rciii

    if (strcmp("/rosenkaufen", cmdtext, true, 10) == 0)
    {
    if(PlayerToPoint(3.0, playerid,1513.4825,-1634.9133,13.3469))
    {
    if(GetPlayerMoney(playerid) >= 30)
    {
    GivePlayerWeapon(playerid, 14,1);
    GivePlayerMoney(playerid,-30);
    }
    else
    {
    SendClientMessage(playerid, COLOR_WHITE, "Du Hast nicht genügend Geld");
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_LIGHTRED, " Du bist nicht am Richtigen Ort");
    }
    return 1;
    }


    SO ist das richtig, das davor war Blödsinn.

    Ja, dazu sollte aber noch wissen, dass es der/die/das State PLAYER_STATE_DRIVER sein muss.



    public OnPlayerStateChange(playerid, newstate, oldstate)
    {
    if(newstate == PLAYER_STATE_DRIVER)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    if(strcmp(dini_Get(vehicle[vehicleid],"besitzer"),name,true)==1 && strcmp(dini_Get(vehicle[vehicleid],name),"key",true)==1 && auf[playerid][vehicleid]!=1){}
    else RemovePlayerFromVehicle(playerid);
    }
    return 1;
    }

    Ne, hab den Fehler gefunden. Er ist in deinem Code:
    public NotOnWhitelist(playerid)
    {
    new
    ThePlayer[MAX_PLAYER_NAME],
    key[128];
    GetPlayerName(playerid, ThePlayer, sizeof(ThePlayer));
    new File: file = fopen("whitelist.cfg", io_read);
    if (file)
    {
    while(fread(file,key))
    {
    if(strcmp(key,ThePlayer,true)==0) { return 1; }
    }
    }
    fclose(file);
    return 0;
    }


    public OnPlayerConnect(playerid)
    {
    if(WHITELIST == 1) // Steht nur dafür, ob sie auch aktiviert ist. Und das ist sie, das wird beim starten des Servers nämlich in das Serverfenster geschrieben
    {
    if(NotOnWhitelist(playerid)) { SendClientMessage(playerid, COLOR_RED, "Du stehst nicht auf der Whitelist!"); Kick(playerid); return 1; }
    }
    // Der Rest von OnPlayerConnect


    Wenn eine Datei erstellt werden soll, muss auch wo ein
    dini_Create(c);
    oder so ähnlich vorkommen. In Etwa so:


    if(dini_Exists(c)) { dini_Create(c); }
    dini_IntSet(c,"id",1);
    dini_FloatSet(c,"x",-1528.3800);
    dini_FloatSet(c,"y",161.5145);
    dini_FloatSet(c,"z",3.6471);
    dini_FloatSet(c,"angel",315.6407);
    dini_IntSet(c,"cid",-1);
    dini_IntSet(c,"cid2",-1);
    dini_Set(c,"besitzer",name);

    public Whitelist(playerid)
    {
    new
    ThePlayer[MAX_PLAYER_NAME],
    key[128];
    GetPlayerName(playerid, ThePlayer, sizeof(ThePlayer));
    new File: file = fopen("whitelist.cfg", io_read);
    if (file)
    {
    while(fread(file,key))
    {
    if(strcmp(key,ThePlayer,true)==0) { return 1; }
    }
    }
    fclose(file);
    return 0;
    }


    PS: Der Fehler war, dass die Datei nicht in key reingelesen wurde und somit key ein leerer String war.

    SetTimer("Nachricht",180000,1);
    SetTimer("Nachricht2",300000,1);
    SetTimer("Nachricht3",480000,1)


    Hier können eig nur Errors kommen, wenn du es an einen unmöglichen Ort getan hast, zB außerhalb eines Callbacks. Also tu es in OnGameModeInit rein.


    BrighT: i und j sind verschiedene Buchstaben :P

    Könnte daran liegen, dass du kein strtok nutzst und somit auch kein idx als Länge benutzt wird.
    Mach es so:
    dcmd_ad(playerid,params[]){return dcmd_advertise(playerid,params);}
    dcmd_advertise(playerid,params[])
    {
    new sendername[MAX_PLAYER_NAME], string[128], result[64];
    GetPlayerName(playerid, sendername, sizeof(sendername));
    if(IsPlayerConnected(playerid))
    {
    if(gPlayerLogged[playerid] == 0)
    {
    SendClientMessage(playerid, COLOR_GREY, " Du bist derzeit nicht eingeloggt !");
    return 1;
    }
    if(PlayerInfo[playerid][pLevel] < 3)
    {
    SendClientMessage(playerid, COLOR_GREY, " Du musst mindestens Level 3 sein !");
    return 1;
    }
    if(sscanf(params,"s",result))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutze: (/ad)vertise [advert text]");
    return 1;
    }
    if ((!adds) && (PlayerInfo[playerid][pAdmin] < 1))
    {
    format(string, sizeof(string), " Es wurde bereits geworben warte %d sekunden !", (addtimer/1000));
    SendClientMessage(playerid, COLOR_GRAD2, string);
    return 1;
    }
    new idx = strlen(result);
    new payout = idx * 25;
    if(GetPlayerMoney(playerid) < payout)
    {
    format(string, sizeof(string), "* Du hast %d erreicht dies kostet dich $%d, du hast nicht genug Geld.", idx, payout);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    return 1;
    }
    PlayerMoney[playerid] -= payout;
    SBizzInfo[7][sbTill] += payout;
    ExtortionSBiz(7, payout);
    format(string, sizeof(string), "Werbung: %s, Nummer: %s Ph: %d", result, sendername,PlayerInfo[playerid][pPnumber]);
    OOCNews(TEAM_GROVE_COLOR,string);
    format(string, sizeof(string), "~r~Paid $%d~n~~w~Message contained: %d Characters", payout, idx);
    GameTextForPlayer(playerid, string, 5000, 5);
    if (PlayerInfo[playerid][pAdmin] < 1){SetTimer("AddsOn", addtimer, 0);adds = 0;}
    }
    return 1;
    }


    Sorry 4 fuckin' indentation

    Macht es denn Sinn, wenn einem Admin geschickt wird, er solle doch jemanden beobachten, die Person aber im selben Moment gebannt wird?
    Außerdem würde es hier Probleme geben:
    KillTimer(CheckWeapon);
    Da CheckWeapon die Funktion ist und nicht eine Variable mit der TimerID.
    Hoffe du verstehst, was ich meine :)

    Das könnte so klappen:
    public OnVehicleDeath(vehicleid)
    {
    if(vehicleid == lspdcar1)
    {
    DestroyVehicle(vehicleid);
    }
    return 1;
    }

    0x00000000


    Diese zwei Ziffern ist der Alpha-Wert (oder so) der Farbe, das bedeutet so viel wie Transparenz. Wenn die 00 is, dann is die Farbe nix. Also mach die 2 Zahlen zu AA und es wird halbtransparent. Mit FF wirds ganz untransparent ^^.


    Also mach die Farbe zu

    Code
    0x000000AA

    Da du ein INT-eger raushaben willst, solltest du bei "2" die Anführungszeichen weglassen.

    dcmd_klau(playerid,params[])
    {
    new pID;
    if(sscanf(params,"u",pID))
    {
    return SendClientMessage(playerid,ROT,"Benutzung: /klau [playerID] ");
    }
    if(!IsPlayerConnected(pID))
    {
    return SendClientMessage(playerid,COLOR_RED,"Kein Spieler mit der angegebenen ID online");
    }
    if(GetDistanceBetweenPlayer(playerid,pID) < 5.0)
    {
    GivePlayerMoney(playerid,200);
    GivePlayerMoney(pID,-200);
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du bist nicht nah genug am Spieler");
    }
    return 1;
    }


    So, das ist jetzt ohne Schreibfehler wie "paramas" und "sscand". Du brauchst aber noch die Funktion GetDistanceBetweenPlayers, die im GF drin ist.
    Füg dann noch das in OnPlayerCommandText ein:
    dcmd_klau(klau,4,cmdtext);

    Danke, funktioniert! :thumbup:


    Neues Problem:


    Ist es möglich in einem Textfeld die Vorschläge auszublenden von den schon zuvor eigegebenen Wörter?
    Ich hab schon viel gegoggelt, aber bin nur auf "autocomplete="off"" gekommen, was nicht funktioniert. Manche sagen Nein, manche Ja, aber wissen nicht wie...