Beiträge von Dono

    Danke an euch 2 schonmal für die antworten.
    Also, ich muss IMMER eine größe angeben wenn ich:
    -einen string (sprich buchstaben) abspeicher
    -oder ich die variable für mehrere Leute etc. brauche und sonst nie oder?


    Das heist aber natürlich dann auch das ich auch variable z.B. des typs bool eine größe zuweisen kann oder?

    Ich code ja selber noch ziemlich schlecht aber einmal definierst du das passwort als schlüssel und einmal als key?!

    Hi,
    ich verstehe immoment mehrere script basics nicht. Aber eins nach'm andern.
    Meine erste frage ist wann ich immer die größe definieren muss.


    Damit meine ich sowas wie:
    new blubb[16];


    sowas muss ich nur definieren wenn ich einen Text speichern will oder?!
    und sowas
    new blubb2[MAX_PLAYERS];


    muss ich definieren wenn ich will das die Variable für jeden Spieler einen eigenen Wert haben kann oder?
    Kann mir das bitte noch einmal jemand genauer erläutern?


    Lg Dono


    PS: Natürlich hab ich die sufu und wiki genutzt aber da hab ich es auch nicht so 100% verstanden.

    Hab noch ne frage dazu.
    Gibt es eine möglichkeit zu überprüfen ob eine bestimmte Datei exestiert?

    Hi,
    kurz und knapp. Kann mir jemand bitte die SII.inc zum DL bereitstellen?


    LG Dono


    Edit:// Ich bin natürlich nicht zufaul zu suchen, aber der offizielle DL im Forum ist down.

    Hi,
    wenn sich jemand einloggt und dass Passwort richtig ist, dann soll folgendes passieren:


    loggedin = 1;
    SetSpawnInfo( playerid, 0, 0, 1958.33, 1343.12, 15.36, 269.15, 26, 36, 28, 150, 0, 0 );
    SpawnPlayer(playerid);
    GivePlayerMoney(playerid, dini_Int(pfad, "geld_bar"));
    SetPlayerWantedLevel(playerid, dini_Int(pfad, "wanted"));
    SendClientMessage(playerid, COLOR_GREEN, "Erfolgreich eingelogt!");


    Aber der spieler bekommt keine Waffen in die Hand. Die Waffe bekommt er nur in die Hand wenn ich GivePlayerMoney und SetPlayerWantedLevel lösche.
    Auch wenn ich GivePlayerMoney und SetPlayerWantedLevel nach OnPlayerSpawn verschiebe bekommt ich keine waffen auf die Hand. Fehler meldungen gibt es aber auch keine.
    Jemand ne idee an was es liegen könnte?

    Hi,
    ich scripte selber noch nicht lange, aber ich probiers mal die das zu erklären.


    Über Public_OnGameModInit() kommt:


    new noobspawn_info;
    new Menu:noobspawn_info_menu;


    Es werden 2 Variablen erstellt.
    Die erste Variable wird für das Pickup benötigt und die 2. Variable für das Menü.


    Das kommt alles unter OnGameModInit():
    noobspawn_info = CreatePickup(1239,23,1481.4407,-1742.5592,13.5469);
    Hier erstellen wird das Pickup mit CreatPickup
    Die Zahl 1239 ist die Id für unser gelbes I
    Die Zahl 23 legt den Typ fest, also ob es aufsammelbar sein soll, ob es respawnen soll etc.
    Ich habe mich für 23 entschieden, weil es nicht aufsammelbar ist etc. und sonst auch keine evtl. vorhandene EIGENE Funktion ausgeübt wird (nützlich auch bei heal und armor pickup)
    Die restlichen Zahlen sind die Koordinaten. (Müssen evtl. an eigene Bedürfnisse angepasst werden)


    noobspawn_info_menu = CreateMenu("Starter Packet", 1, 200.0, 100.0, 200.0);
    Hier erstellen wir das Menü.
    Starter Packet ist der Name für unser Menü
    Die nächste Zahl gibt an wie viel Spalten wir haben wollen
    Die nächsten 2 Zahlen geben die x und y Coordinate an und bestimmen somit wo das Fenster auf'm Bildschirm ist (Stichwort Koordinatensystem, ab 5. Klasse Mathe Realschule)
    Die letzte Zahl gibt die größe der ersten Spalte an, bei mehreren Spalten können da noch mehrere Zahlen folgen.


    AddMenuItem(noobspawn_info_menu, 0, "BMX + Baseball Bat = 500$");
    Hier fügen wir unserem Menü einen Menüpunkt hinzu.
    Der erste wert in der Klammer ist die Variable die wir zuvor erstellt haben und die wir für das Menü genutzt haben
    Die nächste Zahl gibt an in welche Spalte der eintrag soll wobei bei null angefangen wird zu zählen, also 0 = 1. Spalte, 1 = 2. Spalte usw.
    Der letzte Text ist der Name für den Menüpunkt


    AddMenuItem(noobspawn_info_menu, 0, "Faggio + Baseball Bat = 1000$");
    Exact das gleiche wie obe nur das natürlich der Name anders ist.


    Folgendes kommt unter public OnPlayerPickUpPickup(playerid, pickupid),
    weil er das Menü nur zeigen soll wenn jemand durch das Pickup geht.
    if(pickupid == noobspawn_info) {
    Wenn das Pickup (die Pickupid) gleich unserem Pickup (noobspawn_info) dann mache folgendes:


    ShowMenuForPlayer(noobspawn_info_menu,playerid);
    }
    Zeige dem Spieler das Menü.
    Wobei der erste wert wieder unsere Variable ist, die wir für das Menü hergenommen haben
    Der zweite wert ist playerid, da setzt der Server später dann automatisch die Id von dem user ein der gerade durch das Pickup läuft


    Folgendes kommt unter public OnPlayerSelectedMenuRow(playerid, row)
    das spawnen der Vehicles etc. soll nur passieren wenn der User einen bestimmten Menüpunkt wählt.


    if(GetPlayerMenu(playerid) == noobspawn_info_menu) {
    Wenn das geöffnete Menü unser erstelltes Menü (noobspawn_info_menu) ist, dann mache folgendes:
    Wobei GetPlayerMenu abfragt welches Menü der user gerade offen hat.


    new
    Float:px,
    Float:py,
    Float:pz,
    Float:pa;
    Hier werden erstmal 4 Variablen erstellt die wir weiter unten für den x, y, z und den/das angel brauchen.


    GetPlayerPos(playerid, px, py, pz);
    Hier hollen wir uns die aktuelle Position des Spielers und speicher den x wert in der Variable px, den y wert in der Varibale py und den z wert in der Variable pz.


    GetPlayerFacingAngle(playerid, pa);
    Hier hollen wir uns die Blickrichtung des Spielers und speichern sie in der Variable pa.


    switch(row)
    {
    case(0): // BMX und Baseballschläger = 500$
    {
    AddStaticVehicle(481 , px +3, py, pz, pa, 0, 0);
    GivePlayerWeapon(playerid, 5, 0);
    GivePlayerMoney(playerid, -500);
    }
    case(1): // Faggio und Baseballschläger = 1000$
    {
    AddStaticVehicle(462, px +3, py, pz, pa, 0, 0);
    GivePlayerWeapon(playerid, 5, 0);
    GivePlayerMoney(playerid, -1000);
    }
    }
    }


    Beim ersten Punkt wird das bmx gespawnt, der player bekommt einen Baseballschläger und ihm werden 500$ abgezogen
    Beim zweiten Punkte wird das bmx gespawnt, der player bekommt wieder einen Baseballschläger und ihm werden 1000$ abgezogen.
    Aber das mit switch und case kann bitte jemand anders genauer erklären


    Kompletter Code


    Big thx an
    Breadfishforum
    samp wiki

    Hi,
    ich hab schon wieder ein problem, denke aber das es sich nicht lohnt deswegen wieder einen neuen Therad zu eröffnen:



    dcmd_auto(playerid,params[]) {
    new
    color1[128],
    color2[128],
    carid;
    if(sscanf(params,"dzz",carid,color1,color2)) {
    SendClientMessage(playerid, COLOR_RED, "[Fehler:] /auto carid");
    }
    new
    Float:px,
    Float:py,
    Float:pz;
    GetPlayerPos(playerid, px, py, pz);
    AddStaticVehicle(carid, px, py, pz, 0, color1[0] ? color1 : 123, color2[0] ? color2 : 1); // Zeile 447
    return 1;
    }


    Soll mir Autos spawnen, funtzt soweit auch einwandfrei, aber wenn ich ihm sag welche farbe das auto habe soll, dann macht er was er will.
    Beim compilieren sagt er auch:


    Code
    C:\Dokumente und Einstellungen\Dono\Desktop\samp\gamemodes\meins.pwn(447) : error 033: array must be indexed (variable "color1")
    Pawn compiler 3.2.3664	 	 	Copyright (c) 1997-2006, ITB CompuPhase
    
    
    
    
    1 Error.


    Währe cool, wenn jemand dazu eine Lösung hätte.

    Jap, jede offene Klammer muss auch wieder geschlossen werden. Also erstmal nach ner offenen aber nich geschlossenen klammer suchen. Dann kannst in der regel (wenn gescheit eingerückt wurde) die auch ohne script kentnisse schließen und wenn es dann nicht schaffst, dann kopierst die stelle rein wo die klammer fehlt.

    Danke, an euch beide!


    Aber ich hab schon die nächste frage, wie bekomme ich es hin, das ich nicht immer die waffen id eingeben muss, sondern das der Waffen name reicht?
    Meine idee war eine variable zu erstellen die z.B. mp5 heist und den wert mp5 hat und dann else if wtype == mp5
    giveplayer (pid, waffen id, muni)
    hat aber irgendwie nicht funktioniert.
    Hat einer von euch ne bessere idee dazu?

    Hi,
    ich habe heute mit dem Scripten lernen angefangen, klappt soweit auch relativ gut. Ich weis jetzt wie ich Pickups spawne etc. Jetzt wollte ich mit an die Kommands machen und hab mir dazu dieses/en gute Tutorial/Sticky durchgelesen: Klick Mich. Nach diesem Prinzip habe ich dann folgendes gebastelt:



    public OnPlayerCommandText(playerid, cmdtext[])
    {
    dcmd(verkaufen,9,cmdtext);
    return 0;
    }


    dcmd_verkaufen(playerid,params[]) {
    new
    pid,
    wtype;
    if(sscanf(params,"dd",pid,wtype)){
    return SendClientMessage(playerid, COLOR_RED, "[Fehler:] /verkaufen id waffentype");
    }
    else if(!IsPlayerConnected(pid)) {
    return SendClientMessage(playerid, COLOR_RED, "[Fehler:] Spieler nicht online!");
    }
    else {
    GivePlayerWeapon(pid,wtype,150);
    SendClientMessage(playerid, COLOR_GREEN, "[Erledigt:] Waffe erfolgreich Verkauft!");
    }
    }


    Mit diesem kleinen Code schnipsel kann ich Waffen vergeben. Funktioniert auch soweit ganz gut, aber 2 Sachen gefallen mir nicht, sind zwar eigentlich nur Schönheitsfehler aber trotzdem:


    Einmal bekomme ich beim Compilieren immer ein warning und ich weis nicht wie ich das wegbekommen kann:


    C:\Dokumente und Einstellungen\Dono\Desktop\samp\gamemodes\meins.pwn(389) : warning 209: function "dcmd_verkaufen" should return a value
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Warning.


    und 2. bekomme ich immer wenn ich den befehl Korekt ausführe die Meldung:


    [Erledigt:] Waffe erfolgreich Verkauft!


    und die Meldung (sinngemäß):


    SERVER: Unknown Command


    letztere Meldung stört mich und hat da eigentlich nichts zu suchen. Meine Vermutungen sind, das die Meldung immer kommt, weil ich die Waffe immer an mich selber verkaufe oder 2. vermutung, weil ihm die ID 0 einfach nicht passt?!


    Würde mich über hilfe freuen!


    LG Dono

    Ah, okay. Danke. Naja, währe trotzdem lustig, auch wenn man sich einen mod laden müsste. Aber braucht denke ich doch einiges an ressourcen, und ob sich das dann für evtl. nur ein paar user lohnt is die andere frage.

    Ja, aber ich denke, das am ende nur werbung drinn stehen wird, die sich aber ziemlich wenig leute ansehen werden.
    Abgesehen davon gibt es nich viele gute server. Also entweder wird das forum lehr seien, oder wenn man sich mal 1 monat alte therads durchlesen wird, werden 80% der server down seien.
    Sry, aber is meine meinung

    Aber wiso kann man den Clienten nich sagen, spiel die Datei nich von der Platte sondern von web ab. Is ja eigentlich kein großer unterschied.
    Sry für die evtl. dumm erscheinende fragen, aber ich will versuchen es zu verstehen