Beiträge von EvilToastBrot

    danfai: Die wird in LoH Standartgemäß mit dem Spielernamen und OnPlayerCommandText belegt.


    LoRdCrUnChEr: Das "Server: Unknown Command" kommt warscheinlich daher, da dann 0 returnt wird. Und mit 2 mal return 1; löst sich das auch nicht [ getestet ]


    Kevin: Moment ich probiers mal


    Nostraa: Dann ist aber ein Parameter zu wenig ;) Wie danfai gesagt hat ist das die Anzahl des Fahrzeuges.


    //Edit: Kevin: Nein funktioniert nicht.

    Ne Zunno das passt bei mir schon alles so und von DT_Cars will ich schonmal garnichts wissen ^^
    danfai:


    enum car_info
    {
    model,
    Float:px,
    Float:py,
    Float:pz,
    Float:pa,
    vid,
    Key[MAX_PLAYER_NAME],
    c1,
    c2,
    Text3D:NS,
    ABC[15],
    Fuel,
    NSID,
    BuyPrice,
    Lock,
    Nitro,
    Hyd,
    Wheel,
    Auspuff,
    SeiteL,
    SeiteR,
    FB,
    RB,
    Spoiler,
    Roof,
    Hood,
    Vent,
    Lamp,
    Paintjob,
    JobCar,
    FrakCar,
    Job,
    Frak,
    Dist
    }
    new PlayerCar[MAX_VEHICLES][car_info];

    danfai:
    Habe ich schon probiert es werden alle Variablen bis format(str, sizeof str kommt korrekt hineingeschrieben in die Log-Datei.


    Zunno:
    Nein die dateien heißen schon 0.ini, 1.ini, 2.ini usw.
    Weil wenn ich es nach dem Fahrzeugnamen benennen würde, dann könnte man ja jedes Car nur einmal kaufen.

    Oder wenn es dich nicht zuspammen soll:


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    for(new i=1;i<MAX_HAUS;i++)
    {
    if(HausInfo[i][haus_pickup] == pickupid)
    {
    new s[100];
    format(s,100,"Besitzer: %s, Preis: %d$",HausInfo[i][haus_besitzer],HausInfo[i][haus_preis]);
    SendClientMessage(playerid,0x00FF00,s);
    return 1;
    }
    }
    return 1;
    }

    Tag
    Mache einen /cars Befehl wo alle Cars angezeigt werden, die man besitzt.


    if(!strcmp("/cars", cmdtext, true))
    {
    new strr[60];
    SendClientMessage(playerid, Grey, "{D0D6D1}|~~~~~~ {22D63D} Deine Fahrzeuge{D0D6D1} ~~~~~~|");
    new countr = 1;
    for(new i = 0; i<MAX_VEHICLES; i++)
    {
    format(strr, sizeof strr, "/Cars/%d.ini", i);
    if(fexist(strr))
    {
    if(!strcmp(PlayerCar[i][Key], sendername, false))
    {
    new str[128];
    format(str, sizeof str, "Fahrzeug: %d: %s, ID: %d", countr, CarNames[PlayerCar[i][model]-400], PlayerCar[i][NSID]);
    SendClientMessage(playerid, Grey, str);
    countr++;
    }
    }
    }
    if(countr == 1) SendClientMessage(playerid, Grey, "Du besitzt kein Fahrzeug!");
    return 1;
    }



    Zum Problem:
    Ich will ja den Fahrzeugname anzeigen mit dem CarNames in
    format(str, sizeof str, "Fahrzeug: %d: %s, ID: %d", countr, CarNames[PlayerCar[i][model]-400], PlayerCar[i][NSID]);
    Aber das will irgendwie nicht. Errors/Warnings keine, aber wenn ich im Game /cars mache steht dort: "SERVER: Unknowm Command."
    Habe jetzt rausgefunden, dass diese Zeile den Befehl /cars komplett beendet. Der Rest läuft garnicht mehr durch.
    Hier das new CarNames:


    new CarNames[212][] = {
    "Landstalker", "Bravura", "Buffalo", "Linerunner", "Perrenial", "Sentinel", "Dumper", "Firetruck", "Trashmaster", "Stretch", "Manana",
    "Infernus", "Voodoo", "Pony", "Mule", "Cheetah", "Ambulance", "Leviathan", "Moonbeam", "Esperanto", "Taxi", "Washington", "Bobcat",
    "Whoopee", "BF Injection", "Hunter", "Premier", "Enforcer", "Securicar", "Banshee", "Predator", "Bus", "Rhino", "Barracks", "Hotknife",
    "Trailer 1", "Previon", "Coach", "Cabbie", "Stallion", "Rumpo", "RC Bandit", "Romero", "Packer", "Monster", "Admiral", "Squalo",
    "Seasparrow", "Pizzaboy", "Tram", "Trailer 2", "Turismo", "Speeder", "Reefer", "Tropic", "Flatbed", "Yankee", "Caddy", "Solair",
    "Berkley's RC Van", "Skimmer", "PCJ-600", "Faggio", "Freeway", "RC Baron", "RC Raider", "Glendale", "Oceanic", "Sanchez", "Sparrow",
    "Patriot", "Quad", "Coastguard", "Dinghy", "Hermes", "Sabre", "Rustler", "ZR-350", "Walton", "Regina", "Comet", "BMX", "Burrito",
    "Camper", "Marquis", "Baggage", "Dozer", "Maverick", "News Chopper", "Rancher", "FBI Rancher", "Virgo", "Greenwood", "Jetmax", "Hotring",
    "Sandking", "Blista Compact", "Police Maverick", "Boxvillde", "Benson", "Mesa", "RC Goblin", "Hotring Racer A", "Hotring Racer B",
    "Bloodring Banger", "Rancher", "Super GT", "Elegant", "Journey", "Bike", "Mountain Bike", "Beagle", "Cropduster","Stunt", "Tanker",
    "Roadtrain", "Nebula", "Majestic", "Buccaneer", "Shamal", "Hydra", "FCR-900", "NRG-500", "HPV1000", "Cement Truck", "Tow Truck", "Fortune",
    "Cadrona", "FBI Truck", "Willard", "Forklift", "Tractor", "Combine", "Feltzer", "Remington", "Slamvan", "Blade", "Freight", "Streak",
    "Vortex", "Vincent", "Bullet", "Clover", "Sadler", "Firetruck LA", "Hustler", "Intruder", "Primo", "Cargobob", "Tampa", "Sunrise", "Merit",
    "Utility", "Nevada", "Yosemite", "Windsor", "Monster A", "Monster B", "Uranus", "Jester", "Sultan", "Stratum", "Elegy", "Raindance",
    "RC Tiger", "Flash", "Tahoma", "Savanna", "Bandito", "Freight Flat", "Streak Carriage", "Kart", "Mower", "Dune", "Sweeper", "Broadway",
    "Tornado", "AT-400", "DFT-30", "Huntley", "Stafford", "BF-400", "News Van", "Tug", "Trailer 3", "Emperor", "Wayfarer", "Euros", "Hotdog",
    "Club", "Freight Carriage", "Trailer 4", "Andromada", "Dodo", "RC Cam", "Launch", "Police Car (LSPD)", "Police Car (SFPD)",
    "Police Car (LVPD)", "Police Ranger", "Picador", "S.W.A.T", "Alpha", "Phoenix", "Glendale", "Sadler", "Luggage Trailer A",
    "Luggage Trailer B", "Stairs", "Boxville", "Tiller", "Utility Trailer"
    };



    Bitte helft mir ich verzweifel gleich X(

    Das hier is aus LoH, musste noch umschreiben:



    forward Float:GetDistanceBetweenPlayers(p1,p2);
    forward GetClosestPlayer(p1);
    public GetClosestPlayer(p1)
    {
    new x,Float:dis,Float:dis2,player;
    player = -1;
    dis = 99999.99;
    for (x=0;x<MAX_PLAYERS;x++)
    {
    if(IsPlayerConnected(x))
    {
    if(x != p1)
    {
    dis2 = GetDistanceBetweenPlayers(x,p1);
    if(dis2 < dis && dis2 != -1.00)
    {
    dis = dis2;
    player = x;
    }
    }
    }
    }
    return player;
    }
    public Float:GetDistanceBetweenPlayers(p1,p2)
    {
    new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
    if(!IsPlayerConnected(p1) || !IsPlayerConnected(p2))
    {
    return -1.00;
    }
    GetPlayerPos(p1,x1,y1,z1);
    GetPlayerPos(p2,x2,y2,z2);
    return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
    }


    // Unter OnPlayerCommandText
    if(strcmp(cmd, "/tazer", true) ==0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pMember] == 1 || PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader] == 2 || PlayerInfo[playerid][pMember] == 3 || PlayerInfo[playerid][pLeader] == 3|| PlayerInfo[playerid][pMember] == 21 || PlayerInfo[playerid][pLeader] == 21)
    {
    if(OnDuty[playerid]==0)
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist nicht im Dienst!");
    return 1;
    }
    if(IsPlayerInAnyVehicle(playerid))
    {
    SendClientMessage(playerid, COLOR_GREY, "Du kannst das nicht benutzen während du im Fahrzeug sitzt!");
    return 1;
    }
    new suspect = GetClosestPlayer(playerid);
    if(IsPlayerConnected(suspect))
    {
    if(PlayerCuffed[suspect] > 0)
    {
    SendClientMessage(playerid, COLOR_GREY, "Dieser Spieler ist schon getazed!");
    return 1;
    }
    if(GetDistanceBetweenPlayers(playerid,suspect) < 5)
    {
    if(IsPlayerInAnyVehicle(suspect))
    {
    SendClientMessage(playerid, COLOR_GREY, "Dieser Spieler ist in einem Fahrzeug! Bringe in zuerst raus!");
    return 1;
    }
    GetPlayerName(suspect, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string, sizeof(string), "* Du wurdest von %s getazert! Du liegst für 15 Sekunden flach!", sendername);
    SendClientMessage(suspect, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "* Du hast %s niedergestreckt.", giveplayer);
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "* %s nimmt seinen Elektroschocker raus und streckt %s nieder.", sendername ,giveplayer);
    ProxDetector(30.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
    GameTextForPlayer(suspect, "~y~Getazert!", 3000, 3);
    TogglePlayerControllable(suspect, 0);
    PlayerCuffed[suspect] = 1;
    PlayerCuffedTime[suspect] = 15;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Niemand ist in deiner Nähe!");
    return 1;
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Beamter!");
    }
    }
    return 1;
    }


    Jetzt müsstest du es aber hinbekommen.

    Du musst dem Script die PlayerID auch mittteilen, sonst bleibt pID 0 und dann wird immer ID 0 getazert.


    if(GetPVarInt(playerid,"Leader") == 1 || GetPVarInt(playerid,"Member") == 1)
    {
    new Float:x, Float:y, Float:z;
    GetPlayerPos(playerid,x,y,z);
    new string[280], pID;
    { // Für was geht hier ne klammer auf? :O Is doch garkein if oder so.
    if(IsPlayerConnected(pID))
    {
    if(IsPlayerInRangeOfPoint(playerid,6,x,y,z))
    {
    TogglePlayerControllable(pID,0);
    format(string,sizeof string,"~b~Taze\n~r~Du ~r~wurdest ~r~getazert");
    GameTextForPlayer(pID,string,4000,3);
    SetTimer("Tazertime",10000,0);
    }
    }
    } // und hier wieder zu? :O
    }

    2 Logische Fehler:


    dcmd_aod(playerid,params[])
    {
    new pID,grund[128];
    if(Player[playerid][admin] <= 2){SendClientMessage(playerid,FarbeRot,"Du bist kein Adminrank 2!");} // Sonst würde es nur ab Adminrank 3 funzen nicht wie dort steht ab Rank 2
    if(sscanf(params,"us",pID,grund)) return SendClientMessage(playerid,FarbeRot,"Falsche Benutzung: /aod [ID] [Grund]"); // /aod hat 2 Parameter
    new str[128],adm[MAX_PLAYER_NAME];
    GetPlayerName(pID,adm,sizeof(adm));
    format(str,sizeof(str),"<> %s steht unter DM-Schutz. Grund des DM-Schutzes: %s <>",adm,grund);
    SendClientMessageToAll(FarbeGruen,str);
    return 1;
    }