Beiträge von Kayer


    stock fcreate(filename[])
    {
    if (fexist(filename)){return false;}
    new File:fhandle = fopen(filename,io_write);
    fclose(fhandle);
    return true;
    }

    Bei mir geht es.. wahrscheinlich brauchst noch eine include.


    // Ganz Unten
    stock fdeleteline(filename[], line[]){
    if(fexist(filename)){
    new temp[256];
    new File:fhandle = fopen(filename,io_read);
    fread(fhandle,temp,sizeof(temp),false);
    if(strfind(temp,line,true)==-1){return 0;}
    else{
    fclose(fhandle);
    fremove(filename);
    for(new i=0;i<strlen(temp);i++){
    new templine[256];
    strmid(templine,temp,i,i+strlen(line));
    if(equal(templine,line,true)){
    strdel(temp,i,i+strlen(line));
    fcreate(filename);
    fhandle = fopen(filename,io_write);
    fwrite(fhandle,temp);
    fclose(fhandle);
    return 1;
    }
    }
    }
    }
    return 0;
    }

    Hallo.
    Ich versteh das mit den Timern nicht ganz :huh: .
    Wenn beispielsweise bei einem Befehl, wie "/starttimer" , ein Timer ausgelöst werden soll, der NUR für die ausführende playerid gilt.Wie ginge das?

    forward lol(playerid);


    forward lol(playerid);




    SetTimer("lol",10000,1);



    SetTimerEx("lol,"10000,1,"i",playerid);

    Erbitte euch kleine Erklärung wie genau nun !

    Ob das mit dini geht,weiß ich nicht.Dini ist vorallem geeignet für Account System,die spezial für einen User sind.
    Ich würde es jedoch mit FF machen ;) .Damit kann man meiner Meinung nach soetwas machen.

    // Unter OnPlayerDis
    new File: lol = fopen("Geld.txt",io_readwrite);
    if(lol)
    {
    new name[MAX_PLAYER_NAME];
    new form[100];
    GetPlayerName(playerid,name, sizeof name);
    format(form,sizeof form,"%s : %d\n\r",name,GetPlayerMoney(playerid));
    new string[200];
    while(fread(lol, string))
    {
    if(strcmp(string,name,true,strlen(name))==0)
    {
    fdeleteline("Geld.txt",string);
    fclose(lol);
    new File:lol2 = fopen("Geld.txt",io_append);
    fwrite(lol2,form);
    }
    else
    {
    new File:lol2 = fopen("Geld.txt",io_append);
    fwrite(lol2,form);
    fclose(lol2);
    }
    }
    }

    UNGETESTET; AUS DEM KOPF GESCHRIEBEN


    if(strcmp(cmdtext, "/back", true) == 0)
    {
    if (InDerby[playerid]=true )
    {
    SendClientMessage(playerid,0x00FF00AA, "You exited the Derby Arena");
    SetPlayerPos(playerid,-1394.20, 987.62, 1023.96);
    SetPlayerInterior(playerid,0);
    InDerby[playerid]=false;
    }


    else if (InDerby[playerid]==false)
    {


    SendClientMessage(playerid, COLOR_RED, "You´re not in the Derby Arena!!");
    }
    return 1;
    }

    Teste es mal so

    Nun weiß ich, wie ihr eure 320 oder 118 Beiträge bekommen habt ;) .


    5/10 Punkte, wenn ich es bewerten müsste.


    Und anstatt hier nur große Töne zu spucken, könntet ihr ihm Tipp´s geben,wie er sich verbessern kann und nicht nur alles kritisieren ... eure Werke sind auch nicht "fabelhaft" :cursing: :( .Ich kenn eure Scripts ( Server ), und hätte da auch einiges zu bemängeln....
    Aber das ist hier nicht das Thema dafür.


    Vielleicht etwas mehr und ausgefalleneres.Du bist auf dem richtigen Weg 8)

    Ich bin zwar kein Moderator, habe daher auch nichts zu sagen - doch ist das der richtige Thread , um so etwas auszudiskutieren?
    ( Möchte damit KEINEN verärgern !)
    Finde natürlich auch nicht schön,dass er einen Server nachahmen will...


    ----------------------------------------------------------------------------------------------------------
    Benutzt du das GF oder ein vollkommen neues ( selbsterstelltes ) ? Hatte soetwas mal der in der Art gemacht...vllt. find ich´s und gebe es dir
    ( Editiere dies,sobald ich es gefunden habe )

    1. Suchfunktion benutzen.Hab letzens erst 2 Threads mit der selben Frage gesehen (Notfalls im http://www.sa-mp.com Forum gucken )
    2. Kommt darauf an,welches Script du verwendest bzw. wie dein Führerschein definiert ist.
    3. Dafür kannst du F(ile)F(unctions) , Dini oder mysql verwenden.
    4. TogglePlayerControllable(playerid,false);
    5. Eine Möglichkeit wäre,per Timer sekündlich abzufragen,ob sich der Spieler an einem Punkt (PlayerToPoint) befindet.

    Ok.Hier ein kleines Beispiel.

    // Ganz Oben
    new Jobs[MAX_PLAYERS];
    new Taxi[MAX_PLAYERS];
    new Dealer[MAX_PLAYERS];
    new Arzt[MAX_PLAYERS];
    new mats[MAX_PLAYERS];


    // Unter OnPlayerCommandText
    dcmd(job,3,cmdtext);
    dcmd(deal,4,cmdtext);
    dcmd(get,3,cmdtext);
    //Außerhalb eines CallBacks
    dcmd_deal(playerid,params[])
    {


    new form[100];
    new playa;
    new mat;
    if(sscanf(params,"dd",playa,mat))
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Verwende: /deal [ID] [DROGENANZAHL]");
    return 1;
    }
    if(mat > mats[playerid])
    {
    SendClientMessage(playerid,COLOR_BLUE,"So viele drogen hast du nicht !");
    return 1;
    }
    if(!IsPlayerConnected(playa))
    {
    SendClientMessage(playerid,COLOR_BLUE,"Angegebener User nicht online!");
    return 1;
    }
    if(Dealer[playerid] == 1)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playa,name,sizeof name);
    new name2[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name2,sizeof name2);
    format(form,sizeof form,"Du hast %s %d Drogen gegeben",name,mat);
    SendClientMessage(playerid,COLOR_YELLOW,form);
    new Float:h;
    GetPlayerHealth(playa,h);
    SetPlayerHealth(playerid,h+mat);
    new form2[100];
    format(form2,sizeof form2,"Du hast von %s %d Drogen erhalten",name2,mat);
    SendClientMessage(playa,COLOR_YELLOW,form2);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_BLUE,"Du bist kein Dealer");
    return 1;
    }
    }
    dcmd_get(playerid, params[])
    {
    new form[100];
    new mat = strval(params);
    if(!strlen(params))
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Verwende: /get [AMMOUNT]");
    return 1;
    }
    if(!PlayerToPoint(5.0,playerid,1958.33, 1343.12, 15.36))//Deine Koords
    {
    SendClientMessage(playerid,COLOR_RED,"Du bist nicht am Drogen Ort");
    return 1;
    }
    if(Dealer[playerid] == 1)
    {
    ApplyAnimation(playerid,"DEALER","DEALER_DEAL",4.1,1,1,1,1,1);
    mats[playerid] += mat;
    //GivePlayerMoney(playerid,-500);
    format(form,sizeof form,"Du hast %d Drogen erworben",mat);
    SendClientMessage(playerid,COLOR_BLUE,form);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du bist kein Dealer");
    return 1;
    }}



    dcmd_job(playerid,params[])
    {
    new form[100];
    new name[MAX_PLAYER_NAME];
    new job[100];
    if(sscanf(params,"s",job))
    {
    SendClientMessage(playerid,COLOR_RED,"Verwende: /job [NAME]");
    SendClientMessage(playerid,COLOR_YELLOW,"===== JOBS =====");
    SendClientMessage(playerid,COLOR_BLUE," Taxifahrer , Arzt , Dealer ");
    SendClientMessage(playerid,COLOR_YELLOW,"===== JOBS =====");
    return 1;
    }
    if(strcmp(job,"Taxifahrer",true,strlen(job))==0)
    {
    Jobs[playerid] = 1;
    Taxi[playerid] = 1;
    SendClientMessage(playerid,COLOR_YELLOW,"***INFO: Du bist nun Taxifahrer");
    GetPlayerName(playerid, name, sizeof name);
    format(form,sizeof form,"***INFO:%s ist nun Taxifahrer",name);
    SendClientMessage(playerid,COLOR_BLUE,form);
    return 1;
    }
    else if(strcmp(job,"Arzt",true,strlen(job)) ==0)
    {
    Jobs[playerid] = 1;
    Arzt[playerid] = 1;
    SendClientMessage(playerid,COLOR_YELLOW,"***INFO: Du bist nun Arzt");
    GetPlayerName(playerid, name, sizeof name);
    format(form,sizeof form,"***INFO:%s ist nun Arzt (Medic)",name);
    SendClientMessage(playerid,COLOR_BLUE,form);
    return 1;
    }
    else if(strcmp(job,"Dealer",true,strlen(job)) ==0)
    {
    Jobs[playerid] = 1;
    Dealer[playerid] = 1;
    SendClientMessage(playerid,COLOR_YELLOW,"***INFO: Du bist nun Dealer");
    GetPlayerName(playerid, name, sizeof name);
    format(form,sizeof form,"***INFO:%s ist nun Dealer",name);
    SendClientMessage(playerid,COLOR_BLUE,form);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Diesen Job gibt es nicht!");
    SendClientMessage(playerid,COLOR_BLUE,"Jobs: Taxifahrer , Dealer , Arzt ");
    return 1;
    }}


    //Unter OnPlayerSpawn
    Dealer[playerid] = 0;
    Jobs[playerid] = 0;
    Taxi[playerid] = 0;
    Arzt[playerid] = 0;





    Hoffe,dass alles stimmt,da ich es aus dem Kopf geschrieben habe.
    Befehle:
    /job - Man kann Taxifahrer,Arzt oder Dealer werden,wird nach dem Tod wieder zurückgestellt
    /get - Man kann Drogen erhalten
    /deal - Man kann jemanden Drogen geben,um dessen Health zu erhöhen

    Ok.Hier ein kleines Beispiel.

    // Ganz Oben
    new Jobs[MAX_PLAYERS];
    new Taxi[MAX_PLAYERS];
    new Dealer[MAX_PLAYERS];
    new Arzt[MAX_PLAYERS];
    new mats[MAX_PLAYERS];


    // Unter OnPlayerCommandText
    dcmd(job,3,cmdtext);
    dcmd(deal,4,cmdtext);
    dcmd(get,3,cmdtext);
    //Außerhalb eines CallBacks
    dcmd_deal(playerid,params[])
    {


    new form[100];
    new playa;
    new mat;
    if(sscanf(params,"dd",playa,mat))
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Verwende: /deal [ID] [DROGENANZAHL]");
    return 1;
    }
    if(mat > mats[playerid])
    {
    SendClientMessage(playerid,COLOR_BLUE,"So viele drogen hast du nicht !");
    return 1;
    }
    if(!IsPlayerConnected(playa))
    {
    SendClientMessage(playerid,COLOR_BLUE,"Angegebener User nicht online!");
    return 1;
    }
    if(Dealer[playerid] == 1)
    {
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playa,name,sizeof name);
    new name2[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name2,sizeof name2);
    format(form,sizeof form,"Du hast %s %d Drogen gegeben",name,mat);
    SendClientMessage(playerid,COLOR_YELLOW,form);
    new Float:h;
    GetPlayerHealth(playa,h);
    SetPlayerHealth(playerid,h+mat);
    new form2[100];
    format(form2,sizeof form2,"Du hast von %s %d Drogen erhalten",name2,mat);
    SendClientMessage(playa,COLOR_YELLOW,form2);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_BLUE,"Du bist kein Dealer");
    return 1;
    }
    }
    dcmd_get(playerid, params[])
    {
    new form[100];
    new mat = strval(params);
    if(!strlen(params))
    {
    SendClientMessage(playerid,COLOR_YELLOW,"Verwende: /get [AMMOUNT]");
    return 1;
    }
    if(!PlayerToPoint(5.0,playerid,1958.33, 1343.12, 15.36))//Deine Koords
    {
    SendClientMessage(playerid,COLOR_RED,"Du bist nicht am Drogen Ort");
    return 1;
    }
    if(Dealer[playerid] == 1)
    {
    ApplyAnimation(playerid,"DEALER","DEALER_DEAL",4.1,1,1,1,1,1);
    mats[playerid] += mat;
    //GivePlayerMoney(playerid,-500);
    format(form,sizeof form,"Du hast %d Drogen erworben",mat);
    SendClientMessage(playerid,COLOR_BLUE,form);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du bist kein Dealer");
    return 1;
    }}



    dcmd_job(playerid,params[])
    {
    new form[100];
    new name[MAX_PLAYER_NAME];
    new job[100];
    if(sscanf(params,"s",job))
    {
    SendClientMessage(playerid,COLOR_RED,"Verwende: /job [NAME]");
    SendClientMessage(playerid,COLOR_YELLOW,"===== JOBS =====");
    SendClientMessage(playerid,COLOR_BLUE," Taxifahrer , Arzt , Dealer ");
    SendClientMessage(playerid,COLOR_YELLOW,"===== JOBS =====");
    return 1;
    }
    if(strcmp(job,"Taxifahrer",true,strlen(job))==0)
    {
    Jobs[playerid] = 1;
    Taxi[playerid] = 1;
    SendClientMessage(playerid,COLOR_YELLOW,"***INFO: Du bist nun Taxifahrer");
    GetPlayerName(playerid, name, sizeof name);
    format(form,sizeof form,"***INFO:%s ist nun Taxifahrer",name);
    SendClientMessage(playerid,COLOR_BLUE,form);
    return 1;
    }
    else if(strcmp(job,"Arzt",true,strlen(job)) ==0)
    {
    Jobs[playerid] = 1;
    Arzt[playerid] = 1;
    SendClientMessage(playerid,COLOR_YELLOW,"***INFO: Du bist nun Arzt");
    GetPlayerName(playerid, name, sizeof name);
    format(form,sizeof form,"***INFO:%s ist nun Arzt (Medic)",name);
    SendClientMessage(playerid,COLOR_BLUE,form);
    return 1;
    }
    else if(strcmp(job,"Dealer",true,strlen(job)) ==0)
    {
    Jobs[playerid] = 1;
    Dealer[playerid] = 1;
    SendClientMessage(playerid,COLOR_YELLOW,"***INFO: Du bist nun Dealer");
    GetPlayerName(playerid, name, sizeof name);
    format(form,sizeof form,"***INFO:%s ist nun Dealer",name);
    SendClientMessage(playerid,COLOR_BLUE,form);
    return 1;
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Diesen Job gibt es nicht!");
    SendClientMessage(playerid,COLOR_BLUE,"Jobs: Taxifahrer , Dealer , Arzt ");
    return 1;
    }}


    //Unter OnPlayerSpawn
    Dealer[playerid] = 0;
    Jobs[playerid] = 0;
    Taxi[playerid] = 0;
    Arzt[playerid] = 0;





    Hoffe,dass alles stimmt,da ich es aus dem Kopf geschrieben habe.
    Befehle:
    /job - Man kann Taxifahrer,Arzt oder Dealer werden,wird nach dem Tod wieder zurückgestellt
    /get - Man kann Drogen erhalten
    /deal - Man kann jemanden Drogen geben,um dessen Health zu erhöhen