Beiträge von Illex

    Hallo liebe Breadfish Community,


    liberty-reallife.de sucht wieder Unterstützung für sein Scripterteam.
    Gerne auch gegen Bezahlung.


    Bei Interesse --> PN! :)


    Mit freundlichen Grüßen
    Die Liberty-Reallife Projektleitung

    Hallo liebe Breadfish Community,


    liberty-reallife.de sucht Unterstützung für sein Scripterteam.


    Dem ein oder anderen wird unser Server bestimmt etwas sagen.
    In unseren besten Zeiten waren wir mit einem Durchschnitt von über 100 Usern gleichzeitig online einer der größten deutschen Reallife Servern.


    Doch leider sind diese Zeiten vorbei und wir haben immer mehr aktive Spieler verloren.
    Zwar besitzen wir eine nach wie vor große Community (Forum), welche jedoch auf Grund der mangelhaften Update-Situation der letzten Jahre kaum mehr aktiv spielt.


    Was erwarten wir von dir?

    • Sehr gute Kenntnisse mit Pawno
    • Professionelles, ordentliches und performantes Scripten
    • Erfahrung mit SAMP/Reallife Servern
    • Referenzen
    • Aktivität
    • Eine gewisse Reife
    • Motivation
    • Kreativität
    • Hohes Verantwortungsbewusstsein
    • Teamarbeit


    Was sind deine Aufgaben?

    • Selbstständiges Ausarbeiten von neuen Features in Absprache mit dem Adminteam
    • Selbstständiges Ausarbeiten von Bugfixes
    • Selbstständiges Ausarbeiten von Performance Updates


    Was bieten wir dir?

    • Potential eines großen Servers
    • Eine nach wie vor große Community
    • Reichweite für deine Skripts
    • Implementierung eigener Ideen
    • Berechtigungen
    • Bezahlung


    Über Bewerbungen freuen wir uns via PN, anschließend erfolgt ein erstes Teamspeak Gespräch.
    Unbeantwortete Fragen gerne in diesem Thread.


    Mit freundlichen Grüßen
    Die Liberty-Reallife Projektleitung

    Danke Fabi :)


    Problem gelöst!


    Für alle die das selbe Problem haben:
    Habe die eine Funktion jetzt gelöscht und an der Anderen rumgefummelt, bis sie funktioniert. Sieht jetzt so aus:

    public Float:GetDistanceBetweenPoints(Float:PointX, Float:PointY, Float:PointZ, Float:Point2X, Float:Point2Y, Float:Point2Z)
    {
    new Float:Distance;
    Distance = floatabs(floatsub(PointX, Point2X)) + floatabs(floatsub(PointY, Point2Y)) + floatabs(floatsub(PointZ, Point2Z));
    return Distance;
    }


    //dann halt nicht vergessen, sie oben zu forwarden:
    forward Float:GetDistanceBetweenPoints(Float:PointX, Float:PointY, Float:PointZ, Float:Point2X, Float:Point2Y, Float:Point2Z);


    Mit freundlichen Grüßen
    Illex

    Hey Leute,
    da ich zwei Funktionen aus der uf.inc brauchte, hab ich die uf.inc in mein Script included.
    Da das zu mehreren Problemen führt, da ich schon einige Funktionen übernommen hatte und auch sonst ein paar Dinge so ganz passten wie ich will, hab ich einfach die beiden Funktionen aus der uf.inc genommen und in mein Script eingefügt:
    stock Float:GetDistanceBetweenPoints(Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2)
    {
    return floatadd(floatadd(floatsqroot(floatpower(floatsub(x1,x2),2)),floatsqroot(floatpower(floatsub(y1,y2),2))),floatsqroot(floatpower(floatsub(z1,z2),2)));
    }


    stock Float:GetDistanceToPoint(playerid,Float:x1,Float:y1,Float:z1)
    {
    if (IsPlayerConnected(playerid))
    {
    new Float:x2,Float:y2,Float:z2;
    GetPlayerPos(playerid,x2,y2,z2);
    return GetDistanceBetweenPoints(x1,y1,z1,x2,y2,z2);
    }
    return INF_FLOAT;
    }
    INF_FLOAT ist definiert.


    Bekomme folgende Warnings und das Pawno gibt beim Compilen keine Rückmeldung:

    Code
    warning 208: function with tag result used before definition, forcing reparse
    warning 208: function with tag result used before definition, forcing reparse


    Die beiden Warnings sind auf den "stock" Zeilen.


    Jemand ne Idee?


    Mit freundlichen Grüßen
    Illex

    Hey Leute,
    ich wollte fragen obs ne einfache Lösung gibt abzufragen, ob der Spieler sich näher an Punkt A oder näher an Punkt B befindet.
    Wenn er näher an Punkt A ist passiert das und das, wenn er näher an Punkt B ist passiert das und das...


    Ich hab das jetzt total kompliziert mit Vektorrechnung gelöst und mich würde interessieren, ob jemand ne einfachere Lösung wüsste. ;)


    Mit freundlichen Grüßen
    Illex

    Meine Güte ihr heult hier aber auch echt alle rum.
    Jetzt macht sich einer die Mühe und schafft es den "blöden Kye" von seinem Thron zu werfen und ihr empfangt ihn mit solchen Posts...
    Vielleicht muss er sich erst ein mal einarbeiten und fängt erst mit kleinen Sachen an?
    Ist doch scheiß egal, hauptsache es passiert mal was und jemand setzt sich auf seinen Hosenbund und macht was!
    Dann passiert vielleicht auch bald mehr... ;)


    Aber so ist es kein wunder, dass SAMP im Vergleich zu MTA nicht so weit ist.


    Mit freundlichen Grüßen
    Illex

    Achso, okay, dann machs mal so:

    if(!strcmp(strget(cmdtext,0),"/createhouse"))
    {
    if(IsPlayerConnected(playerid))
    {
    new preish = strval(strget(cmdtext,1));
    new interiorh = strval(strget(cmdtext,2));
    if(!strlen(strget(cmdtext,1))) { SendClientMessage(playerid,COLOR_RED,"Benutzung: /Createhouse [Preis] [Interior]"); return 1; }
    if(!strlen(strget(cmdtext,2))) { SendClientMessage(playerid,COLOR_RED,"Benutzung: /Createhouse [Preis] [Interior]"); return 1; }
    if(preish > 10000000 || preish < 0) { SendClientMessage(playerid,COLOR_RED,"Der Preis darf nicht höher als 10.000.000 SAS oder weniger als 0 SAS sein!"); return 1; }
    new Float:xh, Float:yh, Float:zh, string[256];
    GetPlayerPos(playerid, xh, yh, zh);
    CreatePickup(1272,23,xh,yh,zh);
    SendClientMessage(playerid, COLOR_GREEN,"Du hast ein Haus erstellt.");
    format(string, 255,"Kordinaten: X(%d), Y(%d), Z(%d).",xh,yh,zh);
    SendClientMessage(playerid, COLOR_GREEN,string);
    house[MAX_HOUSE+1][Preis] = preish;
    house[MAX_HOUSE+1][Interior] = interiorh;
    house[MAX_HOUSE+1][Besitzer] = NOOWNER;
    house[MAX_HOUSE+1][Float:housex] = xh;
    house[MAX_HOUSE+1][Float:housey] = yh;
    house[MAX_HOUSE+1][Float:housez] = zh;
    SaveHouse();
    }

    Ich habs dir schon gemacht. ;)


    Gib einfach in Zukunft ein wenn du ein Haus machst:
    /createhouse [Preis] [Interior] [0]
    Wenn du dann noch eins machst:
    /createhouse [Preis] [Interior] [1]
    Noch eins:
    /createhouse [Preis] [Interior] [2]
    Und immer so weiter.


    Aber wie gesagt, denk dran im Script den Array um 1 zu erhöhen, wenn du ein Haus erstellst. :)

    Versuchs mal bitte so:

    stock AddBlendrauch(playerid) {
    new Float:x, Float:y, Float:z, Float:a;
    GetPlayerPos(playerid,x,y,z);
    GetPlayerFacingAngle(playerid, a);
    for(new i = 0; i <= sizeof(Blendrauch); i++) {
    if(Blendrauch[i][sErstellt] == 0) {
    Blendrauch[i][BlendrauchY] = y;
    Blendrauch[i][BlendrauchZ] = z;
    Blendrauch[i][sErstellt] = 1;
    Blendrauch[i][ID] = CreateObject(2780, x, y, z - 0.6, 0.0, 0.0, a - 180.0);
    }
    }
    return 1;
    }
    stock RemoveAllBlendrauch() {
    for(new i = 0; i <= sizeof(Blendrauch); i++) {
    if(Blendrauch[i][sErstellt] == 1) {
    Blendrauch[i][sErstellt] = 0;
    Blendrauch[i][BlendrauchX] = 0.0;
    SBlendrauch[i][BlendrauchY] = 0.0;
    Blendrauch[i][BlendrauchZ] = 0.0;
    DestroyObject(Blendrauch[i][ID]);
    }
    }
    return 1;
    }

    Zitat

    <---- was muss da statt MAX_HOUSES rein??

    Die ID die das Haus haben soll. ;)
    Du fasst die Häuser in einem Array (eine Art Zähler) zusammen.
    0 = das erste Haus (ACHTUNG: Es fängt mit 0 an!)
    1 = das zweite Haus
    2 = das dritte Haus
    usw.


    Wenn du Beispielsweise schon ein Haus gemacht hast, muss da "1" stehen.


    In deinem Fall, da du es per Befehl machst, muss du im CMD mit angeben, welche id das Haus haben soll und es dann an der Stelle "MAX_HOUSE" eintragen lassen.
    Würde dann so aussehen:


    if(!strcmp(strget(cmdtext,0),"/createhouse"))
    {
    if(IsPlayerConnected(playerid))
    {
    new preish = strval(strget(cmdtext,1));
    new interiorh = strval(strget(cmdtext,2));
    new HausID = strval(strget(cmdtext,3));
    if(!strlen(strget(cmdtext,1))) { SendClientMessage(playerid,COLOR_RED,"Benutzung: /Createhouse [Preis] [Interior] [ID]"); return 1; }
    if(!strlen(strget(cmdtext,2))) { SendClientMessage(playerid,COLOR_RED,"Benutzung: /Createhouse [Preis] [Interior] [ID]"); return 1; }
    if(!strlen(strget(cmdtext,3))) { SendClientMessage(playerid,COLOR_RED,"Benutzung: /Createhouse [Preis] [Interior] [ID]"); return 1; }
    if(preish > 10000000 || preish < 0) { SendClientMessage(playerid,COLOR_RED,"Der Preis darf nicht höher als 10.000.000 SAS oder weniger als 0 SAS sein!"); return 1; }
    new Float:xh, Float:yh, Float:zh, string[256];
    GetPlayerPos(playerid, xh, yh, zh);
    CreatePickup(1272,23,xh,yh,zh);
    SendClientMessage(playerid, COLOR_GREEN,"Du hast ein Haus erstellt.");
    format(string, 255,"Kordinaten: X(%d), Y(%d), Z(%d).",xh,yh,zh);
    SendClientMessage(playerid, COLOR_GREEN,string);
    house[HausID][Preis] = preish;
    house[HausID][Interior] = interiorh;
    house[HausID][Besitzer] = NOOWNER;
    house[HausID][Float:housex] = xh;
    house[HausID][Float:housey] = yh;
    house[HausID][Float:housez] = zh;
    SaveHouse();
    }
    Aber aufgepasst! Du musst dann oben bei new house[x][blablabla] beim x +1 machen (da du ja ein Haus hinzufügst. ;))