Beiträge von theTV

In 10 Minuten startet der nächtliche Backupvorgang! Es kann währenddessen (ca. 10 Minuten) zu Einschränkungen bei der Nutzung des Forums kommen
Weitere Infos findet ihr im Thema Backup des Forums

    [18:53:58] Loading plugin: streamer
    [18:53:59] Failed.


    heißt, dass er das plugin "streamer" nicht findet!
    guck mal unter /dein server ordner/plugins ob dort das plugin ist. wenn du windows hat muss eine .dll drinne sein wenn du linux hast .so

    wenn ich es jetzt so habe ohne schleife:
    if(IsPlayerInRangeOfPoint(playerid,3.0,StrassenreinigerCP[][0], StrassenreinigerCP[][1], StrassenreinigerCP[][2]))
    kommt der error:
    error 032: array index out of bounds (variable "StrassenreinigerCP")
    Hier der Stock Strassenreiniger:
    new Float:StrassenreinigerCP[][3] = { //die 23 steht für die anzahl der Checkpoints MUSS GEÄNDERT WERDEN!
    {1958.3783,1343.1572,15.3746}, //immer die Position x,y,z also z= höhe
    {2199.6531,1393.3678,10.8203},
    {2483.5977,1222.0825,10.8203}
    }

    Hey,
    warum wird kein neuer checkpoint gesetzt?
    PS:Es wird keine Nachricht gesendet.

    new Float:StrassenreinigerCP[][3] = { //die 23 steht für die anzahl der Checkpoints MUSS GEÄNDERT WERDEN!
    {1958.3783,1343.1572,15.3746}, //immer die Position x,y,z also z= höhe
    {2199.6531,1393.3678,10.8203},
    {2483.5977,1222.0825,10.8203}
    }
    ocmd:blblbla
    {
    new rand = random(sizeof(StrassenreinigerCP));
    SetPlayerCheckpoint(playerid, StrassenreinigerCP[rand][0], StrassenreinigerCP[rand][1], StrassenreinigerCP[rand][2],3.0);
    }


    public OnPlayerEnterCheckpoint(playerid)
    {
    for(new i=0; i<sizeof(StrassenreinigerCP); i++) //Straßenreiniger
    {
    if(IsPlayerInRangeOfPoint(playerid,3.0,StrassenreinigerCP[i][0], StrassenreinigerCP[i][1], StrassenreinigerCP[i][2]))
    {
    DisablePlayerCheckpoint(playerid);
    SCM(playerid,-1,"Erfolfreich");
    new rand = random(sizeof(StrassenreinigerCP));
    SetPlayerCheckpoint(playerid, StrassenreinigerCP[rand][0], StrassenreinigerCP[rand][1], StrassenreinigerCP[rand][2],3.0);
    }
    }
    }


    //Edit text hinzugefügt

    mit strlen überprüfst du nur die länge des input
    Hier kannst du überprüfen ob es zahlen sind:
    stock isNumeric(str[])
    {
    new
    ch,
    i;
    while ((ch = str[i++])) if (ch < '0' || ch > '9') return 0;
    return 1;
    }
    Bsp.:
    if(!isNumeric(inputtext)) return SendClientMessage(playerid, -1, "Nur Zahlen!");

    hier, aber eigentlich hätste das selber geschafft.

    ocmd:r(playerid, params[])
    {
    new string[128],text[64],fraktlevel[20];
    if(sscanf(params,"s",text))return SendClientMessage(playerid,COLOR_ROT,"BENUTZUNG: /r [TEXT]");
    switch(GetPVarInt(playerid,"Fraktionslevel"))
    {
    case0:{fraktlevel="[Lv0]Neuling"}//Fraktionslevel 0
    case1:{fraktlevel="[Lv1]Anfänger"}//Fraktionslevel 1
    case5:{fraktlevel="[Lv5]Leader"}//Fraktionslevel 5
    }
    format(string,sizeof(string),"%s %s: %s",fraktlevel, SpielerName(playerid),text);//
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsPlayerInFrakt(i,GetPVarInt(playerid,"Fraktion")))
    {
    SendClientMessage(i,COLOR_BLAU,string);
    }
    }
    }
    return 1;
    }

    innerhalb einer fraktion?


    switch(GetPVarInt(playerid,"Fraktionslevel"))
    {
    case0:{fraktlevel="[Lv0]Neuling"}//Fraktionslevel 0
    case1:{fraktlevel="[Lv1]Anfänger"}//Fraktionslevel 1
    case5:{fraktlevel="[Lv5]Leaderr"}//Fraktionslevel 5
    }
    format(string,126,"Du bist %s.",fraktlevel)


    meinst du das so?

    mach einfach mal denn sscanf code in dein script mit rein:

    Spoiler anzeigen

    stock sscanf(sstring[], format[], {Float,_}:...)
    {
    #if defined isnull
    if (isnull(sstring))
    #else
    if (sstring[0] == 0 || (sstring[0] == 1 && sstring[1] == 0))
    #endif
    {
    return format[0];
    }
    #pragma tabsize 4
    new
    formatPos = 0,
    sstringPos = 0,
    paramPos = 2,
    paramCount = numargs(),
    delim = ' ';
    while (sstring[sstringPos] && sstring[sstringPos] <= ' ')
    {
    sstringPos++;
    }
    while (paramPos < paramCount && sstring[sstringPos])
    {
    switch (format[formatPos++])
    {
    case '\0':
    {
    return 0;
    }
    case 'i', 'd':
    {
    new
    neg = 1,
    num = 0,
    ch = sstring[sstringPos];
    if (ch == '-')
    {
    neg = -1;
    ch = sstring[++sstringPos];
    }
    do
    {
    sstringPos++;
    if ('0' <= ch <= '9')
    {
    num = (num * 10) + (ch - '0');
    }
    else
    {
    return -1;
    }
    }
    while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num * neg);
    }
    case 'h', 'x':
    {
    new
    num = 0,
    ch = sstring[sstringPos];
    do
    {
    sstringPos++;
    switch (ch)
    {
    case 'x', 'X':
    {
    num = 0;
    continue;
    }
    case '0' .. '9':
    {
    num = (num << 4) | (ch - '0');
    }
    case 'a' .. 'f':
    {
    num = (num << 4) | (ch - ('a' - 10));
    }
    case 'A' .. 'F':
    {
    num = (num << 4) | (ch - ('A' - 10));
    }
    default:
    {
    return -1;
    }
    }
    }
    while ((ch = sstring[sstringPos]) > ' ' && ch != delim);
    setarg(paramPos, 0, num);
    }
    case 'c':
    {
    setarg(paramPos, 0, sstring[sstringPos++]);
    }
    case 'f':
    {

    Spoiler anzeigen
    new changestr[16], changepos = 0, strpos = sstringPos;
    while(changepos < 16 && sstring[strpos] && sstring[strpos] != delim)
    {
    changestr[changepos++] = sstring[strpos++];
    }
    changestr[changepos] = '\0';
    setarg(paramPos,0,_:floatstr(changestr));
    }
    case 'p':
    {
    delim = format[formatPos++];
    continue;
    }
    case '\'':
    {
    new
    end = formatPos - 1,
    ch;
    while ((ch = format[++end]) && ch != '\'') {}
    if (!ch)
    {
    return -1;
    }
    format[end] = '\0';
    if ((ch = strfind(sstring, format[formatPos], false, sstringPos)) == -1)
    {
    if (format[end + 1])
    {
    return -1;
    }
    return 0;
    }
    format[end] = '\'';
    sstringPos = ch + (end - formatPos);
    formatPos = end + 1;
    }
    case 'u':
    {
    new
    end = sstringPos - 1,
    id = 0,
    bool:num = true,
    ch;
    while ((ch = sstring[++end]) && ch != delim)
    {
    if (num)
    {
    if ('0' <= ch <= '9')
    {
    id = (id * 10) + (ch - '0');
    }
    else
    {
    num = false;
    }
    }
    }
    if (num && IsPlayerConnected(id))
    {
    setarg(paramPos, 0, id);
    }
    else
    {
    #if !defined foreach
    #define foreach(%1,%2) for (new %2 = 0; %2 < MAX_PLAYERS; %2++) if (IsPlayerConnected(%2))
    #define __SSCANF_FOREACH__
    #endif
    sstring[end] = '\0';
    num = false;
    new
    name[MAX_PLAYER_NAME];
    id = end - sstringPos;
    foreach (Player, playerid)
    {
    GetPlayerName(playerid, name, sizeof (name));
    if (!strcmp(name, sstring[sstringPos], true, id))
    {
    setarg(paramPos, 0, playerid);
    num = true;
    break;
    }
    }
    if (!num)
    {
    setarg(paramPos, 0, INVALID_PLAYER_ID);
    }
    sstring[end] = ch;
    #if defined __SSCANF_FOREACH__
    #undef foreach
    #undef __SSCANF_FOREACH__
    #endif
    }
    sstringPos = end;
    }
    case 's', 'z':
    {
    new
    i = 0,
    ch;
    if (format[formatPos])
    {
    while ((ch = sstring[sstringPos++]) && ch != delim)
    {
    setarg(paramPos, i++, ch);
    }
    if (!i)
    {
    return -1;
    }
    }
    else
    {
    while ((ch = sstring[sstringPos++]))
    {
    setarg(paramPos, i++, ch);
    }
    }
    sstringPos--;
    setarg(paramPos, i, '\0');
    }
    default:
    {
    continue;
    }
    }
    while (sstring[sstringPos] && sstring[sstringPos] != delim && sstring[sstringPos] > ' ')
    {
    sstringPos++;
    }
    while (sstring[sstringPos] && (sstring[sstringPos] == delim || sstring[sstringPos] <= ' '))
    {
    sstringPos++;
    }
    paramPos++;
    }
    do
    {
    if ((delim = format[formatPos++]) > ' ')
    {
    if (delim == '\'')
    {
    while ((delim = format[formatPos++]) && delim != '\'') {}
    }
    else if (delim != 'z')
    {
    return delim;
    }
    }
    }
    while (delim > ' ');
    return 0;
    }

    bei der zeile 102 musst du noch ne ) hinzufügen

    if(GetDistanceBetweenPlayers(playerid,otherplayer <= 5.0))

    und bei
    warning 235: public function lacks forward declaration (symbol "OnPlayerPrivmsg")
    machst du forward OnPlayerPrivmsg(playerid, recieverid, text[]);

    jo hier der Fehler

    if(sscanf(params,"ddddddd",preis,level,int,world,opentime,closetime))
    zu
    if(sscanf(params,"ddddddd",preis,level,int,world,opentime,closetime,mapicon))//mapicon hat gefehlt

    dann machs so:



    ocmd:goto(playerid,params[])
    {
    new pID;
    new Float:X,Float:Y,Float:Z;
    if(sscanf(params,"u",pID))return SCM(playerid,blau,"/goto [playerid]");
    GetPlayerPos(pID,X,Y,Z);
    SetPlayerPos(playerid,X+3,Y,Z+0.5);
    GetPlayerInterior(pID);
    SetPlayerInterior(playerid,pID);
    if(IsPlayerInAnyVehicle(playerid))
    {
    SetVehicleVirtualWorld(GetPlayerVehicleID(playerid), pID);
    }
    return 1;
    }

    hast du auch mit interior gemacht?



    ocmd:goto(playerid,params[])
    {
    new int;
    if(sscanf......)
    int = GetPlayerInterior(pID);
    SetPlayerInterior(playerid, int);
    //usw....
    }

    Hallo,
    hier die Zeile:



    dini_Set(Spielerdatei,"Gangrang",GetPVarString(playerid,"Gangrang",gangrang,31));


    und hier der Command + Stock:

    ocmd:joingang(playerid,params[])
    {
    if(dini_Exists(gangdatei))
    {
    format(spieler,sizeof(spieler),"%s",SpielerName(playerid));
    dini_Set(gangdatei,spieler," Member");
    SetPVarString(playerid,"Gang",gangname);
    SetPVarString(playerid,"Gangrang","Member");
    }
    else
    {
    SCM(playerid,-1,"Der Gangname existiert nicht!");
    }
    }


    stock login(playerid)
    {
    if(GetPVarString(playerid,"Gang","Keiner",7))
    {
    dini_Unset(Spielerdatei,"Gangrang");
    }
    else
    {
    dini_Set(Spielerdatei,"Gangrang",GetPVarString(playerid,"Gangrang",gangrang,31));
    }
    }

    Hallo,
    Undzwar wird unter einer Datei Leader und die Member gespeichert.
    Wenn jetzt jemand eine Gang verlässt soll er aus der Gangdatei gelöscht werden.


    Meine Frage nun:
    Wie kann ich nun den Spieler aus der Datei löschen?


    Spoiler anzeigen

    ocmd:leavegang(playerid,params[])
    {
    new gangname[30]
    if(GetPVarString(playerid,"Gang","Keiner")return SCM(playerid,-1,"Du bist in keiner Gang!");
    GetPVarString(playerid,"Gang",gangname);
    format(gangdatei,sizeof(gangdatei),"/Gangs/%s.dat",gangname);
    dini_Unset(gangdatei,"Member");
    return 1;
    }