Beiträge von Keslo

    Zeig mal allen Code her den du jetzt für die Wantedlabels hast.



    Das wäre jetzt das "neue" System. Wobei ich eins sagen muss: Die 3D Labels werden zwar erstellt, leider nicht über derm Kopf vom Spieler sonst willkürlich irgendwo auf der Map, also es buggt total.
    Wenn ich als Cop in der nähe vom Spieler mit Wanteds bin, können beide diese Verbuggten 3D labels sehen.

    forward GlobalTimer1(playerid);
    public GlobalTimer1(playerid)
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    for(new pwtds=0; pwtds<MAX_PLAYERS; pwtds++)
    {
    if(Spieler[i][Fraktion] == 1)
    {
    new string[50];
    format(string,sizeof(string),"Name: %s[%d]\nWanteds: %d",SpielerName(pwtds),pwtds,Spieler[pwtds][Wanteds]);
    new Float:x,Float:y,Float:z;
    GetPlayerPos(pwtds,x,y,z);
    if(!IsPlayerInRangeOfPoint(i,10,x,y,z))continue;
    CreatePlayer3DTextLabel(i,string,COLOR_RED,x,y,z,20.0,pwtds,INVALID_VEHICLE_ID,1);
    }
    }
    }
    }


    Hier aber noch mal mein Code, den ich davor benutzt habe. Es hat wunderbar geklappt, bis auf, dass jeder Spieler die Labels sehen konnte und ich will ja, dass sie nur Cops sie sehen kann.



    new Text3D: SpielerWantedAnzeige[MAX_PLAYERS];


    //GameModeInit
    for(new i; i < MAX_PLAYERS; i++)
    {
    SpielerWantedAnzeige[i] = Create3DTextLabel(" ", COLOR_BLUE, 0.0, 0.0, 0.0, 20.0, 0, 0);
    }



    //On player Connect
    Attach3DTextLabelToPlayer(SpielerWantedAnzeige[playerid], playerid, 0.0, 0.0, 1.0);


    //Disconnect
    Update3DTextLabelText(SpielerWantedAnzeige[playerid], COLOR_BLUE, " ");



    forward GlobalTimer1(playerid);
    public GlobalTimer1(playerid)
    {
    for(new i=0; i<MAX_PLAYERS; i++)
    {
    if(Spieler[i][Wanteds] >= 1)
    {
    new string[50];
    format(string,sizeof(string),"Name: %s [%d]\nWanteds: %d, Grund: %s",SpielerName(i),i,Spieler[i][Wanteds],Spieler[i][WantedGrund]);
    Update3DTextLabelText(SpielerWantedAnzeige[i], COLOR_BLUE, string);
    }
    else if(Spieler[i][Wanteds] == 0)
    {
    Update3DTextLabelText(SpielerWantedAnzeige[i], COLOR_BLUE, " ");
    }
    }
    }


    Hoffe es findet sich eine Lösung :o

    Ersetze die Zeile aus der PlayerLabel Variante mit der hier
    [size=12]CreatePlayer3DTextLabel(i,(Der Text),(Die Farbe),x,y,z,(Die Distanz),ip,INVALID_VEHICLE_ID,0);[/size]


    Außerdem solltest du um keine allzu großen Vorteile zu verteilen bedanken TestLOS einzuschalten

    Funktioniert immer noch nicht... :(

    Jetzt geht garnichts mehr :D Wird nichts angezeigt



    //push


    Hat keiner eine Lösung?



    #define dialog_jailcashfuercops 9
    #define dialog_jailcashrobber 9


    Habe es mit deinem Code gemacht, leider selber Fehler.




    Wie sieht denn der Befehl aus?



    ocmd:motor(playerid, params[])
    {
    if(GetPlayerState(playerid) != PLAYER_STATE_DRIVER) return 1;
    new vehicleid = GetPlayerVehicleID(playerid);
    new motoran[128],motoraus[128];


    format(motoran,sizeof(motoran),"%s startet den Motor.",SpielerName(playerid));
    format(motoraus,sizeof(motoran),"%s stellt den Motor ab.",SpielerName(playerid));


    if(Spieler[playerid][Fraktion] == 1)//LSPD - SAPD
    {
    for(new i=0;i<sizeof(lspdcar);i++)
    {
    if(vehicleid == lspdcar[i])
    {
    if(motor[vehicleid] == 1)
    {
    SetPlayerChatBubble(playerid,motoraus,COLOR_PURPLE,20,3000);
    SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_OFF,VEHICLE_PARAMS_OFF,alarm,doors,bonnet,boot,objective);
    motor[vehicleid] = 0;
    licht[vehicleid] = 0;
    }
    else if(motor[vehicleid] == 0)
    {
    SetPlayerChatBubble(playerid,motoran,COLOR_PURPLE,20,3000);
    SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_ON,VEHICLE_PARAMS_ON,alarm,doors,bonnet,boot,objective);
    motor[vehicleid] = 1;
    licht[vehicleid] = 1;
    }
    }
    }
    }
    else if(Spieler[playerid][Fraktion] == 2)//Ballas
    {
    for(new i=0; i<sizeof(ballascars);i++)
    {
    if(vehicleid == ballascars[i])
    {
    if(motor[vehicleid] == 1)
    {
    SetPlayerChatBubble(playerid,motoraus,COLOR_PURPLE,20,3000);
    SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_OFF,VEHICLE_PARAMS_OFF,alarm,doors,bonnet,boot,objective);
    motor[vehicleid] = 0;
    licht[vehicleid] = 0;
    }
    else if(motor[vehicleid] == 0)
    {
    SetPlayerChatBubble(playerid,motoran,COLOR_PURPLE,20,3000);
    SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_ON,VEHICLE_PARAMS_ON,alarm,doors,bonnet,boot,objective);
    motor[vehicleid] = 1;
    licht[vehicleid] = 1;
    }
    }
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD2,"* Du besitzt keine Schlüssel für dieses Fahrzeug.");
    }
    return 1;
    }



    //Edit, sehe grade dass ich die selben zahlen benutzt habe. die frage hätte sich geklärt, tut mir leid für die umstände.
    noch eine idee zu dem motor?

    Hallo,


    ich habe vor ein Dynamisches Geldverwaltungs-System zu basteln.
    Man kann Ingame per Befehl alle Geldvergaben usw. individuell einstellen.


    Bislang war alles in Ordnung, habe ein Enum erstellt und ein Befehl mit "DIALOG_STYLE_TABLIST_HEADERS".


    Nun habe ich folgendes Problem:


    Wenn ich das erste Listitem ändern will, ändert er es auch, zeigt mir aber 2x SendClientMessage an.
    Wenn ich aber das zweite Listitem ändern will, ändert er nur das erste listitem, nicht das 2. so wie es eigentlich sein sollte. Wieder kommen 2 SendClientMessages an.


    Hier mal den Kompletten Code:



    #define dialog_geldverwaltung 1


    //enum
    enum Geldverwaltung
    {
    Jailcashcop,
    Jailcashrobber
    }
    new Geld[Geldverwaltung];


    //Der befehl
    ocmd:geldverwaltung(playerid,params[])
    {
    if(Spieler[playerid][Adminlevel] != 5)return SendClientMessage(playerid,COLOR_WHITE,"* Du bist kein Projektleiter!");
    new string[2000];
    format(string,sizeof(string),"Fall\tWert\nGeld für Cop, wenn Spielet tötet mit Wanteds (pro Wanted)\t$%d\nDas verlorene Geld für Robber mit Wanteds, wenn von Cop getötet (pro Wanted)\t$%d",Geld[Jailcashcop],Geld[Jailcashrobber]);
    ShowPlayerDialog(playerid,dialog_geldverwaltung,5,"Die Geldverwaltung auf dem Server",string,"Ändern","Abbrechen");
    return 1;
    }


    //Und zu guter letzt die dialoge
    if(dialogid==dialog_geldverwaltung)
    {
    if(response)
    {
    if(listitem==0)//Jailcash für Cops
    {
    ShowPlayerDialog(playerid,dialog_jailcashfuercops,DIALOG_STYLE_INPUT,"Gelvergabe-Ändern","In welchen Wert willst du diese Geldvergabe ändern?","Ändern","Abbrechen");
    }
    else if(listitem==1)//Jailcash- für Robber
    {
    ShowPlayerDialog(playerid,dialog_jailcashrobber,DIALOG_STYLE_INPUT,"Gelvergabe-Ändern","In welchen Wert willst du diese Geldvergabe ändern?","Ändern","Abbrechen");
    }
    }
    else { return 1; }
    }
    if(dialogid==dialog_jailcashfuercops)
    {
    if(response)
    {
    if(IsNumeric(inputtext))
    {
    Geld[Jailcashcop] = strval(inputtext);
    format(string,sizeof(string),"* Du hast diese Geldvergabe erfolgreich in $%d geändert.",strval(inputtext));
    SendClientMessage(playerid,COLOR_GREEN,string);
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD2,"** Dieser Wert darf keine Buchstaben enthalten!");
    }
    }
    else { return 1; }
    }
    if(dialogid==dialog_jailcashrobber)
    {
    if(response)
    {
    if(IsNumeric(inputtext))
    {
    Geld[Jailcashrobber] = strval(inputtext);
    format(string,sizeof(string),"* Du hast diese Geldvergabe erfolgreich in $%d geändert.",strval(inputtext));
    SendClientMessage(playerid,COLOR_GREEN,string);
    }
    else
    {
    SendClientMessage(playerid,COLOR_GRAD2,"** Dieser Wert darf keine Buchstaben enthalten!");
    }
    }
    else { return 1; }
    }


    Jemand eine Idee dazu?


    Zu meiner Frage:


    Ich habe ein sehr langen /motor Befehl und möchte ihn auf die Taste "N" setzen zb.


    Gibt es einen Code, der den befehl einfach ausführt?




    Danke im Voraus


    Mit freundlichen Grüßen
    Keslo

    Du musst ja auch 2x mysql_pquery ausführen. Hast ja auch schließlich 2 separate Querys zum aktualisieren. Vor dem 2 mysql_format (Zeile 21) solltest du mysql_pquery für das 1 SQL Kommando ausführen.

    Jetzt funktioniert alles! Danke dir, war schon am verzweifeln.




    Dich hält aber auch keiner davon ab, das alles in 1 Query zu schreiben.

    Ja ich musste 2 Querys machen, da bei nur einer Query die Line zu lang wäre. Habe dort schon überall probiert sie zu kürzen bzw. zu schneiden, leider erfolgslos, deswegen so.
    Danke dir :)

    Hallo,


    Titel sagt alles.


    Hab unter OnPlayerDisconnect diese Funktion:



    stock SaveUserStats(playerid)
    {
    if(!Spieler[playerid][Eingeloggt]) return 1;
    new query[500];
    mysql_format(handle, query, sizeof(query), "UPDATE users SET registriert = '%d', skin = '%d', money = '%d', adminlevel = '%d', fraktion = '%d', spawnchange = '%d', rang = '%d', wanteds = '%d', wantedgrund = '%s', muted = '%d', mutetime = '%d', level = '%d', spielzeit = '%d', email = '%s' WHERE id = '%d'",
    Spieler[playerid][Registriert],
    Spieler[playerid][Skin],
    Spieler[playerid][Money],
    Spieler[playerid][Adminlevel],
    Spieler[playerid][Fraktion],
    Spieler[playerid][Spawnchange],
    Spieler[playerid][Rang],
    Spieler[playerid][Wanteds],
    Spieler[playerid][WantedGrund],
    Spieler[playerid][Muted],
    Spieler[playerid][MuteTime],
    Spieler[playerid][Level],
    Spieler[playerid][Spielzeit],
    Spieler[playerid][Email],
    Spieler[playerid][p_id]);
    mysql_format(handle, query, sizeof(query), "UPDATE users SET jailtime = '%d', jailed = '%d', jailtype = '%d', lottozahl = '%d', klasse = '%d', morde = '%d', tode = '%d', verbrechen = '%d', kh = '%d', ap = '%d', premium = '%d', donator = '%d', contractgeld = '%d' WHERE id = '%d'",
    Spieler[playerid][JailTime],
    Spieler[playerid][Jailed],
    Spieler[playerid][JailType],
    Spieler[playerid][LottoZahl],
    Spieler[playerid][Klasse],
    Spieler[playerid][Morde],
    Spieler[playerid][Tode],
    Spieler[playerid][Verbrechen],
    Spieler[playerid][KH],
    Spieler[playerid][AP],
    Spieler[playerid][Premium],
    Spieler[playerid][Donator],
    Spieler[playerid][ContractGeld],
    Spieler[playerid][p_id]);
    mysql_pquery(handle, query);
    return 1;


    }


    Was Log rausgibt, wenn ich mich auslogge:



    [04:06:40] [DEBUG] CMySQLResult::~CMySQLResult() - deconstructor called
    [04:06:42] [DEBUG] mysql_format - connection: 1, len: 500, format: "UPDATE users SET registriert = '%d', skin = '%d', money = '%d', adminlevel = '%d', fraktion = '%d', spawnchange = '%d', rang = '..."
    [04:06:42] [DEBUG] mysql_format - connection: 1, len: 500, format: "UPDATE users SET jailtime = '%d', jailed = '%d', jailtype = '%d', lottozahl = '%d', klasse = '%d', morde = '%d', tode = '%d', ve..."
    [04:06:42] [DEBUG] mysql_pquery - connection: 1, query: "UPDATE users SET jailtime = '0', jailed = '0', jailtype = '0', l", callback: "(null)", format: "(null)"
    [04:06:42] [DEBUG] CMySQLQuery::Execute[] - starting query execution
    [04:06:42] [DEBUG] CMySQLQuery::Execute[] - query was successfully executed within 13.210 milliseconds
    [04:06:42] [DEBUG] CMySQLQuery::Execute[] - no callback specified, skipping result saving






    //Edit:


    Hier mal meine Tabelle:




    Gruß und Danke im Voraus :)

    Hat mir jetzt nicht richtig weitergeholfen, gibt es überhaupt eine Funktion, die "Player3DTextLabel" heißt?
    Hat wer anders noch Lösungsvorschläge?




    //Edit Push

    Musst die wohl mit [wiki]CreatePlayer3DTextLabel[/wiki] erstellen.

    So sieht das ganze System aus:


    Iwo im Script: new Text3D: SpielerWantedAnzeige[MAX_PLAYERS];


    Unter OnGameModeInit:
    for(new i; i < MAX_PLAYERS; i++){SpielerWantedAnzeige[i] = Create3DTextLabel(" ", COLOR_BLUE, 0.0, 0.0, 0.0, 20.0, 0, 0);}


    Onplayerconnect:
    Attach3DTextLabelToPlayer(SpielerWantedAnzeige[playerid], playerid, 0.0, 0.0, 0.7);


    Disconnect:
    Update3DTextLabelText(SpielerWantedAnzeige[playerid], COLOR_BLUE, " ");



    Und das letzte ist der Public der oben schon ist.


    //Edit: Sprich also, ich habe es schon erstellt, logischerweiße.

    Hallo zusammen,


    habe gerade ein System erstellt, dass, wenn ein Spieler Wanteds hat, es über dem Spieler mit einem 3D Label angezeigt wird.


    Nun habe ich folgendes Problem: Wie mach ich, dass das Label nur für Cops sichtbar ist?


    Hier mein Public & wie es NICHT mit den Cops funktioniert: http://pastebin.com/vbcvJhZz



    //EDIT
    Wie ich abfrage, ob ein Spieler Cop ist: Spieler[playerid][Fraktion] == 1

    Es ist sehr schwierig in der heutigen Szene noch etwas besonderes gemacht.
    Die Spieler haben viel zu Hohe Ansprüche denen man kaum noch nachkommen kann.
    Wenn du was gutes machen willst, arbeite auf jeden Fall an dynamischen Systemen und versuche viele Neuheiten einzubauen.
    Schau dir einfach andere Server an, und baue deine Systeme dann so um das du nichts klaust und das sie sich von den anderen Servern unterscheiden.

    Da hast du recht. Danke für den vernünftigen Tipp :)

    Hallo liebes Forum,
    dies ist mein erster Thread, ich hoffe er ist in der richtigen Abteilung.


    Wie der Titel schon sagt, suche ich gute Vorschläge für einen Server, wo auch Leute drauf spielen werden.
    Ich bin Scripter und suche ein neues "Hobby". Da mir Allgemein Scripten spaß macht und ich in der Branche Programmieren tätig bin, möchte ich gerne einen Server aufbauen, diesen Leiten und Verwalten.


    Lasst eure Fantasien bitte freien lauf!


    An was ich dachte, ist ein Reallife-Server. Leider gibt es davon schon unzählige und ich frage mich heute, ob es sich überhaupt Lohnt, so einen zu machen.



    Gruß
    Keslo ^^