Beiträge von TyP_s

    Hallo,
    Ich habe eine Frage: Und zwar wenn ich auf Weiter klicke,
    wechselt er nur einmal den Skin, dann kann ich so oft auf Weiter
    klicken wie ich will und es kommt immer wieder der gleiche Skin.
    Das selbe gilt auch für den Zurück Textdraw. Das heißt ich kann nur zwischen
    2 Skins auswählen, auf den 3. komme ich gar nicht und ich kann wie gesagt
    nur einmal auf Weiter klicken und einmal auf Zurück, dann bleiben die Skins gleich.


    Der Code

    new Terrorskins[3][1] =
    {
    {220},
    {221},
    {222}
    };
    new LSPDskins[3][1] =
    {
    {265},
    {266},
    {267}
    };


    new Text:SkinauswahlWeiter;
    new Text:SkinauswahlZurueck;
    new Text:SkinauswahlFertig;


    public OnPlayerClickTextDraw(playerid, Text:clickedid)
    {
    //Skinauswahl
    if(clickedid == SkinauswahlWeiter)
    {
    // Zivilist
    if(Spieler[playerid][g_TEAM] == 900)
    {
    if(GetPlayerSkin(playerid) == 0){ SetPlayerSkin(playerid,0);}
    }
    // Ls Polizei
    if(Spieler[playerid][g_TEAM] == 901)
    {
    if(GetPlayerSkin(playerid) == LSPDskins[0][0]){ SetPlayerSkin(playerid,LSPDskins[1][0]);}
    if(GetPlayerSkin(playerid) == LSPDskins[1][0]){ SetPlayerSkin(playerid,LSPDskins[2][0]);}
    if(GetPlayerSkin(playerid) == LSPDskins[2][0]){ SetPlayerSkin(playerid,LSPDskins[0][0]);}
    }
    // Terroristen
    if(Spieler[playerid][g_TEAM] == 902)
    {
    if(GetPlayerSkin(playerid) == Terrorskins[0][0]){ SetPlayerSkin(playerid,Terrorskins[1][0]);}
    if(GetPlayerSkin(playerid) == Terrorskins[1][0]){ SetPlayerSkin(playerid,Terrorskins[2][0]);}
    if(GetPlayerSkin(playerid) == Terrorskins[2][0]){ SetPlayerSkin(playerid,Terrorskins[0][0]);}
    }
    }
    if(clickedid == SkinauswahlZurueck)
    {
    // Zivilist
    if(Spieler[playerid][g_TEAM] == 900)
    {
    if(GetPlayerSkin(playerid) == 0){ SetPlayerSkin(playerid,0);}
    }
    // Ls Polizei
    if(Spieler[playerid][g_TEAM] == 901)
    {
    if(GetPlayerSkin(playerid) == LSPDskins[2][0]){ SetPlayerSkin(playerid,LSPDskins[1][0]);}
    if(GetPlayerSkin(playerid) == LSPDskins[1][0]){ SetPlayerSkin(playerid,LSPDskins[0][0]);}
    if(GetPlayerSkin(playerid) == LSPDskins[0][0]){ SetPlayerSkin(playerid,LSPDskins[2][0]);}
    }
    // Terroristen
    if(Spieler[playerid][g_TEAM] == 902)
    {
    if(GetPlayerSkin(playerid) == Terrorskins[2][0]){ SetPlayerSkin(playerid,Terrorskins[1][0]);}
    if(GetPlayerSkin(playerid) == Terrorskins[1][0]){ SetPlayerSkin(playerid,Terrorskins[0][0]);}
    if(GetPlayerSkin(playerid) == Terrorskins[0][0]){ SetPlayerSkin(playerid,Terrorskins[2][0]);}
    }
    }
    if(clickedid == SkinauswahlFertig)
    {
    if(Spieler[playerid][inFraktionSkinauswahl] == 1)
    {
    Spieler[playerid][inFraktionSkinauswahl] = 0;
    TogglePlayerControllable(playerid,1);
    TextDrawHideForPlayer(playerid,SkinauswahlWeiter);
    TextDrawHideForPlayer(playerid,SkinauswahlZurueck);
    TextDrawHideForPlayer(playerid,SkinauswahlFertig);
    SpawnPlayerToBase(playerid);
    CancelSelectTextDraw(playerid);
    }
    else
    {
    TogglePlayerControllable(playerid,1);
    TextDrawHideForPlayer(playerid,SkinauswahlWeiter);
    TextDrawHideForPlayer(playerid,SkinauswahlZurueck);
    TextDrawHideForPlayer(playerid,SkinauswahlFertig);
    CancelSelectTextDraw(playerid);
    SetCameraBehindPlayer(playerid);
    }
    }

    return 1;
    }


    //////////////Skinauswahl
    stock Skinauswahl(playerid)
    {
    // Zivilist
    if(Spieler[playerid][g_TEAM] == 900) SetPlayerSkin(playerid,0);
    // Ls Polizei
    if(Spieler[playerid][g_TEAM] == 901) SetPlayerSkin(playerid,LSPDskins[0][0]);
    // Terroristen
    if(Spieler[playerid][g_TEAM] == 902) SetPlayerSkin(playerid,Terrorskins[0][0]);

    SetPlayerPos(playerid,209.7163,-33.8716,1001.9297);
    SetPlayerFacingAngle(playerid,144.5372);
    SetPlayerInterior(playerid,1);
    SetPlayerVirtualWorld(playerid,playerid);
    SetPlayerCameraPos(playerid,206.3390045166,-37.773719787598,1003.9444580078);
    SetPlayerCameraLookAt(playerid,209.7163,-33.8716,1001.9297);
    TogglePlayerControllable(playerid,0);

    TextDrawShowForPlayer(playerid,SkinauswahlWeiter);
    TextDrawShowForPlayer(playerid,SkinauswahlZurueck);
    TextDrawShowForPlayer(playerid,SkinauswahlFertig);
    SelectTextDraw(playerid,0x505050FF);
    return 1;
    }

    Hallo,
    Ich habe ein Problem mit meinem Haussystem.
    Und zwar will er einfach das Pickup und das 3DTextLabel
    nicht erstellen. Die Nachricht "Haus ID %d erfolgreich geladen"
    wenn ich den Server starte bringt er mir aber. Und die
    dini Datein existieren auch. Warnings & Errors bekomme
    ich keine.




    OnGameModeInit()

    for(new i = 0; i <= MAX_HAUS; i++)
    {
    HausLaden(i);
    }
    stock HausLaden(id)
    {
    new HausDatei[128];
    new Besitzer[32];
    new string[256];
    format(HausDatei,sizeof(HausDatei),"/haus/%d.ini",id);

    if(dini_Exists(HausDatei))
    {
    format(Besitzer,sizeof(Besitzer),"%s",dini_Get(HausDatei,"besitzer"));


    Hausinfo[id][besitzer] = Besitzer;
    Hausinfo[id][pickuppos_x] = dini_Float(HausDatei,"pickuppos_x");
    Hausinfo[id][pickuppos_y] = dini_Float(HausDatei,"pickuppos_y");
    Hausinfo[id][pickuppos_z] = dini_Float(HausDatei,"pickuppos_z");
    Hausinfo[id][preis] = dini_Int(HausDatei,"preis");
    Hausinfo[id][plevel] = dini_Int(HausDatei,"plevel");
    Hausinfo[id][inuse] = dini_Int(HausDatei,"inuse");


    HausPickup[id] = CreatePickup(1272,1,Hausinfo[id][pickuppos_x],Hausinfo[id][pickuppos_y],Hausinfo[id][pickuppos_z],0);


    if(Hausinfo[id][inuse] == 0)
    {
    format(string,sizeof(string),"Dieses Haus steht zum Verkauf!\nPreis: %d",Hausinfo[id][preis]);
    Hausinfo[id][lbl] = Create3DTextLabel(string,COLOR_HAUS,Hausinfo[id][pickuppos_x],Hausinfo[id][pickuppos_y],Hausinfo[id][pickuppos_z] + 3.0, 5.0,0 ,0);
    }
    if(Hausinfo[id][inuse] >= 1)
    {
    format(string,sizeof(string),"Besitzer: %s",Besitzer);
    Hausinfo[id][lbl] = Create3DTextLabel(string,COLOR_HAUS,Hausinfo[id][pickuppos_x],Hausinfo[id][pickuppos_y],Hausinfo[id][pickuppos_z] + 3, 5.0,0 ,0);
    }
    printf("Haus ID %d erfolgreich geladen",id);
    }
    else
    {
    }
    }




    --------------------- HAT SICH ERLEDIGT ------------------
    - Fehler entdeckt

    Hallo,
    Ich habe (wieder einmal -.-) ein Problem. Und zwar soll,
    wenn man /wa ..... eingibt (script, siehe unten) die Meldung
    "Hauptzentrale: %s hat %s %d Wanteds gegeben, Grund: %s**
    für alle Cops kommen. Nehmen wir an das erste %s wird mit "SpielerXX"
    belegt und das zweite %s mit "SpielerYY". Wenn ich es teste:


    Anstatt -> "Hauptzentrale: SpielerXX hat SpielerYY %d Wanteds gegeben, Grund: %s**"


    steht das -> "Hauptzentrale: SpielerXX hat SpielerXX %d Wanteds gegeben, Grund: %s**"


    ocmd:wa(playerid,params[])
    {
    new pID,Anzahl;
    new name[MAX_PLAYER_NAME],namePID[MAX_PLAYER_NAME];
    new string[128], string2[128];
    new Grund[128];

    GetPlayerName(playerid,name,sizeof(name));
    GetPlayerName(pID,namePID,sizeof(namePID));


    if(Spieler[playerid][g_TEAM] == 901)
    {
    if(sscanf(params,"uds",pID,Anzahl,Grund)) return SendClientMessage(playerid,COLOR_GREY,"Benutzung: /wa [PlayerID] [Anzahl] [Grund]");
    {
    if(!IsPlayerConnected(pID)) return SendClientMessage(playerid,COLOR_GREY,"Dieser Spieler ist nicht Online!");
    {
    if(Anzahl < 1 || Anzahl > 6) return SendClientMessage(playerid,COLOR_GREY,"Du kannst nur Wanteds zwischen 1 und 6 vergeben!");
    {
    if(GetPlayerWantedLevel(pID) >= 6) return SendClientMessage(playerid,COLOR_RED,"Dieser Spieler hat bereits 6 Wanteds!");
    {
    format(string,sizeof(string),"**Hauptzentrale: %s hat %s %d Wanteds gegeben, Grund: %s**",name,namePID,Anzahl,Grund); // <- Hier das Problem
    format(string2,sizeof(string2),"Verbrechen: Du hast von %s %d Wanteds bekommen, Grund: %s",name,Anzahl,Grund);
    SetPlayerWantedLevel(pID,GetPlayerWantedLevel(pID)+Anzahl);
    Spieler[pID][wantedgrund] = Grund;
    Spieler[pID][wantedreporter] = name[playerid];
    SendClientMessage(pID,COLOR_VERBRECHEN,string2);


    for(new i=0;i <= GetMaxPlayers(); ++i)
    {
    if(Spieler[i][g_TEAM] == 901)
    {
    SendClientMessage(i,COLOR_POLIZEIFUNK,string);
    return 1;
    }
    }
    }
    }
    }
    }
    return 1;
    }
    return 1;
    }


    Ich bitte um Hilfe!
    Danke,
    TyP_s

    Ok, hat sich erledigt, Lösung:
    --> Lag doch am Ocmd!!
    Neue include von omcd runtergeladen, ging!
    Danke trotzdem an alle.


    MFG
    TyP_s

    @ Andy Ja aber warum sagt der mir das ? :D
    Ich habs ja normal nirgendwo definiert,
    das einziges wos vor kommt ist:
    ocmd:getcar(playerid,params[])

    ne die Variabel "getcar" ansich, habe ich nirgnes im script mit new definiert..
    Der OCMD befehl steht bereits dazwischen :D
    Kann es vlt sein das ich ne alte Verison oder so von Ocmd habe ?

    Hallo,
    wenn ich einen Ocmd befehl erstellen möchte und diesen i-wo
    im Script rein packe (in meinem Fall über OnPlayerCommandText(...))
    bekomm ich zum einen immer den Warning:


    warning 203: symbol is never used: "getcar"


    und wenn ich inGame den Befehl eingebe (hier /getcar ...)
    kommt die Meldung:
    SERVER: UNKNOWN COMMAND!


    Hier die Zeilen:


    ocmd:getcar(playerid,params[])
    {
    new carID,colorID1,colorID2;
    new Float:carX,Float:carY,Float:carZ,Float:carA;


    if(sscanf(params,"u",carID,colorID1,colorID2)) return SendClientMessage(playerid,COLOR_GREY,"Benutzung: /getcar [carID] [colorID 1] [colorID 2]");
    {
    GetPlayerPos(playerid,carX,carY,carZ);
    GetPlayerFacingAngle(playerid,carA);


    CreateVehicle(carID,carX,carY+10,carZ,carA,colorID1,colorID2,0);
    SendClientMessage(playerid,COLOR_GREY,"Du hast dir erfolgreich ein Admin Car gespawnt!");
    }


    return 1;
    }
    PS: Ist nur mal zum testen, da ich das dass erst mal mache!


    Vielen Dank!
    TyP_s

    Hallo,
    Ich habe ein Problem mit meinem Login/Registration system.
    Und zwar will es mir die "Daten" eines Spielers nicht abspeichern,
    wenn dieser disconnected.
    Errors werden mir keine angezeigt, ebenso
    wie Warnings. Ich denke es ist eine Kleinigkeit, die ich allerdings nicht sehe -.-'.


    Werft selbst ein Blick drauf:
    public OnPlayerConnect(playerid)
    {
    new name[MAX_PLAYERS],Account[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(Account,sizeof(Account),"%s.txt",name);


    if(dini_Isset(Account,"Passwort"))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login:","Bitte log dich nun mit deinem\nPasswort ein!","Login","Abbrechen");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_REG,1,"Registration:","Bitte registriere dich nun mit einem Passwort!","Registrieren","Abbrechen");
    }

    return 1;
    }


    public OnPlayerDisconnect(playerid, reason)
    {
    new name[MAX_PLAYERS], Account[128];
    GetPlayerName(playerid, name, sizeof(name));
    format(Account,sizeof(Account),"s.txt",name);

    //Player[playerid][wanted] = GetPlayerWantedLevel(playerid);
    //Player[playerid][skin] = GetPlayerSkin(playerid);

    if(dini_Exists(Account) && Player[playerid][eingeloggt] == 1)
    {
    dini_IntSet(Account,"wanted",GetPlayerWantedLevel(playerid));
    dini_IntSet(Account,"skin",GetPlayerSkin(playerid));
    }

    Player[playerid][wanted] = 0;
    Player[playerid][skin] = 0;
    Player[playerid][eingeloggt] = 0;

    return 1;
    }


    public OnPlayerSpawn(playerid)
    {
    new name[MAX_PLAYERS], Account[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(Account,sizeof(Account),"%s.txt",name);

    if(dini_Isset(Account,"wanted") && dini_Isset(Account,"skin"))
    {
    SetPlayerWantedLevel(playerid,Player[playerid][wanted]);
    SetPlayerSkin(playerid,Player[playerid][skin]);
    }


    return 1;
    }


    public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
    {
    new name[MAX_PLAYERS], Account[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(Account,sizeof(Account),"%s.txt",name);


    if(dialogid == DIALOG_LOGIN)
    {
    if(response)
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login:","Bitte log dich nun mit deinem\nPasswort ein!","Login","Abbrechen");
    SendClientMessage(playerid,COLOR_RED,"Das Passwort ist zu kurz!");
    }
    if(strcmp(inputtext,dini_Get(Account,"Passwort")) == 0)
    {
    Player[playerid][wanted] = dini_Int(Account,"wanted");
    Player[playerid][skin] = dini_Int(Account,"skin");
    Player[playerid][eingeloggt] = 1;
    SendClientMessage(playerid,COLOR_YELLOW,"Du hast dich erfolgreich eingeloggt!");
    }
    else
    {
    ShowPlayerDialog(playerid,DIALOG_LOGIN,1,"Login:","Bitte log dich nun mit deinem\nPasswort ein!","Login","Abbrechen");
    SendClientMessage(playerid,COLOR_RED,"Das eingegebene Passwort war falsch!");
    }
    }
    else
    {
    Kick(playerid);
    }
    }

    if(dialogid == DIALOG_REG)
    {
    if(response)
    {
    if(!strlen(inputtext))
    {
    ShowPlayerDialog(playerid,DIALOG_REG,1,"Registration:","Bitte registriere dich nun mit einem Passwort!","Registrieren","Abbrechen");
    SendClientMessage(playerid,COLOR_RED,"Das Passwort ist zu kurz!");
    }
    else
    {
    dini_Create(Account);
    dini_Set(Account,"Passwort",inputtext);
    dini_IntSet(Account,"wanted",0);
    dini_IntSet(Account,"skin",26);
    Player[playerid][eingeloggt] = 1;
    SendClientMessage(playerid,COLOR_YELLOW,"Du hast dich erfolgreich registriert und bist nun eingeloggt!");
    }
    }
    else
    {
    Kick(playerid);
    }
    }
    return 1;
    }


    Die Daten die ich beim Registrieren unten im Dialog mit dini_IntSet... speichere, werden auch gespeichert, die
    unter OnPlayerDisconnect allerdings nicht.


    Danke schonmal im voraus falls ihr helfen könnt.

    Ahhh okay danke :D


    Aber Beim Timer stimmt irgendwas nicht:
    ...(682) : error 035: argument type mismatch (argument 3)
    ...(1746) : error 035: argument type mismatch (argument 3)
    ...(1739) : warning 203: symbol is never used: "RobUhr"
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    2 Errors.

    Hallo,
    Ich hab da eine Frage,
    Vor ein paar Tagen habe ich einen Bankraub gescriptet.
    Nun klappt auch alles so weit. Ich habe es so gescriptet das man
    nach dem Bankraub erst 10 min untertauchen muss und dann das
    Geld bekommt. Das habe ich natürlich mit einem Timer gemacht,
    jetzt meine Frage: Gibt es eine Möglichkeit die Restzeit des Timers
    anzeigen zu lassen, wenn man z.B. /Robzeit eingibt oder besser sogar
    ein Texdraw rechts das 10min abzählt? Wenn ja könnt ihr mir zeigen,
    wie man das grob scriptet?


    MFG TyP_s

    Hallo, :D
    ich habe ein Problem und zwar war ich am Bankraub scripten und
    war so weit fertig, habe aber ein Problem entdeckt! Hier:
    (Und nicht wundern, ich bin Anfänger ;D)


    Ganz oben im Script:

    forward Rob1(playerid);
    forward Rob2();


    new TresorTuer;
    new Sprengstoff1;
    new Sprengstoff2;
    new inRob[MAX_PLAYERS];


    Dann unter public OnPlayerConnect(playerid)
    public OnPlayerConnect(playerid)
    {
    inRob[playerid] = 0;
    return 1;
    }


    Dann public OnPlayerCommandText(playerid, cmdtext[]):
    public OnPlayerCommandText(playerid, cmdtext[])
    {
    //Bankraub
    if(strcmp(cmdtext, "/sprengen", true) == 0)
    if(IsPlayerInRangeOfPoint(playerid, 1.0, 1335.4388427734, -978.82757568359, -93.163429260254))
    if(inRob[playerid] == 0)
    {
    SetTimer("Rob1", 15000, 0);
    SendClientMessage(playerid, COLOR_GREEN, "Du hast Sprengstoff am Tresor platziert, am besten");
    SendClientMessage(playerid, COLOR_GREEN, "suchst du dir Deckung bevor er hoch geht!");
    Sprengstoff1 = CreateObject(1654, 1335.2890625, -978.5400390625, -92.824188232422, 0, 0, 261.14501953125, 100);
    Sprengstoff2 = CreateObject(1654, 1335.1728515625, -979.4140625, -93.591453552246, 0, 0, 261.14501953125, 100);
    inRob[playerid] = 1;
    return 1;
    }
    return 1;
    }


    So nun public Rob1(playerid):
    public Rob1(playerid)
    {
    CreateExplosion(1335.4388427734, -978.82757568359, -93.163429260254, 10, 4.0);
    DestroyObject(TresorTuer);
    DestroyObject(Sprengstoff1);
    DestroyObject(Sprengstoff2);
    SetTimer("Rob2", 20000, 0);
    SendClientMessage(playerid,COLOR_GREEN,"---------------------------------------------------");
    SendClientMessage(playerid,COLOR_GREEN,"Los schnapp dir das Geld und dann nichts wie weg hier,");
    SendClientMessage(playerid,COLOR_GREEN,"aber beeil dich, der automatische Mechanismus des Tresors");
    SendClientMessage(playerid,COLOR_GREEN,"wird dich in 20 Sekunden hier einschließen!");
    return 1;
    }


    Dann noch public Rob2():
    public Rob2()
    {
    TresorTuer = CreateObject(2634, 1335.4388427734, -978.82757568359, -93.163429260254, 0, 0, 82.314056396484, 100);
    return 1;
    }


    Und zu guter letzt:
    public OnGameModeInit()
    {
    //Bank
    TresorTuer = CreateObject(2634, 1335.4388427734, -978.82757568359, -93.163429260254, 0, 0, 82.314056396484, 100);
    return 1;
    }


    So, die Zeilen sind zwar bisschen verschoben, aber ich hoff ihr könnts gut erkennen.
    Alles klappt soweit bis auf den Sprengstoff, wenn ich /sprengen tippe, erscheint er einfahc nicht,
    ich hab schon viel ausprobiert, aber bin nicht drauf gekommen -.-


    MFG
    TyP_s