[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • Moin Leute, wie kann ich ne 1vs1 Arena scripten, mit Variablen & Forschleife hab ich schon versucht, evtl jemand ne Lösung für mich?


    new arenastatus = 0;
    new arena[MAX_PLAYERS];
    // Irgendwo im Script den Befehl zum Betreten der Arena
    // arenastatus++
    // Benutzt jemand den Befehl, wird die Variable um 1 hochgezählt
    // Variable steht nun also bei 1, kommt der zweite rein, steht die Variable nun bei 2. Somit wäre sie voll.


    // Folgendes muss in den Befehl:
    if(arenastatus < 3)
    {
    if(arena[playerid] == 0) // Ist der Spieler schon in der Arena? Wenn nein (0), dann geht's weiter:
    {
    arena[playerid] = 1; // Spieler ist nun in der Arena
    // Port in die Arena
    // etc.
    }
    else
    {
    // Wenn der Spieler bereits in der Arena ist
    }
    }
    else
    {
    // Wenn die Arena voll ist.
    }


    // Befehl für das Verlassen muss enthalten:
    // arenastatus--
    // arena[playerid] = 0;


    Bin mir nicht sicher ob's funktioniert, hab das eben nur mal fix geschrieben. Und wozu braucht man hier for-Schleifen? ?(


  • Habs nun anders gemacht, aber danke :D


    Engelsflügel am Astonkühler, als Schutz vor dem Teufel!

  • dini_Set("/Biz/TankBiz.ini", "ProduktPreis", TankProduktPreis);


    Error
    C:\Users\Nils\Desktop\Selfmade\gamemodes\Selfmade.pwn(7125) : error 035: argument type mismatch (argument 3)
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    1 Error.


    Aber was ist falsch

  • Bei mir kommt jetzt immer:


    Code
    Script[gamemodes/dzl.amx]: Run time error 19: "File or function is not found"


    Ich weiß was das bedeutet aber ich find keinen Fehler...
    Wisst ihr wo ich schauen kann wieso das nicht geht?


    - Tomsen

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen

  • Du lädst nicht alle Plugins ;)

    ast2ufdyxkb1.png


    Leute, lernt scripten und versucht mal lieber etwas selber zu schreiben, als es aus einem GF zu kopieren. :S

  • Jaa :D


    Code
    [21:13:00] Server Plugins[21:13:00] --------------[21:13:00]  Loading plugin: sscanf[21:13:00] [21:13:00]  ===============================[21:13:00]   	sscanf plugin loaded. 	[21:13:00]	(c) 2009 Alex "Y_Less" Cole[21:13:00]  ===============================[21:13:00]   Loaded.[21:13:00]  Loading plugin: mysql[21:13:00]   > MySQL plugin R5 successfully loaded.[21:13:00]   Loaded.[21:13:00]  Loading plugin: streamer[21:13:00] *** Streamer Plugin v2.5.2 by Incognito loaded ***[21:13:00]   Loaded.[21:13:00]  Loaded 3 plugins.


    - Tomsen

  • Ich hab nen kleines Problem
    Bei der Funktion zeigt er mir alles an.
    new Inhalt[60+sizeof(JobInfo)];
    for(new j = 0; j < sizeof(JobInfo); j ++)
    {
    if(JobInfo[j][JobID] == PlayerInfo[playerid][Job])
    {
    if(GetVehicleModel(vehicleid) == JobInfo[j][JobVehicle])
    {
    format(Inhalt,sizeof(Inhalt),"%s\n%s",Inhalt,JobInfo[j][JobText]);
    }
    }
    }
    ShowPlayerDialog(playerid,diaJobWahl,DIALOG_STYLE_LIST,"Welche Tour soll es sein?",Inhalt,"Wählen","Abbruch");
    Klick ich aber eins an, verschieben sich die werte und es wierden nur die ersten 2 auswählbar.
    case diaJobWahl:
    {
    if(response)
    {
    new vehicleid = GetPlayerVehicleID(playerid);
    for(new j = 0; j < sizeof(JobInfo); j ++)
    {
    if(JobInfo[j][JobID] == PlayerInfo[playerid][Job])
    {
    if(GetVehicleModel(vehicleid) == JobInfo[j][JobVehicle])
    {
    if(!strcmp(JobInfo[j][JobText],JobInfo[listitem][JobText],true))
    {
    format(query,128,"~> %s",JobInfo[listitem][JobText]);
    SendClientMessage(playerid,cGreen,query);
    SendClientMessage(playerid,cGreen,"~> Fahre zum Flughafen und besorge einen Container");
    PlayerInfo[playerid][JobRoute] = listitem;
    return 1;
    }
    }
    }
    }
    SendClientMessage(playerid,cWarn,"~> Fehler im System! Bitte wähle eine andere Route");
    }
    else
    {
    RemovePlayerFromVehicle(playerid);
    PlayerInfo[playerid][JobRoute] = 0;
    }
    return 1;
    }
    Ich habe schon einiges versucht aber es kommt immer das selbe bei raus
    Die Jobrouten werden hier alle eingetragen:
    new JobInfo[][JobEnum]=
    {
    {jTrucker, 578, "Die Baustelle", 2422.8518,1923.7631,5.7201},
    {jTrucker, 578, "Die Einkaufspassgae", 2831.9189,2395.0381,10.5249},
    {jTrucker, 560, "Test", 2244.7222,2230.9717,10.4690},
    {jTrucker, 578, "Das Holtel", 2244.7222,2230.9717,10.4690},
    {jTrucker, 578, "Das Autohaus", 2189.5784,1386.8009,10.5254}
    };
    Sobald er den wert Test im dialog anzeigen soll, verschieben sich die Jobs oder ich bekomm die Fehlermeldung angezeigt.
    Ich hoffe, das einr dazu eine idee hat

    All in all it's just another brick in the wall

  • Wie bekomm ich das weg?

    Code
    local variable "hunger" shadows a variable at a preceding level

    Spoiler anzeigen
    ocmd:sethunger(playerid,params[])
    {
    new hunger,pID,string1[256],string2[256]; //betroffene Zeile
    if(!IsPlayerAnAdmin(playerid,200)) return SendClientMessage(playerid,rot,"Du hast nicht das nötige Adminlevel!");
    if(sscanf(params,"ud",pID,hunger)) return SendClientMessage(playerid,rot,"Benutze: /sethunger [Name/ID] [0-100]");
    if(hunger<=0 || hunger>=100) return SendClientMessage(playerid,rot,"[Fehler]: Der Wert darf nicht weniger als 0 und nicht mehr als 100 betragen!");
    format(string1,sizeof(string1),"Dein 'Hunger' wurde von Admin %s auf %d gesetzt.",SpielerName(playerid),hunger);
    format(string2,sizeof(string2),"Du hast den 'Hunger' von %s auf %d gesetzt.",SpielerName(pID),hunger);
    SendClientMessage(pID,grau,string1);
    SendClientMessage(playerid,grau,string2);
    SpielerInfo[pID][pHunger] = hunger;
    ShowBedu(pID);
    return 1;
    }


    - Tomsen

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen