Beiträge von Jeffry

    Dann musst du dort wo der Spieler diesen verlässt abfragen in welcher Arena er war und die entsprechende Variable (EinsGegenEinseins,...) minus eins machen.


    new SpielerInArena[MAX_PLAYERS];


    Wenn er Arena eins betritt
    SpielerInArena[playerid]=1;


    Beim verlassen einer Arena
    if(SpielerInArena[playerid]==1) EinsGegenEinseins--;
    SpielerInArena[playerid]=0;


    Prinzip verstanden?

    Meine Datenbank heißt samp,nur die eine Tabelle dadrin heißt user.


    Stimmt. Ich bin mit der deutschen Version von phpMyAdmin nicht vertraut, ich benutze die Englische, da kommt das irgendwie immer durcheinander. Falls jemand eine Eselsbrücke kennt, wie man das Englische vom Deutschen unterscheidet wäre ich dankbar. :huh:


    Denke der Fehler war das mit dem Passwort danke dir! :thumbup:


    Gut dann =)


    Um nochmals zusammenzufassen falls das noch jemand mit dem gleichen Problem liest:
    Standardmäßig sollte man bei der Benutzung von MySQL mit phpMyAdmin den "root"-Benutzer ohne Password (also wirklich leer: "") verwenden. Das führt in 99% aller Fälle zum Erfolg.

    Morgen =)


    fahrzeug3D[noobroller] = Create3DTextLabel("Neulingsfahrzeug",CGRUEN,0.0,0.0,0.0,50.0,0,1);
    Attach3DTextLabelToVehicle(fahrzeug3D[noobroller],noobroller, 0.0,0.0,2.0);


    zu
    fahrzeug3D[0] = Create3DTextLabel("Neulingsfahrzeug",CGRUEN,0.0,0.0,0.0,50.0,0,1);
    Attach3DTextLabelToVehicle(fahrzeug3D[0],noobroller[0], 0.0,0.0,2.0);
    fahrzeug3D[1] = Create3DTextLabel("Neulingsfahrzeug",CGRUEN,0.0,0.0,0.0,50.0,0,1);
    Attach3DTextLabelToVehicle(fahrzeug3D[1],noobroller[1], 0.0,0.0,2.0);
    fahrzeug3D[2] = Create3DTextLabel("Neulingsfahrzeug",CGRUEN,0.0,0.0,0.0,50.0,0,1);
    Attach3DTextLabelToVehicle(fahrzeug3D[2],noobroller[2], 0.0,0.0,2.0);
    //usw...

    HolyJoh: Spielervariablen machen hier mehr Sinn.


    Das macht mal gar keinen Sinn. Er will doch nur zählen wie viele Spieler sich in der Arena befinden.



    Füge doch bitte mal am Anfang (vor das if) und am Ende jedes case's einen print ein, zum überprüfen welchen Wert die Zählervariable überhaupt hat.
    printf("%d", EinsGegenEinseins);
    Das selbe mit EinsGebenEinszwei.


    Setzt du sonst im Code noch irgendwo den Wert einer der Variablen? Wenn ja, wo?

    forward OnPlayerCarsLoad(playerid);
    public OnPlayerCarsLoad(playerid)
    {
    new Autodatei[64],name[MAX_PLAYER_NAME],Float:X, Float:Y, Float:Z,Float:R;
    GetPlayerName(playerid,name,sizeof(name));
    format(Autodatei,sizeof(Autodatei),"/Autos/%s.txt",name);
    new Modelid=dini_Int(Autodatei, "Modelid");
    X=dini_Float(Autodatei, "X");
    Y=dini_Float(Autodatei, "Y");
    Z=dini_Float(Autodatei, "Z");
    R=dini_Float(Autodatei, "R");
    CreateVehicle(Modelid,X,Y,Z,R,-1,-1,-1);
    return 1;
    }


    An die Mods: Thread bitte verschieben in die Scripting Sektion. Thx.

    public OnPlayerText(playerid, text[])
    {
    new Float: pos[3];GetPlayerPos(playerid, pos[0], pos[1], pos[2]);
    new rad = 20;
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    new str[128];
    if(!IsPlayerConnected(i)) continue;
    if(!IsPlayerInRangeOfPoint(i, rad, pos[0], pos[1], pos[2])) continue;
    format(str,sizeof(str),"%s : %s",SpielerName(playerid),text);
    SendClientMessage(i,0xDCDCDCFF,str);
    }
    return 0; //Verhindert, dass die Nachricht weitergegeben wird.
    }


    Montero: Das verkleinert aber auch die Distanz auf die man einen Spieler auf der Map sieht, je nach dem ob er das will. (http://wiki.sa-mp.com/wiki/LimitGlobalChatRadius)

    Yup.


    stock RemovePlayerAmmo(playerid, weaponid, ammo) //©Jeffry
    {
    new w = GetPlayerWeapon(playerid);
    new plyWeapons[12];
    new plyAmmo[12];


    for(new slot = 0; slot != 12; slot++)
    {
    GetPlayerWeaponData(playerid, slot, plyWeapons[slot], plyAmmo[slot]);
    if(plyWeapons[slot] == weaponid) plyAmmo[slot]-=ammo;
    }
    ResetPlayerWeapons(playerid);
    for(new slot = 0; slot != 12; slot++)
    {
    GivePlayerWeapon(playerid, plyWeapons[slot], plyAmmo[slot]);
    }
    SetPlayerArmedWeapon(playerid, w);
    return 1;
    }


    Zu benutzen:
    RemovePlayerAmmo(playerid, 16, 2); //Zwei Granaten weniger.

    stock Login(playerid,key[])
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name); //Hat gefehlt.
    if(!strcmp(key,dini_Get(Spielerdatei,"Passwort"),false))
    {
    SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
    return 1;
    }
    else
    {
    SendClientMessage(playerid,blau,"Falsches Passwort.");
    ShowPlayerDialog(playerid,DIALOG_LOGIN,DIALOG_STYLE_INPUT,"Login","Gib dein ausgewähltes Passwort ein.","Einloggen","Verlassen");
    return 1;
    }
    }

    ähh ja gute Frage :) wie sieht das denn ungefähr aus der Code :)


    Ja der wird wohl so ähnlich aussehen wie der /close Befehl. Suchen kann ich ihn dir nicht, den musst du schon selbst finden.




    Meine Meinung am Rande: Eigener Code = Eigener Server -> Wer einen Code nur editiert hat den Server nicht gemacht, er hat ihn vermacht. Das ist ein feiner aber ausschlaggebender Unterschied.

    stock freplaceline(filename[], line, replacing[]) //©Jeffry
    {
    new string[256], str[256], File:handle, File:ftmp, tmp;
    handle = fopen(filename,io_read);
    format(str,sizeof(str),"%s.part",filename);
    ftmp = fopen(str,io_write);
    while(fread(handle,string))
    if(tmp!=line)
    {
    fwrite(ftmp,string);
    tmp++;
    }
    else
    {
    fwrite(ftmp, replacing);
    tmp++;
    }
    fclose(handle);
    fclose(ftmp);
    handle = fopen(filename,io_write);
    ftmp = fopen(str,io_read);
    while(fread(ftmp,string))
    fwrite(handle,string);
    fclose(handle);
    fclose(ftmp);
    return fremove(str);
    }
    Ersetzt eine bestimmte Zeile in einer Datei mit einer neuen:
    freplaceline("test.txt", 10, "Ich bin Zeile 10 und wurde ersetzt.");


    Keywords: ersetzen, zeile ersetzen, ersetzzeile, linie, freplace