Armed-Assault.de Twitter
Antwort
 
Themen-Optionen Ansicht
Alt 28.11.2014, 17:21   #1 (permalink)
50 Beiträge
 
Benutzerbild von Q_W_E_R
 
Registriert seit: 29.09.2012
Beiträge: 56
Icon5 Lokalen "setRank"-Befehl an ander Maschienen Broadcasten?

Hallo Leute,

hab mir hier ein Script mit Rängen durch PlayerIDs zusammengebastellt
doch mal wieder entäuscht mich ARMA :/ der Befehl setRank wird nur Lokal auf dem jeweiligen Rechner ausgeführt... findet jemand eine möglichkeit einer art umschreibung? hier mal das was ich selbst hinbekommen habe ^^:
Code:
////////////////////////////////////////////////////////////
//nul = player execVM "QWR_Ranksystem\QWR_Ranksystem.sqf";
////////////////////////////////////////////////////////////
hint format ["Starte QWR_Ranksystem.sqf"];
sleep 2;
waitUntil {!isNull player};
///////
//VAR//
///////
_uid = getPlayerUID player;
_ranks = ["PRIVATE","CORPORAL","SERGEANT","LIEUTENANT","CAPTAIN","MAJOR","COLONEL"]; // 0 , 1 , 2 , 3 , 4 , 5 , 6;
_multiArray = [["111",1,"QWER"],["222",4,"BOUNTY"],["333",2,"BREMSE"],["444",2,"SPEARS"]]; 

{
    if (_uid == _x select 0) then {

        _GetRankPlayer = (_x select 1);
        _PlayerRank = _ranks select _GetRankPlayer;
        Player setRank _PlayerRank;
        hint format ["Dein Rang ist %1", rank player];
        
    };
        
} forEach _multiArray;
Hab echt kein Plan wie ich jetzt den Rang an alle PCs sende

Danke für jede Hilfe
Q_W_E_R ist offline   Mit Zitat antworten
Alt 28.11.2014, 21:42   #2 (permalink)
500 Beiträge1000 Beiträge
 
Benutzerbild von Drunken Officer
 
Registriert seit: 15.05.2011
Beiträge: 1.107
Standard

Aus der Hüfte:
PVRANK = rank (_this select 0);
publicVaribale "PVRANK";
__________________
Bewegende Momente bei ArmA 3
Drunken Officer ist offline   Mit Zitat antworten
Alt 29.11.2014, 18:33   #3 (permalink)
50 Beiträge
 
Benutzerbild von Q_W_E_R
 
Registriert seit: 29.09.2012
Beiträge: 56
Icon3

Zitat von Drunken Officer Beitrag anzeigen

Aus der Hüfte:
PVRANK = rank (_this select 0);
publicVaribale "PVRANK";

Hat leider nicht ganz so leicht funktioniert ...
Hab aber (hoffe ich zumindest) eine Lösung gefunden wenn ich Zeit und ein "Opfer" gefunden habe werte ich es Testen und nochmal bescheidt geben:

Code:
_uid = getPlayerUID player;
_hatRang = 0;

_ranks = ["PRIVATE","CORPORAL","SERGEANT","LIEUTENANT","CAPTAIN","MAJOR","COLONEL"]; 
_multiArray = [["123",1,"QWER"],["456",4,"BOUNTY"],["789",2,"SPACKENBREMSE"]];

{
    if (_uid == _x select 0) then {

        _GetRankPlayer = (_x select 1);
        _PlayerRank = _ranks select _GetRankPlayer;
        
        if (isNil "QWR_PlayerRank") then {

                QWR_PlayerRank = [[vehicle player,_PlayerRank]];
                publicVariable "QWR_PlayerRank";
                
            } else {

                QWR_PlayerRank = QWR_PlayerRank + [[vehicle player,_PlayerRank]];
                publicVariable "QWR_PlayerRank";

            };
            
        _hatRang = 1;
            
        {
            (_x select 0) setRank (_x select 1);
        } forEach QWR_PlayerRank;

        hint format ["Dein Rang ist %1", rank player];
    
    };
} forEach _multiArray;

