Beiträge von theTV

    Hey,
    wenn ich das Script mit der Funktion compiliere kommen keine errors, filterscript wird auch geladen, aber bei FilterscriptInit() wird nichts geprintet.
    Wenn ich den Stock Ausklammere geht wieder alles?

    Spoiler anzeigen


    stock strDelete(string[], substring[])
    {
    if (!string[0]) return 0;

    Spoiler anzeigen
    new
    start,
    end,
    length;

    Spoiler anzeigen
    // Load both of the strings.
    #emit LOAD.S.pri substring
    #emit LOAD.S.alt string

    Spoiler anzeigen
    // Push them both into "strfind".
    #emit PUSH.pri
    #emit PUSH.alt

    Spoiler anzeigen
    // Push the number of arguments.
    #emit PUSH.C 8

    // Load "start", since we're going to store the result of "strfind" into it.
    #emit LOAD.S.pri start

    Spoiler anzeigen
    // Call the "strfind" function.
    #emit SYSREQ.C strfind

    // Store the result in "start".
    #emit STOR.S.pri start

    Spoiler anzeigen
    if (start != -1)
    {
    // Erase the memory in pri and alt.
    #emit ZERO.pri
    #emit ZERO.alt

    // Load the empty length variable and substring.
    #emit LOAD.S.pri length
    #emit LOAD.S.alt substring

    // Push "substring" and the number of variables * bytes.
    #emit PUSH.alt
    #emit PUSH.C 4

    Spoiler anzeigen
    // Call strlen and store the result in "length".
    #emit SYSREQ.C strlen
    #emit STOR.S.pri length

    Spoiler anzeigen
    // Erase the memory AGAIN...
    #emit ZERO.pri
    #emit ZERO.alt

    // Load "length" and "start" and add them together.
    #emit LOAD.S.pri length
    #emit LOAD.S.alt start
    #emit ADD

    // Store it in "end".
    #emit STOR.S.pri end

    Spoiler anzeigen
    // Restore the stack.
    #emit STACK 20

    // Now delete the string.
    return strdel(string, start, end), start;
    }
    return -1;
    }

    Hey,
    wenn ich das Script mit der Funktion compiliere kommen keine errors, filterscript wird auch geladen, aber bei FilterscriptInit() wird nichts geprintet.
    Wenn ich den Stock Ausklammere geht wieder alles?

    Spoiler anzeigen


    stock strDelete(string[], substring[])
    {
    if (!string[0]) return 0;

    Spoiler anzeigen
    new
    start,
    end,
    length;

    Spoiler anzeigen
    // Load both of the strings.
    #emit LOAD.S.pri substring
    #emit LOAD.S.alt string

    Spoiler anzeigen
    // Push them both into "strfind".
    #emit PUSH.pri
    #emit PUSH.alt

    Spoiler anzeigen
    // Push the number of arguments.
    #emit PUSH.C 8

    // Load "start", since we're going to store the result of "strfind" into it.
    #emit LOAD.S.pri start

    Spoiler anzeigen
    // Call the "strfind" function.
    #emit SYSREQ.C strfind

    // Store the result in "start".
    #emit STOR.S.pri start

    Spoiler anzeigen
    if (start != -1)
    {
    // Erase the memory in pri and alt.
    #emit ZERO.pri
    #emit ZERO.alt

    // Load the empty length variable and substring.
    #emit LOAD.S.pri length
    #emit LOAD.S.alt substring

    // Push "substring" and the number of variables * bytes.
    #emit PUSH.alt
    #emit PUSH.C 4

    Spoiler anzeigen
    // Call strlen and store the result in "length".
    #emit SYSREQ.C strlen
    #emit STOR.S.pri length

    Spoiler anzeigen
    // Erase the memory AGAIN...
    #emit ZERO.pri
    #emit ZERO.alt

    // Load "length" and "start" and add them together.
    #emit LOAD.S.pri length
    #emit LOAD.S.alt start
    #emit ADD

    // Store it in "end".
    #emit STOR.S.pri end

    Spoiler anzeigen
    // Restore the stack.
    #emit STACK 20

    // Now delete the string.
    return strdel(string, start, end), start;
    }
    return -1;
    }

    Hey,
    ich habe keinen Root Server und deswegen wollte ich was fragen.


    Bsp.:
    Ich habe einen SAMP Server mit der Ip: xx.xx.xx.xx
    Ist auch automatisch der Server Ordner(samp-server.exe,server.cfg,scriptfiles...) auf der IP mit drauf?
    also sprich: xx.xx.xx.xx/scriptfiles
    xx.xx.xx.xx/gamemode
    xx.xx.xx.xx/filterscripts

    Hey,
    ich benutze das Plugin FileManager.
    Und benutze dazu die Funktion dir_list.

    Zitat


    native dir:dir_open(directory[]);
    native dir_close(dir:handle);
    native dir_list(dir:handle, storage[], &type, length = sizeof(storage));


    Mit der Funktion möchte ich alles in einen Dialog stecken.
    Das klappt soweit, aber wie kann ich es am besten wieder abfragen unter OnDialogResponse?


    Mein Code:

    Spoiler anzeigen


    ocmd:mu(playerid,params[])
    {
    new dir:dHandle = dir_open("./scriptfiles/accs");
    new item[20], type, str[1200],stri[20];

    while(dir_list(dHandle, item, type))
    {
    if(type == FM_FILE){
    format(stri,sizeof(stri),"%s\n",item);
    strcat(str,stri,sizeof(str));
    }
    }
    dir_close(dHandle);
    ShowPlayerDialog(playerid,DIALOG_MUS,DIALOG_STYLE_LIST,"Accounts",str,"Weiter","Abbrechen");
    return 1;
    }


    machs bei OnPlayerConnect rein, da bei OnGameModeInit kein parameter playerid gibt

    ocmd:goto(playerid,params[])
    {
    new float:q[3],inter;
    if(sscanf(params,"fffd",q[0],q[1],q[2],inter))return SCM(playerid,grau,"/goto f f f int");
    SetPlayerPos(playerid,q[0],q[1],q[2]); // Zeile
    SetPlayerInterior(playerid,inter);
    return 1;
    }
    Fehler:

    gm.pwn(585) : warning 213: tag mismatch
    gm.pwn(585) : warning 213: tag mismatch
    gm.pwn(585) : warning 213: tag mismatch


    ocmd:mv(playerid,params[])
    {
    if(!isPlayerInFrakt(playerid,1))return SendClientMessage(playerid,ERRORMSG,"Du bist kein LSPD´ler");
    if(IsPlayerInRangeOfPoint(playerid,2.0, 239.51270, 118.48430, 1004.72601))
    {
    if(lspdgate==0)
    {
    MoveObject(lspdgateinnen,239.5280, 116.5672, 1004.7260,2.0);
    lspdgate=1;
    return 1;
    }
    else if(lspdgate==1)
    {
    MoveObject(lspdgateinnen, 239.51270, 118.48430, 1004.72601,2.0);
    lspdgate=0;
    return 1;
    }
    }
    else if(IsPlayerInRangeOfPoint(playerid,2.0, 253.27904, 109.95248, 1004.72601))
    {
    if(lspdgatee==0)
    {
    MoveObject(lspdgateinnenn, 253.27904, 109.95248, 1004.72601,2.0);
    lspdgatee=1;
    return 1;
    }
    else if(lspdgatee==1)
    {
    MoveObject(lspdgateinnenn, 253.27904, 109.95248, 1004.72601,2.0);
    lspdgatee=1;
    return 1;
    }
    return 1;
    }
    else SendClientMessage(playerid,ERRORMSG,"Du bist nicht am Gate");
    return 1;
    }

    Als Tipp wenn was nicht aufgerufen wird.
    Benutz doch die Funktion print().
    Einfach nach jeder Abfrage printen.
    Bsp.:
    if(strcmp(cmd, "/tanken", true) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid,10,1002.6870,-939.5302,41.8851))
    {
    print("1");
    if(IsPlayerConnected(playerid))
    {
    print("2");
    if(IsAtGasStation(playerid))
    {
    print("3");
    usw...
    und wenn es irgendwo nicht printet, weist du wo der Fehler liegt.

    Vielleicht liegts ja auch an der Schleife?


    Zitat

    for(new b = 0; b < sizeof(TankeInfo); b++)


    Wenn ich mich nicht irre, dann hast du ja nicht definiert wie viele Tanken es gibt, oder?
    Da TankeInfo ja ein enum ist und du nicht angibst wieoft er es durchlaufen soll