Beiträge von Lumberjack

    Jap das sind zwei globale Variabeln,habe [MAX_GRAFFITI] hinzugefügt und soweit angepasst jetzt funktioniert alles, was für ein leichtsinnsfehler ... :dash: xd
    Dennoch vielen Dank vor allem für die rasche Antwort,hätte überhaupt nicht damit gerechnet :D :thumbup:
    #Kanngeschlossenwerdenodermachtmandasselbst? xd

    Guten Tag/Morgen xd


    Ich bastle zur Zeit an einem Tagging System für SAMP und läuft auch eigentlich alles soweit ganz gut bis auf ein kleiner Fehler der mich zum Verzweifeln bringt.
    Ein paar Infos zum System:
    -Man kann nur als Gangmitglied taggen
    -Man kann Schriftart sowie Farbe und Text wählen
    -Es wird alles per Dini erstellt,geladen und gespeichert


    Mein Problem ist folgendes:
    Ich habe ein /tagremove Befehl eingebaut um eben bereits erstellte Tags wieder zu löschen.
    Die Tags werden alle der Reihe nach erstellt und gespeichert sowie nach einem Restart geladen.
    Nur der /tagremove Befehl bereitet mir Probleme bei der Überprüfung ob ein Spieler in der Nähe ist, ob der Taggername dem Spielername entspricht und bei der Löschung des richtigen Objektes.
    Wenn ich z.b. 2 Tags gesprayt habe und an das erste Tag laufe und /tagremove eingebe kommt die Nachricht: Hier ist kein Tag in der Nähe und Du hast dein Tag entfernt und das 2 Tag verschwindet.
    Allerdings ist im Scriptfiles ordner die richtige Datei gelöscht worden und nach einem Restart ist das richtige Tag was gelöscht werden sollte verschwunden und das andere was vor dem Restart weg war wieder da.
    Eine Dini Datei eines Tags ist so benannt: Graffiti_0,Graffiti_1 usw und diese werden auch richtig erstellt wenn man mehrere Tags sprayt :D


    Ich hoffe das war soweit es geht gut erklärt und ich hoffe mir kann geholfen werden :D
    (Ich bekomme das ordentliche Einrücken mit dem Quellcode irgendwie nicht ganz so hin xd)





    Wenn du was definiert hast musste es auch benutzen.
    In deinem Fall:



    //Oben
    #define gsfraktrang1 "Anfänger"
    #define gsfraktrang2 "Laufbursche"
    #define gsfraktrang3 "Autopolierer"
    #define gsfraktrang4 "Homie"
    #define gsfraktrang5 "Unterboss"
    #define gsfraktrang6 "Boss"


    //Musst die Ränge für jede Fraktion definieren.


    ocmd:f(playerid,params[])
    {
    new FRank[64];
    new text[128];
    if(!isPlayerInFrakt(playerid,1)))return SendClientMessage(playerid,rot,"Du bist kein Mitglied einer Gang!");//Überprüft ob der Spieler Mitglied einer Gang ist(Evtl. Abfrage ändern
    if(sscanf(params,"s",text))return SendClientMessage(playerid,rot,"Benutze: /f [Text]");
    switch(GetPVarInt(playerid,"Fraktion"))//Durch deine Abfrage ersetzen
    {
    case 1:
    {
    switch(GetPVarInt(playerid,"Rang"))//Durch deine Abfrage ersetzen
    {
    case 1:{FRank=gsfraktrang1;}
    case 2:{FRank=gsfraktrang1;}}
    case 3:{FRank=gsfraktrang1;}}
    case 4:{FRank=gsfraktrang1;}}
    case 5:{FRank=gsfraktrang1;}}
    case 6:{FRank=gsfraktrang1;}}
    }
    }
    format(text,sizeof(text),"** %s %s: %s **",FRank,SpielerName(playerid),text);
    for(new i=0; i<GetMaxPlayers(); i++)
    {
    if(IsPlayerConnected(i))
    {
    if(GetPVarInt(i,"Fraktion") == GetPVarInt(playerid,"Fraktion"))//Überprüft welche Spieler in der Fraktion sind wie derjeniger der /f eingibt(Evtl. Abfrage ersetzen)
    {
    SendClientMessage(i,dunkelblau,text);//Sendet die Nachricht an alle Spieler die in der Fraktion sind wie derjenige der /f eingegeben hat
    }
    }
    }
    return 1;
    }


    Ich hoffe das hilft dir :)

    Brandi was soll man dazu noch sagen?
    Die Map ist,wie halt alle Maps von dir,einfach nur geil.
    Nur ist meine Vorstellung eines Krankenhauses etwas anders, was aber nicht zur Sache tut.


    10/10 :love:

    Hey ich weisst nicht ob du das immernoch brauchst aber ich habe es wie folgt gelöst:


    Zuerst habe ich einen /setswat Befehl,der einen Spieler der beim LSPD oder SFPD ist zum SWAT-Dienst einteilt:

    ocmd:setswat(playerid,params[])
    {
    new string[128],pID;
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,rot,"Benutze: /setswat [ID]");
    if(isPlayerAnLeader(playerid,1) || isPlayerAnLeader(playerid,2))
    {
    if(isPlayerInFrakt(pID,1) || isPlayerInFrakt(pID,2))
    {
    format(string,sizeof(string),"%s hat dich für den SWAT-Dienst eingeteilt!",SpielerName(playerid));
    SendClientMessage(pID,grün,string);
    format(string,sizeof(string),"Du hast %s für den SWAT-Dienst eingeteilt!",SpielerName(pID));
    SendClientMessage(playerid,grün,string);
    SetPVarInt(pID,"SwatMember",1);
    SetPVarInt(pID,"SwatZugeteilt",1);
    SetPVarString(pID,"Name",SpielerName(pID));
    format(string,sizeof(string),"Denke daran %s einen Decknamen zuzuteilen!",SpielerName(pID));
    SendClientMessage(playerid,orange,string);
    }
    else if(!isPlayerInFrakt(pID,1) || isPlayerInFrakt(pID,2))
    {
    SendClientMessage(playerid,rot,"Dieser Spieler ist kein Mitglied des LSPD´s oder SFPD´s!");
    }
    else if(!isPlayerAnLeader(playerid,1) || isPlayerAnLeader(playerid,2))
    {
    SendClientMessage(playerid,rot,"Du bist kein Leader des LSPD´s oder SFPD´s!");
    }
    }
    return 1;
    }

    Danach habe ich einen Befehl womit der Leader des LSPD oder SFPD´s einem SWAT´ler einen Decknamen zuweisen kann:

    ocmd:setdeckname(playerid,params[])
    {
    new string[128],pID,dname[64];
    if(sscanf(params,"us",pID,dname))return SendClientMessage(playerid,rot,"Benutze: /setdeckname [ID] [Name]");
    if(isPlayerAnLeader(playerid,1) || isPlayerAnLeader(playerid,2))
    {
    SetPVarString(playerid,"Deckname",dname);
    format(string,sizeof(string),"%s hat dir einen Decknamen zugeteilt.Dein Deckname lautet nun: %s",SpielerName(playerid),dname);
    SendClientMessage(pID,grün,string);
    }
    return 1;
    }


    Und zum Schluss der /swatduty Befehl:

    ocmd:swatduty(playerid,params[])
    {
    new dname[64];
    new name[64];
    if(GetPVarInt(playerid,"SwatMember")==1)
    {
    if(GetPVarInt(playerid,"swatduty")==0)
    {
    GetPVarString(playerid, "Deckname", dname, 64);
    SetPlayerName(playerid,dname);
    SetPVarInt(playerid,"Copskin",GetPlayerSkin(playerid));
    SetPlayerSkin(playerid,285);
    SendClientMessage(playerid,lila,"Du holst deine Marke aus dem Spind und meldest dich zum Dienst!");
    SetPVarInt(playerid,"swatduty",1);
    }
    else if(GetPVarInt(playerid,"swatduty")==1)
    {
    GetPVarString(playerid, "Name", name, 64);
    SetPlayerName(playerid,name);
    SetPlayerSkin(playerid,GetPVarInt(playerid,"Copskin"));
    SendClientMessage(playerid,lila,"Du legst deine Marke in den Spind und meldest dich ausser Dienst!");
    SetPVarInt(playerid,"swatduty",0);
    }
    }
    return 1;
    }


    Ich hoffe das hilft dir.


    Mit freundlichen Grüßen,


    DruM


    Function OnPlayerDeath(playerid, killerid, reason)
    {
    if(!IsACop(killerid) || !IsAFBI(killerid)) //Abfrage ob die Person, die jemanden getötet hat ein Cop oder FBI Agent ist, musst Du für dein Script anpassen
    {
    WantedLevel[killerid]+=2; //Wenn du Godfather nutzt } return 1;
    }
    return 1;
    }
    M_OnPlayerDeath(playerid,killerid,reason);


    Versuchs mal so?? :D

    Moin Leute,ich habe mir nen kleinen /invite Befehl für meine Fraktionen erstellt.Nun wollte ich fragen, wie ich das scripte,dass derjenige der eingeladen wurde, sich einen Skin in einer Skinauswahl nur mit den jeweiligen Fraktionskins aussuchen kann.
    Ich besitze ein Selfmade.
    Ich hoffe ihr könnt mir helfen,denn was wäre mir sehr wichtig.


    Hier mal mein /invite:

    ocmd:invite(playerid,params[])
    {
    new ziel,string[128];
    if(sscanf(params,"u",ziel))return SendClientMessage(playerid,ROT,"Benutze: /invite [ID]");
    if(SpielerInfo[playerid][gLeader] == 1)
    {
    if(SpielerInfo[playerid][gTeam] == 1){ SpielerInfo[ziel][gTeam] = 1;SetPlayerSkin(ziel,266);format(string,sizeof(string),"%s hat dich in die Fraktion ''LSPD'' eingeladen",SpielerName(playerid));SendClientMessage(ziel,HELLBLAU,string);}
    else if(SpielerInfo[playerid][gTeam] == 2){ SpielerInfo[ziel][gTeam] = 2;SetPlayerSkin(ziel,281);format(string,sizeof(string),"%s hat dich in die Fraktion ''SFPD'' eingeladen",SpielerName(playerid));SendClientMessage(ziel,HELLBLAU,string);}
    else if(SpielerInfo[playerid][gTeam] == 3){ SpielerInfo[ziel][gTeam] = 3;SetPlayerSkin(ziel,165);format(string,sizeof(string),"%s hat dich in die Fraktion ''F.B.I.'' eingeladen",SpielerName(playerid));SendClientMessage(ziel,HELLBLAU,string);}
    else if(SpielerInfo[playerid][gTeam] == 4){ SpielerInfo[ziel][gTeam] = 4;SetPlayerSkin(ziel,287);format(string,sizeof(string),"%s hat dich in die Fraktion ''Bundeswehr'' eingeladen",SpielerName(playerid));SendClientMessage(ziel,HELLBLAU,string);}
    else if(SpielerInfo[playerid][gTeam] == 5){ SpielerInfo[ziel][gTeam] = 5;SetPlayerSkin(ziel,275);format(string,sizeof(string),"%s hat dich in die Fraktion ''Sanitäter'' eingeladen",SpielerName(playerid));SendClientMessage(ziel,HELLBLAU,string);}
    else if(SpielerInfo[playerid][gTeam] == 6){ SpielerInfo[ziel][gTeam] = 6;SetPlayerSkin(ziel,50);format(string,sizeof(string),"%s hat dich in die Fraktion ''ADAC'' eingeladen",SpielerName(playerid));SendClientMessage(ziel,HELLBLAU,string);}
    else if(SpielerInfo[playerid][gTeam] == 7){ SpielerInfo[ziel][gTeam] = 7;SetPlayerSkin(ziel,127);format(string,sizeof(string),"%s hat dich in die Fraktion ''Hitman Agentur'' eingeladen",SpielerName(playerid));SendClientMessage(ziel,HELLBLAU,string);}
    else if(SpielerInfo[playerid][gTeam] == 8){ SpielerInfo[ziel][gTeam] = 8;SetPlayerSkin(ziel,30);format(string,sizeof(string),"%s hat dich in die Fraktion ''Terroristen'' eingeladen",SpielerName(playerid));SendClientMessage(ziel,HELLBLAU,string);}
    else if(SpielerInfo[playerid][gTeam] == 9){ SpielerInfo[ziel][gTeam] = 9;SetPlayerSkin(ziel,123);format(string,sizeof(string),"%s hat dich in die Fraktion ''Yakuza'' eingeladen",SpielerName(playerid));SendClientMessage(ziel,HELLBLAU,string);}
    else if(SpielerInfo[playerid][gTeam] == 10){ SpielerInfo[ziel][gTeam] = 10;SetPlayerSkin(ziel,124);format(string,sizeof(string),"%s hat dich in die Fraktion ''La Cosa Nostra'' eingeladen",SpielerName(playerid));SendClientMessage(ziel,HELLBLAU,string);}
    else if(SpielerInfo[playerid][gTeam] == 11){ SpielerInfo[ziel][gTeam] = 11;SetPlayerSkin(ziel,107);format(string,sizeof(string),"%s hat dich in die Fraktion ''Grove Street'' eingeladen",SpielerName(playerid));SendClientMessage(ziel,HELLBLAU,string);}
    else if(SpielerInfo[playerid][gTeam] == 12){ SpielerInfo[ziel][gTeam] = 12;SetPlayerSkin(ziel,104);format(string,sizeof(string),"%s hat dich in die Fraktion ''Ballas'' eingeladen",SpielerName(playerid));SendClientMessage(ziel,HELLBLAU,string);}
    else if(SpielerInfo[playerid][gTeam] == 13){ SpielerInfo[ziel][gTeam] = 13;SetPlayerSkin(ziel,114);format(string,sizeof(string),"%s hat dich in die Fraktion ''Mara Salvatrucha'' eingeladen",SpielerName(playerid));SendClientMessage(ziel,HELLBLAU,string);}
    else if(SpielerInfo[playerid][gTeam] == 14){ SpielerInfo[ziel][gTeam] = 14;SetPlayerSkin(ziel,248);format(string,sizeof(string),"%s hat dich in die Fraktion ''Banditos'' eingeladen",SpielerName(playerid));SendClientMessage(ziel,HELLBLAU,string);}
    }
    else if(SpielerInfo[playerid][gLeader] == 0)
    {
    SendClientMessage(playerid,ROT,"Du bist kein Leader einer Fraktion!");
    }
    return 1;
    }

    Mit freundlichen Grüßen,


    DruM

    Moin Brand :P Also spontan würd das so machen:


    Oben irgendwo:



    new InDM1[MAX_PLAYERS]; // Erstellt eine neue Variable


    Dann bei public OnPlayerConnect:

    InDM1[playerid] = 0; // Setzt die oben erstellte Variable bei jedem Connect auf 0,sprich man ist nicht in der DM Arena 1


    Dann noch bei public OnPlayerDisconnect:

    InDM1[playerid] = 0; //Setzt die oben erstellte Variable bei jedem Disconnect auf 0,sprich man ist nicht in der DM Arena 1

    bei public OnPlayerDeath:

    if(InDM1[playerid] == 1) // Fragt ab ob die oben erstellte Variable von dem Spieler der gestorben ist auf 1 ist
    {
    SetPlayerPos(playerid,4255.0171,1339.7206,70.9211); //Spawnt den Spieler in der Arena(Habe die Kords von Brand genommen)
    }


    Und hier noch dein CMD:

    if(strcmp(cmdtext,"/dm1",true)==0)
    {
    if(InDM1[playerid] == 1)
    {
    SetPlayerPos(playerid,4255.0171,1339.7206,70.9211);
    SetPlayerFacingAngle(playerid,358.7274);
    SendClientMessage(playerid,ORANGE,"Du bist DM 1 beigetreten. ");
    }
    else
    {
    SendClientMessage(playerid,*EureFarbe,"Du bist bereits in der DM Arena 1!");
    }
    return 1;
    }


    Und hier der /exit Befehl:

    ocmd:exit(playerid,params[]) // OCMD Befehl^^
    {
    if(InDM1[playerid] == 1)// Fragt ab ob die Variable des Spieler der den Befehl eingibt auf 1 ist.
    {
    SetPlayerPos(playerid,X,Y,Z); // Wo er nach eingeben von /exit hingespawnt werden soll
    SendClientMessage(playerid,*EureFarbe,"Du hast die DM Arean 1 verlassen!");// Sollte klar sein
    }
    else if(InDM1[playerid] == 0)// Wenn die Variable des Spielers nicht auf 1 ist,sondern auf 0.
    {
    SendClientMessage(playerid,*EureFarbe,"Du bist nicht in der DM Arena 1!");//Sollte klar sein
    }
    return 1;
    }

    Ihr müsst die Koords natürlich mit euren ersetzen :P



    //edit: /exit Befehl hinzugefügt
    //edit2: Was hinzugefügt

    Moin.Also ich hab das folgender Maßen gemacht:


    Zuerst:

    #define PDRang1 "Praktikant"// LS und SF PD
    #define PDRang2 "Polizeimeisteranwärter"// LS und SF PD
    #define PDRang3 "Polizeikommissar "// LS und SF PD
    #define PDRang4 "Polizeioberkommissar "// LS und SF PD
    #define PDRang5 "Polizeihauptkommissar "// LS und SF PD
    #define PDRang6 "Polizeidirektor "// LS und SF PD
    #define PDRang7 "Leitender Polizeidirektor"// LS und SF PD

    Kannst du auch anpassen,habe aber für LSPD und SFPD die gleichen Ränge genommen


    Hier der /geberang Befehl:

    ocmd:geberang(playerid,params[])
    {
    if(isPlayerLeader(playerid,1)) // Musst du auch anpassen,hab mir dafür ein stock gebastelt :D
    {
    new pID, rank,rankup[64],rankdown[64];
    if(sscanf(params,"ui",pID,rank))return SendClientMessage(playerid,ROT,"/rank [spieler] [rank]");
    new altrank = GetPVarInt(pID,"FRank");
    format(rankdown,sizeof(rankdown),"Du hast ein Rankdown erhalten, dein aktueller Rank ist %i.",rank);
    format(rankup,sizeof(rankup),"Du hast ein Rankup erhalten, dein aktueller Rank ist %i.",rank);
    if(altrank > rank){SendClientMessage(playerid,ROT,rankdown);}
    if(altrank < rank){SendClientMessage(playerid,BLAU,rankup);}
    SetPVarInt(pID,"FRank",rank);
    }
    else
    {
    SendClientMessage(playerid,ROT,"Du bist kein Leader einer Fraktion.");
    }
    return 1;
    }


    Ich hoffe das konnte dir helfen.
    Mit freundlichen Grüßen,


    DruM


    Das wäre dann aber Rcon Admin.Ich glaube er meint dass man den Befehl als normaler Admin benutzen kann.


    Fly0in0the0Sky Dazu bräuchten wir deine Admin Abfrage :)

    Hey,ich schicke dir einfach mal mein /supmobil Befehl :D


    Zuerst machst du oben bei deinen news:

    new HatSupmobil[MAX_PLAYERS];
    new Supmobil;

    Dann hier der Befehl um das Supmobil zu spawnen:

    if(strcmp(cmd, "/supmobil", true) == 0)
    {
    if(!isPlayerAnAdmin(playerid,1))return SendClientMessage(playerid,ROT,"Du bist kein Admin.");
    {
    tmp = strtok(cmdtext,idx);
    if(!strlen(tmp)){SendClientMessage(playerid,ROT,"Benutze /supmobil !");
    {
    if(HatSupmobil[playerid] == 0)
    {
    new Float:x,Float:y,Float:z,Float:a;
    GetPlayerPos(playerid,x,y,z);
    GetPlayerFacingAngle(playerid,a);
    Supmobil = CreateVehicle(560,x,y,z,a,-1,-1,-1);
    SetVehicleVirtualWorld(Supmobil,GetPlayerVirtualWorld(playerid));
    PutPlayerInVehicle(playerid, Supmobil, 0);
    ChangeVehicleColor(Supmobil,181,181);
    SendClientMessage(playerid,ORANGE,"Du hast dir ein Supmobil gespawnt");
    HatSupmobil[playerid] = 1;
    }
    else if(HatSupmobil[playerid] == 1)
    {
    DestroyVehicle(Supmobil);
    HatSupmobil[playerid] = 0;
    SendClientMessage(playerid,ORANGE,"Du hast dein Supmobil zerstört!");
    }
    }
    }
    }
    return 1;
    }


    Und zu guter letzt bei public OnPlayerStateChange folgendes einfügen:

    if(newstate==PLAYER_STATE_DRIVER)
    {
    if(GetPlayerVehicleID(playerid)==Supmobil)
    {
    if(isPlayerAnAdmin(playerid,1))
    {
    SendClientMessage(playerid,ORANGE,"Herzlich Willkommen im Supmobil");
    SendClientMessage(playerid,ORANGE,"Bitte denke daran,dass das Supmobil lediglich zum Supporten da ist!");
    SendClientMessage(playerid,ORANGE,"Denke außerdem bitte immer daran,im Supmobil immer als Admin on duty zu sein(/aduty)!");
    }
    else
    {
    RemovePlayerFromVehicle(playerid);
    SendClientMessage(playerid,ROT,"Du bist kein Admin!");
    }
    }
    }

    Ich hoffe das konnte helfen.
    Mit freundlichen Grüßen,


    DruM