Beiträge von DialogHD

    Hallöschen,


    ich komme (mal wieder) mit meinem Biz System nicht weiter.
    Zunächst einmal mein enum:
    enum BIZDATEN
    {
    Besitzer[MAX_PLAYER_NAME],
    BizName[200],
    Float:PosX,
    Float:PosY,
    Float:PosZ,
    Waren,
    Kasse,
    Preis,
    Level,
    Pickup,
    Text3D:BizText,
    Map,
    Besitzt


    }


    stock LoadBiz(i)
    {
    new str[128];
    format(str, sizeof str, "/bizzs/%d.ini", i);
    if(dini_Exists(str))
    {
    format(sBiz[i][BizName],sizeof sBiz[i][BizName], dini_Get(str,"BizName")); //Error Zeile
    format(sBiz[i][Besitzer],sizeof sBiz[i][Besitzer], dini_Get(str,"Besitzer"));
    sBiz[i][PosX] = dini_Float(str,"PosX");
    sBiz[i][PosY] = dini_Float(str,"PosY");
    sBiz[i][PosZ] = dini_Float(str,"PosZ");
    sBiz[i][Waren] = dini_Int(str,"Waren");
    sBiz[i][Kasse] = dini_Int(str,"Kasse");
    sBiz[i][Preis] = dini_Int(str,"Preis");
    sBiz[i][Level] = dini_Int(str,"Level");
    sBiz[i][Besitzt] = dini_Int(str,"Besitzt");
    if(sBiz[i][Waren] > 500)
    {
    sBiz[i][Waren] = 500;
    }
    new string2[128];
    if(sBiz[i][Besitzt] == 0)
    {
    format(string2, sizeof(string2), "%s\nPreis: %d$\nWaren: %d/500\nLevel %d\nZum verkauf", sBiz[i][BizName],sBiz[i][Preis],sBiz[i][Waren], sBiz[i][Level]);
    sBiz[i][BizText] = Create3DTextLabel(string2, Rot, sBiz[i][PosX], sBiz[i][PosY], sBiz[i][PosZ], 10,0);
    }
    else
    {
    format(string2, sizeof(string2), "%s\nBesitzer: %s\nWaren: %d/500\n Firmenwert: %d$",sBiz[i][BizName], sBiz[i][Besitzer],sBiz[i][Waren],sBiz[i][Kasse]);
    sBiz[i][BizText] = CreateDynamic3DTextLabel(string2, Rot, sBiz[i][PosX], sBiz[i][PosY], sBiz[i][PosZ], 10,0);
    }
    sBiz[i][Pickup] = CreateDynamicPickup(1274, 1,sBiz[i][PosX], sBiz[i][PosY], sBiz[i][PosZ]);
    printf("Biz %d Geladen.",i);
    for(new p = 0; p<MAX_PLAYERS; p++)
    if(sBiz[i][Besitzt] == 0)
    {
    sBiz[i][Map] = SetPlayerMapIcon(p,i,sBiz[i][PosX], sBiz[i][PosY], sBiz[i][PosZ],52,0,MAPICON_LOCAL);
    }
    }
    return 1;
    }


    Hier mal die Errors:

    C:\Dokumente und Einstellungen\Kai\Desktop\World-of-San-Andreas-4.0\World of San Andreas 4.0\gamemodes\AcLTemp.pwn(7849) : error 001: expected token: "]", but found "-identifier-"
    C:\Dokumente und Einstellungen\Kai\Desktop\World-of-San-Andreas-4.0\World of San Andreas 4.0\gamemodes\AcLTemp.pwn(7849) : warning 215: expression has no effect
    C:\Dokumente und Einstellungen\Kai\Desktop\World-of-San-Andreas-4.0\World of San Andreas 4.0\gamemodes\AcLTemp.pwn(7849) : error 001: expected token: ";", but found "]"
    C:\Dokumente und Einstellungen\Kai\Desktop\World-of-San-Andreas-4.0\World of San Andreas 4.0\gamemodes\AcLTemp.pwn(7849) : error 029: invalid expression, assumed zero
    C:\Dokumente und Einstellungen\Kai\Desktop\World-of-San-Andreas-4.0\World of San Andreas 4.0\gamemodes\AcLTemp.pwn(7849) : fatal error 107: too many error messages on one line


    Compilation aborted.Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    4 Errors.

    Heyho, (hatte keine passende Überschrift)


    Ich arbeite gerade an meinem Biz System.
    Beim Compilen kommt:


    AcLTemp.pwn(7849) : error 047: array sizes do not match, or destination array is too small
    AcLTemp.pwn(7850) : error 047: array sizes do not match, or destination array is too small



    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase


    Error Zeile/n:
    sBiz[i][Name] = dini_Get(str,"Name");
    sBiz[i][Besitzer] = dini_Get(str,"Besitzer");


    So ist es definiert:
    Besitzer[MAX_PLAYER_NAME],
    Name[200],//Ich weis, 200 ist etwas viel^^

    Ich habe TACHOTIMER jetzt auch 500 gesetzt


    #define TACHOTIMER 500


    wenn ich jetzt wie du gesagt hast mache /1000
    Geschwindigkeit = (Strecke / (TACHOTIMER/1000)) * 3.6;
    kommt der bei Geschwindigkeitsanzeige nur 0 Km/h raus.

    Hallöschen,


    Ich hab endlich mein Tacho hinbekommen ( :) )
    allerdings springt das Tacho noch sehr...


    anfangs war es so, das der Timer zu langsam lief.
    Jetzt habe ich ihn auf 100 gestellt.
    Jetzt springt das Tacho von 30 Km/h auf 140 Km/h und plötzlich wieder auf 6 Km/h.
    So wirklich super ist das nicht :|


    kann mir jemand helfen wie ich das verbessern kann?


    public UpdateTacho()
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i) && IsPlayerInAnyVehicle(i) && !IsPlayerNPC(i) && !IstEinKeinTachoFahrzeug(GetPlayerVehicleID(i)))
    {
    new Float:Strecke, Float:Geschwindigkeit;
    GetVehiclePos(GetPlayerVehicleID(i),X1[i],Y1[i],Z1[i]);
    Strecke = floatsqroot(floatpower(floatabs(floatsub(X1[i], X2[i])), 2)+floatpower(floatabs(floatsub(Y1[i], Y2[i])), 2)+floatpower(floatabs(floatsub(Z1[i], Z2[i])), 2));
    Geschwindigkeit = (Strecke / (TACHOTIMER/100)) * 3.6 ; //Tachotimer läuft auf 100 millisekunden)
    new Tachostring[20];
    format(Tachostring, sizeof(Tachostring), "%d Km/h", floatround(Geschwindigkeit));
    TextDrawSetString(Tacho[i], Tachostring);
    GetVehiclePos(GetPlayerVehicleID(i),X2[i],Y2[i],Z2[i]);
    TextDrawShowForPlayer(i, Tacho[i]);
    }
    else
    {
    TextDrawHideForPlayer(i,Tacho[i]);
    }
    }
    return 1;


    }


    ich wüsste nur eine sehr aufwendige methode:


    Du erstellst ein Object auf dem Auto (Es gibt ja ein Minigun object)
    du erstellst einen Befehl wo abgefragt wird ob man in der nähe des
    Objektes ist, wenn ja bekommt man eine Minigun. Dann noch ein Timer
    der jede Sekunde abfragt ob du noch in der nähe des Objectes bist, wenn
    nicht wird dir die Minigun wieder weg genommen.


    Eine andere möglichkeit kenne ich nicht.

    stock LoadBiz(i)
    {
    new str[128];
    format(str, sizeof str, "/bizzs/%d.ini", i);
    if(dini_Exists(str))
    {
    sBiz[Name] = dini_Int(str,"Name");
    sBiz[Besitzer] = dini_Int(str,"Besitzer");
    sBiz[PosX] = dini_Float(str,"PosX");
    sBiz[PosY] = dini_Float(str,"PosY");
    sBiz[PosZ] = dini_Float(str,"PosZ");
    sBiz[Waren] = dini_Int(str,"Waren");
    sBiz[Kasse] = dini_Int(str,"Kasse");
    sBiz[Preis] = dini_Int(str,"Preis");
    sBiz[Level] = dini_Int(str,"Level");
    sBiz[Besitzt] = dini_Int(str,"Besitzt");
    }
    return 1;
    }

    Hallöschen,


    erst einmal zu meinem problem:
    Wenn man /abladen eingibt kommt, "Du kannst hier nichts Abladen!", obwohl ich neben einem Biz stehe.
    /Errors habe ich keine


    Code:

    if(strcmp("/abladen",cmdtext,true,10)==0)
    {
    for(new i = 0;i < MAX_BIZ; i++)
    {
    if(IsPlayerInRangeOfPoint(playerid,20.0,sBiz[i][PosX],sBiz[i][PosY],sBiz[i][PosZ])) //Hier die Abfrage, die bugt
    {
    for(new p = 0; i<sizeof(Truck); p++)
    {
    if(GetPlayerVehicleID(playerid) == Truck[p])
    {
    if(GetVehicleModel(GetVehicleTrailer(GetPlayerVehicleID(playerid))) == 435)
    {
    if(Aufgeladen[playerid] == 1)
    {
    SetTimerEx("Abladen",5000,0,"ii",playerid,i);
    TogglePlayerControllable(playerid, 0);
    SendClientMessage(playerid, Blau, "Die Ware wird abgeladen... ");
    return 1;
    }
    else
    {
    SendClientMessage(playerid, Rot, "Du hast nichts geladen!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, Rot, "Du brauchst einen passenden anhänger!");
    return 1;
    }
    }
    else
    {
    SendClientMessage(playerid, Rot, "Du befindest dich nicht in deinem Truck!");
    return 1;
    }
    }
    }
    else
    {
    SendClientMessage(playerid, Rot, "Du kannst hier nichts Abladen!");
    return 1;
    }
    }
    }


    findet jemand einen fehler?

    Hallöschen,
    mal ne frage...


    Mein public sieht derzeit so aus:
    public Abladen(playerid,Biz)
    und das ist mein dazugehöriger Timer:
    SetTimer("Abladen",6000,false);


    Wie sicher schon auffällt benutzt das public "Biz"
    wie kann ich "Biz" im Timer mit benutzen?

    sieht aus wie ein Godfather,
    ausserdem kaum informationen über die features.


    Und 300€ für Fraktionen die man so auch in einem kostenlosen Godfather bekommt?