/klingel System

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
  • Guten tag,


    Könnte jemand im PD neben dem Pult eine Klingel Scripten
    habe es leider nicht hinbekommen
    Befehl soll lauten /klingel
    wenn jemand klingelt wird nur das lspd(id 1) angeschrieben
    der andere der Wartet soll die nachricht Bitte haben sie etwas gedult ein Beamter wird sofort kommen
    soll ein FS sein
    Danke im Vorraus


  • if (strcmp(cmd,"/klingeln", true) == 0)
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(IsPlayerInRangeOfPoint(playerid,3,x,y,z))
    {
    if(*FRAKTIONSABFRAGE*((i),*FRAKTIONSID*))
    {
    SendClientMessage(i,FARBE,"Jemand klingelt am Schalter des PD's.");
    SendClientMessage(playerid,FARBE,"Bitte haben Sie etwas Gedult ein Beamter wird sofort erscheinen.");
    }
    }
    }
    }


    Edit: Verbessert.

    Selfmade Reallife Script..


    |||||||||||||||||||||||||||||||||||||||||||||||||||||| 80%/100%

    10.352 Zeilen


    3 Mal editiert, zuletzt von [Dr]EN3RGGY ()

  • warte


    C:\Users\Ayhan\Desktop\Klingel.pwn(1) : error 010: invalid function or declaration
    C:\Users\Ayhan\Desktop\Klingel.pwn(2) : error 010: invalid function or declaration
    C:\Users\Ayhan\Desktop\Klingel.pwn(4) : error 010: invalid function or declaration
    C:\Users\Ayhan\Desktop\Klingel.pwn(6) : error 010: invalid function or declaration
    C:\Users\Ayhan\Desktop\Klingel.pwn(9) : error 010: invalid function or declaration
    C:\Users\Ayhan\Desktop\Klingel.pwn(10) : error 054: unmatched closing brace ("}")
    C:\Users\Ayhan\Desktop\Klingel.pwn(13) : error 013: no entry point (no public functions)
    Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase



    7 Errors.


  • SendClientMessage(playerid,FARBE,"Bitte haben Sie etwas Gedult ein Beamter wird sofort erscheinen.");


    Wenn dann so.



    Andere Methode:




    Function Policemessage(color, string[])
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(PlayerInfo[i][pLeader] == 1)//Fraktions abfrage.
    {
    SendClientMessage(i, color, string);
    }
    }
    }
    }



    if(strcmp(cmdtext," /klingel", true) == 0)
    {
    if(IsPlayerInRangeOfPoint.....) return SendClientMessage(playerid, COLOR, " TEXT ");//Stelle wo man klingel eintippen sollte.
    {
    new string[24], name;
    GetPlayerName(i, name, sizeof(name));
    format(string(sizeof), string, " klingelt an der Anmeldung", name);
    Policemessage(farbe, string);
    return 1;
    }
    }


    So sollte es funken.


    //edit korregiert





  • Anonymous, hab mich schon selbst korregiert, bevor du es geschrieben hast ;P


    Und @ Emre.


    Pack das bei "public OnPlayerCommandText(playerid, cmdtext[])" was ich editiert habe.

    Selfmade Reallife Script..


    |||||||||||||||||||||||||||||||||||||||||||||||||||||| 80%/100%

    10.352 Zeilen



  • Lass das mit dem "scripten" erstmal ^^


    Schau dir diese Tutorials hier an, so habe ich scripten gelernt. :D


    klick*


    Brauchst Basiswissen, wenn du einigermaßen scripten willst.

    Selfmade Reallife Script..


    |||||||||||||||||||||||||||||||||||||||||||||||||||||| 80%/100%

    10.352 Zeilen


  • Hallo und Guten Abend Liebe samp Community Ich hab da mal ne frage und zwar ich hab das nun ma versucht ihr das bei mir im Script rein gebaut nun ist es so das ich in Game Gehe und /klingeln eintippe aber es Passiert nix weis villeicht jemand why hab ich irgentwas verkert gemacht?


    if(strcmp(cmd, "/klingeln", true) == 0)
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if (PlayerToPoint(3, playerid,926.0521,-1207.7930,17.0497))
    {
    if(PlayerInfo[i][pLeader] == 13)
    {
    SendClientMessage(i,0xFF5A00FF,"Jemand klingelt am Schalter des ADAC's.");
    SendClientMessage(playerid,0xFF5A00FF,"Bitte haben Sie etwas Gedult ein Mitarbeiter der ADAC wird sofort erscheinen.");
    }
    }
    }
    return 1;
    }

  • Der Code ergibt von hinten und vorne keinen Sinn.
    Wozu fragst du die Position des Spielers ab die den Befehl benutzt un einer Schleife ?
    Den Code sollte man über die schleife machen ist klar das der Code nicht ausgeführt wird.
    Da "i" nicht die selbe ID wie playerid hat.



    LG RFT

    RFT

  • Ich hab das bei mir so gemacht, müstest du dir natürlich an deins anpassen



    if(strcmp(cmd,"/klingeln",true)==0)
    {
    if(IsPlayerInRangeOfPoint(playerid,3,234.9487,164.7033,1003.0300))/// Die stelle wo er klingeln kann
    {
    SendClientMessage(playerid, COLOR_WHITE, "Du hast geklingelt in kürze wird sich ein Officer kümmern!");//Wenn er geklingelt hat
    for(new i = 0; i < MAX_PLAYERS; i++)//for schleife
    {
    if(IsPlayerConnected(i))//frage wer on iss
    {
    if(IsACop(i))//Abfrage wer nen cop iss
    {
    SendClientMessage(i,TEAM_BLUE_COLOR,"HQ: ______________________Achtung________________________");//Resultat wenn der ein cop iss
    SendClientMessage(i,TEAM_BLUE_COLOR,"HQ: Am Tresen des LSPD verlangt jemand nach einem Offizer!");
    }
    }
    }
    }
    else
    {
    SendClientMessage(playerid, COLOR_WHITE, "Du bist nicht im LSPD!");
    }
    return 1;
    }



    //edit
    So ergibt das ganze auch einen Sinn


    //edit
    Ich seh grad bei deiner Version bekommt wenn dann auch nur der Leader eine Meldung, und nicht die anderen Mitarbeiter des AdAc
    daher währe es sinnvoll wenn du eine defination anlegst
    wie zb.
    IsADAC und in derdann leader und member einträgst

  • so eine public legst du dir einfach an

    public IsACop(playerid)
    {
    if(IsPlayerConnected(playerid))
    {
    new leader = SpielerInfo[playerid][sLeader];
    new member = SpielerInfo[playerid][sMember];
    if(member==1)
    {
    return 1;
    }
    else if(leader==1)
    {
    return 1;
    }
    }
    return 0;
    }


    In meim fall ist das die für die cops, davon habe ich noch einige, für jede fracktion um genau zu sein, damit kann ich dann in so einem befehll einfach mit if(IsACop(i)) abfragen




    //edit
    Ja sicher kannst du das auch mit Playerinfo [pLeader] und so weiter abfragen, setz einfach deins da rein und dann klappt das auch
    In deinem Fall sähe das dann so aus

    if(strcmp(cmd, "/klingeln", true) == 0)
    {
    if (PlayerToPoint(3, playerid,926.0521,-1207.7930,17.0497))
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    if(IsPlayerConnected(i))
    {
    if(PlayerInfo[i][pLeader] == 13||PlayerInfo[i][pMember] == 13)
    {
    SendClientMessage(i,0xFF5A00FF,"Jemand klingelt am Schalter des ADAC's.");
    SendClientMessage(playerid,0xFF5A00FF,"Bitte haben Sie etwas Gedult ein Mitarbeiter der ADAC wird sofort erscheinen.");
    }
    }
    }
    }
    else
    {
    SendClientMessage(playerid, 0xFF5A00FF, "Du bist nicht im LSPD!");
    }
    return 1;
    }


  • Wozu unnötig Variabeln anlegen ?
    Die Variabeln gegen die PlayerInfo Strukturen austauschen dies tut genauso seinen zweck.


    LG RFT

    RFT

  • Wozu unnötig Variabeln anlegen ?
    Die Variabeln gegen die PlayerInfo Strukturen austauschen dies tut genauso seinen zweck.


    LG RFT



    ja sicher, hab ich ja oben als beispiel auch noch mal hinzugefügt
    Allerdings wenn du jetzt befehle hast die mehrere Fraktionen nutzen, dann ist die Abfrage über eine definierte Variable einfacher und schneller zu scripten