Beiträge von Edgar

    Hey, unter
    public OnPlayerClickTextDraw(playerid, Text:clickedid)


    if(clickedid == TextdrawID) {
    // ACTION
    }

    Beim eingeben des Thread-Titels gab es 2 Vorschläge, einmal ein Filterscript und eine Server Vorstellung.
    Bei Google habe ich auch schon einiges eingegeben.


    Das komische ist aber auch das laut der Beschreibung vom Wiki es die aktuelle Position nehmen sollte...

    Das liegt am Streamer - vermutlich.
    Das rendern der Objecte dauert etwas je weiter die Person weg ist.
    Ich würde dir raten einfach ein Object mit CreateObject anstatt
    CreateDynamicObject als Boden hinzu mappen.

    Danke für deine Antwort,
    das Problem ist nur das ich das Object nicht da positioniert habe wo ich es haben will, ich positioniere es ja InGame.
    Es wird ja ein Text auf das Object attached und ich möchte das es perfekt an der Wand positioniert ist, dass kann
    ich - denke ich - nicht mit dem Editor machen, zudem möchte ich es generell inGame möglich haben, es sollte ein
    Dynamisches System werden womit man die Position des Object's verändert und es dann gespeichert wird.
    Wie schon oben erwähnt ist das einzige was nicht geht das mit der aktuellen Position auslesen.

    Hallo zusammen,
    ich habe derzeit ein Problem, und zwar, wenn ich ein Object erstelle
    //Variablen str, font, size und ID sind oben via sscanf angegeben und werden auch abgefragt.
    GetPlayerPos(playerid, X, Y, Z);
    SprayObj[0] = CreateDynamicObject(ID, X+0.5, Y+0.5, Z, 0.0, 0.0, 0.0);
    EditDynamicObject(playerid, SprayObj[0]);
    SetDynamicObjectMaterialText(SprayObj[0], 0, str, OBJECT_MATERIAL_SIZE_256x128, font, size, 1, 0xD70000FF, 0, 0);
    und es dann über
    EditDynamicObject(playerid, SprayObj[0]);
    neu positionieren möchte und danach
    new Float:x, Float:y, Float:z, Float:zx, Float:zy, Float:zz, str[280];
    GetDynamicObjectPos(SprayObj[0], x, y, z);
    GetDynamicObjectRot(SprayObj[0], zx, zy, zz);
    format(str, sizeof str, "X: %f, Y: %f, Z: %f - XR: %f, YR: %f, ZR: %f",x, y, z, zx, zy, zz);
    echo(playerid, cRed, str);
    die Position ausgeben möchte gibt er mir die Position an wo das Object erstellt wurde nicht wo es sich derzeit befindet,
    ist das so gewollt oder mache ich was falsch? Wenn ja, wie kann ich die aktuelle Position herausfinden?


    Edit:
    Ich habe soeben bemerkt das es auch mit CreateObject, EditObject und GetObjectPos auch nicht geht, liegt also nicht am Streamer.


    Mit freundlichen Grüßen

    ocmd:arrest(playerid,params[])
    {
    if(gTeam[playerid] == TEAM_COPS)
    {
    new pID;
    if(sscanf(params,"u",pID)) return SendClientMessage(playerid,ROT, "Benutzung: /arrest [ID]");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, ROT, "Der Spieler ist nicht online!");
    new Float:x, Float:y, Float:z;
    GetPlayerPos(pID, x, y, z);
    if(IsPlayerInRangeOfPoint(pID,5.0, x,y,z)) {
    if(GetPlayerWantedLevel(pID) >=5)
    {
    new strg[250];
    new arname[MAX_PLAYER_NAME];
    new copname[MAX_PLAYER_NAME];
    GetPlayerName(pID, arname,sizeof(arname));
    GetPlayerName(playerid,copname, sizeof(copname));
    format(strg, sizeof(strg), "Knast-Info: %s wurde von Officer %s Eingesperrt!", arname,copname);
    SetPlayerInterior(pID, 3);
    SetPlayerPos(pID, 194.0580,175.4876,1003.0234);
    SendClientMessageToAll(ROT, strg);
    SendClientMessage(pID, ROT, "Ein Cop hat dich verhaftet und du wurdest eingesperrt! (( 20 Sekunden ))");
    GivePlayerMoney(playerid, 5000);
    timerkill = SetTimerEx("Knast", 20000, false,"i", pID );
    ResetPlayerWeapons(pID);
    SetPlayerWantedLevel(pID, 0);
    SetPlayerColor(pID, WEISS);
    knasted[pID] = 1;
    return 1;
    }
    else SendClientMessage(playerid, ROT, "Der Spieler hat zu wenig Wanteds! Stelle ihm ein Ticket mit /ticket aus!");
    }
    else SendClientMessage(playerid, ROT, "Spieler ist nicht in der Nähe!");
    }
    else SendClientMessage(playerid, ROT, "Du bist kein Cop!");
    return 1;
    }


    So sollte es wohl besser funktionieren.
    Zur For-Schleife:
    Eine For-Schleife ist eine Schleife die sooft wie du es angibst ausgeführt wirst, Beispiel:
    for(new i = 0; i < MAX_PLAYERS; i++)
    heißt
    for(new Variable ist 0; Variable ist kleiner als MAX_PLAYERS; variable wird um 1 erhöht)
    Damit kannst du z.B alle Spieler, Fahrzeuge oder Erstellten Häuser - je nachdem wie dein System ist - abzählen.

    So wie ich es habe sollte es richtig sein, das "VARIABLE VOM RANGNAME" da musst du deine Funktion What ever einfügen.
    Wie lautet denn dein Adminrank Variable und die einzellnen Adminranknamen?


    new AdutyLabel[MAX_PLAYERS]; // Oben definieren
    //:________________________:
    Aduty[playerid] = 1;
    new LabelStr[180], string[128], alvl[64], name[MAX_PLAYER_NAME]; GetPlayerName(playerid,name,MAX_PLAYER_NAME);
    format(LabelStr, sizeof LabelStr, "%s OnDuty", VARIABLE VOM RANGNAMEN);
    AdutyLabel[playerid] = Create3DTextLabel(LabelStr, 0x0A00FFFF,0.0,0.0,0.0, 20.0, 0, 0);
    Attach3DTextLabelToPlayer(AdutyLabel[playerid], playerid, 0.0, 0.0, 0.4);
    SetPlayerHealth(playerid, 100);
    SetPlayerArmour(playerid, 100);
    SetPlayerColor(playerid,RED);
    SetPlayerSkin(playerid,217);
    ShowPlayerMarkers(1);


    Ungetestet sollte aber gehen.
    Haupt Fehler war SetPlayerHealth.