Beiträge von [COE]CodeX

    Ich bin der Meinung die Funktion ist völlig selbst erklärend und steht eigentlich auch schon im Wiki aber hier
    füg das folgende unter dein AddStaticVehicle....
    SetVehicleVirtualWorld(Car,5);


    ach und mach dein AddStaticVehicleEx zu Createvehicle, weil du während der laufzeit ein Fahrzeug nur durch CreateVehicle erstellen lassen kannst ;)

    Bin mir gerade etwas unsicher aber sollte so funktionieren
    if(strcmp(cmdtext,"/bsn",true)==0)
    {
    if(isPlayerAnAdmin(playerid,3))
    {
    SetPlayerPos(playerid, 1212.7122,-882.2321,42.9147);
    SendClientMessage(playerid, COLOR_BLAU, "Du hast dich Geportet.");
    }
    else
    {
    SendClientMessage(playerid,BLAU,"Du bist kein Admin.");
    }
    return 1;
    }


    Du hast keine "else" Anweisungen geben wenn man kein Admin ist

    Hat einer ne Idee warum kein Pickup erstellt wird?


    stock LoadFrak(frakid)
    {
    format(pfad,64,"/Fraktionen/%i.ini",frakid);
    if(!fexist(pfad))return 0;
    if(INI_Open(pfad))
    {
    fInfo[frakid][frakID] = INI_ReadInt("FrakID");
    INI_ReadString(fInfo[frakid][FrakName],"Frakname",40);
    fInfo[frakid][frak_XS] = INI_ReadFloat("Spawn X");
    fInfo[frakid][frak_YS] = INI_ReadFloat("Spawn Y");
    fInfo[frakid][frak_ZS] = INI_ReadFloat("Spawn Z");
    fInfo[frakid][frak_AS] = INI_ReadFloat("Spawn Angle");
    fInfo[frakid][frakInterior] = INI_ReadInt("Interior");
    //%Waffe....
    //%Muni....
    fInfo[frakid][frakRespekt] = INI_ReadInt("Frak Respekt");
    fInfo[frakid][frakKasse] = INI_ReadInt("Frak Kasse");
    INI_ReadString(fInfo[frakid][frakRang1],"Rang1",15);
    INI_ReadString(fInfo[frakid][frakRang2],"Rang2",15);
    INI_ReadString(fInfo[frakid][frakRang3],"Rang3",15);
    INI_ReadString(fInfo[frakid][frakRang4],"Rang4",15);
    INI_ReadString(fInfo[frakid][frakRang5],"Rang5",15);
    INI_ReadString(fInfo[frakid][frakRang6],"Rang6",15);
    INI_Close();
    }
    fInfo[frakid][hpickup] = CreatePickup(1240,23,fInfo[frakid][frak_XS],fInfo[frakid][frak_YS],fInfo[frakid][frak_ZS],0);
    fInfo[frakid][apickup] = CreatePickup(1240,23,fInfo[frakid][frak_XS],fInfo[frakid][frak_YS],fInfo[frakid][frak_ZS],0);
    printf("Fraktion erfolgreich geladen ;) ");
    return 1;
    }

    Ja ich denke die der Überschrift sagt schon alles
    Ich geb mal als Beispiel folgendes:
    //MAX_PLAYERS Variablen
    new Eingeloggt[MAX_PLAYERS];
    new LoginZeit[MAX_PLAYERS];
    new KrankenhausTimer[MAX_PLAYERS];


    new ProbeFahrtTimer[MAX_PLAYERS];
    new Probecar[MAX_PLAYERS];


    new HospitalTime[MAX_PLAYERS];
    new trailer[MAX_PLAYERS];
    new Ueberweiser[MAX_PLAYERS] = -1;
    new tanktimer[MAX_PLAYERS];
    new Float:PPos[3][MAX_PLAYERS];
    new Anfrage[MAX_PLAYERS];
    new AnfrageID[MAX_PLAYERS] = -1;
    new ZielHaus[MAX_PLAYERS] = -1;
    new testcar[MAX_PLAYERS] = -1;


    //Support Ticketsys
    new SupportTicket[MAX_PLAYERS];
    new DeinSupport[MAX_PLAYERS];
    new bool:TicketAngenommen[MAX_PLAYERS];


    //Tacho
    new Float:XT[2][MAX_PLAYERS],Float:YT[2][MAX_PLAYERS],Float:ZT[2][MAX_PLAYERS];
    new tachotimer[MAX_PLAYERS];


    //Autosystem
    new motor,lichter,alarm,tueren,bonnet,boot,objective;
    new bool:Motor[MAX_VEHICLES] = false;
    new bool:Tueren[MAX_VEHICLES] = false;
    new cTank[MAX_VEHICLES];
    new Carkey[MAX_PLAYERS];


    //BOOLS
    new bool:JobAnnahme[MAX_JOBS][MAX_PLAYERS];
    new bool:AktuellerCP[MAX_JOBS][MAX_PLAYERS];
    new bool:HatGemietet[MAX_PLAYERS];
    new bool:TanktGerade[MAX_VEHICLES]=false;
    new bool:inHaus[MAX_PLAYERS];
    new bool:HatProbeFahrt[MAX_PLAYERS];
    new bool:AdminDuty[MAX_PLAYERS];


    Ich denke mal soviele Variablen zu erstellen ist nicht so gut.
    Kann man das irgendwie besser lösen? alle in ein enum oder so?

    Hast du es mal mit einem anderen Skin probiert?
    Also nicht mit dem CJ Skin rumlaufen sondern mit nem anderen


    /edit: Also wichtig ist, dass UsePlayerPedAnims(); dafür sorgt, dass alle wie CJ laufen d.h. du darfst es nicht verwenden und ich glaub der CJ Skin läuft immer normal egal was du einstellst

    Doch das geht solange du den Namen bei dem du etwas in der datei ändernn willst genau weißt ;)
    Ich geb dir mal ein Beispiel indem ich für einen Spieler Warns setzen lasse
    Der Code ist ungetestet sollte aber so in etwa funktionieren ;D
    Wichtig ist noch, dass du natürlich vieles deinen "Bedürfnissen" anpassen musst wie die Commandart etc.
    CMD:setwarn(playerid,params[])
    {
    new pname[MAX_PLAYER_NAME],warns,Spielerdatei[64];
    if(sscanf(params,"si",pname,warns))return SendClientMessage(playerid,rot,"Benutze /setwarns [Spielername] [Warns]");
    format(Spielerdatei,64,"/Accounts/%s.ini",pname);
    if(dini_Exists(Spielerdatei))
    {
    dini_IntSet(Spielerdatei,"Warns",warns);
    }
    else
    {
    SendClientMessage(playerid,rot,"Dieser Account existiert nicht!");
    }
    return 1;
    }

    probier das mal so:
    public OnPlayerRequestClass(playerid, classid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    if(!fexist(Spielerdatei))//oder was auch immer die dini Abfrage für nicht existieren ist vllt. if(!dini_Exists(Spielerdatei))
    {
    SetPlayerPos(playerid,2106.5654,1788.9365,10.6719);
    SetPlayerFacingAngle(playerid,245.1837);
    SetPlayerCameraPos(playerid,2111.6599,1786.5791,10.6719);
    SetPlayerCameraLookAt(playerid,2106.5654,1788.9365,10.6719);
    dini_IntSet(Spielerdatei,"PSkin",GetPlayerSkin(playerid));
    }
    else
    {
    SetSpawnInfo(playerid,......);
    SpawnPlayer(playerid);
    SetPlayerSkin(playerid,SetPlayerSkin(playerid,dini_Int(Spielerdatei,"PSkin"));
    }
    return 1;
    }


    Alternativ kannst du das SetPlayerSkin auch bei OnPlayerSpawn lassen, weil es durch SpawnPlayer ja aufgerufen wird
    PS: an all die anderen nur "SpawnPlayer(playerid);" funktioniert nicht man muss per SetSpawnInfo noch konkrete Koordinaten dafür angeben

    Also ich möchte halt eine Zufallszahl erstellen welche dann wenn sie in einer Datei noch nicht existiert halt reingeschrieben wird
    und wenn die Zahl in der Datei bereits einmal drin steht soll eine neue Zahl erstell werden


    Genutzt werden soll das ganze für verschiedene Handynummern oder versch. AutoIDs
    Anfangen würde ich so:
    new zahlen[128];
    new nummer = random(10000);
    format(zahlen, sizeof(zahlen), "%i\r\n", nummer);
    fwrite(LogFileNummernlog, zahlen);


    Aber ich hab keine Idee wie ich dann durch die ganze Datei gehe und abfrage ob die Zahl da schonmal steht


    Ich hoffe es war halbwegs verständlich was ich will und, dass mir jmd helfen kann


    PS: Ihr könnt mir gerne auch andere Vorschläge zur Verwirklichung dieser Idee geben


    MfG
    [COE]CodeX

    Ganz einfach
    Du hast einen Array mit 3 Zeilen und 4 Spalten erstellt
    Aber du "benutzt" 4 Zeilen und 4 Spalten das funktioniert so nicht
    aus der 3 muss eine 4 werden
    Also von 3 zu 4 Zeilen ;)

    Das ist ein Array
    Ein Array ist eine Tabelle
    Das vorliegende ist ein Zweidimensionaler Array
    Die 1. 4 steht für die Anzahl der Zeilen
    Die 2. 4 steht für die Anzahl der Spalten(Deine 4 Koordinaten die zusammen gehöhren X,Y,Z,Angle)


    /edit: Mal etwas aus dem Dt. Wiki


    new twodimensionalarray[ZEILEN][SPALTEN];


    new Float:twodimensionarray[4][3] = {
    {3.0, 4.5, 5.76}, // Zeile 0
    {10.85, 76.34, 23.54}, // Zeile 1
    {2.32, 10.23, 80.2}, // Zeile 2
    {6.6666, 45.3, 32.64} // Zeile 3
    //Spalte 0, Spalte 1, Spalte 2
    };
    sorry bei mir rückt es sowas immer völlig fail ein :S

    Löschen den folgenden teil mal raus dann sollten keine Waffen mehr created werden
    GetPlayerPos(playerid, pPosX, pPosY, pPosZ);


    for(new i_slot = 0, gun, ammo; i_slot != 12; i_slot++)


    {


    GetPlayerWeaponData(playerid, i_slot, gun, ammo);


    if(gun != 0 && ammo != 0) CreateDroppedGun(gun, ammo,
    pPosX+random(2)-random(2), pPosY+random(2)-random(2), pPosZ);


    }