Beiträge von theTV

    [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;
    }