Beiträge von tonyalva

    Außerdem ziehst du hier:


    GivePlayerMoney(playerid, -5000);
    if(GetPlayerMoney(playerid) < 5000) return SendClientMessage(playerid, 0xAA3333AA, "Dein Geld reicht nicht aus!");


    ja bereits das Geld ab und fragst dann ab, ob das Geld ausreicht.
    Das macht ja so keinen Sinn.


    Grüße,
    tonyalva

    Sorry,


    so:


    if(GetPlayerMoney(playerid) < 5000) return SendClientMessage(playerid, 0xAA3333AA, "Dein Geld reicht nicht aus!");


    Ich weiß zwar jetzt nicht, wieso ich meinen Beitrag nicht einfach editiert habe, aber egal :P


    Nächstes mal die Suchfunktion und das Wiki durchsuchen.


    Grüße,
    tonyalva


    Danke daran lag es :)


    Grüße,
    tonyalva


    Mh,


    also die Zeile funktioniert ja und wenn ich es so mache, kann ich ja wiederum nichts attachen.
    http://wiki.sa-mp.com/wiki/OnPlayerStreamIn
    Ich glaube, dass ist schon richtig, dass es an playerid attached werden muss, allerdings enthält genau der Code zum attachen ja die Warnung ^^


    //Edit: Ein Problem weniger, jedoch klappt dies immer noch nicht.
    Hoffe, dass mir jemand helfen kann


    Grüße,
    tonyalva

    if(strcmp(cmd, "/goto", true) == 0)
    {
    if(IsPlayerConnected(playerid) && PlayerInfo[playerid][pAdmin] >= 1)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "BENUTZUNG: /goto [playerid/PartOfName]");
    return 1;
    }
    new plo,Float:plocx,Float:plocy,Float:plocz;
    plo = ReturnUser(tmp);
    if(PlayerInfo[plo][pAdmin] > PlayerInfo[playerid][pAdmin])
    {
    SendClientMessage(playerid,COLOR_GRAD2,"Der Spieler hat ein höheres Adminlevel als du!");
    return 1;
    }
    if (IsPlayerConnected(plo))
    {
    if(plo != INVALID_PLAYER_ID)
    {
    GetPlayerPos(plo, plocx, plocy, plocz);
    SetPlayerInterior(playerid, GetPlayerInterior(plo));
    PlayerInfo[playerid][pInt] = GetPlayerInterior(plo);
    SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(plo));
    if(GetPlayerState(playerid) == 2)
    {
    new tmpcar = GetPlayerVehicleID(playerid);
    SetVehiclePos(tmpcar, plocx, plocy+4, plocz);
    TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0;
    }
    else
    {
    SetPlayerPos(playerid, plocx, plocy, plocz);
    }
    SendClientMessage(playerid, COLOR_YELLOW, " Teleport!");
    GetPlayerName(playerid, sendername, sizeof(sendername));
    GetPlayerName(plo, giveplayer, sizeof(giveplayer));
    format(string, sizeof(string), " AdmCmd: Admin %s hat sich zu %s teleportiert.", sendername, giveplayer);
    AdminLog(string);
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD2, " Unbekannte ID");
    return 1;
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD2, " Du bist nicht berechtigt, diesen Befehl zu benutzen !");
    return 1;
    }
    }


    Du darfst "plo" auch nicht benutzen, bevor du es neu definiert hast.
    Für die, die sagen "versuch es doch mit giveplayerid", hier steht doch klar:

    Zitat

    plo = ReturnUser(tmp);


    Grüße,
    tonyalva

    Zitat

    if(PlayerInfo[playerid][pAdmin] > PlayerInfo[playerid][pAdmin])


    Du fragst auch ab, ob das Adminlevel von "playerid" höher ist als das von "playerid".
    Schau Dir mal an, wie ich es geschrieben habe.
    Du musst prüfen, ob der Wert von der Person, zu der Du dich portest höher ist :)


    Grüße,
    tonyalva

    if(PlayerInfo[plo][pAdmin] > PlayerInfo[playerid][pAdmin]) return SendClientMessage(playerid,COLOR_X,"Der Spieler hat ein höheres Adminlevel als du!");


    So ungefähr?
    Einfach in den Code einfügen.
    //Edit: Und natürlich die Farbe ersetzen.


    Grüße,
    tonyalva

    Zitat

    #IfWinActive, GTA:SA:MP


    Ist das auch ganz oben im Script?


    Btw,

    SendInput t/ad{enter}
    SendInput Du brauchst ein Auto?... Es darf nicht zu teuer sein?{enter}


    Das kann so nicht klappen, es wird immer nur /ad gesendet.
    Danach ist der Chat zu und der Rest wird garnicht gesendet.


    Grüße,
    tonyalva

    Ich frage mich nur eins:


    Wenn du in einem anderen Thread das hier hinbekommen hast:


    if (strcmp("/deletecar", cmdtext, true) == 0)
    {
    if (AccountInfo[playerid][AdminLevel] >= 3|| IsPlayerAdmin(playerid))
    DestroyVehicle(GetPlayerVehicleID(playerid));
    SendClientMessage(playerid,0xFF2222AA,"Du hast dein Car gelöscht");
    return 1;
    }


    Dann kannst Du ja wohl eine Abfrage ändern und diesen Command dadurch anpassen?
    Wenn Du das nicht hinkriegst, sieht es schlecht aus mit dem Scripting.


    Grüße,
    tonyalva

    vielen dank und wie mache ich das es nur admin level 1 kann?


    Eine solche einfache Abfrage dürfte Dich ja wohl nicht überfordern.
    Du kennst ja Dein Adminsystem, kannst es dementsprechend also anpassen.
    Ansonsten schaue Dir halt deine anderen Admincommands an :)


    Grüße,
    tonyalva

    Empfehlung: Benutze DINI, damit wirst du nicht soviele Probleme haben, denn da könntest du dini_IntSet("Banned",1) machen und das wäre leichter als dein derzeitiges.


    Hey,


    naja möchte jetzt nicht den ganzen GM umändern, sofern ich jedoch ein Selfmade anfange, werde ich dies wohl machen.
    Hat jemand eine Lösung für dieses System?


    Grüße,
    tonyalva

    Hey,


    ich habe ein Problem mit meinem Offlineban-Command.


    Und zwar werden die Werte zwar in die Userdatei geschrieben, ich möchte allerdings, dass die bereits vorhandenen Werte aus der Datei ausgelesen werden und sich die Werte: Banned, BanFrom, BanReason nur aktualisieren.
    Denn jetzt wird die ganze File gelöscht und nur die neuen Dateien werden reingeschrieben.


    ocmd:alock(playerid,params[])
    {
    if (PlayerInfo[playerid][pAdmin] < 4) return SendClientMessage(playerid,COLOR_GREY,"Du bist kein Administrator!");
    new acc[64], string[256],giveplayer[32],reason[128], sendername[MAX_PLAYER_NAME];
    if(sscanf(params,"s[32]s[128]",giveplayer,reason)) return SendClientMessage(playerid, COLOR_GREY,"[Benutzung]: /alock [Spieler] [Grund]");
    format(acc,sizeof(acc),"/Accounts/%s.ini",giveplayer);
    if(!fexist(acc)) {
    format(string,sizeof(string)," Der Account von %s existiert nicht!",giveplayer);
    SendClientMessage(playerid,COLOR_GRAD2,string);
    return 1;
    }
    new File:banaccount = fopen(acc,io_write);
    fwrite(banaccount,"Banned=1\n");
    GetPlayerName(playerid,sendername,sizeof(sendername));
    format(string, sizeof(string), "BanFrom=%s\n",sendername);
    fwrite(banaccount,string);
    format(string, sizeof(string), "BanReason=%s\n",reason);
    fwrite(banaccount,string);
    fclose(banaccount);
    format(string, sizeof(string), "AdmCmd: %s wurde von %s gebannt, Grund: %s",giveplayer,sendername, reason);
    SendClientMessageToAll(COLOR_LIGHTRED,string);
    format(string, sizeof(string), "[Bann:A]: Der Account von %s wurde durch %s gesperrt, Grund: %s", giveplayer, sendername, reason);
    SaveToFile("Adminlog",string);
    return 1;
    }


    }


    Kann mir jemand helfen?
    //Edit: Unnötige Zeile entfernt


    Grüße,
    tonyalva


    Hey,


    ich habe nun die erste Warnung gefixxt, jedoch bleibt beim Attach Code immer noch eine Warnung
    Folgende Zeile:


    Attach3DTextLabelToPlayer(WantedText[playerid], playerid, 0.0, 0.0, 0.7);


    Dabei tritt folgender Warnung ein:


    Zitat

    script.pwn(8424) : warning 213: tag mismatch


    Zumal es im Wiki allerdings ähnliches gibt:


    Zitat

    Attach3DTextLabelToPlayer(label[playerid], playerid, 0.0, 0.0, 0.7);


    //Edit: Nein, wenn dann überhaubt "forplayerid", allerdings soll das TextLabel ja an playerid attached werden, damit forplayerid dieses sieht, oder täusche ich mich da?


    Grüße,
    tonyalva

    Hey,


    danke für die Antwort erstmal.
    Mir ist allerdings aufgefallen, dass ich die Warning in der folgenden Zeile habe:


    wantedtext[playerid] = CreatePlayer3DTextLabel(forplayerid,string,COLOR_RED,wX,wY,wZ,40.0,playerid,INVALID_VEHICLE_ID,1);


    Grüße,
    tonyalva

    Ja tonyalva,
    aber das ist ja anders /o befehl wie bei mir



    Ist ja trotzdem das gleiche Prinzip.
    Beim Befehl /togooc setzt Du einen Bool auf 1.
    Gibst Du den Befehl nocheinmal ein, setzt Du den Wert auf 0.


    Nun fügst Du eine Abfrage in den /ooc-Befehl ein, welche abfragt, ob der Spieler, der den Befehl eingegeben hat die entsprechenden Adminrechte hat.
    Dann kann er auch bei ausgeschaltetem Chat schreiben.
    Du musst also auch überprüfen, ob der Chat ausgeschaltet ist (durch den Bool..) und lässt dann halt eine ClientMessage ausgeben :)


    Ein bisschen muss man auch selbst machen, achso:
    Schau Dir doch das Standart GF-Script an, dort ist eigentlich alles vorhanden, was Du in letzer Zeit so nachgefragt hast.


    Grüße,
    tonyalva

    Hey,


    sicherlich ganz nett für Anfänger, jedoch finde ich eine solche Art einfach unsauber:


    Zitat

    if(strcmp(cmdtext,"/waffe kaufen deagle",true)==0)


    Viel mehr solltest Du mit 2 Parametern arbeiten, einem Waffenparameter und einem Munitionsparameter, also z.B /buy deagle 10
    Dann bekommt man pro X Schuss eine bestimmte Anzahl Geld abgezogen usw.


    Grüße,
    tonyalva