Beiträge von RFT



    Ein kleiner Denkfehler von dir.


    != Wenn er nicht 105 ist also können mit dein Code alle einsteigen die nicht den Skin 105 besitzen.

    Frag ab ob ob das der erste Spawn nach Server betritt ist wenn ja. Lässt du den Skin unter OnPlayerSpawn zuweißen.
    Habe ich vorher gestestet und funktioniert.



    LG RFT


    for(new h = 0; h < sizeof(HouseInfo); h++)
    {
    new str[128];
    if(HouseInfo[h][hOwned] == 0)
    {
    AddStaticPickup(1273, 2, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez]);
    pickups++;
    format(str, 128, "Dieses Haus steht zum Verkauf\nPreis: %d\nBeschreibung: %s\nDu kannst es mit /blabla kaufen", HouseInfo[h][hPrice], HouseInfo[h][hDescription]);
    HouseInfo[h][hText]=Create3DTextLabel(str, DEINE_FARBE, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez], 30.0, 0);
    }
    if(HouseInfo[h][hOwned] == 1)
    {
    AddStaticPickup(1239, 2, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez]);
    pickups++;
    format(str, 128, "Dieses Haus gehört: %s", HouseInfo[h][hOwner]);
    HouseInfo[h][hText]=Create3DTextLabel(str, DEINE_FARBE, HouseInfo[h][hEntrancex], HouseInfo[h][hEntrancey], HouseInfo[h][hEntrancez], 30.0, 0);
    }
    }


    In der Enum Struktur muss Text3D:hText, hinzugefügt werden.


    enum eBlitz
    {
    Float:bX,
    Float:bY,
    Float:bZ,
    bObj;
    bool:bexist,
    }
    new BlitzerInfo[15][eBlitz];









    if(strcmp(cmd, "/test", true) == 0)
    {
    new id = GetFreeSlotID();
    new Float: x; Float: y; Float: z;
    GetPlayerPos(..................
    BlitzerInfo[id][bObj]=CreateObject.............
    BlitzerInfo[id][bX]=x;
    BlitzerInfo[id][bX]=y;
    BlitzerInfo[id][bX]=z;
    BlitzerInfo[id][bexist]=true;
    return true;
    }
    if(strcmp(cmd, "/deltest", true) == 0)
    {
    for(new i = 0; i < 15; i++)
    {
    if(IsPlayerInRangeOfPoint(playerid, BlitzerInfo[i][bX], BlitzerInfo[i][bY], BlitzerInfo[i][bZ]))
    {
    BlitzerInfo[i][bexist]=false;
    DestroyObject(BlitzerInfo[i][bObj]);

    }
    }
    return true;
    }


    GetFreeSlotID() // Gibt die freie Slot id wieder; -1 == Kein freier Slot mehr
    {
    for(new i = 0; i < 15; i++)
    {
    if(BlitzerInfo][i][bexist]==false)return i;
    }
    return -1;
    }




    Ich hoffe das reicht als beispiel

    Wieviele Blitzer darf es maximal geben ?
    Eine Multivariable für die Objecte einrichten.
    Beim löschen abfragen bei welchen Blitzer der Spieler sich befindet.
    Dann mit DestroyObject(Blitzerid);


    Das Object zerstören.
    Benötigst du ein Beispiel oder hast du es verstanden ?


    LG RFT

    iTunes öffnen.
    MP3 auswählen Rechte Maustaste drauf > Informationen dann dort in den Feldern für Sorgen das diese MP3 nur noch 30 Sekunden geht.
    Dann rechte Maustaste drauf "AAC" Version erstellen. Diese Datei auf den Desktop kopieren dort steht als Dateiendung dann "m4a" das gegen "m4R" austauschen und ganz normal aufs iPhone kopieren.



    LG RFT

    Die Strtok Funktion fehlt dir:



    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;
    }

    Der Befehl ist eh komplett falsch.
    Du lässt eine Schleife ausführen zum Biz erstellen ? Was soll das bringen mich wundert es nicht das dieser Befehl nicht funktioniert.
    Zeig mir mal deine Strukturen vom Biz >System und wie es ablaufen soll ich baue dir den Befehl mal .





    LG RFT


    ocmd:bizerstellen(playerid,params[])
    {
    if(sInfo[playerid][sSpieler_adminlevel] == 1991)
    {
    for(new bizzes = 0; bizzes <MAX_BIZZES; bizzes++)
    {
    new Float:x,Float:y,Float:z;
    new preis,bizname[32],string[128];
    if(sscanf(params,"ds",preis,bizname))//Die 32 Muss hier weg
    {
    GetPlayerPos(playerid,x,y,z);
    bizzerstellen(x,y,z,preis,"Keiner",bizname,100,100,0,0);
    format(string,sizeof(string),"Die Firma %s Wurde erstellt.",bizname);
    SendClientMessage(playerid,GELB,string);
    }else SendClientMessage(playerid,ROT,"/bizerstellen [Preis][FirmenName]");
    }
    }
    else
    {
    IsAdmin
    return true;
    }
    return 1;
    }


    probier es so mal.


    LG RFT

    Zeig uns mal wie du IsAdmin definiert hast.
    Weil wenn kein Rückgabewert vorhanden ist dann ist es kein Wunder.
    Ausserdem können dein Befehl nur Admins mit dem Level 1991 ausführen alle Level dadrüber können diesen Befehl nicht benutzen.
    Es müsste so aussehen ">= 1991"


    LG RFT


    Das bringt dir ja nicht viel wenn er den Account vorher lädt obwohl der nichtmal exestiert.
    Macht mal ein Debug bei den beiden Funktionen.


    LG RFT

    Dann lässt sich der Fehler jetzt ja leicht finden.
    Wenn du ein Debug eingebaut hast stoppt der irgendwo ? Wenn nicht dann liegts schonmal nicht an dem Spawn dings.
    Lass den Debug bis OnPlayerSpawn über den letzen return 1; laufen.


    LG RFT