Beiträge von KeksOfDeath

    Und falls du kein dcmd haben solltest, gehts auch so
    if(strcmp(cmdtext,"/afk",true,4)==0) {
    if(!strlen(cmdtext[5])) return SendClientMessage(playerid,farbe,"/afk Grund");
    new name[MAX_PLAYER_NAME], s[100];
    GetPlayerName(playerid,name,sizeof(name));
    format(s,sizeof(s),"%s ist afk, Grund: %s",name,cmdtext[5]);
    SendClientMessageToAll(farbe,s);
    TogglePlayerControllable(playerid,0);
    return 1;
    }

    Also.. "if" hießt: wenn...
    Du kannst z.B. machen:
    new hi=0;
    if(hi==0) { hi=1; }
    if(hi==1) { hi=2; }
    if(hi==3 { SendClientMessageToAll(farbe,"Hi"); }
    So, dies würde nun alles zutreffen, weil die bedingung ja erfüllt ist, bei "else if" wird es anders geregelt:
    new hi=0;
    if(hi==0) { hi=1; }//sollte dieses nicht zutreffen, dann passiert
    else if(hi==1) { hi=2; }//dies - und sollte dieses und das obere nicht zutreffen, dann passiert
    else if(hi==3 { SendClientMessageToAll(farbe,"Hi"); }//das
    verstanden?^^

    Nur mal so nebenbei... da steht: pdgate(playerid);
    woher soll denn jetzt das arme Script wissen, welchen Player du meinst?
    So ist es auch bei "new", wenn du "new gate;" machst und es nicht anders definierst, ist es automatisch 0, somit auch die playerid, wenn du dort ncihts anderes eingibst
    Somit geht das Tor nur für die ID 0 auf

    if(strcmp(cmdtext, "/ergebnis", true,9) == 0) {
    if(!strlen(cmdtext[10])) return SendClientMessage(playerid,COLOR_GREY,"/ergebnis dein Ergebnis");
    if(GetPlayerMoney(playerid) > 500) {
    new erg=strval(cmdtext[10]);
    if(erg==zahl1+zahl2) {
    SendClientMessage(playerid,COLOR_GREY,"Das Ergebnis ist richitg");
    GivePlayerMoney(playerid, - 500); }
    else { SendClientMessage(playeird,COLOR_GREY,"Das Ergebnis ist falsch"); }}
    else { SendClientMessage(playeird,COLOR_GREY,"Du hast nicht genug Geld"); }
    return 1;
    }

    Zu den Skins, bei OnPlayerSpawn
    if(GetPlayerSkin(playerid)==skinid vom gangskin) {
    SetPlayerSkin(playerid,normaler skin);
    Und beim login... ist das nur ein Autologin nach dem /register oder immer? Wenn es immer ist, dann wird die Spieler IP gespeichert, zusammen mit dem Namen... du müsstest dann nur verhindern, dass die IP gespeichert wird (was du hövhstwahrschienlich dann beim /login oder OnPlayerDisconnect finden wirst....
    PS: Mein 800. Post :)

    Das Problem mit dem Exe Crash ist erledigt, das mit dem Hotelmenu auch (fast)
    So, ich habe ein kleines Problem... undzwar:
    Wenn ich an einer bestimmten Stelle bin crasht die Exe (nicht nur bei mir, sondern bei jedem auf dem Server) danach kann man aber wieder connecten und die Exe crasht erst bei allen wieder, wenn jemand in die Nähe dieses Punktes kommt... so... an dem Punkt ist:
    1 Pickup (Wobei sich das Problem nicht löst, wenn man dies entfernt) und
    2 Autos (ein Sultan und ein Infernus)... Ich hab dann mal im Scirpt nach den 2 Fahrzeugen gesucht (mehrmals), aber keine an dieser Position gefunden... Man kann auch ziemlich dicht an die Autos rana, aber wenn man sich zu doll nähert (Entfernung kann man jetzt schlecht beschreiben) aber in PlayerToPoint wäre der Radius ca 20... wenn man dichter rann geht - crash
    Kennt zufällig wer ne Lösung?
    //EDIT3: Das Problem hat sich erledigt... hatte mich bei den pickups vertippt... die Pickupid war 12198... kein Wunder, dass die Exe crasht^^


    //EDIT: Mir fällt ein, dass ich noch 2 Probleme habe^^
    1) Ich hab halt Pickups gemacht (new pickup1; pickup1=CreatePickup(...);) so... nun hab ich halt im public dann drinne:
    if(pickupid==pickup1) {
    Halt nur wird nciht gerade häufig das richitge Pickup genommen^^ Meistens bekomme ich die Nachricht des ersten Pickups, auch wenn ich in das Pickup 60 reinlaufe, aber man bekommt nicht immer das erste... manchmal wird man auch in nen Burger Shot teleportiert, anstatt einen Text über Haäuser zu bekommen (wenn das Pickup respawnt und man es erneut aufsammelt, dann ist die Reaktion auch manchmal unterschiedlich, wie beim vorherigen)
    Warum?


    Zweites Problem:
    Da sind halt verschiedene Playerspawns... ich kann mal einen kleinen Code daraus zeigen:
    else if(pi[playerid][spawnt]==2) {
    if(pi[playerid][leiter]==2 || pi[playerid][mitglied]==2) {
    SetPlayerPos(playerid,-1335.6304,437.7962,7.1809); }
    else if(pi[playerid][leiter]==1 || pi[playerid][mitglied]==1) {
    SetPlayerInterior(playerid,10);
    SetPlayerPos(playerid,233.8980,112.1151,1003.2257); }
    else if(pi[playerid][leiter]==4 || pi[playerid][mitglied]==4) {
    SetPlayerPos(playerid,-2587.3027,969.2137,78.2734); }
    else if(pi[playerid][leiter]==3 || pi[playerid][mitglied]==3) {
    SetPlayerPos(playerid,-2515.068603,-598.960876,117.641265); }
    So... das pi[playerid][gespawnt] ist auf 0 und die Fraktion (pi[playerid][leiter]) auf 5, was man auch bei dem Befehl /status sehen konnte
    if(pi[playerid][leiter]==5 || pi[playerid][mitglied]==5) { format(s,sizeof(s),"Yakuza"); }
    Und da stand dann auch Yakuza, aber trotzdem an der Stelle der Fraktion 4 gespawnt


    //EDIT2: Mir fällt gerade ein... hab nochn Problem^^
    also, ich hab ein Menu erstellt, dieses sieht so aus:
    hotelmiete=CreateMenu("Hotelzimmer",2,200.0,100.0,150.0,150.0);
    if(pi[playerid][hathaus]==0) {
    if(hotelvermietet[1]==0) { AddMenuItem(hotelmiete,0,"Zimmer 1: frei 60$"); }
    else if(hotelvermietet[1]==1) { AddMenuItem(hotelmiete,0,"Zimmer 1: belegt"); }
    if(hotelvermietet[2]==0) { AddMenuItem(hotelmiete,0,"Zimmer 2: frei 60$"); }
    else if(hotelvermietet[2]==1) { AddMenuItem(hotelmiete,0,"Zimmer 2: belegt"); }
    if(hotelvermietet[3]==0) { AddMenuItem(hotelmiete,0,"Zimmer 4: frei 60$"); }
    else if(hotelvermietet[3]==1) { AddMenuItem(hotelmiete,0,"Zimmer 4: belegt"); }
    if(hotelvermietet[4]==0) { AddMenuItem(hotelmiete,0,"Zimmer 6: frei 60$"); }
    else if(hotelvermietet[4]==1) { AddMenuItem(hotelmiete,0,"Zimmer 6: belegt"); }
    if(hotelvermietet[5]==0) { AddMenuItem(hotelmiete,0,"Zimmer 7: frei 60$"); }
    else if(hotelvermietet[5]==1) { AddMenuItem(hotelmiete,0,"Zimmer 7: belegt"); }
    if(hotelvermietet[6]==0) { AddMenuItem(hotelmiete,0,"Zimmer 10: frei 60$"); }
    else if(hotelvermietet[6]==1) { AddMenuItem(hotelmiete,0,"Zimmer 10: belegt"); }
    if(hotelvermietet[7]==0) { AddMenuItem(hotelmiete,0,"Zimmer 11: frei 60$"); }
    else if(hotelvermietet[7]==1) { AddMenuItem(hotelmiete,0,"Zimmer 11: belegt"); }
    if(hotelvermietet[8]==0) { AddMenuItem(hotelmiete,0,"Zimmer 12: frei 60$"); }
    else if(hotelvermietet[8]==1) { AddMenuItem(hotelmiete,0,"Zimmer 12: belegt"); }
    AddMenuItem(hotelmiete,0,"Ende"); }
    ShowMenuForPlayer(hotelmiete,playerid);
    So, nur das sieht oft unterschiedlich aus...
    mal geht man ins Hotel und es sieht normal aus, also so, wie es sien soll... aber manchmal auch nicht, dann siehts so aus:

    Wie du es mit /befehlen machst weißt du? Gut.
    Du erstellst wie normal dein Tor (new ...) und setzt einen Timer, der in OnGameModeInit kommt
    SetTimer("joa",1000,1);
    Dann ganz nach unten:
    public joa() {
    for(new i=0; i<MAX_PLAYERS; i++) {
    if(IsPlayerConnected(i)) {
    if(PlayerToPoint(10.0,playerid,x,y,z)) {//bei x,y,z die Koordinaten vom Tor eintragen (die 10.0 ist der Radius)
    SetTimer("joazu",5000,0);
    MoveObject(...); }}}}//das Tor soll sich öffnen
    public joazu() {
    MoveObject(...); }//das Tor soll sich schließen
    Dann macsht du auch noch ganz nach oben (bei den #defines)
    "forward joa();" und "forward joazu();"

    Bei OnPlayerDeath gibt es ja sicherlich ne Wantedabfrage...
    if(GetPlayerWantedLevel(playerid)>=1) {
    Dann kommt er halt in den Knast...
    dann fügst du da noch eine Abfrage hinzu, dass dies nur geht, wenn der andere Spieler (die killerid) ein Cop ist

    Oo, was meinst du damit? Meinst du das, dass das da steht? Also das "Polizei"? Da musst du nur dies hier
    if(team==1) { format(js,sizeof(js),"Polizei"); skin=288; }
    Kopieren, aus der 1 ne 2 machen und das Wort Polizei umändern (sonst, du kannst auch /makeleader 2 5745646 eingeben)

    if(!strcmp(strget(cmdtext,0),"/makeleader")) {
    if(IsPlayerAdmin(playerid)) {
    if(strlen(strget(cmdtext,1))) {
    new typ=strval(strget(cmdtext,1));//der erste Parameter wird ausgelesen (die Spieler ID (in diesem Fall 1))
    if(IsPlayerConnected(typ)) {//es wird überprüft, ob der Spieler (in diesem Fall 1) connected ist
    if(strlen(strget(cmdtext,2))) {
    new team=strval(strget(cmdtext,2)), s[100], js[20], skin;//das zweite Parameter (die Jobid) wird ausgelsen (in diesem Fall 1 (Polizei))
    gTeam[typ]=team;//bei /makeleader 1 1 betritt die ID 1 das Team 1 (in diesem Fall Polizei)
    if(team==1) { format(js,sizeof(js),"Polizei"); skin=288; }
    format(s,sizeof(s),"Du wurdest zum Leiter der %s gemacht",js);
    SendClientMessage(typ,farbe,s);
    SetPlayerSkin(typ,skin); }
    else { SendClientMessage(playerid,farbe,"/makeleader Spielerid Jobid"); }}
    else { SendClientMessage(playerid,farbe,"Spieler ID nicht vergeben"); }}
    else { SendClientMessage(playerid,farbe,"/makeleader Spielerid Jobid"); }}
    else { SendClientMessage(playerid,farbe,"Du kannst das nicht"); }
    return 1;
    }
    Die 1 war jetzt nur Beispielhaft genommen... ich hoffe, dass ich dich nicht falsch verstanden habe xD

    Dort steht ja:
    if(!strcmp(strget(cmdtext,0),"/makeleader")) {
    if(IsPlayerAdmin(playerid)) {
    Bei dem IsPlayerAdmin(playerid) kannst du genausogut das gewünschte Team eintragen, von dem er Leader sein muss