Beiträge von Simon2202

    Aja und bitte nenn es nicht selfmade wenn du entweder mit C&P arbeitest oder es von einem Tutorial abschreibst....


    Such dir paar Tutorials raus zum Thema scripten dann kannst du das bald von alleine.. Also ich habe vor 2 Monaten von 0 angefangen und hab keine Probleme mehr bei solchen Systemen.. Also mal Grundlagen lernen.. Klar, kannst du dir dein Script zusammen kopieren aber wenn du mal wirklich einen Server aufsetzen willst und die user(falls du welche mit deinem dann wsl 08/15 script bekommst) wollen irgendwelche Systeme, und du kannst sie nicht scripten ? spätestens dann musst du dich wirklich damit auseinander setzen.

    Also, ich bin bei weitem kein Profi, kann sich hier mal einer äußern ? Gibt ja grade genug Online.


    Aber ich sage, dass du keine Variablen Scriptübergreifend schreiben kannst.. das sind ja 2 verschiedene Dateien. Wie sollte das funktionieren?

    Ähm, kann sein, dass ich grade verwirrt bin aber zeigt deine Abfrage die Nachricht nicht allen Admins mit den Admin Leveln 4 und höher ?


    Wenn der Admin Level nicht kleiner als 4 ist..
    Meiner Meinung nach ist die Abfrage mit


    if(SpielerInfo[playerid][pAdminlevel] < 4) return SendClientMessage(playerid,Rot,"Möglich ab: ´COLG´Adminrank 4");


    Oder ich bin grade einfach verwirrt ...

    Also... ocmd kann man doch auch einfach außerhalb zb ganz am Ende des Scripts einfügen... Dafür braucht man doch kein Public ? Einfach am Ende des Scripts rein ? Oder hab ich mir das jetzt falsch durchgelesen alles ?^^ Aber ocmd kann man generell außerhalb von OnPlayerCommandText machen.

    Garnicht.. Also ich mein ich wüsste nicht wie du deine Variablen Scriptübergreifend angeben solltest... Wie stellst du dir das vor ?
    Du kannst das Filterscript in dein Script integrieren theoretisch.. und dann anpassen

    if(strcmp(cmd, "/getgras", true) == 0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pJob] != 20)
    {
    SendClientMessage(playerid,COLOR_LIGHTRED,"Du bist kein Drogenkurier!");
    return 1;
    }
    else if(GetVehicleModel(GetPlayerVehicleID(playerid)) != 433)
    {
    SendClientMessage(playerid, COLOR_RED, "Du kannst nur mit einer Barrack Gras Pakete kaufen.");
    return 1;
    }
    new menge;
    menge = strval(tmp);
    if(menge > 10 || menge < 500)
    {
    if(!WarenDabei[playerid] >= 500)
    {
    if(IsPlayerInRangeOfPoint(playerid, 30.0, 1528.7854,18.9864,24.1406))
    {
    SendClientMessage(playerid, COLOR_LIGHTRED, "Du hast das Gras eingeladen! Fahre jetzt zum Crackhaus in LS(roter Marker).");
    SetPlayerCheckpoint(playerid, 2160.7773,-1657.9929,15.0859, 8.0);
    return 1;
    //Außerdem brauchst du noch eine Variable wie viel er geladen hat oder ?
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Du bist nicht an der Drogenfarm.");
    return 1;
    }
    }
    SendClientMessage(playerid, COLOR_RED, "Du hast schon 500 Gras Pakete bei dir.");
    return 1;


    }
    SendClientMessage(playerid, COLOR_RED, "Du musst zwischen 10-500 Gras Pakete kaufen.");
    return 1;

    }
    return 1;


    Ist ungetestet.. Sollte aber so funktionieren. Bei Fragen melde dich, kann sein, dass Fehler drinnen sind

    ocmd:makeleader(playerid,params[])
    {


    if(!isPlayerAnAdmin(playerid,5))return SendClientMessage(playerid,BLAU,"Du bist kein Admin.");
    new pID, string[128],rank;
    if(sscanf(params,"ui",pID,rank))return SendClientMessage(playerid,BLAU,"/makeleader [spieler] [Fraktionid]");
    if(rank<0||rank>5)return SendClientMessage(playerid,BLAU,"Bitte gültige Fraktion angeben.");
    new ftext[128];
    new level = rank;
    if(level == 0) { ftext= "Zivilist"; GetPVarInt(playerid,"Fraktion")==0; }
    else if(rank == 1) { ftext= "LSPD"; GetPVarInt(playerid,"Fraktion")==1; }
    else if(rank == 2) { ftext= "Ordnungsamt"; GetPVarInt(playerid,"Fraktion")==2; }
    else if(rank == 3) { ftext= "Sanitäter"; GetPVarInt(playerid,"Fraktion")==3; }
    else if(rank == 4) { ftext= "Grove Street"; GetPVarInt(playerid,"Fraktion")==4; }
    else if(rank == 5) { ftext= "Yakuza"; GetPVarInt(playerid,"Fraktion")==5; }


    format(string,sizeof(string),"Admin %s : %s übernimmt den Leaderposten von %s",SpielerName(playerid),SpielerName(pID),ftext);
    SendClientMessageToAll(ROT,string);
    SpawnPlayer(pID);
    SpielerSpeichern(pID);
    return 1;
    }


    Du hast hinten bei jeder Fraktion das ";" vergessen.. Sollte zumindest die Errors weg bekommen.

    1. Danke für die Hilfe!
    2. Es wird kein Preis beim Dialog System angezeigt.. Da steht ingame nur "$ : [MVS]Simon"


    3. Ist das untere bei dir auf mein Problem mit dem auslesen des strings bezogen oder auf sname ? Sname habe ich durch SpielerName ersetzt, funktioniert jetzt also soweit.

    Erstmal danke.


    Jedoch bekomme ich mehrere Errors.
    Der ganze Dialog:


    //Hitman
    if(dialogid == DIALOG_HITMANLAPTOPAUSWAHL)
    {
    if(response)
    {
    if(listitem == 0)
    {
    new string1[128];
    for(new i=0;i<MAX_PLAYERS;i++) //eine schleife durch alle slots
    {
    new sname[MAX_PLAYER_NAME];
    GetPlayerName(i, sname, sizeof(sname));
    if(!IsPlayerConnected(i))continue; //falls nicht connected continue
    if(PlayerInfo[i][pHeadValue]==0)continue; //falls kein kopfgeld continue
    format(string1,128,"%s$ : %s\n",string1,sname(i)); //spieler mit kopfgeld zum string hinzufügen
    }
    ShowPlayerDialog(playerid,DIALOG_HITMANLAPTOPAUFTRAG,DIALOG_STYLE_LIST,"Aufträge",string1,"Weiter","Abbrechen"); //fertiger string nach der schleife im dialog ausgeben
    return 1;
    }
    }
    }



    Das sind die Errors:

    Spoiler anzeigen
    Zeile (44231) : error 012: invalid function call, not a valid address
    Zeile (44231) : Befehl hat keinen Sinn
    Zeile (44231) : Erwartete Zeichen ";", aber gefunden ")"
    Zeile (44231) : Ungültiger Befehl
    Zeile (44231) : Zuviele Fehler in einer Zeile


    Zeile 44231 ist die Zeile mit dem format


    Außerdem:
    Ich lasse ja dann einen Dialog anzeigen mit allen Spielern die ein Kopfgeld haben.
    Wie lasse ich die listitems auslesen? ich kann ja nicht mit "listitem ==0" etc arbeiten...
    Den Rest kann ich dann.. (ClientMessage an alle Hitmans senden etc) Nur wie ich das auslesen lasse ist das Problem....



    Formatiert er bei dir nicht string1 ? den du aber im gleichen format nimmst um das Kopfgeld anzuzeigen?

    Hallo, Community!


    Ich habe ein Problem bei meinem Hitman System.
    Wenn ein Spieler den Befehl /kopfgeld [SpielerID] [Betrag] macht wird ein Kopfgeld auf den jeweilgen Spieler ausgesetzt.
    Das funktioniert soweit auch.
    Jetzt wollte ich, dass jeder Hitman alle Aufträge über ein Dialogmenü (seinen Laptop) einsehen kann.
    Die Dialoge sehen inzwischen so aus:


    Die Defines:

    Spoiler anzeigen
    #define DIALOG_HITMANLAPTOPAUSWAHL 32
    #define DIALOG_HITMANLAPTOPAUFTRAG 33


    Der Befehl "/laptop":

    Spoiler anzeigen
    if(strcmp(cmd,"/laptop",true)==0)
    {
    if(IsPlayerConnected(playerid))
    {
    if(PlayerInfo[playerid][pMember] == 8 || PlayerInfo[playerid][pLeader] == 8)
    {
    ConnectedToPC[playerid] = 255;
    ShowPlayerDialog(playerid,DIALOG_HITMANLAPTOPAUSWAHL,DIALOG_STYLE_LIST,"Hitman Laptop","Aufträge","Auswählen","Abbrechen");
    }
    else
    {
    SendClientMessage(playerid, COLOR_RED, "Sie sind kein Hitman.");
    return 1;
    }
    }
    return 1;
    }


    Dialog "DIALOG_HITMANLAPTOPAUSWAHL":

    Spoiler anzeigen
    ShowPlayerDialog
    if(dialogid == DIALOG_HITMANLAPTOPAUSWAHL)
    {
    new str[128];
    if(response)
    {
    if(listitem == 0)
    {
    format(str,sizeof(str],%s\n%s\n%s\%s
    ShowPlayerDialog(playerid,DIALOG_HITMANLAPTOPAUFTRAG,DIALOG_STYLE_LIST,"Aufträge",
    return 0;
    }
    }
    }


    Jetzt habe ich probiert, dass mit einem format zu machen.. Doch das kann ja nicht funktionieren so wie ich das gemacht habe, da ja auch theoretisch 1000 Aufträge da sein könnten...
    Ich hoffe irgendjemand kann mir helfen.
    (INFO: das mit format ist das was ich probiert habe also bitte keine Beiträge mit "Das format ist ja unvollständig")


    mfg Simon!

    Hallo, Community!
    Ich dachte meine Probleme hätten jetzt ein Ende..
    Jedoch bekomme ich bei manchen Befehlen sehr verwirrende Errors.


    Spoiler anzeigen
    public OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ)
    {
    ocmd:tpmark(playerid)
    {
    if(PlayerInfo[playerid][pAdmin] >= 2)
    {
    SetPlayerPosFindZ(playerid, fX, fY, fZ);
    SendClientMessage(playerid,gelb,"Du hast dich zu dem von dir markierten Punkt teleportiert!");
    return 1;
    }
    SendClientMessage(playerid,knallrot,"Du hast nicht den nötigen Admin Rang!");
    return 1;
    }
    return 1;
    }


    Zb bei diesem bekomme ich diese Errors:

    Spoiler anzeigen
    Zeile (50522) : Ungültiger Befehl
    Zeile (50522) : Unbekannte Variable : "ocmd_tpmark"
    Zeile (50522) : Ungültiger Befehl
    Zeile (50522) : Zuviele Fehler in einer Zeile



    Bei dieser Version:

    Spoiler anzeigen
    //Zu Marker auf Map tpen
    public OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ)
    {
    if(strcmp(cmd, "/tpmark", true) == 0)
    {
    if(PlayerInfo[playerid][pAdmin] >= 2)
    {
    SetPlayerPosFindZ(playerid, fX, fY, fZ);
    SendClientMessage(playerid,gelb,"Du hast dich zu dem von dir markierten Punkt teleportiert!");
    return 1;
    }
    SendClientMessage(playerid,knallrot,"Du hast nicht den nötigen Admin Rang!");
    return 1;
    }
    return 1;
    }



    Diesen Error:

    Spoiler anzeigen
    Zeile (50522) : Unbekannte Variable : "cmd"