Beiträge von n0skillg3t

    Geh auf "Ausführen" gib ein "regedit" und nun folgenden Pfad:


    HKEY_CURRENT_USER\ Software\ Microsoft\ Windows\ CurrentVersion\ Policies\ System


    Dann den Schlüssel "DiableTaskMrg" löschen oder den Wert auf 0 setzen :)

    Du kannst einen DIALOG_STYLE_INPUT erstellen, d.h. für jede reihe einen Dialog.
    Die Werte der Dialog speicherst du ab und machst dann z.B. sowas:


    format(dialoginhalt,sizeof(dialoginhalt),"%s\n%s\n%s",dialog1,dialog2,dialog3);


    Hoffe es war verständlich genug ^^

    Ich hab mal ocmd benutzt:


    Über OnGameModeInit:
    new dasgeld;
    new dercop[MAX_PLAYER_NAME];
    new derspieler[MAX_PLAYER_NAME];
    new dercopid;


    ocmd:ticket(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,3))return SendClientMessage(playerid,0xA0A0A0FF,"Du bist kein Cop!");
    new player, cop[MAX_PLAYER_NAME], user[MAX_PLAYER_NAME], money, reason[512];
    new chatu[512], chata[512];
    if(sscanf(params,"uis",player,money,reason))return SendClientMessage(playerid, 0xA0A0A0FF, "Benutze: /ticket [Name/ID] [Preis] [Grund]");
    if(isPlayerInFrakt(player,3))return SendClientMessage(playerid,0xA0A0A0FF,"Du kannst keinem Cop ein Ticket ausstellen!");
    if(!IsPlayerConnected(player))return SendClientMessage(playerid,0xA0A0A0FF,"Dieser Spieler ist nicht online!");
    if(money < 0 || money > 99999)return SendClientMessage(playerid,0xA0A0A0FF,"Das Ticket kann nicht weniger als $0 oder mehr als $99999 betragen!");
    GetPlayerName(playerid,cop,sizeof(cop));
    GetPlayerName(player,user,sizeof(user));
    format(chatu,sizeof(chatu),"Polizist %s hat dir ein Ticket in Höhe von $%d ausgestellt. Grund: %s",cop,money,reason);
    format(chata,sizeof(chata),"Du hast %s ein Ticket in Höhe von $%d ausgestellt. Grund: %s",user,money,reason);
    SendClientMessage(player,0x00CDFFFF,chatu);
    SendClientMessage(playerid,0x00CDFFFF,"Tippe /acceptticket um das Ticket zu akzeptieren!");
    SendClientMessage(playerid,0x00CDFFFF,chata);
    SetPVarInt(player,"ticketbek",1);
    dercop = cop;
    derspieler = user;
    dercopid = playerid;
    dasgeld = money;
    return 1;
    }


    ocmd:acceptticket(playerid,params[])
    {
    if(GetPVarInt(playerid,"ticketbek")!=1)return SendClientMessage(playerid,0xA0A0A0FF,"Du hast kein Ticket bekommen!");
    new chatu[256], chata[256];
    format(chatu,sizeof(chatu),"Spieler %s hat das Ticket in höhe von $%d bezahlt!",derspieler,dasgeld);
    format(chata,sizeof(chata),"Du hast das Ticket in Höhe von $%d bezahlt.",dasgeld);
    GivePlayerMoney(playerid,-dasgeld);
    SendClientMessage(dercopid,0x00CDFFFF,chatu);
    SendClientMessage(playerid,0x00CDFFFF,chata);
    SetPVarInt(playerid,"ticketbek",0);
    return 1;
    }


    Sscanf Code:
    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;
    }

    Mach ich eben, ich edtier den Beitrag dann.
    Ich müsste noch Wissen wie deine Admin Abfrage aussieht.


    PlayerInfo[playerid][pAdmin] ?


    Poste es mal kurz.


    Da ich keine Antwort bekommen hab, hab ich es mit ner RCON Abfrage gemacht, hier bitte:


    public OnPlayerText(playerid, text[])
    {
    new string[512], string2[512], string3[512], string4[512], string5[512];
    format(string2,sizeof(string2),"Spieler %s: %s",derspieler,text);
    format(string,sizeof(string),"Administrator %s: %s",deradmin,text);
    format(string4,sizeof(string4),"[ReportChat] Administrator %s: %s",deradmin,text);
    format(string5,sizeof(string5),"[ReportChat] Spieler %s: %s",derspieler,text);
    format(string3,sizeof(string3),"Du: %s",text);
    if(GetPVarInt(playerid,"reportchat")==1)
    {
    if(IsPlayerAdmin(playerid))
    {
    SendClientMessage(derspielerid,0xA000FFFF,string);
    SendClientMessage(playerid,0xA000FFFF,string3);
    print(string4);
    return 0;
    }
    else if(!IsPlayerAdmin(playerid))
    {
    SendClientMessage(deradminid,0xA000FFFF,string2);
    SendClientMessage(playerid,0xA000FFFF,string3);
    print(string5);
    return 0;
    }
    }
    return 1;
    }


    ocmd:sc(playerid,params[])//Startet den Chat...
    {
    if(GetPVarInt(playerid,"reportchat")==1)return SendClientMessage(playerid,0xA0A0A0FF,"Du hast bereits einen Chat offen, beende ihn zuerst mit '/ssc'!");
    if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid,0xA0A0A0FF,"Du bist kein Admin!");
    new player, admin[MAX_PLAYER_NAME], user[MAX_PLAYER_NAME];
    new chatu[256], chata[256];
    if(sscanf(params,"u",player))return SendClientMessage(playerid, 0xFF0000AA, "Benutze: /sc [Name/ID]");
    if(!IsPlayerConnected(player))return SendClientMessage(playerid,0xA0A0A0FF,"Dieser Spieler ist nicht online!");
    GetPlayerName(playerid,admin,sizeof(admin));
    GetPlayerName(player,user,sizeof(user));
    format(chatu,sizeof(chatu),"Administrator %s hat den Report-Chat gestartet!",admin);
    format(chata,sizeof(chata),"Du hast mit Spieler %s den Report Chat gestartet!",user);
    SendClientMessage(player,0xA000FFFF,chatu);
    SendClientMessage(playerid,0xA000FFFF,chata);
    SetPVarInt(playerid,"reportchat",1);
    SetPVarInt(player,"reportchat",1);
    deradmin = admin;
    derspieler = user;
    deradminid = playerid;
    derspielerid = player;
    return 1;
    }


    ocmd:ssc(playerid,params[])//Beendet den Chat..
    {
    if(GetPVarInt(playerid,"reportchat")!=1)return SendClientMessage(playerid,0xA0A0A0FF,"Du hast keinen Chat offen!");
    if(!IsPlayerAdmin(playerid))return SendClientMessage(playerid,0xA0A0A0FF,"Du bist kein Admin!");
    new chatu[256], chata[256];
    format(chatu,sizeof(chatu),"Administrator %s hat den Report-Chat beendet!",deradmin);
    format(chata,sizeof(chata),"Du hast mit Spieler %s den Report Chat beendet!",derspieler);
    SendClientMessage(derspielerid,0xA000FFFF,chatu);
    SendClientMessage(playerid,0xA000FFFF,chata);
    SetPVarInt(playerid,"reportchat",0);
    SetPVarInt(derspielerid,"reportchat",0);
    return 1;
    }


    Sscanf Code, einfach ganz unten ins Script einfügen..:


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


    Hab ich doch gern gemacht ;)


    Ach und falls du das ocmd Include noch nicht hast, hier bitte:


    [Include] OCMD

    OnGameModeInit()
    {
    new bank;
    bank = CreatePickup(deinpickup...);
    }


    OnPlayerPickUpPickup(...)
    {
    if(pickupid == bank)
    {
    SetPlayerPos(playerid,2315.952880,-1.618174,26.742187);
    }
    return 1;
    }

    Welches Commandsystem benutzt du?


    Ocmd?
    strcmp?
    zcmd?


    Hier OCMD:


    ocmd:setspeed(playerid,params[])
    {
    new speed, vehicle;
    if(sscanf(params,"i",speed))return SendClientMessage(playerid, 0xFF0000AA, "Benutze: /setspeed [Speed]");
    if(!IsPlayerInAnyVehicle(playerid))return SendClientMessage(playerid,0xFF0000AA,"Du musst in einem Fahrzeug sitzen!");
    vehicle = GetPlayerVehicleID(playerid);
    SetVehicleSpeed(vehicle,speed);
    return 1;
    }


    Ungetestet, habs hier im Editor geschrieben..