Beiträge von RFT

    ich dachte man kann einfach durch gehen


    das 1 mit in nem Timer einbinden bsp CustomPickups



    if(PlayerToPoint(2.0,i,1581.133,-1038.38,1607.753,-991.0071)
    {
    if(Bezahl[i]==1)
    {
    GivePlayerMoney(i,-5);
    Bezahl[i]=1;
    SetTimerEx("BSP",10000,0,"i",playerid);
    return 1;
    }
    }


    und das hier irgendwo ins Script am besten ganz nach unten



    forward BSP(playerid);
    public BSP(playerid)
    {
    Bezahlt[playerid]=0;
    return 1;
    }

    jo evolution drug hat doch schon geschrieben wie du das machen sollst
    bsp :



    new CopCars[2];



    CopCars[0]=CreateVehicle(........
    CopCars[1]=CreateVehicle(........



    public IsACopCar(carid)
    {
    for(new i=0;i<sizeof(CopCars);i++)
    {
    if(carid==CopCars[i])
    {
    return 1;
    }
    return 0;
    }
    }

    FLIP der Timer muss doch zählen ich würds ganz einfach so machen



    new CMDUsed[MAX_PLAYERS];



    //............bei dem Command
    if(CMDUsed[playerid]==1)return SendClientMessage(playerid,Farbe,"Du musst 10 Minuten warten");
    CMDUsed[playerid]=1;
    SetTimerEx("UnUsed",600000,0,"i",playerid);



    forward UnUsed(playerid);


    public UnUsed(playerid)
    {
    CMDUsed[playerid]=0;
    return 1;
    }


    new Bezahl[MAX_PLAYERS];



    if(PlayerToPoint(2.0,playerid,X,Y,Z))
    {
    if(Bezahlt[playerid]==1)
    {
    GivePlayerMoney(playerid,-5);
    Bezahlt[playerid]=1;
    SetTimerEx("BSP",10000,0,"i",playerid);
    return 1;
    }
    }


    public BSP(playerid)
    {
    Bezahlt[playerid]=0;
    return 1;
    }



    der quatsch mit if(bezahlt und so ist nur zur sicherheit nicht das er 2 mal bezahlen muss

    Bewerbung zum Moderator oder Sektions Moderator


    Hallo liebes SA-MP.de Admin Team hiermit bewerbe ich mich als Moderator oder Sektions Moderator


    Meine Reallife Daten


    Name : Julian Glatter
    Alter : Ich bin 16 Jahre alt werde dieses Jahr 17
    Klasse : Ich besuche momentan die 9 Klasse der Hauptschule aber ich hab mich schon bei der Handselsschule angemeldet.
    Hobbys : Meine Hobbys sind Kampfsport , Scripten und mit meinen Kollegen chillen.
    Ich bin Freundlich und Hilfsbereit ich kann mich sehr gut druchsetzen .
    Ich bin eigentlich fast immer am Tage Online und von Freitag bis Sonntags bin ich öfter sogar Nachts Online


    Ich bin der richtige weil :


    Weil ich schon in vielen Foren mit geholfen habe die zwar nix mit SA-MP zu tuhen haben aber auch eine sehr große Community war die Admins waren sehr zufrieden mit mir .
    Wie oben schon gesagt kann ich mich sehr gut durch setzen was praktisch ist .


    Ich würde gerne einen Platz als Moderator haben wollen weil ich das Forum sa-mp.de unterstützen so gut wie ichs kann wollte.
    Ich habe 0 Verwarnungen und 0 Warnungen .


    Ich bin erreichbar


    Ich bin im MSN , ICQ und hier im Forum fast immer erreichbar (seit neustem ) war leider ne ganz lange Zeit inaktiv


    Ich hoffe auf positive Antowrt


    MFG Julian

    das is aber keine bessere lösung das is ja dann Paste & Copy


    meine lösung wäre per Timer die Position des gewünschten Spieler raus finden und immer die Kamera von Playerid da hintersetzen also X-2 zum beispiel

    das geht auch bedeutend optimierter



    dcmd_tv(playerid,params[])
    {
    new giveid,pName[24],str[128];
    GetPlayerName(giveid, pName, 24);
    if(sscanf(params,"d",giveid))return SendClientMessage(playerid,COLOR_RED,"[FEHLER]: /tv [Name / ID]");
    if(!IsPlayerConnected(giveid))return SendClientMessage(playerid,COLOR_RED,"Spieler nicht gefunden!");
    format(str, 128, "Du TVst nun %s. ", pName);
    SetCameraBehindPlayer(giveid);
    SendClientMessage(playerid,COLOR_YELLOW, str);
    return 1;
    }


    //edit aber mit SetCameraBehindPlayer wirds nicht funktionieren du setzt jetzt nur die Kamera von dem Spieler hintern ihn wieder


    //edit 2 dir fehlt dcmd und sscanf



    #define dcmd(%1,%2,%3) if (!strcmp((%3)[1], #%1, true, (%2)) && ((((%3)[(%2) + 1] == '\0') && (dcmd_%1(playerid, ""))) || (((%3)[(%2) + 1] == ' ') && (dcmd_%1(playerid, (%3)[(%2) + 2]))))) return 1


    und sscanf



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


    new changestr[16], changepos = 0, strpos = stringPos;
    while(changepos < 16 && string[strpos] && string[strpos] != delim)
    {
    changestr[changepos++] = string[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(string, format[formatPos], false, stringPos)) == -1)
    {
    if (format[end + 1])
    {
    return -1;
    }
    return 0;
    }
    format[end] = '\'';
    stringPos = ch + (end - formatPos);
    formatPos = end + 1;
    }
    case 'u':
    {
    new
    end = stringPos - 1,
    ID = 0,
    bool:num = true,
    ch;
    while ((ch = string[++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
    string[end] = '\0';
    num = false;
    new
    name[MAX_PLAYER_NAME];
    ID = end - stringPos;
    foreach (Player, playerid)
    {
    GetPlayerName(playerid, name, sizeof (name));
    if (!strcmp(name, string[stringPos], true, ID))
    {
    setarg(paramPos, 0, playerid);
    num = true;
    break;
    }
    }
    if (!num)
    {
    setarg(paramPos, 0, INVALID_PLAYER_ID);
    }
    string[end] = ch;
    #if defined __SSCANF_FOREACH__
    #undef foreach
    #undef __SSCANF_FOREACH__
    #endif
    }
    stringPos = end;
    }
    case 's', 'z':
    {
    new
    i = 0,
    ch;
    if (format[formatPos])
    {
    while ((ch = string[stringPos++]) && ch != delim)
    {
    setarg(paramPos, i++, ch);
    }
    if (!i)
    {
    return -1;
    }
    }
    else
    {
    while ((ch = string[stringPos++]))
    {
    setarg(paramPos, i++, ch);
    }
    }
    stringPos--;
    setarg(paramPos, i, '\0');
    }
    default:
    {
    continue;
    }
    }
    while (string[stringPos] && string[stringPos] != delim && string[stringPos] > ' ')
    {
    stringPos++;
    }
    while (string[stringPos] && (string[stringPos] == delim || string[stringPos] <= ' '))
    {
    stringPos++;
    }
    paramPos++;
    }
    do
    {
    if ((delim = format[formatPos++]) > ' ')
    {
    if (delim == '\'')
    {
    while ((delim = format[formatPos++]) && delim != '\'') {}
    }
    else if (delim != 'z')
    {
    return delim;
    }
    }
    }
    while (delim > ' ');
    return 0;
    }

    Hier hab dir mal was erstellt ist ungetestet

    forward IsPlayerAtPoint(playerid,iX,iY,Radius);
    public IsPlayerAtPoint(playerid,iX,iY,Radius)
    {
    new Float:SX,Float:SY,Float:SZ;
    GetPlayerPos(playerid,SX,SY,SZ);
    if (SX <= iX && SX >= iX-Radius && SY <= iY && SY >= iY+Radius)
    {
    return 1;
    }
    return 0;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp("/essen", cmdtext, true, 10) == 0)
    {
    if(IsPlayerAtPoint(playerid,X,Y,3.0)//hier X,Y,Z deine Koords rein
    {
    ShowMenuForPlayer(Menu:FastFood, playerid);
    return 1;
    }
    }
    return 0;
    }

    jo hast du PlayerToPoint oder was ähnliches drinne und die CMDS musst du uns auch senden sonst können wir dir nicht helfen


    if (strcmp("/enter", cmdtext, true, 10) == 0)
    {
    ShowMenuForPlayer(PlayerMenu, playerid);
    return 1;
    }


    musst halt den befehl noch so verändern wie du den haben willst so wird erstmal nur das Menu angezeigt