Beiträge von SkaterDenis

    Also erstmal will ich wissen ob die häuser in einem Interior sind. Und wen dan in welchem und ob alle in dem selben sind...
    Naja du kannst es auf jedenfall endweder so machen:

    if (GetPlayerInterior(playerid) == Inzerior ID)
    {


    oder du machst es mit:


    Hier musste dan nur ein viereck ums haus machen...

    if (IsPlayerInArea(i, gößter X, kleinster X, größter Y, kleinster Y)
    {


    stock IsPlayerInArea(playerid, Float:max_x, Float:min_x, Float:max_y, Float:min_y)
    {
    new Float:X, Float:Y, Float:Z;
    GetPlayerPos(playerid, X, Y, Z);
    if(X <= max_x && X >= min_x && Y <= max_y && Y >= min_y) return 1;
    return 0;
    }

    Habe ich schon und bei //OnPlayerDeath zu sstats[0]++; auch, jetzt geht auf jedenfall alles nur noch einwas!


    Es wär schön wen jemand noch schnell ein /dmstats command erstellt! Da soll nur eine Auflistung von allen Spieler die in der DM welt sind sein und dazu ihre deaths/kills!
    Wäre echt schön wen ihr mir dabei noch helft!


    ps.
    if (GetPlayerVirtualWorld(playerid) == 2)
    ist bei mir die DM Welt wenn das hilft?!?!

    Hmmm wieso downloadest du nicht einfach irgendein reallife server und dan tasteste dich langsam ran?
    Ich meine auch wen du nicht scripten kannst, kannste einfach ein laden und versuchen den einfach zu bearbeiten...

    //Edit
    Achso da hat was gefehlt!^^



    ///leavedm:
    sstats[2]--; //DM Leute in DM -1
    new s[100];
    format(s,sizeof(s),"Tode: %d, Kills: %d, Im DM: %d",sstats[0], sstats[1], sstats[2]);
    TextDrawSetString(stats,s);
    TextDrawHideForPlayer(playerid,stats); //DM Score Schliesen

    So klapps schonmal ich guck nochmal schnell nach obs jetzt geht!

    Alles Funktioniert super bis auf zwei Sachen: ...


    1.Der Teil ist falsch...

    //OnPlayerConnect:
    TextDrawShowForPlayer(playerid,stats);

    Der Text soll nicht gleich beim connecten angezeigt werden, sondern nur bei /dm und wenn ich dm verlasse, soll er wieder ausgehen!
    Das müsste in etwa dann so aussehen (berichtigt mich bitte, wenn ich falsch liege)!



    //OnPlayerConnect:
    //Hier kommt jetzt gar nichts hin!


    ///dm:
    sstats[2]++;
    new s[100];
    format(s,sizeof(s),"Tode: %d, Kills: %d, Im DM: %d",sstats[0], sstats[1], sstats[2]);
    TextDrawSetString(stats,s);
    TextDrawShowForPlayer(playerid,stats);


    ///leavedm:
    sstats[2]--;
    TextDrawDestroy(stats);


    2.Wenn ich ins DM gehe, wird z.B. dann "im DM: 1" angezeigt, wenn ichs aber wieder verlasse, ist es immer noch auf 1, auch wenn dann niemand in dm ist...



    Also, ich schätze, "1." habe ich richtig gelöst aber bei "2." brauch ich Hilfe :D

    Hallo^^


    Kann mir mal bitte jemand ein Kills / Deaths zähler erstellen?
    Er soll am besten direkt unter der Lebensleiste und dem Geld angezeigt werden!
    Bei /dm soll er angezeigt werden!
    Und dazu vileicht noch /free um den zähler wieder auszumachen!


    Kills: Deaths:


    Ok danke schonmal im voraus!

    Ich glaube er will sich eher um die hälfte heilen und nicht sein leben auf 50 setzen^^



    if (strcmp("/heal", cmdtext, true, 10) == 0)
    {
    new Float:health;
    GetPlayerHealth(playerid,health);
    SetPlayerHealth(playerid, health+50);
    return 1;
    }

    Ich habe das selbst gemacht und das is schon mindestens 2 monate hier und vor paar tagen habe ich nen fehler gefunden und desswegen habe ichs heute aktualisiert!
    Nagut wenn du mir nicht glaubst kann ich dir auch zeile für zeile erklären...


    Also:

    if (strcmp(cmdtext, "/spos", true)==0)
    {
    if(IsPlayerInAnyVehicle(playerid)) //Spieler sitzt in nem Fahrzeug
    {
    FahrzeugID[playerid] = GetPlayerVehicleID(playerid); //fahrzeug ID wird gespeichert
    GetPlayerPos(playerid, PosX[playerid], PosY[playerid], PosZ[playerid]); //Spieler Pos xyz wird gespeichert
    GetVehicleZAngle(GetPlayerVehicleID(playerid), PosA[playerid]); //fahrzeugblickrichtung wird gespeichert
    PosI[playerid] = (GetPlayerInterior(playerid)); //Interior wird gespeichert
    SendClientMessage(playerid, COLOR_BLAU, "Positon gespeichert! Gehe zu dieser Possiton mit /lpos!");
    }
    else //wen er nicht in nem fahrzeug sitzt
    {
    FahrzeugID[playerid] = GetPlayerVehicleID(playerid); //speichert das er in keinem auto sitzt wirste bei lpos sehen wofür
    GetPlayerPos(playerid, PosX[playerid], PosY[playerid], PosZ[playerid]); //wieder xyz
    GetPlayerFacingAngle(playerid, PosA[playerid]); //spieler blickrichtung
    PosI[playerid] = (GetPlayerInterior(playerid)); //int
    SendClientMessage(playerid, COLOR_BLAU, "Positon gespeichert! Gehe zu dieser Possiton mit /lpos!");
    }
    return 1;
    }


    if (strcmp(cmdtext, "/lpos", true)==0)
    {
    if (!floatsqroot(PosX[playerid]+PosY[playerid]+PosZ[playerid])) //wen x y z noch nicht belegt ist
    {
    return SendClientMessage(playerid, COLOR_BLAU, "Benutze zuerst /spos!");
    }
    else
    {
    if(IsPlayerInAnyVehicle(playerid)) //wenn er in nem fahrzeug ist
    {
    SetVehiclePos(GetPlayerVehicleID(playerid), PosX[playerid], PosY[playerid], PosZ[playerid]); //fahrzeug in dem du sitztst wird zur alten position gebracht
    SetVehicleZAngle(GetPlayerVehicleID(playerid), PosA[playerid]); //alte blickrichtung wird geladen
    SetPlayerInterior(playerid, PosI[playerid]); //alte int dimesion wird geladen
    LinkVehicleToInterior(GetPlayerVehicleID(playerid), PosI[playerid]); //fahrzeug wird zum int teleportiert
    SetCameraBehindPlayer(playerid); //is klar^^
    SendClientMessage(playerid, COLOR_BLAU, "Gespeicherte Position geladen!");
    }
    else
    {
    if (!(FahrzeugID[playerid])) //Wen spieler beim /spos in keinem fahrzeug saß
    {
    SetPlayerPos(playerid, PosX[playerid], PosY[playerid], PosZ[playerid]); //alte xyz position geladen
    SetPlayerFacingAngle(playerid, PosA[playerid]); //alte blickrichtung
    SetCameraBehindPlayer(playerid); //...
    SetPlayerInterior(playerid, PosI[playerid]); //...
    SendClientMessage(playerid, COLOR_BLAU, "Gespeicherte Position geladen!");
    }
    else //wen er in einem auto saß
    {
    SetPlayerPos(playerid, PosX[playerid], PosY[playerid], PosZ[playerid]); //spieler pos wird auch geladen falls altes fahrzeug gelöscht wird das is mein bugfix...
    SetPlayerFacingAngle(playerid, PosA[playerid]); //blickrichtung
    SetVehiclePos(FahrzeugID[playerid], PosX[playerid], PosY[playerid], PosZ[playerid]); //fahrzeug zu xyz
    SetVehicleZAngle(FahrzeugID[playerid], PosA[playerid]); //fahrzeug blickrichtung
    SetCameraBehindPlayer(playerid); //...
    SetPlayerInterior(playerid, PosI[playerid]); //..
    LinkVehicleToInterior(FahrzeugID[playerid], PosI[playerid]); //..
    PutPlayerInVehicle(playerid, FahrzeugID[playerid], 0); //spieler wird in sein altes fahrzeug gesteckt
    SendClientMessage(playerid, COLOR_BLAU, "Gespeicherte Position geladen!");
    }
    }
    }
    return 1;
    }


    LOL habe es jetzt alleine hingekriegt :D Also für alle die ein Stunt Server haben und ein gutes save- und loadpositions script brauchen hier bitte sehr 8)


    Edit: Habe nen bug behoben jetzt gehts einwandfrei!



    #include <a_samp>


    #define COLOR_BLAU 0x0066FFAA


    //Savep //Loadp
    new Float:PosX[MAX_PLAYERS], Float:PosY[MAX_PLAYERS], Float:PosZ[MAX_PLAYERS], Float:PosA[MAX_PLAYERS], PosI[MAX_PLAYERS];
    new FahrzeugID[MAX_PLAYERS];


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp(cmdtext, "/spos", true)==0)
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    FahrzeugID[playerid] = GetPlayerVehicleID(playerid);
    GetPlayerPos(playerid, PosX[playerid], PosY[playerid], PosZ[playerid]);
    GetVehicleZAngle(GetPlayerVehicleID(playerid), PosA[playerid]);
    PosI[playerid] = (GetPlayerInterior(playerid));
    SendClientMessage(playerid, COLOR_BLAU, "Positon gespeichert! Gehe zu dieser Possiton mit /lpos!");
    }
    else
    {
    FahrzeugID[playerid] = GetPlayerVehicleID(playerid);
    GetPlayerPos(playerid, PosX[playerid], PosY[playerid], PosZ[playerid]);
    GetPlayerFacingAngle(playerid, PosA[playerid]);
    PosI[playerid] = (GetPlayerInterior(playerid));
    SendClientMessage(playerid, COLOR_BLAU, "Positon gespeichert! Gehe zu dieser Possiton mit /lpos!");
    }
    return 1;
    }


    if (strcmp(cmdtext, "/lpos", true)==0)
    {
    if (!floatsqroot(PosX[playerid]+PosY[playerid]+PosZ[playerid]))
    {
    return SendClientMessage(playerid, COLOR_BLAU, "Benutze zuerst /spos!");
    }
    else
    {
    if(IsPlayerInAnyVehicle(playerid))
    {
    SetVehiclePos(GetPlayerVehicleID(playerid), PosX[playerid], PosY[playerid], PosZ[playerid]);
    SetVehicleZAngle(GetPlayerVehicleID(playerid), PosA[playerid]);
    SetPlayerInterior(playerid, PosI[playerid]);
    LinkVehicleToInterior(GetPlayerVehicleID(playerid), PosI[playerid]);
    SetCameraBehindPlayer(playerid);
    SendClientMessage(playerid, COLOR_BLAU, "Gespeicherte Position geladen!");
    }
    else
    {
    if (!(FahrzeugID[playerid]))
    {
    SetPlayerPos(playerid, PosX[playerid], PosY[playerid], PosZ[playerid]);
    SetPlayerFacingAngle(playerid, PosA[playerid]);
    SetCameraBehindPlayer(playerid);
    SetPlayerInterior(playerid, PosI[playerid]);
    SendClientMessage(playerid, COLOR_BLAU, "Gespeicherte Position geladen!");
    }
    else
    {
    SetPlayerPos(playerid, PosX[playerid], PosY[playerid], PosZ[playerid]);
    SetPlayerFacingAngle(playerid, PosA[playerid]);
    SetVehiclePos(FahrzeugID[playerid], PosX[playerid], PosY[playerid], PosZ[playerid]);
    SetVehicleZAngle(FahrzeugID[playerid], PosA[playerid]);
    SetCameraBehindPlayer(playerid);
    SetPlayerInterior(playerid, PosI[playerid]);
    LinkVehicleToInterior(FahrzeugID[playerid], PosI[playerid]);
    PutPlayerInVehicle(playerid, FahrzeugID[playerid], 0);
    SendClientMessage(playerid, COLOR_BLAU, "Gespeicherte Position geladen!");
    }
    }
    }
    return 1;
    }

    Ej da denkt man mit U gehts voran hört überall coole news (u 1.2, ump 0.3....) Und dan passiert sowas!!!
    Aber ich denke wen dan wirklich 1.2 raus is wird warscheinlich ump 0.3 folgen und dan werden die server auch nicht ganz so leer sein!
    Also ich hoffe zumindest stark das United nochmal ne chance kriegt! Ich persönlich fande nähmlich GTA United besser als SA! Habe schon immer gehofft das mehr Leute dafon erfahren und 1.2 + 0.3^^

    Also wen ihr es schaft ump wieder zu öffnen hätte ich sofort ein server da! Der lief früher fast täglich on alle scripts komplett an u angepasst...
    Ich finde das grade so schei.. ich hatte schon so viele neue scripts geplant aber nein serverlist is down-.-


    Und noch ne frage wen das jetzt nicht wieder geöffnet wird wie siehts jetzt eig aus für ump 0.3 habe gelesen das wen u 1.2 raus ist kommt warscheinlich auch ump 0.3?
    Und wird das dan mindestens on bleiben?

    Also
    GetVehicleZAngle ist Rotation z aber x und y giebt es leider nciht ... wäre aber ganz cool!


    man könnte damit z.b. ein fahrzeug in weele stellen oder das fahrzeug für fake stunts flippen lassen...


    backflips rouls.....


    noch besser wäre natürlich ein SetVehicleROTVelocity(VehicleID(playerid), ROTX, ROTY, ROTZ);


    damit könnte man auch 360 machen und sowas z.b. 360° per knopfdruck! oder andere coole flips!


    So jetzt allen klar was man mit rot x y z machen könnte=? Also meiner meinung nach war das ne echt coole funktion!


    Wen es diese beiden funktionen geben würde gebe es vileicht sogar ne möglichkeit Back und Front flips mit motorrädern zu machen ohne immer nach norden gucken zu mussen...
    auch einfach per knopfdruck^^


    Also gebe es irgendwie ne möglichkeit diese beiden funktionen zu verwirklichen=?

    Kann man was erstellen um die rotations achse x und y bei fahrzeugen verändern zu können?
    z.b. sowas wie GetVehicleRot(vehicleid, RotX, RotY); und SetVehicleRot(vehicleid, RotX, RotY);


    ..............................................................................
    native GetVehicleRot(vehicleid, &Float:RotX, &Float:RotY);
    native SetVehicleRot(vehicleid, Float:RotX, Float:RotY);
    ..............................................................................


    Wäre echt super!

    //Edit


    So das mit den floatstr habe ich hingekriegt ich glaube das ist jetzt so richtig wenn nicht sagt bescheid!


    2. So jetzt fehlt mir nur noch das bei /remap und /copymap die Zeile auf der zuletzt was stand ersetzt wird also in Objects.txt... Und bei /delmap die letzte gelösht wird!



    //IngameObjectEditor
    new OID[MAX_PLAYERS], Float:OX[MAX_PLAYERS], Float:OY[MAX_PLAYERS], Float:OZ[MAX_PLAYERS], Float:ORX[MAX_PLAYERS], Float:ORY[MAX_PLAYERS], Float:ORZ[MAX_PLAYERS], ONAME[128][MAX_PLAYERS],obj[MAX_PLAYERS];


    if(strcmp(cmdtext, "/mypos", true) == 0)
    {
    new Float:X, Float:Y, Float:Z, str[128];
    GetPlayerPos(playerid,X,Y,Z);
    format(str,sizeof(str),"Your position is: %f %f %f",X,Y,Z);
    SendClientMessage(playerid,COLOR_RED,str);
    return 1;
    }


    if(strcmp(cmdtext, "/mappos", true) == 0)
    {
    if (!IsPlayerAdmin(playerid))
    {
    SendClientMessage(playerid,COLOR_RED,"You aren`t logged in as an Admin!");
    }
    else
    {
    if (!floatsqroot(OID[playerid]+OX[playerid]+OY[playerid]+OZ[playerid]+ORX[playerid]+ORY[playerid]+ORZ[playerid]))
    {
    return SendClientMessage(playerid, COLOR_BASIC, "Use /map first!");
    }
    else
    {
    new tmp[128];
    tmp = strtok(cmdtext, index);
    format(tmp, sizeof(tmp), "CreateObject(%d, %f, %f, %f, %f, %f, %f); //%s",OID[playerid], OX[playerid], OY[playerid], OZ[playerid], ORX[playerid], ORY[playerid], ORZ[playerid], ONAME[playerid]);
    SendClientMessage(playerid,COLOR_RED,tmp);
    }
    }
    return 1;
    }


    if(strcmp(cmd, "/map", true) == 0)
    {
    if (!IsPlayerAdmin(playerid))
    {
    SendClientMessage(playerid,COLOR_RED,"You aren`t logged in as an Admin!");
    }
    else
    {
    new tmp[128];
    tmp = strtok(cmdtext,index),OID[playerid] = strval(tmp);
    tmp = strtok(cmdtext,index),OX[playerid] = floatstr(tmp);
    tmp = strtok(cmdtext,index),OY[playerid] = floatstr(tmp);
    tmp = strtok(cmdtext,index),OZ[playerid] = floatstr(tmp);
    tmp = strtok(cmdtext,index),ORX[playerid] = floatstr(tmp);
    tmp = strtok(cmdtext,index),ORY[playerid] = floatstr(tmp);
    tmp = strtok(cmdtext,index),ORZ[playerid] = floatstr(tmp);
    ONAME[playerid] = strtok(cmdtext,index);
    obj[playerid] = CreateObject(OID[playerid], OX[playerid], OY[playerid], OZ[playerid], ORX[playerid], ORY[playerid], ORZ[playerid]);
    format(tmp, sizeof(tmp), "CreateObject(%d, %f, %f, %f, %f, %f, %f); //%s",OID[playerid], OX[playerid], OY[playerid], OZ[playerid], ORX[playerid], ORY[playerid], ORZ[playerid], ONAME[playerid]);
    SendClientMessage(playerid,COLOR_RED,tmp);
    O(tmp);
    }
    return 1;
    }


    if(strcmp(cmd, "/copymap", true) == 0)
    {
    if (!IsPlayerAdmin(playerid))
    {
    SendClientMessage(playerid,COLOR_RED,"You aren`t logged in as an Admin!");
    }
    else
    {
    if (!floatsqroot(OID[playerid]+OX[playerid]+OY[playerid]+OZ[playerid]+ORX[playerid]+ORY[playerid]+ORZ[playerid]))
    {
    return SendClientMessage(playerid, COLOR_BASIC, "Use /map first!");
    }
    else
    {
    new tmp[128];
    ONAME[playerid] = strtok(cmdtext,index);
    obj[playerid] = CreateObject(OID[playerid], OX[playerid], OY[playerid], OZ[playerid], ORX[playerid], ORY[playerid], ORZ[playerid]);
    tmp = strtok(cmdtext, index);
    format(tmp, sizeof(tmp), "CreateObject(%d, %f, %f, %f, %f, %f, %f); //%s",OID[playerid], OX[playerid], OY[playerid], OZ[playerid], ORX[playerid], ORY[playerid], ORZ[playerid], ONAME[playerid]);
    SendClientMessage(playerid,COLOR_RED,tmp);
    O(tmp);
    }
    }
    return 1;
    }


    if(strcmp(cmd, "/remap", true) == 0)
    {
    if (!IsPlayerAdmin(playerid))
    {
    SendClientMessage(playerid,COLOR_RED,"You aren`t logged in as an Admin!");
    }
    else
    {
    if (!floatsqroot(OID[playerid]+OX[playerid]+OY[playerid]+OZ[playerid]+ORX[playerid]+ORY[playerid]+ORZ[playerid]))
    {
    return SendClientMessage(playerid, COLOR_BASIC, "Use /map first!");
    }
    else
    {
    new tmp[128];
    tmp = strtok(cmdtext,index),OX[playerid] = floatstr(tmp);
    tmp = strtok(cmdtext,index),OY[playerid] = floatstr(tmp);
    tmp = strtok(cmdtext,index),OZ[playerid] = floatstr(tmp);
    tmp = strtok(cmdtext,index),ORX[playerid] = floatstr(tmp);
    tmp = strtok(cmdtext,index),ORY[playerid] = floatstr(tmp);
    tmp = strtok(cmdtext,index),ORZ[playerid] = floatstr(tmp);
    SetObjectPos(obj[playerid], OX[playerid], OY[playerid], OZ[playerid]);
    SetObjectRot(obj[playerid], ORX[playerid], ORY[playerid], ORZ[playerid]);
    format(tmp, sizeof(tmp), "CreateObject(%d, %f, %f, %f, %f, %f, %f); //%s wurde verschoben! ",OID[playerid], OX[playerid], OY[playerid], OZ[playerid], ORX[playerid], ORY[playerid], ORZ[playerid], ONAME[playerid]);
    SendClientMessage(playerid,COLOR_RED,tmp);
    O(tmp);
    }
    }
    return 1;
    }


    if(strcmp(cmd, "/delmap", true) == 0)
    {
    if (!IsPlayerAdmin(playerid))
    {
    SendClientMessage(playerid,COLOR_RED,"You aren`t logged in as an Admin!");
    }
    else
    {
    if (!floatsqroot(OID[playerid]+OX[playerid]+OY[playerid]+OZ[playerid]+ORX[playerid]+ORY[playerid]+ORZ[playerid]))
    {
    return SendClientMessage(playerid, COLOR_BASIC, "Use /map first!");
    }
    else
    {
    new tmp[128];
    DestroyObject(obj[playerid]);
    format(tmp, sizeof(tmp), "%s wurde gelöscht!",ONAME[playerid]);
    SendClientMessage(playerid,COLOR_RED,tmp);
    O(tmp);
    }
    }
    return 1;
    }


    //Objects
    O(string[])
    {
    new tmp[128];
    format(tmp, sizeof(tmp), "%s \r\n",string);
    new File:hFile;
    hFile = fopen("/Objects.txt", io_append);
    fwrite(hFile, tmp);
    fclose(hFile);
    }