Beiträge von Halo

    if(strlen(params));


    ; muss weg


    if(strlen(params))



    edit:


    i = strval(params)
    da muss spieler hin wenn mich nicht alles täuscht
    Spieler = strval(params)

    INI_ReadString(dest[], const key[], maxlength = sizeof(dest))



    edit:


    INI_ReadString(Autos[playerid][i][Nummernschild],"Nummernschild",20));
    SetVehicleNumberPlate(Spielercar[playerid][i],Autos[playerid][i][Nummernschild]);// 1084
    SetVehicleNumberPlate(Spielercar[playerid][autoid],Autos[playerid][i][Nummernschild]);

    habs mir eben nochmal angeschaut das war ein scheiß was ich geschrieben habe :)



    forward TutorialTimer();


    public TutorialTimer()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(Tutorial[i]==1)
    {
    ShowPlayerDialog(i,DIALOG_TUTORIAL1,DIALOG_STYLE_MSGBOX,"Tutorial - Frage 1","Text bzw. Frage","kick","weiter");
    }
    if(Tutorial[i]==2)
    {
    ShowPlayerDialog(i,DIALOG_TUTORIAL2,DIALOG_STYLE_MSGBOX,"Tutorial - Frage 2","Text bzw. Frage","weiter","kick");
    }
    if(Tutorial[i]==3)
    {
    ShowPlayerDialog(i,DIALOG_TUTORIAL3,DIALOG_STYLE_MSGBOX,"Tutorial - Frage 2","Text bzw. Frage","weiter","kick");
    }
    }
    return 1;
    }



    so ist es richtig

    allso die playerid ist nicht definiert



    allso


    forward TutorialTimer(playerid);


    public TutorialTimer(playerid);
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {



    hier dein zeug rein


    }


    }

    allso wenn du eine pflanze hinsetzen willst dan musst du das mit createobjekt machen weil es glaub ich kein pickup gibt das wie eine pflanze aussieht


    dan solltest du das so machen
    enum Pflanzen
    {
    PflanzeObjekt,
    Pflanze3DText,
    bool:gepflanzt
    }
    new PflanzenInfo[MAX_PLAYERS][Pflanzen];


    new PflanzenPos[MAX_PLAYERS][3];


    /drogepflanzen

    if(!PflanzenInfo[playerid][gepflanzt])
    {
    GetPlayerPos(playerid, PflanzenPos[playerid][0],PflanzenPos[playerid][1],PflanzenPos[playerid][2]);
    PflanzenInfo[playerid][PflanzeObjekt] = CreateObjekt(...PflanzenPos[playerid][0],PflanzenPos[playerid][1],PflanzenPos[playerid][2]..AddAutoGate.
    PflanzenInfo[playerid][Pflanze3DText] = = Create3DTextLabel(...PflanzenPos[playerid][0],PflanzenPos[playerid][1],PflanzenPos[playerid][2]..
    PflanzenInfo[playerid][gepflanzt] = true;
    SendClientMessage(playerid,gelb,"blabla");
    }
    else SendClientMessage(playerid,rot,"Du hast schon eine Pflanze gepflanzt");




    /ernten


    if(PflanzenInfo[playerid][gepflanzt])
    {
    if(IsPlayerInRangeOfPoint(playerid, 3.0, PflanzenPos[playerid][0],PflanzenPos[playerid][1],PflanzenPos[playerid][2])
    {
    DestroyObject(PflanzenInfo[playerid][PflanzeObjekt]);
    Delete3DTextLabel(PflanzenInfo[playerid][Pflanze3DText]);
    PflanzenInfo[playerid][gepflanzt] = false;
    SendClientMessage(playerid,gelb,"blabla");
    }
    else SendClientMessage(playerid,rot,"du bist nicht bei deiner ...");
    }
    else SendClientMessage(playerid,rot,"du hast keine ...");



    ich hab es hier mal mit 3dtext gemacht, weil du da kein timer brauchst der überprüft ob du im objekt stehst damit der den gamtext anzeigt


    du müsstest dan einfach noch ein timer bei drogenpflanzen einbauen, damit man sie nicht gleich ernten kann



    ich denke den rest schafst du :thumbup:

    #define MAX_PFLANZEN 50


    new PflanzenID[MAX_PFLANZEN];


    for(new i;i<MAX_PFLANZEN;i++)
    if(!PflanzenID[i])
    PflanzenID[i] = CreatePickup(...


    edit:


    so wärs vielleicht besser


    new PflanzenID[MAX_PLAYERS];
    beim pflanzen
    if(!PflanzenID[playerid])
    PflanzenID[playerid] = CreatePickup(...

    du solltest mal überprüfen ob es wirklich 0 ist


    deswegen das einfach mal einbauen starten und schauen was raus kommt
    printf("haus_besitzer = %d", HausInfo[hausid][haus_besitzer]);



    printf("haus_besitzer = %d", HausInfo[hausid][haus_besitzer]);
    if(HausInfo[hausid][haus_besitzer] == 0)
    {
    new string1[128];
    format(string1,sizeof(string1), "Dieses Haus\nist zu verkaufen\nPreis: %d$", HausInfo[hausid][haus_preis]);
    Create3DTextLabel(string1,COLOR_BLUE,HausInfo[hausid][haus_x],HausInfo[hausid][haus_y],HausInfo[hausid][haus_z],45,0,0);
    }
    else if(HausInfo[hausid][haus_besitzer] != 0)
    {
    new string2[128];
    format(string2,sizeof(string2), "{FFFFFF}Dieses Haus\ngehört{0000ff} %s", HausInfo[hausid][haus_besitzer]);
    Create3DTextLabel(string2,COLOR_BLUE,HausInfo[hausid][haus_x],HausInfo[hausid][haus_y],HausInfo[hausid][haus_z],45,0,0);
    }

    hab auch gerade die neue version probiert


    bei mir geht das auch nicht richtig
    irgendwie erhält man immer die falsche playerid weil jetzt bei jedem command kommt "Fehler: Kein aktiver Spieler!"


    jeder command davon ist mit sscanf

    sry, hatte ein fehler


    da htte ich noch playerid da muss aber i hin
    SendClientMessage(i,0xFF0000FF,"test");



    so müsste es jetzt gehen

    SQL
    public test(playerid)
    {
             for(new i = 0; i < MAX_PLAYERS; i++)
                     if(IsPlayerConnected(i))
    	            SendClientMessage(i,0xFF0000FF,"test");
    	return 1;
    }
    Zitat

    SetTimerEx("test",500,true,"i",playerid);


    damit wird bei ongamemodeinit ein error kommen ^^


    public test(playerid)
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    if(IsPlayerConnected(i))
    SendClientMessage(playerid,0xFF0000FF,"test");
    return 1;
    }

    stimmt, ihr müsst euch aber auch mal ein bisschen anstrengen sonst lernt ihr ja nichts ;)



    ihr könnt das ja bei
    else desktoptime ++;
    einbauen



    else
    {
    desktoptime ++;
    format..."... ist seit %d min afk", desktoptime...
    Create3DTextLabel...
    }