Beiträge von heyhooo

    WIe gesagt weiß nicht wie man sowas erstellt und wie es heißt und wie ich es anwenden kann Hier mal ein Beispiel mit Orten
    (nett wäre wnen ihr mir erklären könntet wie ich das anwende spizell jetzt auch mit den Orten)


    static const SanAndreasZones[][MainZone] = {
    {"The Big Ear", {-410.00,1403.30,-3.00,-137.90,1681.20,200.00}},
    {"Aldea Malvada", {-1372.10,2498.50,0.00,-1277.50,2615.30,200.00}},
    {"Angel Pine", {-2324.90,-2584.20,-6.10,-1964.20,-2212.10,200.00}},
    {"Arco del Oeste", {-901.10,2221.80,0.00,-592.00,2571.90,200.00}},
    {"Avispa Country Club", {-2646.40,-355.40,0.00,-2270.00,-222.50,200.00}}
    };
    L.G.
    heyho :)

    Arbeite lieber mit OCMD
    Und sscanf ist zu 1000% besser


    Würd ich auch mal sagen ;)


    ocmd:hi(playerid, params[])
    {
    new Nachricht[100];
    if(sscanf(params,"s", Nachricht)) return SendClientMessage(playerid, 0xFFFFFFFF, "/hi [Nachricht]");
    SendClientMessage(playerid, 0xFFFFFFFF, Nachricht); //Sendet dir selber dann die Nachricht...
    return 1;
    }


    L.G.
    heyho :)

    Hier ein simpler kick Befehl zum verstehen ;)
    ocmd:kick(playerid, params[])
    {
    new giveplayerid, giveplayer[MAX_PLAYERS], sendername[MAX_PLAYERS], string[40], string1[100]; //erstellen der Vars
    if(PlayerInfo[playerid][pAdmin] < 2) return SendInfo(playerid, "Du bist nicht befugt!");
    if(sscanf(params,"us", giveplayerid, string)) return SendFail(playerid, "/kick [ID] [Grund]"); //besetzte die Var "giveplayerid" mit einer SPielerID und kennzichne string als Grund...
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer)); //namen herrausfinden
    GetPlayerName(playerid, sendername, sizeof(sendername));
    format(string1, sizeof(string1), "%s wurde von %s vom Server gekickt! Grund: %s", giveplayer, sendername, string); //Nachricht
    KickWithMessage(playerid, COLOR_RED, string1); //gibts in Samp Wiki (wegen nachricht bug)
    return 1;
    }


    Eigentlich ganz simple Nochmal zur sscanf:
    sscanf(params,"DER WERT*", VARS²) //Das return (siehe oben) wenn mans falsch eingibt ;)
    * = Beim wert werden je nach Typ folgende Werte eingetragen:


    i oder d = Integer sprich Zahlen
    s = string also Text
    u = eine Spieler ID


    ² = Die Vars NACH DER REIHENFOLGE die "betzt" werden sollen
    L.G.
    heyho ;)

    Habe einen Selbstgeschriebenen Stock erstellt, damit ich mir dauerhaftest kopieren erspare. Problem ist, dass die Nachricht nicht ankommt....:


    stock SendInfo(playerid, string[])
    {
    if(GetPVarInt(playerid,"Eingeloggt") == 0)
    {
    new string1[300];
    format(string1, sizeof(string1), "{0078FF}[XXX Info]:{FFFFFF} %s", string);
    SendClientMessage(playerid, 0x0078FFFF, string1);
    }
    return 1;
    }


    Beispiel hier:
    if(PlayerInfo[playerid][pAdmin] < 2) return SendInfo(playerid, "Du bist nicht befugt!");


    L.G.
    heyho ;)

    Es geht auch ein wenig einfacher :D
    new spielerCar[MAX_VEHICLES];
    zuteilen:
    spielerCar[vehicleid] = playerid;
    abfragen:
    if(spielerCar[vehicleid] != playerid)return RemovePlayerFromVehicle(playerid);


    Nun gut nur wenn ich das unter OnPlayerEnterVehicle packe...wird er doch immer Removet wenn er in das Auto einsteigt oder nicht??


    Danke für deine Antwort.....Das mit dem Anpassen wäre kein Problem ;) Wäre aber nett wenn du mir kurz die Schritte
    erklären könntest, damit ichs auch selbst schreiben kann :). (also z.B. was ist strmid(weiß ich zwar nur an dieser Stelle), was mit strlen.....)

    Ich wollte mit meinem Selfmade beginnen, doch da viel mir ein, wie ich jemanden ein Auto zuteilen kann:
    Was ich damit mine ist, dass wenn ich ein Auto ingame Spawnen lasse (bei einem Job z.B.) und nur derjenige
    dann einsteigen kann.... Vll gibt's ja sowas wie "Autovars" ka =D.
    Würde mich über andere Wege auch freuen, wenn sie nicht zu kompliziert sind und funktionieren :)


    L.G.
    heyho ;)

    Machs so:


    Function IsAFahrschulVeh(carid)
    {
    for(new i = 0; i < sizeof(Fahrschule); i++)
    {
    if(carid == Fahrschule[i])
    {
    return 1;
    }
    }
    return 0;
    }


    for(new i = 0; i<sizeof(MAX_VEHS); i++) //MAX_VEHS definieren
    {
    if(IsAFahrschulveh(i))
    {
    SetVehicleToRespawn(i);
    }
    }


    L.G.
    heyho ;)

    new year, month,day;
    getdate(year, month, day);
    new DateInfo[3][20];
    split(text, DateInfo, '.');
    if (strlen(text) > 10) { // nicht länger als 10 zeichen (xx/xx/xxxx)
    SendClientMessage(playerid, FARBE, "Wann bist du geboren? (TT.MM.JJJJ)");
    return 0;
    }
    if (!IsValidDate(strval(DateInfo[0]),strval(DateInfo[1]),strval(DateInfo[2]))) {
    SendClientMessage(playerid, FARBE, "Wann bist du geboren? (TT.MM.JJJJ)");
    return 0;
    }
    if(year - strval(DateInfo[2]) > 100 || strval(DateInfo[2]) < 1 || strval(DateInfo[2]) >= year)
    {
    SendClientMessage(playerid, FARBE, "Wann bist du geboren? (TT.MM.JJJJ)");
    return 0;
    }
    new check = year - strval(DateInfo[2]);
    if(check == year)
    {
    SendClientMessage(playerid, FARBE, "Wann bist du geboren? (TT.MM.JJJJ)");
    return 0;
    }
    if(strval(DateInfo[1]) > month)
    {
    check -= 1;
    }
    else if(strval(DateInfo[1]) == month && strval(DateInfo[0]) > day)
    {
    check -= 1;
    }
    HIER AUF VAR BESETZTEN = check;
    format(string, sizeof(string), "Ok, du bist also %d Jahre alt.",check);
    SendClientMessage(playerid, FARBE, string);

    //split function
    Function split(const strsrc[], strdest[][], delimiter)
    {
    new i, li;
    new aNum;
    new len;
    while(i <= strlen(strsrc)){
    if(strsrc[i]==delimiter || i==strlen(strsrc)){
    len = strmid(strdest[aNum], strsrc, li, i, 128);
    strdest[aNum][len] = 0;
    li = i+1;
    aNum++;
    }
    i++;
    }
    return 1;

    Habs mal kopiert und bissel bearbeitet ;) Überings finde es mit TT.MM.JJJJ besser =D
    Die Split function trennt es und speichert es richtig ab ;)


    L.G.
    heyho