Beiträge von Cody09

    kann ich nicht strget und cmd in einem gleichzeitig verwenden? Und nein, ich hab mich bis jetzt nur mit cmd beschäftigt, was muss ich da ändern? So?



    if(strcmp(cmd, "/deletecar", true) == 0)


    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    new currentveh;
    currentveh = GetPlayerVehicleID(playerid);
    DestroyVehicle(currentveh);
    SCM(playerid, COLOR_SCHWARZ, "Du hast das Auto zerstört.");
    }else{
    SCM(playerid, COLOR_ROT, "Du bist in keinem Auto");
    }


    return 1;
    }


    Ich brauch doch noch deinen /veh Befehl oder? Ich brüchte es fertig zum einbauen...


    @edit: dieser Befehl zerstört ja nur das Auto in dem die Person ist, ich brauche es aber, das alle erstellten Autos zerstört werden..

    ich hab eins im gamemode, da konnte man autos ohne probleme erstellen, aber net löschen..., hatte sufu schon benutzt...


    @edit: Code eingefügt:


    if(strcmp(cmd, "/destroycars", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pAdmin] < 1338)
    {
    SendClientMessage(playerid, COLOR_GRAD1, " Das darfst du nicht tun!");
    return 1;
    }
    for(new i = 0; i < sizeof(CreatedCars); i++)
    {
    if(i != 0)
    {
    DestroyVehicle(i);
    }
    }
    SendClientMessage(playerid, COLOR_GREY, " Alle erstellten Autos zerstört !");
    }
    return 1;
    }


    if(strcmp(cmd, "/veh", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if (PlayerInfo[playerid][pAdmin] < 1338)
    {
    SendClientMessage(playerid, COLOR_GRAD1, " Du bist kein Admin!");
    return 1;
    }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /veh [carid] [color1] [color2]");
    return 1;
    }
    new car;
    car = strval(tmp);
    if(car < 400 || car > 611) { SendClientMessage(playerid, COLOR_GREY, " Auto Nummer nicht weniger als 400 oder höher als 611 sein !"); return 1; }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /veh [carid] [color1] [color2]");
    return 1;
    }
    new color1;
    color1 = strval(tmp);
    if(color1 < 0 || color1 > 126) { SendClientMessage(playerid, COLOR_GREY, " Nicht Weniger als 0 oder höher 126 !"); return 1; }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /veh [carid] [color1] [color2]");
    return 1;
    }
    new color2;
    color2 = strval(tmp);
    if(color2 < 0 || color2 > 126) { SendClientMessage(playerid, COLOR_GREY, " Nicht weniger als 0 oder höher als 126 !"); return 1; }
    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(playerid, X,Y,Z);
    new carid = CreateVehicle(car, X,Y,Z, 0.0, color1, color2, 60000);
    CreatedCars[CreatedCar] = carid;
    CreatedCar++;
    Gas[carid] = GetGasMax(car);
    format(string, sizeof(string), " Auto %d gespawned.", carid);
    SendClientMessage(playerid, COLOR_GREY, string);
    }
    return 1;
    }


    Das ist der, der net funzt

    So,


    ich benötige einen Befehl(/veh [carid] [farbe1] [farbe2]) mit dem man Autos spawnen lassen kann, soviele man will.
    Dazu sollte es noch einen Befehl geben (/dvehicles) mit dem man ALLE erstellten Autos wieder löscht.


    Ich hoffe es kann einer für mich machen, ach ja, ich benutzte GF.


    MfG. Cody09

    Wie in der überschrift bereits erwähnt möchte ich die GameText´s wenn ich bei den Eingängen von biz/sbiz/häusern austauschen mit 3d Text labeln, vllt. könnt ihr das für mich machen: hier die Stelle..
    Wenn ihr mehr Code braucht, bitte sagen :)


    public CustomPickups()
    {
    new Float:oldposx, Float:oldposy, Float:oldposz;
    new string[256];
    //new rand;
    NameTimer();
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    GetPlayerPos(i, oldposx, oldposy, oldposz);
    new tmpcar = GetPlayerVehicleID(i);
    if(oldposx!=0.0 && oldposy!=0.0 && oldposz!=0.0)
    {
    for(new h = 0; h < sizeof(SBizzInfo); h++)
    {
    if(IsATruck(tmpcar) && IsPlayerInRangeOfPoint(i,10.0, SBizzInfo[h][sbEntranceX], SBizzInfo[h][sbEntranceY], SBizzInfo[h][sbEntranceZ]))
    {
    format(string, sizeof(string), "~w~%s~n~~r~Benoetigte Produkte~w~: %d~n~~y~Produktpreis: ~w~: $%d~n~~g~: ~w~Preis: $%d",SBizzInfo[h][sbMessage],(SBizzInfo[h][sbMaxProducts]-SBizzInfo[h][sbProducts]),SBizzInfo[h][sbPriceProd],SBizzInfo[h][sbTill]);
    GameTextForPlayer(i, string, 5000, 3);
    return 1;
    }
    if(IsPlayerInRangeOfPoint(i,3.0, SBizzInfo[h][sbEntranceX], SBizzInfo[h][sbEntranceY], SBizzInfo[h][sbEntranceZ]))
    {
    if(SBizzInfo[h][sbOwned] == 1)
    {
    format(string, sizeof(string), "~w~%s~w~~n~Inhaber: %s~n~Teilhaber: %s~n~Eintrittspreis: ~g~$%d ~w~Level : %d ~n~Benutze /enter zum betreten",SBizzInfo[h][sbMessage],SBizzInfo[h][sbOwner],SBizzInfo[h][sbExtortion],SBizzInfo[h][sbEntranceCost],SBizzInfo[h][sbLevelNeeded]);
    }
    else
    {
    format(string, sizeof(string), "~w~%s~w~~n~Dieses Business ist zu verkaufen~n~Preis ~g~$%d ~w~Level : %d ~n~Benutze /buybiz um das Biz zu kaufen",SBizzInfo[h][sbMessage],SBizzInfo[h][sbBuyPrice],SBizzInfo[h][sbLevelNeeded]);
    }
    GameTextForPlayer(i, string, 5000, 3);


    return 1;
    }
    }
    for(new h = 0; h < sizeof(HouseInfo); h++)
    {
    if(IsPlayerInRangeOfPoint(i,2.0, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez]))
    {
    if(HouseInfo[h][hOwned] == 1)
    {
    if(HouseInfo[h][hRentabil] == 0)
    {
    format(string, sizeof(string), "~w~Dieses Haus gehoert: ~n~%s~n~Level : %d",HouseInfo[h][hOwner],HouseInfo[h][hLevel]);
    }
    else
    {
    format(string, sizeof(string), "~w~Dieses Haus gehoert: ~n~%s~n~Miete: $%d Level : %d~n~Benutze /rentroom, um ein Zimmer zu mieten",HouseInfo[h][hOwner],HouseInfo[h][hRent],HouseInfo[h][hLevel]);
    }
    GameTextForPlayer(i, string, 5000, 3);
    return 1;
    }
    else
    {
    format(string, sizeof(string), "~w~Dieses Haus ist zu Verkaufen~n~Beschreibung: %s ~n~Preis: ~g~$%d~n~~w~ Level: %d~n~Benutze /buyhouse um es zu kaufen",HouseInfo[h][hDiscription],HouseInfo[h][hValue],HouseInfo[h][hLevel]);
    }
    GameTextForPlayer(i, string, 5000, 3);
    return 1;
    }
    }
    for(new h = 0; h < sizeof(BizzInfo); h++)
    {
    if(IsATruck(tmpcar) && IsPlayerInRangeOfPoint(i,10.0, BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY], BizzInfo[h][bEntranceZ]))
    {
    format(string, sizeof(string), "~w~%s~n~~r~Benoetigte Produkte~w~: %d~n~~y~Produktpreis: ~w~: $%d~n~~g~Preis: ~w~: $%d",BizzInfo[h][bMessage],(BizzInfo[h][bMaxProducts]-BizzInfo[h][bProducts]),BizzInfo[h][bPriceProd],BizzInfo[h][bTill]);
    GameTextForPlayer(i, string, 5000, 3);
    return 1;
    }
    if(IsPlayerInRangeOfPoint(i,2.0, BizzInfo[h][bEntranceX], BizzInfo[h][bEntranceY], BizzInfo[h][bEntranceZ]))
    {
    if(BizzInfo[h][bOwned] == 1)
    {
    format(string, sizeof(string), "~w~%s~w~~n~Inhaber: %s~n~Teilhaber: %s~n~Eintrittspreis: ~g~$%d ~w~Level: %d ~n~Benutze /enter zum betreten",BizzInfo[h][bMessage],BizzInfo[h][bOwner],BizzInfo[h][bExtortion],BizzInfo[h][bEntranceCost],BizzInfo[h][bLevelNeeded]);
    }
    else
    {
    format(string, sizeof(string), "~w~%s~w~~n~Dieses Business ist zu verkaufen~n~Preis: ~g~$%d ~w~Level: %d ~n~Benutze /buybiz um das Biz zu kaufen",BizzInfo[h][bMessage],BizzInfo[h][bBuyPrice],BizzInfo[h][bLevelNeeded]);
    }
    GameTextForPlayer(i, string, 5000, 3);
    return 1;
    }
    }
    }
    }
    }
    return 1;
    }


    hoffentlich kann das jemand für mich machen


    MfG. Cody09

    Tag,


    ich bin grade dabei, ein Anti-IP System in meinen Script einzubauen.
    Dieser Funktioniert auch super, bis auf, das man bei /b /l /o etc. ip´s schreiben kann.
    Hierzu wird ein Callback zur verfügung gestellt:


    if(CheckPlayerText(playerid,tmp) == 0) { return 1; }


    Wie gehe ich vor um dieses Callback in z.B. den /close befehl einzubauen?


    if(strcmp(cmd, "/close", true) == 0 || strcmp(cmd, "/c", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(gPlayerLogged[playerid] == 0)
    {
    SendClientMessage(playerid, COLOR_GREY, " Du bist noch nicht eingeloggt !");
    return 1;
    }
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[64];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = cmdtext[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    if(!strlen(result))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "FEHLER: /(c)lose [close chat text]");
    return 1;
    }
    format(string, sizeof(string), "%s Sagt: %s", sendername, result);
    ProxDetector(3.0, playerid, string,COLOR_FADE1,COLOR_FADE2,COLOR_FADE3,COLOR_FADE4,COLOR_FADE5);
    printf("%s", string);
    }
    return 1;
    }


    für weiteren Code einfach fragen


    MfG. Cody09

    Also, ich benötige für meinen Server den Befehl


    /supmobil


    Wenn man diesen Befehl eingibt soll der Spieler, wenn er in einem Auto ist, aus dem Auto heraus geworfen werden.
    Admin/Sup bezeichnung: if(PlayerInfo[playerid][pAdmin] >= 1 || PlayerInfo[playerid][pSupporter] >= 1)
    Dann soll das Spawnen und der Spieler in das Fahrzeug hineingesetzt werden:


    new Float:X,Float:Y,Float:Z;
    GetPlayerPos(playerid, X,Y,Z);
    AddStaticVehicle(583,X+3,Y+1,Z+1, 0.0, 106, 106);


    Wenn der Sup/Admin das Fahrzeug verlässt soll es zerstört werden.


    MfG. Cody09

    Hallo,


    Ich habe das Problem, das zurzeit die Fahrschule auf unserem Server nicht betriebsbereit ist, da der Befehl /startlesson nicht geht. Immer wenn man /startlesson [id] macht und derjenige dann Fahrschul Autos betreten will, kommt " Du hast kein Schlüssel"


    Hier: onplayerstatechange


    if(!IsPlayerInFrac(playerid,11) || TakingLesson[playerid] != 1)
    {
    for(new pv = 0; pv < sizeof(FahrschulVehs); pv++)
    {
    if(newcar == FahrschulVehs[pv])
    {
    SendClientMessage(playerid,COLOR_RED,"Du hast keine Schlüssel!");
    RemovePlayerFromVehicle(playerid);
    }
    }
    }


    /startlesson:


    if(strcmp(cmd, "/startlesson", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pMember] == 11 || PlayerInfo[playerid][pLeader] == 11)
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_WHITE, "USAGE: /startlesson [playerid/PartOfName]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    if(IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {


    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    format(string, sizeof(string), "* Du hast %s's Lehrstunde Gestartet.",giveplayer);
    SendClientMessage(playerid, COLOR_WHITE, string);
    format(string, sizeof(string), "* Fahrlehrer %s hat deine Lehrstunde gestartet.",sendername);
    SendClientMessage(giveplayerid, COLOR_WHITE, string);
    TakingLesson[giveplayerid] = 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Dieser Spieler ist Offline !");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, " Du bist kein Fahrlehrer !");
    return 1;
    }
    }
    return 1;
    }


    Wenn ihr mehr braucht, einfach schreiben


    Ich hoffe das es dann funktionieren wird, da dies den kompletten Betrieb der Fahrschul Fraktion lahmlegt


    MfG. Cody09

    Hallo,


    ich habe das Problem, das ich einen Befehl erstellt habe, mit dem man sich auf den Fahrersitz des Autos setzen kann.
    Jedoch geht das nur für die Personen die den Befehl eingeben.


    Wäre es möglich, diesen zu erweitern, sodass ich eingeben muss /getincar [playerid] [carid]


    Hier der Befehl


    if(strcmp(cmd, "/getincar", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "USAGE: /getincar [carid]");
    return 1;
    }
    new testcar = strval(tmp);
    if (PlayerInfo[playerid][pAdmin] >= 3)
    {
    new Float:cwx2,Float:cwy2,Float:cwz2;
    GetVehiclePos(testcar, cwx2, cwy2, cwz2);
    if (GetPlayerState(playerid) == 2)
    {
    SetVehicleToRespawn(GetPlayerVehicleID(playerid));
    RemovePlayerFromVehicle(playerid);
    PutPlayerInVehicle(playerid, testcar, 0);
    }
    else
    {
    SetPlayerInterior(playerid,0);
    PutPlayerInVehicle(playerid, testcar, 0);
    }
    SendClientMessage(playerid, COLOR_ORANGE, "** Du wurdest teleportiert");
    format(string, sizeof(string), "[ADMIN]: %s hat sich selbst in zu der Carid: [%d] teleportiert.", sendername, testcar);
    ABroadCast(COLOR_LIGHTRED,string, 5);
    DisablePlayerCheckpoint(playerid);
    }
    else
    {
    SendClientMessage(playerid, COLOR_GRAD1, "** Du bist kein Admin!");
    return 1;
    }
    }
    return 1;
    }


    Hoffentlich könnt ihr mir helfen


    MfG. Cody09

    Hallo,


    wie in der überschrift bereits gesagt, benötige ich ein Script, der die Wanteds des Spielers über dem Kopf anzeigt.


    Der ROTE 3d Text soll enthalten:


    -Wanteds:
    -Grund:


    -Diesen 3d Text sollen nur Cops sehen... (ich glaub mit isacop)
    -Wenn Spieler keine Wanteds hat, kein 3d Text anzeigen...


    Genau, mehr brauche ich nicht, wer weitere Infos braucht, bitte melden.


    MfG. Cody09

    hm, ich Poste jetzt mal den gesamten zusammenhang(alle Befehle, etc. die mit dem Zusammenhängen...ich schaff es nicht..)


    pRoadblock,


    Bein onplayerdiscontect:

    if (PlayerInfo[playerid][pRoadblock] != 0)
    {
    RemoveRoadblock(playerid);
    }


    /rb
    if(strcmp(cmdtext, "/roadblock", true)==0 || strcmp(cmdtext, "/rb", true)==0)
    {
    if (!IsACop(playerid)) return SendClientMessage(playerid, COLOR_GREY, "Du bist kein Cop!");
    if (PlayerInfo[playerid][pRank] < 2)
    {
    SendClientMessage(playerid, COLOR_GREY, "Du mußt mindestens Rang 2 haben um diesen Befehl nutzen zu können!");
    return 1;
    }
    if (PlayerInfo[playerid][pRoadblock] != 0) return SendClientMessage(playerid, COLOR_GREY, "Du kannst nur eine Straßensperre errichten, gib /rrb ein um eine vorhandene Sperre zu entfernen.");
    new Float:X, Float:Y, Float:Z, Float:A;
    GetPlayerPos(playerid, X, Y, Z);
    GetPlayerFacingAngle(playerid, A);
    PlayerInfo[playerid][pRoadblock] = CreateObject(981, X, Y, Z, 0.0, 0.0, A+180);
    SetPlayerPos(playerid, X, Y, Z+4);
    GameTextForPlayer(playerid, "~w~Strassensperre ~r~platziert", 5000, 5);
    SendClientMessage(playerid, COLOR_GREEN, "Starßensperre erfolgreich platziert, gib /rrb oder /roadunblock ein um sie zu entfernen.");
    //roadblocktimer = 1;
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "HQ: Officer %s hat eine Straßensperre platziert, auf der Karte ist sie als Checkpoint zu sehen.", sendername);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsACop(i))
    {
    SetPlayerCheckpoint(playerid, X, Y, Z-10, 1.0);
    SendClientMessage(i, TEAM_BLUE_COLOR, string);
    if (PlayerInfo[i][pRank] >= 5 && PlayerInfo[i][pMember] || PlayerInfo[i][pLeader] == 1)
    {
    SendClientMessage(i, COLOR_YELLOW, "Du kannst alle Sperren mit /rrball entfernen");
    }
    }
    }
    }
    return 1;
    }


    /rrb + /rrball


    if(strcmp(cmdtext, "/roadunblock", true)==0 || strcmp(cmdtext, "/rrb", true)==0)
    {
    if(!IsACop(playerid))
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Cop!");
    return 1;
    }
    if (PlayerInfo[playerid][pRank] < 2)
    {
    SendClientMessage(playerid, COLOR_GREY, "Du mußt mindestens Rang 2 haben um diesen Befehl nutzen zu können!");
    return 1;
    }
    if (PlayerInfo[playerid][pRoadblock] == 0)
    {
    SendClientMessage(playerid, COLOR_GREY, "Du hast keine Straßensperre platziert!");
    return 1;
    }
    RemoveRoadblock(playerid);
    SendClientMessage(playerid, COLOR_GREEN, "Straßensperre erfolgreich entfernt.");
    return 1;
    }


    if(strcmp(cmdtext, "/roadunblockall", true)==0 || strcmp(cmdtext, "/rrball", true)==0)
    {
    if (PlayerInfo[playerid][pRank] >= 2 && PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pAdmin] > 1 || PlayerInfo[playerid][pLeader] == 2 || PlayerInfo[playerid][pMember] == 2)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(PlayerInfo[i][pRoadblock] != 0)
    {
    RemoveRoadblock(i);
    }
    }
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "HQ: Durch die Anordnung von Officer %s wurden alle Starßensperren entfernt.", sendername);
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(PlayerInfo[i][pMember] == 1 || PlayerInfo[i][pLeader] == 1 || PlayerInfo[playerid][pLeader] == 2 || PlayerInfo[playerid][pMember] == 2)
    {
    SendClientMessage(i, TEAM_BLUE_COLOR, string);
    }
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du mußt Rang 2 haben oder Polizeichef sein um alle Straßensperren entfernen zu können!");
    }
    return 1;
    }


    Public remove roadblock:


    public RemoveRoadblock(playerid)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(PlayerInfo[i][pMember] == 1 || PlayerInfo[i][pLeader] == 1)
    {
    DisablePlayerCheckpoint(i);
    }
    }
    }
    DestroyObject(PlayerInfo[playerid][pRoadblock]);
    PlayerInfo[playerid][pRoadblock] = 0;
    return 1;
    }


    Das ist wirklich wichtig, ich hänge grade nur an diesem Punkt beim Scripten fest

    mom, ich hab herausgefunden, woran es lag, daran ist nichts falsch, aber ich habe ein Include, das heist noDM v.3.


    Immer wenn ich in dieser No-DM zone bin, wird das was ich oben im Code aufgelistet habe angezeigt, gibt es da Id´s(also das die sich vertauschen können?)