Beiträge von AdnaN


    SendClientMessage(i,COLOR_GREEN,"Der Anrufer mit der ID %s benötigt deine Hilfe",playerid);
    SendClientMessage(playerid,COLOR_GREEN,"Der Anrufer mit der ID %s wartet dort auf dich",id);
    SendClientMessage(id,COLOR_GREEN,"Ein Taxifahrer mit der ID %s befindet sich bereits auf dem Weg zu dir",playerid);


    Wo hast du gelernt wie man SCM's benutzt? ^^


    Es muss so sein:

    new string1[128],string2[128],string3[128];
    format(string1,128,"Der Anrufer mit der ID %s benötigt deine Hilfe",playerid);
    format(string2,128,"Der Anrufer mit der ID %s wartet dort auf dich",id);
    format(string3,128,"Ein Taxifahrer mit der ID %s befindet sich bereits auf dem Weg zu dir",playerid);


    SendClientMessage(i,COLOR_GREEN,string1);
    SendClientMessage(playerid,COLOR_GREEN,string2);
    SendClientMessage(id,COLOR_GREEN,string3);

    Hier ist der Fehler:


    GetPlayerName(playerid,name,sizeof(name));
    GetPlayerName(id,sname,sizeof(sname));
    format(s,sizeof(s),"acc/%s.ini",name); /* Du trägst hier den namen des spielers ein der den dcmd ausführt
    hier muss "sname" rein und nicht "name"*/


    dcmd_calltaxi(playerid,params[])
    {
    for(new i = 0;i<MAX_PLAYERS;i++)
    {
    if(IsPlayerConnected(i))
    {
    if(PlayerInfo[i][pJob] == 4)
    {
    SendClientMessage(i,COLOR_GREEN,"dein Text");
    }
    }
    }
    return 1;
    }


    So

    Also die schleife läuft solange bis sie so groß ist wie der wert von "MAX_PLAYERS" der "500" beträgt.
    Du überpfüfst als nächstes mit if(IsPlayerConnected(i)) ob "i" verbunden ist wen ja überprüftst du ob "i" zu einem Job gehört und den sendest du eine SCM.
    Also: ja diese SCM wird an jedem Taxifahrer geschickt.

    mit der vorschleife kannse es machen indem du hiermit:
    if(PlayerInfo[i][Job/*oder anders*/] == Taxifahrer/*oder anders*/) { SendClientMessage(i,0xFFFFFFFF,"Du bist Taxifahrer"); } 
    überprüfst.

    Hier wie man einen geld abzieht mit nem CMD:


    public OnPlayerCommandText(playerid,cmdtext[])
    {
    new cmd[30];
    new idx;
    cmd = strtok(cmdtext, idx);


    if(strcmp("/abziehen",cmdtext, true, 10) == 0)
    {
    new pID,tmp[30];
    tmp = strtok(cmdtext, idx);
    pID = strval(tmp);
    GivePlayerMoney(pID,-GELD);
    return 1;
    }



    Das ganz unten im script:
    strtok(const string[], &index)
    {
    new length = strlen(string);
    while ((index < length) && (string[index] <= ' '))
    {
    index++;
    }

    new offset = index;
    new result[20];
    while ((index < length) && (string[index] > ' ') && ((index - offset) < (sizeof(result) - 1)))
    {
    result[index - offset] = string[index];
    index++;
    }
    result[index - offset] = EOS;
    return result;
    }


    Sollte funktionieren.
    Ungetestet!

    Hallo leute,


    ich habe mir eine BanLog funktion erstellt funktionier auch 1A nur was mich stört ist das wen ich mit fwrite(Datei,string); kein zeilenumbruch bezwecken kann.


    Der string sieht so aus:


    format(string,128,"blablabla\n");
    Also es ist "\n" enthalten was einen zeilenumbruch bezwecken sollte was es aber nicht tut.


    Die Datei öffne ich mit dem modus "io_append" was für hinzufügen steht.


    Kann mir einer helfen?
    Wie mach ich das er eine neue zeile anfängt?

    if(jobid == 1 || jobid == 2 || jobid == 3 || jobid == 4 || jobid == 15 || admin == 2)
    {
    GetPlayerPos(id,x,y,z);
    if(PlayerToPoint(2.0,playerid,x,y,z))
    {
    TogglePlayerControllable(id, 0);
    SendClientMessage(playerid, blau, "Spieler Wurde Gefesselt!");
    GameTextForPlayer(id, "~r~Gefesselt!", 5000, 3);
    }
    }
    else
    {
    SendClientMessage(playerid, rot, "Du bist Nicht In Der Nähe Des Spielers!.");
    }



    Es liegt daran dass, das was nach else steht erst ausgeführt wird wen er NICHT einen dieser Jobs hat.


    Also musst du es in das ändern:


    if(jobid == 1 || jobid == 2 || jobid == 3 || jobid == 4 || jobid == 15 || admin == 2)
    {
    GetPlayerPos(id,x,y,z);
    if(PlayerToPoint(2.0,playerid,x,y,z))
    {
    TogglePlayerControllable(id, 0);
    SendClientMessage(playerid, blau, "Spieler Wurde Gefesselt!");
    GameTextForPlayer(id, "~r~Gefesselt!", 5000, 3);
    }
    else
    {
    SendClientMessage(playerid, rot, "Du bist Nicht In Der Nähe Des Spielers!.");
    }
    }

    Wo haste gelernt if Abfragen zu stellen?


    Sieh dir diese Zeile genau an und du erhälst deine Antwort von dir selbst.


    Zeile: TIPP: Weiter rechts ;)
    if(Player[playerid][admin] == 4 || IsPlayerAdmin(playerid)) {}


    Benutz IsPlayerInRangeOfPoint.


    Und du machst iwie so komische abfragen ^^.


    Hier:



    new Float:x,Float:y,Float:z;
    GetPlayerPos(id,x,y,z);
    if(IsPlayerInRangeOfPoint(playerid,radius,x,y,z))
    {
    // Was wen er in der nähe ist.
    }
    else
    {
    // Was wen nicht.
    }


    /Edit:
    Hatte nen fehler drin ^^

    Ich weis das doch alles schon.


    Ich habe das so gemacht weil es den namen des spielers ausließt und dan in die variable 'acc' packt die danach mit SII geöffnet wird.
    Verstehste?
    Oder weiste nicht wie man mit variablen umgeht?^^


    Du brauchs mir das nicht erklären ^^.



    B2T: Funktioniert ja nun thx NeoPhoenix

    Das mit den "--------" ist egal ^^.


    Wen ich das "return 1;" wegnehme funktioniert es aber ich hatte immer probleme das mein Script sich iwie vertan hat wen ich kein case mit "return 1;" beendet habe -.-



    Schnacke


    Ja?


    Ich will das die datei vom spieler geöffnet wird.
    Deshalb nur 'acc'

    Hier :


    format(acc,33,"%s.datei",name);


    also enthält die variable "acc" jetzt "name.datei"


    Wen ich nur if(INI_Open("acc")) machen würde, dan hätt er eine datei namens "acc" geöffnet die es aber nicht gibt.


    Komisch bei mir kommen fehler raus^^