Beiträge von Maggo

    Vergleich meins nochmal mit deinem hab das return 1; anders gesetzt.
    du musst bei SendClientMessage das farbe natürlich auch mit deiner gewünschten Farbe austauschen.
    Mfg

    if (strcmp("/duty", cmdtext, true, 10) == 0)
    {
    if(IsPlayerInRangeOfPoint(playerid, 0, 255.2830, 77.1850, 1003.6406))
    {
    SetPlayerSkin(playerid, 280);
    GivePlayerWeapon(playerid, 3, 1);
    GivePlayerWeapon(playerid, 24, 10000);
    GivePlayerWeapon(playerid, 41, 10000);
    GivePlayerWeapon(playerid, 27, 10000);
    }else SendClientMessage(playerid, farbe, "Du bist nicht in der Naehe des Pickups");
    return 1;
    }


    Versuchs mal so.

    Die antwort steht doch schon da. Du hast GetPointDistanceToPointExMorph definiert aber benutzt es nicht.

    Vorgeschichte:
    Wir wollen beispielsweise Online Überweisungen auf der Homepage ermöglichen. Bsp. X zahlt an Y 1000 aber wird ja erst beim nächsten Login *geupdated*. Dann hatte ich die Idee einfach LoadPlayer alle 10 Sekunden ausführen zulassen für eine aktuallisierung. Das ganze sieht ungefähr so aus:


    Timer wird alle 10 Sekunden ausgeführt:

    public ReloadTimer()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    LoadPlayer(i);
    }
    }
    }


    LoadPlayer
    stock LoadPlayer(playerid)
    {
    if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
    {
    GetPlayerName(playerid, SpielerInfo[playerid][pName], MAX_PLAYER_NAME);
    SpielerInfo[playerid][pLevel] = mysql_GetInt("accounts", "Level", "Name", SpielerInfo[playerid][pName]);
    SetPlayerScore(playerid, SpielerInfo[playerid][pLevel]);
    SpielerInfo[playerid][pGeld] = mysql_GetInt("accounts", "Geld", "Name", SpielerInfo[playerid][pName]);
    SetPlayerMoney(playerid, SpielerInfo[playerid][pGeld]);
    SpielerInfo[playerid][pKills] = mysql_GetInt("accounts", "Kills", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pTode] = mysql_GetInt("accounts", "Tode", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pAdminLevel] = mysql_GetInt("accounts", "AdminLevel", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pFraktion] = mysql_GetInt("accounts", "Fraktion", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pJob] = mysql_GetInt("accounts", "Job", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pBank] = mysql_GetInt("accounts", "Bank", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pBann] = mysql_GetInt("accounts", "Bann", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pWanteds] = mysql_GetInt("accounts", "Wanteds", "Name", SpielerInfo[playerid][pName]);
    SpielerInfo[playerid][pSkin] = mysql_GetInt("accounts", "Skin", "Name", SpielerInfo[playerid][pName]);
    SetPlayerSkin(playerid, SpielerInfo[playerid][pSkin]);
    SpielerInfo[playerid][pLeader] = mysql_GetInt("accounts", "Leader", "Name", SpielerInfo[playerid][pName]);
    }
    return 1;
    }

    Problem 1:
    Er updated trotzdem nicht sondern zeigt(getestet mit Geld) erst den neuen Wert nach einem Relog an.
    Problem 2: Alle 10 Sekunden gibts nen kurzen lagg und Spieler bleibt stehen weil er ja aktuallisiert(was ja nicht wirklich geht..)


    Gibts da irrgendne bessere Methode? Am besten ohne Laggs.
    Mfg

    Hey leute,
    habe da mal ne Frage..
    mein Invite Befehl sieht so aus:
    ocmd:invite(playerid,params[])
    {
    new query[256];
    new pID;
    new Fraktion[12];
    new Frakname[126];
    if(SpielerInfo[playerid][pLeader] >= 0)
    {
    if(sscanf(params,"u", pID)) return SendClientMessage(playerid, Rot, "/invite [SpielerID]");
    if(SpielerInfo[playerid][pLeader]==1) Frakname="Polizei";
    if(SpielerInfo[playerid][pLeader]==2) Frakname="News Reporter";
    if(SpielerInfo[playerid][pLeader]==3) Frakname="Groove Street";
    if(SpielerInfo[playerid][pLeader]==4) Frakname="Ballas";
    if(SpielerInfo[playerid][pLeader]==5) Frakname="La Cosa Nostra";
    if(SpielerInfo[playerid][pLeader]==6) Frakname="Yakuza";
    format(query, sizeof(query), "Der Spieler %s hat dich in die Fraktion %s eingeladen",SpielerName[playerid], Frakname);
    SendClientMessage(playerid, Blau, query);
    SendClientMessage(playerid, Blau, "Tippe /acceptinvite um die Einladung anzunehmen.");
    Invited[pID] = 1;
    format(query, sizeof(query), "Du hast %s in deine Fraktion eingeladen.", SpielerName[pID]);
    SendClientMessage(playerid, Blau, query);
    [pLeader],SpielerName[pID]);
    }else SendClientMessage(playerid, Rot, "Du bist kein FraktionsLeiter!");
    return 1;
    }


    mein /acceptinvite Befehl:


    ocmd:acceptinvite(playerid,params[])
    {
    new query[256];
    new pID;
    new Fraktion[12];
    if(Invited[playerid] == 1)
    {
    mysql_real_escape_string(Fraktion, Fraktion);
    format(query, 128,"UPDATE accounts SET Fraktion = '%d' WHERE Name = '%s'",SpielerInfo[playerid][pLeader],XX);
    mysql_query(query);
    }else SendClientMessage(playerid, Blau, "Du wurdest in keine Fraktion eingeladen!");
    return 1;
    }


    So meine frage ist jetzt, wie kann ich rausfinden welche Fraktion ihm zugewiesen wird? SpielerInfo[pID] geht ja nicht da es ja nichtmehr der gleiche Command ist? (acceptinvite befehl)
    mfg

    Ich hab zwar ganz ehrlich keine ahnung da ich selber Scriptanfänger bin aber probier doch mal
    if(sscanf(params, "us[512]dd", ziel, waffe, ammu, geld))
    ->
    if(sscanf(params, "us[512]ii", ziel, waffe, ammu, geld))
    und warum definierst du das waffe nicht oben schon?
    warum nimmst du so große bytes? 512 ist doch total unnötig.

    Also wenn ich mich nicht Irre gibt es keinen Unterschied zwischen Win und Linux.
    Wenn das falsch sein sollte korrigiert mich bitte ;)


    Und mal so nebenbei so besonders ist go2nova nicht.(Man kann nicht gerade von Zukunft reden)
    Wenn dies nicht erlaubt sein sollte bitte ich ein Mod das zu snippen


    MfG TimBo


    Es gibt Scripttechnisch ein paar Unterschiede zwischen Windows und Linux. Ich habe selber auch mal die Erfahrung gemacht das z.B. ein Code-Teil auf Windows problemlos lief, aber auf Linux an einer bestimmten Stelle gecrashed ist.

    Es crasht ja genau an der Stelle, aber die Debug läd komplett alles durch ohne probleme, trotzdem crasht es.
    Ich versteh einfach nicht wieso der Code auf Windows funktioniert - auf Linux nicht und trotzdem kein Fehler in der serverlog angezeigt wird.

    Danke, ich probiers mal eben aus.


    Edit: Er gibt alle 7 Zahlen aus, scheint wohl nicht am Code zuliegen trotzdem crasht er genau an der Stelle, ich werd rausgeportet, es spawnt nichtmal das Fahrschulauto und nach ca. 10 Sekunden crasht der Server :x Komisch