Beiträge von Templer

    Also ja autohaus pickup gehört so:


    Autohaus = CreatePickup(1239, 1, -2026.7188720703,-101.33640289307,35.1640625, 0);


    Frage: Wo steht dieses CreatePickup? Unter OnGameModeInit?


    Zum speichern:


    dUserSetINT(PlayerName(playerid)).("Team",gTeam[playerid]);
    unter deinem money und skin da und dann beim Einloggen, wo das money und skin geladen wird das einfügen:
    gTeam[playerid],playerid, dUserINT(PlayerName(playerid)).("Team"));

    Probiers damit und bei Errors bitte schicken:


    dcmd_MakeLeader(playerid, params[])
    {
    new pID, level;
    new ThePlayer[MAX_PLAYER_NAME], string[128];
    new CmdPlayer[MAX_PLAYER_NAME], string2[256];
    GetPlayerName(pID, ThePlayer, sizeof(ThePlayer));
    GetPlayerName(playerid, CmdPlayer, sizeof(CmdPlayer));
    if(IsPlayerConnected(playerid))
    {
    if(IsPlayerAdmin(playerid) || (PlayerInfo[playerid][pAdmin] >= 1000))
    {
    if (gPlayerLogged[playerid] == 1)
    {
    if (sscanf(params, "ud", pID, level))
    {
    return SendClientMessage(playerid, Farbe_Grad1, "SERVER: /MakeLeader >SpielerID< >Fraktion<");
    }
    if (!IsPlayerConnected(pID))
    {
    return SendClientMessage(playerid, Farbe_Grad5, "Die SpielerID ist nicht vergeben!");
    }
    if (gPlayerLogged[pID] == 0)
    {
    return SendClientMessage(playerid, Farbe_Grad5, "Der Spieler ist nicht eingeloggt!");
    }
    if (level < 0 || level > 17)
    {
    return SendClientMessage(playerid, Farbe_Grad5, "Wähle eine Fraktionsnummer zwischen 0 und 17");
    }
    format(string, sizeof(string), "Du hast %s zum Leader von Fraktion %d gemacht!", ThePlayer, level);
    SendClientMessage(playerid, Farbe_Gelb, string);
    format(string2, sizeof(string2), "%s hat dich zum Leader von Fraktion %d gemacht!", CmdPlayer, level);
    SendClientMessage(pID, Farbe_Gelb, string2);
    PlayerInfo[pID][pLeader] = level;
    gTeam[pID] = level;
    SpawnPlayer(pID);
    }
    else
    {
    SendClientMessage(playerid, Farbe_Grad5, "Du bist nicht eingeloggt!");
    }
    }
    else
    {
    SendClientMessage(playerid, Farbe_Grad5, "Du bist kein Administrator!");
    }
    }
    return 1;
    }

    Bitte ersetzen und den Auszug von ServerLog hierher kopieren, danke! Natürlich kommt erst dann was, wenn du das mim Dialog nochma probierst!


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    printf("OnDialogResponse = id: %d response: %d", dialogid, response);
    if(dialogid == premdihi)
    {
    print("Debug premdihi checked...");
    if(response)//linker Button
    {
    print("Debug premdihi response == 1");
    ShowPlayerDialog(playerid, premdima, DIALOG_STYLE_LIST, "BLA2", " 123 ", "Weiter", "Zurück");
    return 1;
    }
    else //rechter Button
    {
    print("Debug premdihi response == 0");
    return 1;
    }
    }
    return 0;
    }

    Ah ich glaube die Abfrage spinnt, probiers mal so Gorn:


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == premdihi)
    {
    if(response)//linker Button
    {
    ShowPlayerDialog(playerid, premdima, DIALOG_STYLE_LIST, "BLA2", " 123 ", "Weiter", "Zurück");
    return 1;
    }
    else //rechter Button
    {
    return 1;
    }
    }
    return 0;
    }


    Edit: 8D lies meinen Beitrag, da hab ich bereits bereits versucht ID auf 245 zu setzen, er sagte aber das es nicht ging ^^

    Jetzt wo es interressant wird, was du für ne Methode noch hättest, gibste auf.. Aber ja auch wenn meine leichter ist, wäre deine auch gut nur hast halt ein boolean vergessen, ansonsten könnte er ja es 1000mal wenn nicht öfter aufheben. Nagut belassen wirs bei 1:1 weil ich den Fehler mit der Taste wieder eingebaut hab ^^

    Ok beim draufschauen, war ich auch ratlos, probiers mal so.. Es kann ja irgendwie sein, dass eine Überschneidung passiert


    #include <a_samp>
    #include "../include/gl_common.inc"
    #pragma tabsize 0


    //Also jetz kommen die Defines
    #define premdihi 245
    #define premdima 2
    #define premdivm 3
    #define premdivs 4


    public OnFilterScriptInit()
    {
    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    new cmd[256];
    new idx;
    cmd = strtok(cmdtext, idx);
    if(strcmp("/dia1", cmd, true) == 0)
    {
    ShowPlayerDialog(playerid, premdihi, DIALOG_STYLE_MSGBOX, "BLA", "Tüdelü", "Ja", "Nein");
    return 1;
    }
    return 0;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    if(dialogid == premdihi)
    {
    if(response == 0)//rechter Button
    {
    return 1;
    }
    if(response == 1)//linker Button
    {
    ShowPlayerDialog(playerid, premdima, DIALOG_STYLE_LIST, "BLA2", " 123 ", "Weiter", "Zurück");
    return 1;
    }
    }
    return 0;
    }

    Ok dann korrigiere ich 8D Aussage:


    Die X, Y, Z Koordinate muss nicht immer beim Erstellen neu gemacht werden sondern du fragst die Position ab ^^ Sonst müsstest du für jedes Pickup, wenn du mal wieder so eins machen willst, eine neue Variable erstellen lassen.

    #define HOLDING(%0) \
    ((newkeys & (%0)) == (%0))


    new gLastPickupPos[MAX_PLAYERS][3];
    new bool:gLastPickupStatus[MAX_PLAYERS];


    public OnPlayerConnect(playerid)
    {
    gLastPickupStatus[playerid] = false;
    return 1;
    }


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    GetPlayerPos(playerid, gLastPickupPos[playerid][0], gLastPickupPos[playerid][1], gLastPickupPos[playerid][2]);
    gLastPickupStatus[playerid] = true;
    return 1;
    }


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    //Wenn Spieler beim aufheben des Pickups die Taste Ducken drückt und nicht im Fahrzeug ist.
    if(gLastPickupStatus[playerid] == true && IsPlayerInRangeOfPoint(playerid, gLastPickupPos[playerid][0], gLastPickupPos[playerid][1], gLastPickupPos[playerid][2]) && HOLDING(KEY_CROUCH) && !IsPlayerInAnyVehicle(playerid))
    {
    SetPlayerHealth(playerid, 100.0);
    SendClientMessage(playerid, 0xFFFFFF00, "Du hast dich geheilt!");
    gLastPickupStatus[playerid] = false;
    }
    return 1;
    }


    So mein letztes Wort ^^ 2:1 für Templer :P

    Ich will ja nichts sagen, aber er sagte nicht das er ne bestimme Taste haben will, deshalb nahm ich KEY_CROUCH und meine Variante ist auch nur auf ein Pickup bezogen, da ich bei OnPlayerKeyStateChange ja doch abfrage ob das Letzte Pickup medicheil war ^^

    Hier bitte, die Variante von 8D ist bissl aufwändiger ^^


    #define HOLDING(%0) \
    ((newkeys & (%0)) == (%0))


    new gLastPickup[MAX_PLAYERS];


    forward ResetPlayerPickup(playerid);


    public OnPlayerConnect(playerid)
    {
    gLastPickup[playerid] = -1; //INVALID_PICKUP_ID
    return 1;
    }


    public OnPlayerPickUpPickup(playerid, pickupid)
    {
    gLastPickup[playerid] = pickupid;
    SetTimerEx("ResetPlayerPickup", 2500, 0, "d", playerid); //Resettet die Pickupid in 2,5 Sekunden!
    return 1;
    }


    public ResetPlayerPickup(playerid)
    {
    gLastPickup[playerid] = -1; //INVALID_PICKUP_ID
    return true;
    }


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    //Wenn Spieler beim aufheben des Pickups die Taste Ducken drückt und nicht im Fahrzeug ist.
    if(medicheil == gLastPickup[playerid] && HOLDING(KEY_CROUCH) && !IsPlayerInAnyVehicle(playerid))
    {
    SetPlayerHealth(playerid, 100.0);
    SendClientMessage(playerid, 0xFFFFFF00, "Du hast dich geheilt!");
    }
    return 1;
    }

    Wenn du jetzt so einen Werbungstext für alle meinst dann hier ein Beispiel ^^


    new gWerbungCount = 1;


    public OnGameModeInit()
    {
    SetTimer("Werbung", 1800000, 1); //Alle 30Minuten ruft er eine Werbung auf
    return 1;
    }


    public Werbung()
    {
    switch(gWerbungCount)
    {
    case 1: //Wenn die Definition 'gWerbungCount' den Wert 1 hat
    {
    gWerbungCount++; //Zählt eins rauf
    //Werbungstexte...
    SendClientMessageToAll(0xFFFFFF00, "Zivilist sein ist langweilig? Dann bewerbe dich in einer Fraktion!");
    }
    case 2: //Wenn die Definition 'gWerbungCount' den Wert 2 hat
    {
    gWerbungCount++; //Zählt eins rauf
    //Werbungstexte...
    SendClientMessageToAll(0xFFFFFF00, "Unsere IP lautet: xx.xx.xx.xx!");
    }
    default: //Wenn die Definition 'gWerbungCount' keine der aufgelisteten Werte hat!
    {
    gWerbungCount = 1; //Setzt Wert wieder auf 1...
    //Werbungstexte...
    SendClientMessageToAll(0xFFFFFF00, "Besucht uns auf unserer Webseite auch!");
    }
    }
    }


    //Wenn du mehr Texte einfügen willst, dann einfach weiterzählen, also:
    // case 3:
    // case 4:
    // case 5:
    // usw...

    pff die meisten Admins hier im Thread loben nur Admins xD Deswegen hier ein riesen großes Lob an [GRS]Systemfehler für diesen schönen Beitrag und was ganz doll ist, dass die Admins an 2. Stelle gelobt werden ^^


    Nebenbei noch Lobe an die User:


    Dudalus (wegen seiner schönen Lernfähigkeit im Scripten und in letzter Zeit sehr viel begriffen hat.)
    Xelvenzu (auch wegen seiner berragenden Lernfähigkeit und fast jeden Tag mich mit Fragen bwirft wofür ich schon etwas länger nachdenken muss.)
    quini(trotz das er selbst Probleme hat, welche er oft doch selbst in die Hand kriegt, anderen Usern hilft wie ich gesehen hab.)
    Pixel_5D (seine große Interesse an Datentypen und Datentypformatierungen)


    Nebenbei gemerkt sind diese Spieler noch besonders gelobt, da sie sich an die Support-Regeln meiner Signatur gehalten haben und mich nur dann in ICQ angeschrieben haben, wenn keiner deren Problemen helfen konnte.


    ... zu guter Letzt noch einen User der genauso wie ich, bei freier Zeit, anderen Spielern so gut hilft / unterstützt und ich Ihn wegen seiner Ranggrafik beneide ^^


    [FG]Julian

    Mfg Templer

    OnVehicleStream hat keine Abfrage und sperrt alle Fahrzeuge ab xD


    Hier das richtige:


    public OnVehicleStreamIn(vehicleid, forplayerid)
    {
    for(new i = 0;i<_cache_fahrzeug;i++)
    {
    if(vehicleid == FDaten[i][fCarID])
    {
    SetVehicleParamsForPlayer(vehicleid, forplayerid, 0, FDaten[i][fLocked]);
    break;
    }
    }
    return 1;
    }

    ok ich hab schonmal solche Scripts erlebt... Leute die irgendwas kopiert haben und irgendwo eingefügt und somit der nächste der das Script bekommt sehr viel Pech hat ^^. Die Möglichkeit wäre, dass irgendwer so freundlich wird und auch bei dir das GF von diesem Fehler behebt, also die Definitionen richtig ordnen und Co. damit du wenigstens weiter arbeiten kannst. Außer du schaffst es selbst ^^. ABer ich denke eh, dass du eher die 2. Variante nehmen würdest..


    Also fangen wir mal damit an, dass du die Definition


    new FBIcars[10];
    oben in ein Script einfügst. Bedeutet in keinem Callback oder sonstwas. Am besten oben bei den new Definitionen und schauen wir mal, ob es sich wirklich darum handelt ^^.