Beiträge von Templer

    @ Funner Das hier sollte helfen... http://www.scienceblogs.de/erk…/337px-Brausetablette.JPG


    Ich denke du hast ihn vor lauter husten und nem Klammerfehler ned verstanden.. Also nach dem Beispiel von Oben wäre es dann so..


    new connect = mysql_connect(HOST,USER,DATABASE,PASSWORD), daten[64];
    mysql_query("SELECT Money FROM users",(-1),(-1),connect);
    mysql_store_result();
    mysql_fetch_row(daten);
    ResetPlayerMoney(playerid);
    GivePlayerMoney(playerid, strval(daten));

    Also bei return 0; kommt nur Unknown Command wenn der Befehl nicht gefunden wurde, den Befehle programmiert der Programmierer mit einem return 1; am Ende um dem Callback zu sagen, dass der Befehl ausgeführt worden ist. Sollte also bei return 0; bei einem vorhandenem Befehl diese Meldung kommen, so wurde der Befehl höchstwahrscheinlich nicht korrekt geschrieben bzw richtig wiedergegeben. Natürlich kann, was ich irgendwoher gehört habe, es sein, dass diese Meldung kommt, wenn kein Text wiedergegeben wird, jedoch denke ich nicht das diese Information stimmt. Müsste es selbst mal ausprobieren...

    Hier das was du wolltest ^^ Sogar mit Abfrage ob Spieler und Mechaniker im gleichen Auto sind und es wird angezeigt in Prozent wieviel repariert wurde ^^
    Edit: Ok habs nun richtig gemacht...


    dcmd_repair(playerid,params[])
    {
    new string[156],id,preis;
    if (sscanf(params, "dd", id,preis)) SendClientMessage(playerid, COLOR_WHITE, "Verwendung: /repair [ID] [Preis]");
    else if(id == INVALID_PLAYER_ID) SendClientMessage(playerid, COLOR_GREY, "Die ID ist ungültig");
    else if(!IsPlayerInVehicle(playerid, GetPlayerVehicleID(id))) return SendClientMessage(playerid, COLOR_GREY, "Du bist nicht im gleichen Fahrzeug mit ausgewähltem Spieler!");
    else
    {
    format(string,sizeof(string),"Du bietest ID %s an, sein Auto fuer $%d zu reparieren",ReadName(id),preis);
    SendClientMessage(playerid, COLOR_WHITE, string);
    format(string,sizeof(string),"%s bietet dir an, dein Auto fuer $%d zu reparieren. Gebe /acceptrepair ein",ReadName(playerid),preis);
    SendClientMessage(id, COLOR_WHITE, string);
    PlayerInfo[playerid][pJPoints] += 1;
    Angebot[0][id] = playerid;
    Angebot[1][id] = preis;
    Angebot[2][id] = 1;
    }
    return 1;
    }


    dcmd_acceptrepair(playerid,params[])
    {
    #pragma unused params
    if(Angebot[2][playerid] != 1) return SendClientMessage(playerid, COLOR_GREY, "Dir hat keiner etwas angeboten");
    if(!IsPlayerInVehicle(playerid, GetPlayerVehicleID(Angebot[0][playerid])) return SendClientMessage(playerid, COLOR_GREY, "Du bist nicht im gleichen Fahrzeug wie vom Mechaniker!");
    new string[156], Float:health;
    GetVehicleHealth(GetPlayerVehicleID(playerid), health);
    format(string,sizeof(string),"%s hat dir dein Auto für $%d um %0.f repariert", ReadName(Angebot[0][playerid]), Angebot[1][playerid], floatsub(100.0, floatmul(0.1, health)));
    SendClientMessage(playerid, COLOR_WHITE, string);
    JB_GivePlayerMoney(playerid, -Angebot[1][playerid]); JB_GivePlayerMoney(Angebot[0][playerid], Angebot[1][playerid]);
    RepairVehicle(GetPlayerVehicleID(playerid)); SetVehicleHealth(GetPlayerVehicleID(playerid), 1000.0);
    Angebot[0][playerid] = 999;
    Angebot[1][playerid] = 999;
    Angebot[2][playerid] = 999;
    return 1;
    }

    Mach unter der for Schleife einen Text und gut is..


    dcmd_henter(playerid,params[])
    {
    #pragma unused params
    if(IsPlayerConnected(playerid))
    {
    for(new h = 0; h <= MAX_HOUSES; h++)
    {
    if(PlayerToPoint(PTP_RADIUS, playerid, HouseInfo[h][hExitX], HouseInfo[h][hExitY], HouseInfo[h][hExitZ]))
    {
    new Level = HouseInfo[h][hLevel];
    if(HouseInfo[h][hLocked] == 1 && strcmp(HouseInfo[h][hName],GetName(playerid), false ) != 0) return SendClientMessage(playerid, COLOR_GREY, "Dieses Haus wurde durch den Besitzer verschlossen");
    SetPlayerPos(playerid, HousesCoords[Level][0], HousesCoords[Level][1], HousesCoords[Level][2]);
    SetPlayerInterior(playerid, HousesLevels[Level][0]); SetPlayerVirtualWorld(playerid, HouseInfo[h][hVirtualWorld]);
    return GameTextForPlayer(playerid, "~g~Willkommen", 1500, 3);
    }
    }
    return SendClientMessage(playerid, COLOR_GREY, "Du bist nicht in der Nähe eines Hauses!");
    }
    return 1;
    }


    Das gleiche beim anderen Befehl auch..

    Ja, Sie werden erst nach dem ersten Verwenden immer Respawnt automatisch, also wenn du es auch ohne 1. Benützung haben willst dann musst du unter OnFilterScriptInit folgende Zeile ändern:


    gVehicleCounter[vehicles] = 0;


    zu


    gVehicleCounter[vehicles] = gettime()+10;

    Huhu Leute,


    Mein Vorschlag wäre, dass es eine Benutzergruppe geben sollte, wofür man sich Bewerben könnte, in der es zB den Vorteil gibt, größere Dateien im Anhang von Themen und Beiträgen hochzuladen, damit es keine "gebrochene" Links mehr geben sollte, bei Vertrauenswürdigen Personen. Sollte es bereits so eine Gruppe geben: Wie kann man sich dort bewerben? ^^ Ist es wegen Speicherplatz gründen, dann verstehe ich euch und somit ist dieser Vorschlag unnütz. Jedoch ich selbst würde es persönlich sehr toll finden, da es manche alte Beiträge von Sagen wir Scripten gibt, deren Link gebrochen ist und man immer neu Anfragen muss ob wer die Datei hat bzw. Sie wer kurz hochlädt und Co.. .
    Die Variante mit der Databse finde ich eher nicht so toll, da diese nur für sowas Verwendet werden soll, wenn es sagen wir größere Scripts oder sonstiges sind, welche auch wirklich an Bedeutung haben und nicht (was eigentlich bereits schon ist) für langweilige GF-Edits Verfügbar ist ^^


    Naja danke fürs Lesen und hoffe auf weitere Kommentare, Anregungen und Kritik zu meinem Vorschlag


    Verbleibe weiterhin als Templer ^^


    Edit: Habe auch den Beitrag von dort zu spät gelesen, bevor ich dieses Thema erstellt habe Sry: Erhöhung der max Dateigröße


    Jedoch wie gesagt würde ich dafür ne eigene Benutzergruppe erstellen lassen, für "vertrauenswürdige" Benutzer


    Edit2: Was noch besser wäre, dass die Benutzergruppe dann einen monatlichen Beitrag leisten soll, womit sich dann breadfish auch einen höheren Speicherplatz leisten könnte und ich denke, dass dieser Betrag bei ca. 3€ - 5€ liegen sollte, da ein berühmtes Forum doch einen gewissen Anspruch haben sollte von meiner Seite aus, denn die SteamServer sagen zB auch nicht "Sry Jungs, Festplatte voll, wir löschen mal die alten Spiele von unseren Server und wer kein Backup macht von diesen, hat Pech gehabt und kann sich das Spiel nicht mehr neu runterladen" :P

    Der Pawno Compiler zeigt ja nur die Fehler an, welche vom Code her nicht stimmen oder sonstiges, aber er sagt sicher ned z.B.: "Halt, DisablePlayerCheckpoint ist in einem Timer" oder sonstiges ^^ Aber ok wenn es nicht meiner Theorie entspricht, dann kann ich dir ned Helfen sry, vielleicht weiß ein anderer Rat

    Ka, was du meinst, aber dein Code hatte einen Klammerfehler..


    else if (item == 3 && (PlayerInfo[playerid][pMember] == 3||PlayerInfo[playerid][pLeader] == 3 ||PlayerInfo[playerid][pMember] == 21||PlayerInfo[playerid][pLeader] == 21 ||PlayerInfo[playerid][pMember] == 1||PlayerInfo[playerid][pLeader] == 1 || PlayerInfo[playerid][pMember] == 2 || PlayerInfo[playerid][pLeader] == 2 || PlayerInfo[playerid][pLeader] == 7))
    {
    GivePlayerWeapon(playerid, 22, 150);
    }

    Such mal in einem Timer nach DisablePlayerCheckpoint und füge diese Code Abschnitte von den Timer hier hinein! Wenns möglich ist, die ganze Abfrage was damit zu tun hat.

    Hier bitte, im Anhang hab ich heute für dich auf die Schnelle ein FilterScript gemacht und überprüft! Ich hab es so schonend wie möglich aufgebaut und überprüft alle 10 Sekunden ob das Fahrzeug in Betrieb und wird respawnt beim Streamen, natürlich kannst du oben in den defines auswählen ob das Fahrzeug nach 10 Sekunden beim ersten Streamen sofort respawnt werden soll, oder erst dann nach 10 Sekunden wenn kein Spieler das Auto mehr sieht. Die Sekunden kannst du auch definen. HF ^^

    Dein Code oben stimmt eigentlich, steht auch beim Dialog Zeigen, also bei ShowPlayerDialog, die Dialogid abfrage2? Also wie es Hardcore zB gepostet hat:


    ShowPlayerDialog(playerid,abfrage2,DIALOG_STYLE_LIST,"Woher kommst du?","Deutschland\nÖsterreich\nSchweiz","Weiter"," ");

    Du butches hör ned auf die anderen, deine Abfrage ist zwar umständlich, jedoch funktioniert sie eh, jedoch wäre folgendes einfacher:


    if( PlayerInfo[playerid][pFraktion] != 1)
    (Damit ist die Leute in Breadfish auch verstehen :P )


    Zu deinem Problem, der liegt bei strcmp. Bei strcmp wird der Wert 0 (bzw false) wiedergegeben, wenn der Name übereinstimmt und nicht 1, also ändere deine Zeile zu
    if (strcmp(fahrzeugdaten[nvehicleid][gewerbeowner],"lspd") == 0)
    oder
    if (!strcmp(fahrzeugdaten[nvehicleid][gewerbeowner],"lspd"))


    Beides ist möglich :P

    Bitte schau dir nun folgenden genauer an, da ich grad bissl müde dazu bin dir dies zu erklären :P


    dcmd_giveweapon(playerid,params[])
    {
    new pID, waffe[32], wID = -1, Ammo, waffe2[32], aname[MAX_PLAYER_NAME], string2[128], nameid = 0;
    if(sscanf(params, "usd", pID, waffe, Ammo)) return SendClientMessage(playerid,COLOR_RED,"Benutzung: /giveweapon [Playerid] [Waffen-ID] [Munition]");
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,COLOR_RED,"Kein Spieler mit angegebener ID Online");
    if(SpielerInfo[playerid][alvl] < 3) return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin Level 3!");
    if(IsNumeric(waffe))
    {
    if(strval(waffe) < 1 || strval(waffe) > 46) return return SendClientMessage(playerid,COLOR_RED,"WaffenID nicht kleiner als 1 oder höher als 46!");
    wID=strval(waffe);
    format(waffe2, 32, WeaponName[strval(waffe)]);
    }
    else if(!IsNumeric(waffe))
    {
    for(; nameid < sizeof(WeaponName); nameid++)
    {
    if(strlen(WeaponName[nameid]) && strcmp(waffe, WeaponName[nameid], true) == 0)
    {
    wID=nameid;
    format(waffe2, 32, waffe);
    break;
    }
    }
    if(wID == -1) return SendClientMessage(playerid, 0xFFFFFFFF, "Ungültiger Waffenname!");
    }
    GetPlayerName(playerid, aname, sizeof(aname));
    format(string2, sizeof(string2), "[AdmCmd] Du hast von %s eine %s mit %d Munition bekommen.", aname, waffe2, Ammo);
    SendClientMessage(pID, COLOR_RED, string2);
    GivePlayerWeapon(pID, wID, Ammo);
    return 1;
    }


    Achja zu deiner Frage vom letzten Post warum 2 von solchen [ ] Klammern dort sein sollen. Da die erste Klammer wenn kein Wert angegeben ist zählt wieviele WaffenNamen eingetragen wurden sind mit " ", und so weiter und die andere Klammer zählt wieviel der höchste String beträgt, also steht für den String, wie zB bei deinem Befehl der string waffe2 und Co

    Das gleiche machst du bei der Rein funktion..


    if (strcmp("/raus", cmdtext, true, 10) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid, 10, 2522.9692382813, -1229.9373779297, 994.56225585938))
    {
    if(IsPlayerInAnyVehicle(playerid)) SetVehiclePos(GetPlayerVehicleID(playerid), -1786.8106689453, 1205.5583496094, 24.691337585449);
    else SetPlayerPos(playerid, -1786.8106689453, 1205.5583496094, 24.691337585449);
    SetPlayerInterior(playerid, 0);
    }
    }