Beiträge von JohnGotti

    Hängt wohl unter anderem davon ab wie umfangreich dein Script ist... wenn da dutzende Timer pro Player abgearbeitet werden, dutzende Schleifen konstant laufen etc... ich geh mal stark davon aus das ein GF Script sicher 10mal+ mehr Leistung frisst als zB. eins der bei samp mitgelieferten Scripte wie lvdm.


    Zudem bei einem V-Server das hängt wohl auch stark davon ab was die anderen Leute noch so laufen haben mit denen du den Root-Server als V-Serer teilst.


    Wenns wohl anfängt zu laggen gibts wohl nur 2 Haupt-Lösungen a) Resourcenschonender scripten b) Server wechseln zu mehr Leistung

    Ich würd im Ernstfall erstma "mündlich/schriftlich" den Serverinhaber belehren und wenn dieser den Forderungen (Entfernung) nicht zeitnah nachkommt, dann schriftlich abmahnen über Anwalt und Unterlassungserklärung gleich hinterher zum Schutz vor zukünftigen Verstößen, wenn jemand Scripte von mir verwendet, bzw Scripte oder Scriptteile die von mir stammen/von mir bearbeitet wurden und nicht von mir veröffentlicht wurden bzw. nicht zur Nutzung von mir legimitiert wurden...


    Es gibt soviele freie releaste Gamemodes, da kann sich wirklich jeder das passende raussuchen und wenns nicht passt eben selbst erweitern editieren, da muss man nicht die Arbeit anderer Leute "klauen"...

    if (strcmp(cmd, "/desveh", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD1, "ANWENDUNG: /desveh CarID]");
    SendClientMessage(playerid, COLOR_GRAD1, "Mit diesem Befehl löschst du das ausgewählte Fahrzeug");
    return 1;
    }
    new vehno = strval(tmp);
    new string[60];
    format(string, sizeof(string), "Fahrzeug %d wurde destroyed!", vehno);
    SendClientMessage(playerid, COLOR_YELLOW, string);
    DestroyVehicle(vehno);
    return 1;
    }
    }



    ungetestet

    if (strcmp("/aussteigen", cmdtext, true, 10) == 0)
    {
    if(!IsPlayerInAnyVehicle(playerid))
    {
    RemovePlayerFromVehicle(playerid);
    TogglePlayerControllable(playerid, 1);
    }
    return 1;
    }

    Was unterm Strich als einzige alternative für dich (Eddy) bleibt, ist wohl das Projekt an welchem du schon mitwirkst, wenn es um striktes "RolePlay" im ursprünglichen Sinne geht, wirst du wohl nichts "besseres" finden...


    Ich muss wohl auch gestehen das das Topic wohl den einzigen Grund verfolgt genau zu diesem Schluss zu kommen und die restlichen vorgeschlagenen Projekte bezüglich "RolePlay" zu diskreditieren.... fehlt nur noch ein umfangreicher Abschlusspost von Black_Blade in dem er sein Projekt als ultimatie Lösung für dein(unser aller Probleme) ins Rampenlicht setzt...

    Für mein Naigationssystem arbeite ich derzeit an einer Funktion die dem Spieler zB. bei Auswahl "Burger-Shot" ihm den nächstgelgensten Burger-Shot on seiner Position aus aufzeigen soll, wie löst man das am elegantesten ? Würde mich über ein Beispiel freuen:


    Angenommen:


    Spielerposition: 1833.7430,-1842.5751,13.5781


    Burger Shot 1: 1000.3955,-919.9272,42.3281
    Burger Shot 2: 1315.5508,-897.9063,39.5781
    Burger Shot 3: 1352.2830,-1759.2533,13.5078
    Burger Shot 4 : -2442.6411,755.1816,35.1719



    Burger Shot 3 ist am nähesten

    Hallo, wie der Titel scon besagt suche ich eine passende Animation für die Waffe Schaufel, damit man die im ausführenden Kontext irgendwie passend darstellen kann... evtl. auch ne zweckentfremdete Animation die Gut passt. Ich hab schonmal kurz gesucht aber aufgrund der nahezu endlosen Animationsliste leider bisher nichts gefunden... wenn jemand ne Idee/Tipp hätte wäre ich dankbar

    Soweit ich weis, kannst du im Hauptordner wo die Exe liegt einfach eine Darei "samp.ban" erstellen und zB. die IPs dort eintragen. evtl. kann man auch einige Ziffern weglassen von der ganzen IP oder etvl. Variablen für den Rest einfügen damit ein IP-Range entsteht, müsste man mal testen, geht aber sicher so irgendwie

    Ich suche nach einer "Schlag-Erkennung". dh. das ich erkenne wenn ein Player schlagen/feuern drückt/klickt. Ich habe das ua. mal irgendwo auf einem Server gesehen wo es in einer NO-DM Zone erkannt wird. Jemand ne Ahnung wie man das umsetzt ?


    Weiterhin müsst ich wissen, mal angenommen man hat ne Deagle und ne AK47, und ich möchte nicht das man mit der AK47 schießen kann, dh. diese soll immer wegswitchen, jedoch soll man mit der Deagle noch schießen können ohne das sie wegswitcht wenn ausgewählt, ist das irgendwie möglich ?


    Danke im Voraus

    Ich hab grade mal im Showroom geguckt und da hab ich ein Blitzersystem gefunden von Stas, (http://pastebin.com/KpwcinwY) da is zB. ne schöne Kilometer/Geschwindigkeits-Berechnung drin, die könnteste dir einfach abschauen oder im ernstfall copy&pasten und dann noch ne neue Definition einfügen für KM-Stand für jedes Auto und dann da alles reinaddieren was man gefahren ist um auf die Laufleistung zu kommen... dann oen wie beschrieben noch Tank definieren und bei erhöhung um 1 km -2 Benzin

    Mach nen Tank, 100 Liter wohl am einfachsten... und immer wenn KM-Stand sich um 1 KM erhöht hat, machste Tank -= 2;


    Tank definieren new audotank[Anzahl der Autos] = 100;
    Abrufen und abziehn... wenn Tank <= 0 Player freezen oder aus Karre werfen mit Benachrichtigung "Dein Tank ist leer, du musst den Wagen zur nächsten Tankstelle schieben :-)"

    Also, ich kann nur so sagen wie ichs gemacht hab, aber ich nutze GF, da is ja nen Tacho schon drin, und der spuckt ja schon jede Sekunde oder halbe Sekunde während der Fahrt die Geschwindigkeit aus... ich habs einfach so gemacht das ich diese schon vorhandene Geschwingkeitsausgabe nun einfach sammele/summiere statt das die einfach verfällt, und daraus ergibit sich dann automatisch die zurückgelegene Strecke, geht sicher mit jedem Tacho so... aber im Grunde geht die Formal exakt so wie du es schon angedeutet hast

    Also ich hab auch keinerlei Vorbildung was Scripting angeht...
    Ich hab einfach irgendwann angefangen mit dem hier allseits "beliebten" ^^ Godfather und das dann selbst nach und nach immer bischen verändert... anfangs da mal ne Zahl ausgetauscht, hier mal was gemappt, nen Auto hinzugefügt.. Sachen umbenannt, übersetzt, Sachen dupliziert umgebaut und erweitert... und nach und nach mit etwas Gefühl und Verständniss für Logik bekommt man da automtisch immer mehr Durchblick

    Gehn tut das schon, wenn du einfach alle Ausgaben und Einnahmen zählst die der Spieler hat und dann überprüfst ob er halt trotzdem mehr hat, und wenns so ist dann gibts ja nur eine Möglichkeit wo das "Mehrgeld" herkommt... nämlich von der dunklen Seite der Macht... ^^


    forward MoneyDings();
    new Mons1[MAX_PLAYERS];
    new Mons2[MAX_PLAYERS];
    new Mons3[MAX_PLAYERS];
    new Mons4[MAX_PLAYERS];
    new Mons5[MAX_PLAYERS];
    new Mons6[MAX_PLAYERS];
    new Mons7[MAX_PLAYERS];
    new Mons8[MAX_PLAYERS];
    new Mons9[MAX_PLAYERS];
    new Mons10[MAX_PLAYERS];
    SetTimer("MoneyDings", 1000, 1);
    public MoneyDings()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(Mons1[i] == 0)
    {
    Mons1[i] = GetPlayerMoney(i);
    }
    else if(Mons2[i] == 0)
    {
    if(GetPlayerMoney(i) != Mons1[i])
    {
    Mons2[i] = GetPlayerMoney(i);
    }
    else
    {
    Mons1[i] = 0;
    Mons2[i] = 0;
    Mons3[i] = 0;
    Mons4[i] = 0;
    Mons5[i] = 0;
    Mons6[i] = 0;
    Mons7[i] = 0;
    Mons8[i] = 0;
    Mons9[i] = 0;
    Mons10[i] = 0;
    }
    }
    else if(Mons3[i] == 0)
    {
    if(GetPlayerMoney(i) != Mons2[i])
    {
    Mons3[i] = GetPlayerMoney(i);
    }
    else
    {
    Mons1[i] = 0;
    Mons2[i] = 0;
    Mons3[i] = 0;
    Mons4[i] = 0;
    Mons5[i] = 0;
    Mons6[i] = 0;
    Mons7[i] = 0;
    Mons8[i] = 0;
    Mons9[i] = 0;
    Mons10[i] = 0;
    }
    }
    else if(Mons4[i] == 0)
    {
    if(GetPlayerMoney(i) != Mons3[i])
    {
    Mons4[i] = GetPlayerMoney(i);
    }
    else
    {
    Mons1[i] = 0;
    Mons2[i] = 0;
    Mons3[i] = 0;
    Mons4[i] = 0;
    Mons5[i] = 0;
    Mons6[i] = 0;
    Mons7[i] = 0;
    Mons8[i] = 0;
    Mons9[i] = 0;
    Mons10[i] = 0;
    }
    }
    else if(Mons5[i] == 0)
    {
    if(GetPlayerMoney(i) != Mons4[i])
    {
    Mons5[i] = GetPlayerMoney(i);
    }
    else
    {
    Mons1[i] = 0;
    Mons2[i] = 0;
    Mons3[i] = 0;
    Mons4[i] = 0;
    Mons5[i] = 0;
    Mons6[i] = 0;
    Mons7[i] = 0;
    Mons8[i] = 0;
    Mons9[i] = 0;
    Mons10[i] = 0;
    }
    }
    else if(Mons6[i] == 0)
    {
    if(GetPlayerMoney(i) != Mons5[i])
    {
    Mons6[i] = GetPlayerMoney(i);
    }
    else
    {
    Mons1[i] = 0;
    Mons2[i] = 0;
    Mons3[i] = 0;
    Mons4[i] = 0;
    Mons5[i] = 0;
    Mons6[i] = 0;
    Mons7[i] = 0;
    Mons8[i] = 0;
    Mons9[i] = 0;
    Mons10[i] = 0;
    }
    }
    else if(Mons7[playerid] == 0)
    {
    if(GetPlayerMoney(i) != Mons6[i])
    {
    Mons7[i] = GetPlayerMoney(i);
    }
    else
    {
    Mons1[i] = 0;
    Mons2[i] = 0;
    Mons3[i] = 0;
    Mons4[i] = 0;
    Mons5[i] = 0;
    Mons6[i] = 0;
    Mons7[i] = 0;
    Mons8[i] = 0;
    Mons9[i] = 0;
    Mons10[i] = 0;
    }
    }
    else if(Mons8[i] == 0)
    {
    if(GetPlayerMoney(i) != Mons7[i])
    {
    Mons8[i] = GetPlayerMoney(i);
    }
    else
    {
    Mons1[i] = 0;
    Mons2[i] = 0;
    Mons3[i] = 0;
    Mons4[i] = 0;
    Mons5[i] = 0;
    Mons6[i] = 0;
    Mons7[i] = 0;
    Mons8[i] = 0;
    Mons9[i] = 0;
    Mons10[i] = 0;
    }
    }
    else if(Mons9[i] == 0)
    {
    if(GetPlayerMoney(i) != Mons8[i])
    {
    Mons9[i] = GetPlayerMoney(i);
    }
    else
    {
    Mons1[i] = 0;
    Mons2[i] = 0;
    Mons3[i] = 0;
    Mons4[i] = 0;
    Mons5[i] = 0;
    Mons6[i] = 0;
    Mons7[i] = 0;
    Mons8[i] = 0;
    Mons9[i] = 0;
    Mons10[i] = 0;
    }
    }
    else if(Mons10[i] == 0)
    {
    if(GetPlayerMoney(i) != Mons9[i])
    {
    Mons10[i] = GetPlayerMoney(i);
    }
    else
    {
    Mons1[i] = 0;
    Mons2[i] = 0;
    Mons3[i] = 0;
    Mons4[i] = 0;
    Mons5[i] = 0;
    Mons6[i] = 0;
    Mons7[i] = 0;
    Mons8[i] = 0;
    Mons9[i] = 0;
    Mons10[i] = 0;
    }
    }
    else
    {
    new string[200];
    new sendername[200];
    new maxmon = Mons1[i]+Mons2[i]+Mons3[i]+Mons4[i]+Mons5[i]+Mons6[i]+Mons7[i]+Mons8[i]+Mons9[i]+Mons10[i];
    GetPlayerName(i, sendername, sizeof(sendername));
    format(string, sizeof(string), "Geld von %s (ID %d) ist innerhalb der letzten 10 Sec ständig gesteigen (um insg $%d)", sendername, i, maxnon);
    SendClientMessage(i, COLOR_DBLUE, string); // Gegen Admin message austauschen
    Mons1[i] = 0;
    Mons2[i] = 0;
    Mons3[i] = 0;
    Mons4[i] = 0;
    Mons5[i] = 0;
    Mons6[i] = 0;
    Mons7[i] = 0;
    Mons8[i] = 0;
    Mons9[i] = 0;
    Mons10[i] = 0;
    }
    }
    }
    }