Beiträge von SoulMan

    Wollte hier nochmal was zum Namen einwerfen.
    Ich z.B. benutze es so..
    new SpielerName[MAX_PLAYERS][MAX_PLAYER_NAME];
    Bei OnPlayerConnect
    GetPlayerName(playerid, SpielerName[playerid], MAX_PLAYER_NAME);


    Jetzt kann man in jedem Befehl einfach folgendes tun:
    COMMAND:kick(playerid,params[])
    {
    new pID, str[128];
    if(sscanf(params, "uz",pID,str))return SendClientMessage(playerid,0xC8C8C8FF,"/kick [ID/Name] [Grund]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,0xC8C8C8FF,"Dieser Spieler ist nicht online!");
    if (pID == playerid)return SendClientMessage(playerid,0xC8C8C8FF,"Du kannst dich nicht selber kicken!");
    if(pInfo[playerid][AdminLevel] > 1)
    {
    new str2[128];
    format(str2,sizeof(str2),"%s wurde vom Server gekickt! Grund: %s",SpielerName[pID],str[0] ? str : "Kein Grund");
    SendClientMessageToAll(0xFF6347AA,str2);
    Kick(pID);
    }
    else return SendClientMessage(playerid, 0xC8C8C8FF, "Dein Adminrank reicht nicht aus!");
    return 1;
    }


    Der Name kann nun immer und überall per
    SpielerName[playerid]
    ausgegeben werden.


    Also so mache ich das mit den Namen. Vielleichts hilfts ja weiter oder gibt es noch eine effizientere Methode, die
    ich evtl. überlesen habe?


    */Edit
    Sorry, für's Thread ausgraben, dachte es hilft evtl. mal weiter.
    Spart ja immerhin mehrere Zeilen ein.

    OOC Chat
    COMMAND:o(playerid,params[])
    {
    new text[200];
    if(sscanf(params, "s",text))return SendClientMessage(playerid,0xC8C8C8FF,"/o(oc) [Text]");
    {
    new string[200];
    format(string,sizeof(string),"%s: (( %s ))",SpielerName[playerid],text);
    SendClientMessageToAll(0xFFFFFFFF, string);
    }
    return 1;
    }
    "Normaler" begrenzter Chat
    public OnPlayerText(playerid, text[])
    {
    new Float:x,Float:y,Float:z;
    GetPlayerPos(playerid,x,y,z);
    for(new i=0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerInRangeOfPoint(i,30.0,x,y,z))
    {
    new string[200];
    format(string,sizeof(string),"%s sagt: %s",SpielerName[playerid], text);
    SendClientMessage(i,0xF0F0F0FF, string);
    }
    }
    return 0;
    }


    Hoffe, ich konnte helfen!

    So, ich stehe nun vor einem wichtigen Problem. Ich möchte, dass Befehle miteinander "arbeiten".
    Es geht um /accept Befehle, welche jedoch selfmade gescriptet sind.
    Zur Zeit sieht es noch so aus:


    COMMAND:repair(playerid,params[])
    {
    new pID, Float:x,Float:y,Float:z;
    if(sscanf(params, "u",pID))return SendClientMessage(playerid,0xC8C8C8FF,"/repair [ID/Name]");
    if (!IsPlayerConnected(pID))return SendClientMessage(playerid,0xC8C8C8FF,"Dieser Spieler ist nicht online!");
    if (pID == playerid)return SendClientMessage(playerid,0xC8C8C8FF,"Du kannst dir nicht selber eine Reparatur anbieten!");
    if(pInfo[playerid][Job] != 3) return SendClientMessage(playerid, 0xC8C8C8FF, "Du bist kein Mechaniker!");
    GetPlayerPos(playerid,x,y,z);
    {
    if(!IsPlayerInRangeOfPoint(pID,3.0,x,y,z))return SendClientMessage(playerid, 0xC8C8C8FF, "Dieser Spieler ist nicht in deiner Nähe!");
    {
    new str[128] ,str2[128];
    format(str,sizeof(str),"%s hat dir eine Reperatur angeboten, /acceptrepair zum annehmen!",SpielerName[playerid]);
    format(str2,sizeof(str2),"Du hast %s eine Reperatur angeboten!",SpielerName[pID]);
    SendClientMessage(pID,0x00A8FFFF,str);
    SendClientMessage(playerid,0x00A8FFFF,str2);
    SetPVarInt(pID,"repair", 1);
    }
    return 1;
    }
    }
    COMMAND:acceptrepair(playerid,params[])
    {
    if(GetPVarInt(playerid, "repair") == 0) return SendClientMessage(playerid,0xC8C8C8FF,"Dir wurde keine Reperatur angeboten!");
    else
    {
    TogglePlayerControllable(playerid,0);
    SetTimerEx("repairunfreeze", 4000,0,"d",playerid);
    }
    return 1;
    }
    public repairunfreeze(playerid)
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    SetVehicleHealth(vehicleid, 1000.0);
    RepairVehicle(vehicleid);
    SetPVarInt(playerid,"repair", 0);
    TogglePlayerControllable(playerid,1);
    GameTextForPlayer(playerid,"~g~Motor und Blechschaden~w~ repariert",2500,1);
    return 1;
    }


    Ziemlich undynamisch, wie ich finde. Es geht darum, dass man beim /accept-Befehl z.B. eine bestimmte Summe
    die im /repair Befehl festgelegt wurde abzieht. Oder das beim /accept-Befehl
    erscheint, dass der Spieler (%s) deine Reperatur angenommen hat. Also mit Namen, der vom /repair-Befehl aus kommen muss.


    Wäre nett, wenn mir jmd. ein wenig auf die Sprünge helfen könnte.. :S


    mfG
    Dixon

    Alsooo, ich hab ein Problem und zwar brauche ich die Koordinaten, für ein Object, dass
    auf ein Auto rauf soll.
    Das man dafür GarObject nehmen kann, weiß ich, aber es hat bei mir nicht funktioniert, daher
    wollte ich fragen, ob mir Jemand die Koords kurz schicken könnte.
    Es geht um die AutoID 422 und ObjectID 1271 Das Object soll halt auf die Ladefläche..



    Wäre nett, wenn mir jmd. helfen könnte.


    mfG


    Dixon

    Das funktioniert bei mir leider nicht..
    Könnte mir jmd. noch ein wenig helfen? Ich weiß paar sachen noch nicht so genau..
    1. Mir fehlen die Koords
    2. AttachObjectToVehicle(objectid, vehicleid, 0.0, 0.0, 1.0, 0.0, 0.0, 0.0); //Was kommt bei vehicleid?

    Sofern er ein Login/Register System besitzt, kann ja nur er mit diesem
    Namen auf den Server zugreifen. ;)
    Du könntest aber auch eine Variable erstellen, die du nur für dich auf 1 setzt, damit
    du dadurch an einer bestimmten Stelle spawnst.

    Ok, und was ist mit den Koords?
    Kann man die herausfinden ohne rumzuprobieren also mit dem Map Editor?
    Hab da nämlich schon einen der Pickups mit einer
    Kiste an der gewünschten Position hingestellt.

    Naja, die Idee ist wohl nicht umsetzbar, da die meisten passenden Kisten garnicht zerstörbar sind.
    Kann ich irgendwie schnell die Koordinaten für die Kiste herausfinden, also wie ich sie "anhefte"?
    evtl. mit MTA Map Editor o.Ä.?
    Außerdem noch eine kleine Frage, wie frage ich denn ab, ob das Auto in dem man sitzt zerstört wird?

    Perfekt, es klappt!
    Vielen Dank!


    Edit:


    Jetzt hätte ich noch eine etwas schwierigere Frage, also..
    Ich möchte, wenn man /Getguns eingibt, dass eine Kiste auf der Ladefläche erstellt wird (Nein, keine Koords die ich wissen will :D )
    Und wenn diese zerstört werden sollte, sind alle Waffen, die man mit /getguns erhalten hat weg. Ginge das?
    Wenn nicht, muss ich mir was anderes überlegen..