if (_hatRang == 0) then {

    {
        (_x select 0) setRank (_x select 1);
    } forEach QWR_PlayerRank;
    
    hint format ["Dein Rang und deine Player-ID ist noch nicht eingetragen! Deine Player-ID würde in deine Zwischenablage kopiert!"];
    copyToClipboard format ["%1", _uid];
    cutText ["Dein Rang und deine Player-ID ist noch nicht eingetragen! Deine Player-ID würde in deine Zwischenablage kopiert!","BLACK",5];
    sleep 5;
    cutText ["","BLACK IN",0];
        
};
Danke für deine Hilfe
Q_W_E_R ist offline   Mit Zitat antworten
Alt 30.11.2014, 14:48   #4 (permalink)
50 Beiträge
 
Benutzerbild von Q_W_E_R
 
Registriert seit: 29.09.2012
Beiträge: 56
Standard

So hab jetzt ziemlich lange rumprobiert ... und hab fest gestellt was mein Problem ist :

Alle Spielbaren Einheiten haben den Rang COLONEL

P1 connected :: Lässt das Script durchlaufen erstellt den Array: QWR_PlayerRank [[p1, "PRIVATE"]] und führt das aus: p1 setRank "PRIVATE";

so P2 connected :: Lässt das Script durchlaufen erstellt den Array: QWR_PlayerRank [[p1, "PRIVATE"],[p2, "LIEUTNANT"]] und führt das aus: p1 setRank "PRIVATE"; p2 setRank "LIEUTNANT";

jetzt hab ich das Prbolem für P1 sieht das so aus:

rank P1 | "PRIVATE"
rank P2 | "COLONEL"

für P2 sieht es so aus:

rank P1 | "PRIVATE"
rank P2 | "LIEUTNANT"

Ich finde es irgendwie seltsam das man auf die idee kommt den Befehl "SetRank" nur Lokal zu machen aber das ist halt Bohemia...

ich brauch jetzt eine Art umschreibung die sagt das Wenn ein Spieler den Array ändert/Connected das alle anderen den Befehl SetRank mit dem von ihm aktualisierten Array ausführen kein Plan wie ich in einem Lokalem Script sage das alle Spieler noch einmal ein Script ausführen ...

Vielleicht hat noch jemand ne idee mal schaun viell. fällt mir selber noch was ein
Q_W_E_R ist offline   Mit Zitat antworten
Alt 02.12.2014, 09:40   #5 (permalink)
50 Beiträge100 Beiträge250 Beiträge
 
Benutzerbild von Tajin
 
Registriert seit: 17.01.2008
Beiträge: 267
Standard

Zitat von Q_W_E_R Beitrag anzeigen

mal wieder entäuscht mich ARMA

Nimms mir nicht übel aber an der Enttäuschung ist nicht ArmA schuld, sondern deine fehlende Scripterfahrung.



Erstelle eine Funktion:
PHP-Code:
fnc_setRank = { (this select 0setRank (this select 1); }; 

Rufe die Funktion mit BIS_fnc_MP auf.:
PHP-Code:
[ [someGuy,"COLONEL"], "fnc_setRank"truetruecall BIS_fnc_MP

Das gleiche wäre auch direkt mit dem setRank befehl möglich, ohne eine Funktion zu erstellen. Ist aber sicherer so.



Schau dir bis_fnc_mp mal genauer an, für multiplayerscripting ist das fast unerlässlich.




Ansonsten, was dein Script oben angeht: Anstelle objektreferenzen zusammen mit Rängen in einem Array abzulegen, könntest du einfach Objektvariablen für den Rang verwenden. (setVariable)

Oder aber die Ränge nicht abhängig vom Objekt, sondern nur von der SpielerID abspeichern.



Das lässt sich jedenfalls auf mehrere Wege lösen.
__________________

Geändert von Tajin (02.12.2014 um 09:48 Uhr).
Tajin ist offline   Mit Zitat antworten
Alt 03.12.2014, 19:29   #6 (permalink)
50 Beiträge
 
Benutzerbild von Q_W_E_R
 
Registriert seit: 29.09.2012
Beiträge: 56
Standard

Hätte ich den Beitrag mal vohere gelesen habs jetzt so umgeschrieben das es auch ohne mp_fnc funktionert aber danke für die funktion wird demnächst einiges erleichtern wenn ich weider mal mp scripte...

Danke
Q_W_E_R ist offline   Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus


Kontakt - HX3.de - Archiv - Nach oben

Angetrieben durch vBulletin, Entwicklung von Philipp Dörner & Tobias



SEO by vBSEO 3.2.0 ©2008, Crawlability, Inc.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116