Beiträge von Exon

    Hallo ich habe folgene Warnings:


    warning 209: function "OnDialogResponse" should return a value



    Wie bekomme ich sie weg?


    Hier der OnDialogResponse Code


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[]){ if(dialogid == KAUFEN) { if(response == 0) { return 1; } if(response == 1) { if(listitem == 0) { GivePlayerWeapon(playerid,31,520);//M4 SendClientMessage(playerid,GRÜN,"Du hast dir Erfolgreich die M4 Gekauft"); GivePlayerMoney(playerid,-2500); } if(listitem == 1) { GivePlayerWeapon(playerid,30,520);//AK-47 SendClientMessage(playerid,GRÜN,"Du hast dir Erfolgreich die AK-47 Gekauft"); GivePlayerMoney(playerid,-2500); } if(listitem == 2) { GivePlayerWeapon(playerid,29,520);//MP5 SendClientMessage(playerid,GRÜN,"Du hast dir Erfolgreich die MP5 Gekauft"); GivePlayerMoney(playerid,-3000); } if(listitem == 3) { GivePlayerWeapon(playerid,34,520);//Sniper SendClientMessage(playerid,GRÜN,"Du hast dir Erfolgreich die Sniper Gekauft"); GivePlayerMoney(playerid,-50000); } if(listitem == 4) { GivePlayerWeapon(playerid,32,520);//Tec-9 SendClientMessage(playerid,GRÜN,"Du hast dir Erfolgreich die Tec-9 Gekauft"); GivePlayerMoney(playerid,-1500); } if(listitem == 5) { GivePlayerWeapon(playerid,24,520);//Desert Eagle SendClientMessage(playerid,GRÜN,"Du hast dir Erfolgreich die Desert Eagle Gekauft"); GivePlayerMoney(playerid,-6000); } if(listitem == 6) { GivePlayerWeapon(playerid,22,520);//9mm SendClientMessage(playerid,GRÜN,"Du hast dir Erfolgreich die 9mm Gekauft"); GivePlayerMoney(playerid,-1600); } if(listitem == 7) { GivePlayerWeapon(playerid,23,520);//SD-Pistol SendClientMessage(playerid,GRÜN,"Du hast dir Erfolgreich die Schallgedämpfte Pistole Gekauft"); GivePlayerMoney(playerid,-1000); } if(listitem == 8) { GivePlayerWeapon(playerid,25,520);//Shotgun SendClientMessage(playerid,GRÜN,"Du hast dir Erfolgreich die Shotgun Gekauft"); GivePlayerMoney(playerid,-5500); } if(listitem == 10) { GivePlayerWeapon(playerid,27,520);//Combat Shotgun SendClientMessage(playerid,GRÜN,"Du hast dir Erfolgreich die Combat-Shotgun Gekauft"); GivePlayerMoney(playerid,-9000); } } } if(dialogid == LOGIN) { if(response == 0) { SendClientMessage(playerid,ROT,"Das Login wurde abgebrochen"); Kick(playerid); return 1; } if(response == 1) { Login(playerid,inputtext); return 1; } } if(dialogid == REGISTER) { if(response == 0) { SendClientMessage(playerid,ROT,"Die Regestrierung wurde abgebrochen"); Kick(playerid); return 1; } if(response == 1) { if(!strlen(inputtext)) { SendClientMessage(playerid,GRAU,"Bitte gebe ein Passwort ein"); ShowPlayerDialog(playerid,REGISTER,DIALOG_STYLE_INPUT,"Regestrieren","Bitte geben hier deinGewünschte Passwort ein um dir ein Account zu erstellen","Regestriere","Abbrechen"); } Register(playerid,inputtext); return 1; } }}


    Danke im Vorraus


    MfG tobster

    Zitat

    Was ist daran schwer?, du nimmst ein Haus schiebst es in den Berg,

    Zitat

    du musst eben schauen das es Ordentlich aussieht.

    ok aber dann ist in dem Haus der stein wie mache ich den weg?

    Hallo ich suche ein Mapping programm des wo leicht zu bedinen ist und wo man zb in ein Berg ein Haus rein mappen kann. Kennt vielleicht jemand so ein Mapping programm?


    MfG tobster

    hallo ich habe mir einen kick befehl erstellt der schau so aus:


    ocmd:kick(playerid,params[])//kick befehl{ new pID, reason[128],string[128]; if(sscanf(params,"us",pID,reason))return SendClientMessage(playerid,ROT,"Verwende: /kick [Spieler] [Grund]"); format(string,sizeof(string),"AdmCmd: %s wurde von %s gekickt Grund: %s",SpielerName(pID),SpielerName(playerid),reason); SendClientMessageToAll(ROT,string); Kick(pID); return 1;}



    sodann hab ich einen sscanf code eingefügt und der wo so aussieht:



    /*----------------------------------------------------------------------------*-Function:
    sscanf
    Params:
    string[] - String to extract parameters from.
    format[] - Parameter types to get.
    {Float,_}:... - Data return variables.
    Return:
    0 - Successful, not 0 - fail.
    Notes:
    A fail is either insufficient variables to store the data or insufficient
    data for the format string - excess data is disgarded.

    A string in the middle of the input data is extracted as a single word, a
    string at the end of the data collects all remaining text.

    The format codes are:

    c - A character.
    d, i - An integer.
    h, x - A hex number (e.g. a colour).
    f - A float.
    s - A string.
    z - An optional string.
    pX - An additional delimiter where X is another character.
    '' - Encloses a litteral string to locate.
    u - User, takes a name, part of a name or an id and returns the id if they're connected.

    Now has IsNumeric integrated into the code.

    Added additional delimiters in the form of all whitespace and an
    optioanlly specified one in the format string.
    -*----------------------------------------------------------------------------*/

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



    ohne dem sscanf code bekomme ich keine errors und mit dem code bekomme ich folgendes error:


    C:\Dokumente und Einstellungen\Andreas.PRIVAT-M96X6OJS.000\Desktop\Scripten\gamemodes\Fun-DM.pwn(888) : error 021: symbol already defined: "sscanf"Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


    1 Error.



    bitte helft mir. und achja braucht man den code überhaupt?


    MfG tobster

    probiers mal so:


    sSpieler[playerid][Alevel] = dini_Int(Spieler,"Alevel");


    sSpieler[playerid][Level] = dini_Int(Spieler,"Level");


    sSpieler[playerid][Geld] = dini_Int(Spieler,"Geld");



    Danke hat geklapt