Beiträge von heyhooo

    ocmd:acar(playerid,params[])
    {
    new vID;
    static vehicle[MAX_PLAYERS], bool:acarexist[MAX_PLAYERS];
    new Text3D:VehicleAdminName[MAX_PLAYERS];
    if(sInfo[playerid][alevel] < 2) return SendClientMessage(playerid,CL_HROT,"Du darfst diesen Befehl nicht nutzen.");
    if(sInfo[playerid][aduty]==0) return SendClientMessage(playerid,CL_KNALLROT,"ERROR: Du bist nicht Admin-OnDuty!");
    if(acarexist[playerid] == true)
    {
    DestroyVehicle(vehicle[playerid]);
    acarexist[playerid] = false;
    return SendClientMessage(playerid,CL_HGRÜN,"Admin-Car gelöscht");
    }
    if(sscanf(params,"i",vID))return SendClientMessage(playerid,CL_KNALLROT,"Aussage: /acar Fahrzeug--->[ID]"); //Ich würde dir empfehlen die Funktion "IsNumeric" zu nutzen. (Mal googeln)
    //new Float:X,Float:Y,Float:Z,Float:ROTA; ---> Ergibt keinen Sinn diese zu erstellen.
    //GetVehiclePos(vID,X,Y,Z);
    new str[128];
    format(str,sizeof(str),"%s Car von %s",a_rang[sInfo[playerid][alevel]]); //Wie schon erwähnt noch eins hinzufügen
    VehicleAdminName[playerid] = Create3DTextLabel(str,CL_HGRÜN,GetPlayerPos(playerid,X,Y,Z),ROTA,MAX_STREAM_NAME_DISTANCE,GetPlayerVirtualWorld(playerid),1);
    Attach3DTextLabelToVehicle(VehicleAdminName[playerid],vID,0.0,0.0,2.0); //Hier lag der Fehler * Erklärung unten.
    return 1;
    }


    Also zum mitschreiben:
    Du machst einen Befehl, wo du die ID eines Vehicles auf dem Server angeben sollst und daran dann der 3dText gesetzt wird.


    Nun jetzt ist die Frage, wieso erstellst du danach ein Auto? :huh:
    Habe das erstmal entfernt und deinen Code schöner gemacht.


    *Erklärung zum Fehler (siehe Code)
    Du musst die x,y,z, Achso von der Mitte des Autos aus angeben.
    Deswegen ergibt es hier keinen Sinn die Position des Spielers zu verwenden.


    Bei Fragen melden


    L.G.

    gibt es bei dem Streamer von Icognoto eine Funktion, mit der man "Dynamic" Objekte an einen Spieler attachen kann?


    Soweit ich weiß nicht, da das 'stream system' ja auf PlayerObjects basiert und hierfür keine Funktion vorhanden ist.
    Daher solltest du hierfür die Globalen Objekte verwenden.


    L.G.

    Habe gerade mal nachgedacht...
    Das bezieht sich auf dieses Include


    Hier ist mal ne Funktion:
    stock IsPlayerFly(playerid)
    {
    new Float:pos[3];
    GetPlayerPos(playerid,pos[0].pos[1],pos[2])
    if(floatround(pos[2],floatround_floor) == floatround(GetPointZPos(pos[0],pos[1]),floatround_floor)) return 0;
    return 1;
    }


    //ungetestet.
    Würde mich mal Interessieren obs geht


    /e1: Jeffry war schneller ;)

    Könnte mir das bei einer Servervorstellung vorstellen. Wenn der Ersteller keine Antworten will -> schließen. Allerdings kann man da auch nen Admin anschreiben.

    Wie gesagt, um die Details des Systems kann man sich noch Gedanken machen...
    Man könnte es dort so Regeln: Die Beiträge müssen dort auch von einem Moderator freigeschaltet werden.
    Also könnte man für diesen Bereich diese Funktion deaktivieren.


    L.G.

    @Mr.Reese: Wenn er dieses meint, sollte er es auch schreiben.
    Also ich habe davon noch nichts gehört.
    Vielleicht könnte sich darüber ein Moderator äußern.
    Aber rein theoretisch ergibt es ja wenig Sinn dieses zu schließen.
    -> Wäre viel zu aufwendig...


    L.G.

    Dadurch werden Moderative Handlungen zu nichte gemacht daher bin ich dagegen.

    Deswegen habe ich auch extra 2 Möglichkeiten angegeben.
    Wobei drüber nachzudenken ist, ob man nicht vielleicht so eine Funktion einbaut,
    wenn ein Moderator ein Thema schließt, dieses dann nicht mehr geöffnet werden kann.



    Man kann Themen als erledigt markieren --> werden soweit ich weiß geschlossen.

    Nicht wirklich... Wobei diese Funktion von den meisten Leuten übersehen wird.

    Mir ist in letzter Zeit aufgefallen,
    dass viele Leute " MoD: close bitte" o.ä. schreiben.
    Andernfalls kann man dieses auch nutzen,
    um einer unnötigen Diskussion aus dem Weg zu gehen.
    Deswegen bin ich dafür, dass man die Möglichkeit haben sollte seine eigenen Themen schließen zu können. (1. Möglichkeit)
    Falls man noch eine Frage hat, könnte es auch die Funktion geben, dies wieder zu öffnen. (2. Möglichkeit)


    Ich möchte gerne eure Meinung dazu wissen, solange diese in einem angemessenen Rahmen bleibt.


    Mit freundlichen Grüßen
    heyho

    if(sscanf(params,"s[20]",statuu))return SendClientMessage(playerid,info,"[Benutze]:{FFFFFF} /aveh [Erstellen | Löschen]");


    Noch ne kleine Anmerkung:
    Du brauchst nicht zu splitten, wenn du nur 1 Parameter hast. ;)
    if(!params[0]) return SendClientMessage(playerid,info,"[Benutze]:{FFFFFF} /aveh [Erstellen | Löschen]");

    Du musst, sobald du Änderungen am Textdraw vornimmst ihn 'reloaden'.
    Du brauchst keinen Timer und ich verstehe auch nicht, was dein Problem damit ist. :p


    Hier haste noch nen Makro:
    #define UpdateTD(%0,%1) PlayerTextDrawHide(%0,%1),PlayerTextDrawShow(%0,%1)
    //benutzung
    UpdateTD(playerid,PlayerText:text);


    L.G.

    public OnPlayerEnterCheckpoint(playerid)
    {
    PlayerPlaySound(playerid, 1139, 0, 0, 0);
    new pos[3];


    GetPlayerPos(NPCS[2], pos[0], pos[1], pos[2]);
    if(IsPlayerInRangeOfPoint(playerid, 5, pos[0], pos[1], pos[2]) && PInfo[playerid][intutorial] == 1)//Spawn NPC
    {
    new part[250], text[750], ages[8];
    if(PInfo[playerid][age] > 30) format(ages, 20, "über 30");
    else format(ages, 20, "%i", PInfo[playerid][age]);
    format(part, 255, "{FF0000}Toni:\r\n{FFFFFF}Hallo %s!\r\n\r\nEs tut gut dich endlich mal wieder zu sehen.\r\nDu bist mittlerweile schon %s oder?\r\nHoffentlich bist du nach dem langen Flug nicht zu müde,", PName(playerid), ages);
    strcat(text, part);
    strcat(text, " denn es gibt viel zu tun!\r\nIch will dich auch gar nicht länger aufhalten.\r\nDu solltest dir schnell in der Stadthalle einen Personalausweis holen.\r\nIch werde dir die Stadthalle auf deiner Karte einzeichnen.");
    strcat(text, "\r\nWenn du nicht laufen willst, stehen hinter dir Fahrräder.\r\n\r\nUnd... Willkommen im Land der unbegrenzten Möglichkeiten, mein Freund!");
    ShowDialog(playerid, DIA_NPCS, DIALOG_STYLE_MSGBOX, "Ein alter Freund...", text, "OK!", "");
    ShowPlayerDialog(playerid, DIA_NPCS, DIALOG_STYLE_MSGBOX, "Ein alter Freund...", text, "OK", "");
    DisablePlayerCheckpoint(playerid);
    return 1;
    }else if(IsPlayerInRangeOfPoint(playerid, 5, 2347.7839, 1442.5172, 10.8234) && PInfo[playerid][dsteststep] > 1) return imsg(playerid, "> Bitte setz dich nun in ein Fahrschulauto.");
    return 1;
    }


    Erstmal so...
    Fang mal an zu printen.


    L.G.