Beiträge von Simon

    Ich verstehe dein wunsch nicht ^^


    erläuter das nochmal genauer und schick dein scriptausschnitt

    ganz einfach



    //hier den Objecten namen geben:
    new admin1;
    new admin2;
    //usw...


    OnPlayerConnect(..)
    {
    //hier abfragen ob der spieler Admin ist.
    {
    admin1 = CreateObject...
    admin2 = Create..
    //und deine ganzen objecte rein
    }
    return 1;
    }


    OnPlayerDisconnect(..)
    {
    //hier wieder abfragen ob er admin ist
    {
    DestroyObject(admin1);
    DestroyObject(admin2);
    //und so weiter...
    }
    return 1;
    }


    also:


    ich kann 100erte von farben definieren und sie dann mit SetPlayerColor verändern. bei mir besteht nur das problem, das es verschiedene Teams mit verschiedenen farben giebt. sobald er onduty geht soll er eine andere Farbe bekommen, so das jeder sieht: er ist onduty. wenn er wieder offduty geht, soll er seine alte wieder bekommen. ich könnte natürlich team abfragen und die farbe des teams geben, aber mein admin system ist ein filterscript und die teams stecken im gamemode.
    also muss ich die farbe abfragen mit irgenteiner variablen und dann ihm diese farbe geben. das klappt aber net mit GetPlayerColor.
    wenn doch dann helft mir bitte weiter oder sagt mir eine alternative


    mfg

    ich weiß ja net ob er die irgentwie noch im DialogResponse benutzt.


    aufjedenfall ist das quatsch für 20 VERSCHIEDENE dialoge die SELBE id zu nehmen. das wäre ja so als würde ich zu blond sowohl zu hellen als auch zu dunklen haaren sagen.

    ja das problem: mein adminsystem ist ein filterscript. meine teams sint im gamemode. ich kann also nicht die teams abfragen. sonst wäre das kein problem. ich muss die farbe abfragen wenn er onduty geht und wenn er offduty geht bekommt er die wieder. vllt giebt es da auch noch andere möglichkeiten.

    öhh ka eigentlich schon. oben im script:


    #define dialogname 0
    #define dialogname 1
    #define dialogname 2
    ...
    .
    .
    usw.
    s
    w
    .


    dann machste bei deinen ganzen dialogen die id´s.


    also:



    #define DIALOG_HELP 0
    #define DIALOG_JUMP 1
    #define DIALOG_TELEPORT 2
    #define DIALOG_DMS 3
    //und so weiter


    if(strcmp(cmdtext, "/help",true) == 0)
    {
    ShowPlayerDialog(playerid,0,DIALOG_STYLE_MSGBOX,"Help/Befehle","/schutzweste,/heal,/leave,/register,/login,/househelp /n /weapons,/carhelp,/adminhelp,/modinfo,/serverinfo,/adminlist /n /carhelp,/adminhelp,/support,/stats,/report,/credits,/animhelp","zurück","zurück");
    GameTextForPlayer(playerid,"~r~/jumps ~w~/teleports ~y~/dms ~g~",7000,5);
    return 1;
    }
    if(strcmp(cmdtext, "/jumps",true) == 0)
    {
    ShowPlayerDialog(playerid,1,DIALOG_STYLE_MSGBOX,"Jumps","/tramp /bounce","zurück","zurück");
    return 1;
    }
    if(strcmp(cmdtext, "/teleports",true) == 0)
    {
    ShowPlayerDialog(playerid,2,DIALOG_STYLE_MSGBOX,"Teleports","/tuning 1-3, /drift 1-3, /lvcity, /lva, /da, /drag, /gokart","zurück","zurück");
    return 1;
    }
    if(strcmp(cmdtext, "/dms",true) == 0)
    {
    ShowPlayerDialog(playerid,3,DIALOG_STYLE_MSGBOX,"Deathmatch Zonen","/dm 1-6, /minigunmadness","zurück","zurück");
    return 1;
    }

    das problem ist, das ich verschiedene teams habe und diese haben verschiedene farben. das heißt ich muss vorher die farbe abfragen.


    das problem ist das es nicht mit GetPlayerColor klappt, zumindest habe ich es nicht hinbekommen.

    ja und? er möchte den warning bestimmt weghaben. es ist zwar kein error, aber trotzdem stimmt da was nicht. und ein warning kann alles kaputt machen^^

    Guten Tag
    Ich habe ein dcmd onduty und offduty erstellt.ich möchte, das die farbe wenn er onduty geht verändert wird. das kann ich auch SetPlayerColor(playerid,FARBE);
    aber wenn er offduty geht, soll er seine alte farbe wieder bekommen, also die er hatte bevor er Onduty ist. Ich habs schon paarmal versucht doc nicht hinbkommen.


    hier mein script:


    dcmd_onduty(playerid,params[])
    {
    #pragma unused params
    new pname[MAX_PLAYER_NAME];
    new string[50];
    if(SpielerInfo[playerid][alvl]<1)
    {
    return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin Level 1!");
    }
    else
    {
    GetPlayerName(playerid,pname,sizeof(pname));
    format(string,sizeof(string),"Admin %s ist nun OnDuty!",pname);
    SendClientMessageToAll(0xD40000FF,string);
    godtimer[playerid] = SetTimerEx("godmode", 250, true, "i",playerid);
    SendClientMessage(playerid,COLOR_RED,"Du bist nun OnDuty");
    SetPlayerColor(playerid,0xC10000FF);//farbe wird geändert


    }
    return 1;
    }


    dcmd_offduty(playerid, params[])
    {
    #pragma unused params
    new pname[MAX_PLAYER_NAME];
    new string[50];
    if(SpielerInfo[playerid][alvl]<1)
    {
    return SendClientMessage(playerid,COLOR_RED,"Du bist kein Admin Level 1!");
    }
    else
    {
    GetPlayerName(playerid,pname,sizeof(pname));
    format(string,sizeof(string),"Admin %s ist wieder OffDuty!",pname);
    SendClientMessageToAll(0xD40000FF,string);
    KillTimer(godtimer[playerid]);
    SetPlayerHealth(playerid,100.0);
    SetPlayerArmour(playerid,0.0);
    SendClientMessage(playerid,COLOR_RED,"Du bist nun OffDuty!");
    //alte farbe wiederbekommen
    }
    return 1;
    }

    wenn du mir etwas zeit läst kann ich es versuchen :p


    ist nicht schwer... du brauchst nur die genauen koordinaten und ein tele cmd. dann fragste mit ner variablen ab ob er da drinne ist...
    und grenz die gültigkeitszone halt ein.


    also ich setzte mich nachher mal dranne =)


    sollen noch irgentwelche extras mit rein? bestimmte waffen? bestimmte skins? hp? weste? geld`?...


    //edit:


    ich brauche folgende infos:


    wo soll der spieler spawnen wenn er /exit dm macht. verscheinlich brauche ich dazu dein gamemode um es einzubauen.
    sollen iregntwelche extras rein? wie oben schon genannt?
    soll ich ein zaun um die zone mappen?
    sonstiges?


    //edit2:


    mit /dm1 kommt man zum bsn. man kann sich in einem bestimmten umkreis bewegen(kann ich beliebig verändern). alle spieler die nicht in der /dm1 arena sind, können sich überall bewegen. ich habe es nun so gemacht, die spieler die am bsn sind und die spieler die in der dmarena bsn sind, können sich nicht sehen(kann ich auch ändern).
    mit /dmexit kommt man wieder raus wenn man in keiner arena ist kommt die meldung das er inkeiner arena ist.


    es ist noch alles ungetestet. ich kann gerne noch extras einbauen. ich werde es nun testen und benötige verscheinlich dein script um es einzubauen, da mit es auch 100%ig klappt. denn wenn man /exitdm eingiebt muss man auch irgentwo spawnen.. und dazu brauche ich dein script.
    keine sorge ^^ ich werde damit nichts anstellen.


    jeder bekommt die nachricht "Name (id) ist in die Arena DM1 gegangen"


    ich kann ein Zaun mit einem Tor um die Arena machen. Man kann das tor nicht öffnen wenn man in der Arena ist bzw. nur öffnen wenn man Nicht in der Arena ist.
    du musst mir sagen wie du es lieber haben willst. ich kanns dir auch erstmal geben, damit du siehst wie das jetzt aussieht.

    ja putplayerinvehicle das verstehe ich.


    aber wie frage ich ab ob der in der nähe des bestimmten fahrzeugs ist. und das er g drücken muss.

    Guten Tag


    ich habe auf dem Ls Airport ein Andromada stehen. man kann aber net wie in alle anderen fahrzeuge mit g als beifahrer einsteigen.
    könnte mir einer sagen wir man das macht? also wenn er g drückt und vor Andromada steht, soll er da rein geportet werden.

    ich hab alles was du brauchst.


    hier kannst beliebig ändern:


    new Torb;//lspd tor


    forward TorZuc();


    public OnGameModeInit()
    {
    Torb = CreateObject(980, 1588.3731689453, -1637.9205322266, 15.202335357666, 0, 0, 0); //lspd tor
    return 1;
    }


    public OnPlayerCommandText(playerid, cmdtext[])
    {
    if (strcmp(cmdtext, "/auf", true)==0)
    {
    if(IsPlayerInRangeOfPoint(playerid,35.0,1588.3731689453, -1637.9205322266, 15.202335357666))
    {
    MoveObject(Torb,1588.3731689453, -1637.9205322266, 9.0614814758301,5);
    SendClientMessage(playerid,0x00FFFFFF," Das Tor schließt sich automatisch!");
    SetTimer("TorZuc",7000,5);
    }
    }
    if (strcmp(cmdtext, "/zu", true)==0)
    {
    if(IsPlayerInRangeOfPoint(playerid,35.0,1588.3731689453, -1637.9205322266, 15.202335357666))
    {
    MoveObject(Torb,1588.3731689453, -1637.9205322266, 15.202335357666,5);
    SendClientMessage(playerid,0x00FFFFFF," Das Tor wird geschlossen!");
    }
    }
    return 1;
    }


    public TorZuc()
    {
    MoveObject(Torb,1588.3731689453, -1637.9205322266, 15.202335357666,5);
    return 1;
    }

    //wenn du es mit hupen auch öffnen möchtest:


    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(newkeys == 2)
    {
    if(IsPlayerInRangeOfPoint(playerid,35.0,1588.3731689453, -1637.9205322266, 15.202335357666))
    {
    MoveObject(Torb,1588.3731689453, -1637.9205322266, 9.0614814758301,5);
    SendClientMessage(playerid,0x00FFFFFF," Das Tor schließt sich automatisch!");
    SetTimer("TorZuc",7000,5);

    }
    }
    return 1;
    }


    das script muss du nicht benutzen aber wenn du faul bist ^^ kannst ja nach deinen vorstellung editieren.. ich hoffe das ist das tor was du meinst.

    if(strcmp(cmd, "/ticket", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(gTeam[playerid] != 2) // ich weiß net ob != geht.
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist kein Polizist!");
    return 1;
    }
    if(OnDuty[playerid] != 1 && PlayerInfo[playerid][pMember] == 1) // hier hast du auch != 1.. wenn er nicht on duty ist. mach doch einfach = 0.
    {
    SendClientMessage(playerid, COLOR_GREY, "Du bist nicht im Dienst!");
    return 1;
    }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Verwendung: /ticket [spielerid/teildesnamens] [preis] [grund]");
    return 1;
    }
    giveplayerid = ReturnUser(tmp);
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Verwendung: /ticket [spielerid/teildesnamens] [preis] [grund]");
    return 1;
    }
    moneys = strval(tmp);
    if(moneys < 1 || moneys > 99999) { SendClientMessage(playerid, COLOR_GREY, "Das Ticketgeld kann nicht unter 1$ und über 99999$ sein!"); return 1; }
    if(IsPlayerConnected(giveplayerid))
    {
    if(giveplayerid != INVALID_PLAYER_ID)
    {
    if (ProxDetectorS(8.0, playerid, giveplayerid))
    {
    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
    GetPlayerName(playerid, sendername, sizeof(sendername));
    new length = strlen(cmdtext);
    while ((idx < length) && (cmdtext[idx] <= ' '))
    {
    idx++;
    }
    new offset = idx;
    new result[64];
    while ((idx < length) && ((idx - offset) < (sizeof(result) - 1)))
    {
    result[idx - offset] = cmdtext[idx];
    idx++;
    }
    result[idx - offset] = EOS;
    if(!strlen(result))
    {
    SendClientMessage(playerid, COLOR_GRAD2, "Verwendung: /ticket [spielerid/teildesnamens] [preis] [grund]");
    return 1;
    }
    format(string, sizeof(string), "* Du hast %s ein Ticket für %d$ gegeben, Grund: %s", giveplayer, moneys, (result));
    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
    format(string, sizeof(string), "* Officer %s hat dir ein Ticket für %d$ gegeben, Grund: %s", sendername, moneys, (result));
    SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
    SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, "* Tippe /accept ticket, um anzunehmen.");
    TicketOffer[giveplayerid] = playerid;
    TicketMoney[giveplayerid] = moneys;
    return 1;
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Dieser Spieler ist zu weit entfernt!");
    return 1;
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_GREY, "Diesen Spieler gibt es nicht!");
    return 1;
    }
    }
    return 1;
    }