Ivorys {Script-Frage-Thread]

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

  • ocmd:makeleader(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,5))return SendClientMessage(playerid,ROT,"Du bist nicht mindestestens Adminlevel 5!");
    new pID, fraktid;
    if(sscanf(params,"ui",pID,fraktid))return SendClientMessage(playerid,ROT,"Tippe: /makeleader [Spielerid] [FraktionsID]");
    SetPVarInt(pID,"Fraktion",fraktid);
    printf("FraktionID: %d",fraktid);
    new playername[24];
    GetPlayerName(pID, playername, 24);
    new adminname[24];
    GetPlayerName(playerid, adminname, 24);
    new fraktname[64];
    switch(GetPVarInt(pID,"Fraktion"))
    {
    case 0:{fraktname= "Keine";}
    case 1:{fraktname= "LSPD";}
    case 2:{fraktname= "Sanitäter";}
    case 3:{fraktname= "Grove Street";}
    case 4:{fraktname= "Ballas";}
    case 5:{fraktname= "S.F Rifa";}
    case 6:{fraktname= "Transport Gmbh";}
    case 7:{fraktname= "Los Santos Vagos";}
    case 8:{fraktname= "Varios Los Aztecas";}
    case 9:{fraktname= "Ordnugsamt";}
    case 10:{fraktname= "Drogendealer";}
    case 11:{fraktname= "Waffendealer";}
    case 12:{fraktname= "Swat";}
    case 13:{fraktname= "Deutsche Mafia";}
    case 14:{fraktname= "Spanische Mafia";}
    case 15:{fraktname= "LCM";}
    case 16:{fraktname= "Yakuza Mafia";}
    case 17:{fraktname= "Russen Mafia";}
    case 18:{fraktname= "Biker";}
    case 19:{fraktname= "News Reporter";}
    case 20:{fraktname= "Ivory´s Gang";}
    }
    new string[128]; printf("Fraktionsname: %s",fraktname);
    format(string, sizeof(string),"Du hast %s zum [Fraktionsleader von: %s] gemacht!",playername,fraktname);
    SendClientMessage(playerid,BLAU,string);
    format(string, sizeof(string),"AdmCmd: %s hat dich zum [Fraktionsleader von: %s] gemacht!",adminname,fraktname);
    SendClientMessage(pID,BLAU,string);
    printf("pID: %d ZielName: %s",pID,playername);
    SpawnPlayer(pID);
    SpielerSpeichern(pID);
    return 1;
    }

    probier des mal aus und zeig dann mal die .log

  • Log auszug:


    Loaded log file: "server_log.txt".
    ----------


    SA-MP Dedicated Server
    ----------------------
    v0.3e-R2, (C)2005-2012 SA-MP Team


    [17:50:43]
    [17:50:43] Server Plugins
    [17:50:43] --------------
    [17:50:43] Loaded 0 plugins.


    [17:50:43]
    [17:50:43] Filterscripts
    [17:50:43] ---------------
    [17:50:43] Loaded 0 filterscripts.


    [17:50:43] Ladewert = 0
    [17:50:43] Ladewert = 0
    [17:50:43] Ladewert = 0
    [17:50:43] Ladewert = 0
    [17:50:43] Ladewert = 0
    [17:50:43] Ladewert = 0
    [17:50:43] Ladewert = 0
    [17:50:43] Ladewert = 0
    [17:50:43] Ladewert = 0
    [17:50:43] Ladewert = 0
    [17:50:43] Ladewert = 0
    [17:50:43] Ladewert = 0
    [17:50:43] Ladewert = 0
    [17:50:43] Ladewert = 0
    [17:50:43] Ladewert = 0
    [17:50:43] Ladewert = 15000
    [17:50:43]
    ----------------------------------
    [17:50:43] Hallo und Herzlich Willkommen auf Ivory´s Server
    [17:50:43] ----------------------------------


    [17:50:43] Number of vehicle models: 86
    [17:51:11] Incoming connection: 87.165.117.14:2173
    [17:51:11] [join] Ivory0308 has joined the server (0:87.165.117.14)
    [17:51:41] FraktionID: 1
    [17:51:41] Fraktionsname: LSPD
    [17:51:41] pID: 0 ZielName: Ivory0308
    [17:51:48] FraktionID: 20
    [17:51:48] Fraktionsname: Ivory´s Gang
    [17:51:48] pID: 0 ZielName: Ivory0308
    [17:51:55] [part] Ivory0308 has left the server (0:1)



    Problem besteht immer noch, glaube das kommt daher.


    ocmd:invite(playerid,params[])
    {
    if(GetPVarInt(playerid,"Fraktion") == 0)return SendClientMessage(playerid,ROT,"Du bist keiner Fraktion!");
    if(GetPVarInt(playerid,"Leader") != 1)return SendClientMessage(playerid,ROT,"Du bist kein Leader!");


    ocmd:uninvite(playerid,params[])
    {
    if(GetPVarInt(playerid,"Fraktion") == 0)return SendClientMessage(playerid,ROT,"Du bist keiner Fraktion!");
    if(GetPVarInt(playerid,"Leader") != 1)return SendClientMessage(playerid,ROT,"Du bist kein Leader!");


    Jedoch kann ich die Werte jah auch nicht auf 0 Setzen, somit kann jah jeder aus der Fraktion /invite /uninvite benutzen. Und für die Befehle braucht mann den Wert 1, der jedoch bei /makeleader nicht übergeben wird.


    @iPawn:

  • if(GetPVarInt(playerid,"Leader") != 1)return SendClientMessage(playerid,ROT,"Du bist kein Leader!");


    mach das mal so bei beiden commands
    if(GetPVarInt(playerid,"Leader") == 0)return SendClientMessage(playerid,ROT,"Du bist kein Leader!");
    Du hast es ja gemacht, das leader der selbe ist wie memeber daher kam immer die message

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

  • Jetzt gibt es nur noch 2 Probleme :)


    1. Kann ich aus meiner Fraktion raus, Member anderer Fraktionen /uninivte. Und wenn einer /makeleader bekommt und ich ihn, rauswerfe aus der Fraktion bleibt in seiner USerdatei der Leaderwert von seiner ehemaligen Fraktion. Hoffe ihr könnt mir nochmal helfen :)


    /invite /uninivte können nur noch Leader machen, ist halt nur Blöd das ich als FRAK A Leader, jemand aus Frak B werfen kann.


    ocmd:makeleader(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,5))return SendClientMessage(playerid,ROT,"Du bist nicht mindestestens Adminlevel 5!");
    new pID, fraktid;
    if(sscanf(params,"ui",pID,fraktid))return SendClientMessage(playerid,ROT,"Tippe: /makeleader [Spielerid] [FraktionsID]");
    SetPVarInt(pID,"Fraktion",fraktid);
    SetPVarInt(pID,"Leader",fraktid);
    new playername[24];
    GetPlayerName(pID, playername, 24);
    new adminname[24];
    GetPlayerName(playerid, adminname, 24);
    SpielerSpeichern(pID);
    new fraktname[64];
    switch(GetPVarInt(pID,"Fraktion"))
    {
    case 0:{fraktname= "Keine";}
    case 1:{fraktname= "LSPD";}
    case 2:{fraktname= "Sanitäter";}
    case 3:{fraktname= "Grove Street";}
    case 4:{fraktname= "Ballas";}
    case 5:{fraktname= "S.F Rifa";}
    case 6:{fraktname= "Transport Gmbh";}
    case 7:{fraktname= "Los Santos Vagos";}
    case 8:{fraktname= "Varios Los Aztecas";}
    case 9:{fraktname= "Ordnugsamt";}
    case 10:{fraktname= "Drogendealer";}
    case 11:{fraktname= "Waffendealer";}
    case 12:{fraktname= "Swat";}
    case 13:{fraktname= "Deutsche Mafia";}
    case 14:{fraktname= "Spanische Mafia";}
    case 15:{fraktname= "LCM";}
    case 16:{fraktname= "Yakuza Mafia";}
    case 17:{fraktname= "Russen Mafia";}
    case 18:{fraktname= "Biker";}
    case 19:{fraktname= "News Reporter";}
    case 20:{fraktname= "Ivory´s Gang";}
    }
    new string[128];
    format(string, sizeof(string),"Du hast %s zum [Fraktionsleader von: %s] gemacht!",playername,fraktname);
    SendClientMessage(playerid,BLAU,string);
    format(string, sizeof(string),"AdmCmd: %s hat dich zum [Fraktionsleader von: %s] gemacht!",adminname,fraktname);
    SendClientMessage(pID,BLAU,string);
    SpawnPlayer(pID);
    SpielerSpeichern(pID);
    return 1;
    }


    ocmd:invite(playerid,params[])
    {
    if(GetPVarInt(playerid,"Fraktion") == 0)return SendClientMessage(playerid,ROT,"Du bist keiner Fraktion!");
    if(GetPVarInt(playerid,"Leader") == 0)return SendClientMessage(playerid,ROT,"Du bist kein Leader!");
    new pID,string[128];
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,ROT,"Benutze: /invite [Spieler/ID]");
    new fraktname[64];
    switch(GetPVarInt(playerid,"Fraktion"))
    {
    case 0:{fraktname= "Keine";}
    case 1:{fraktname= "LSPD";}
    case 2:{fraktname= "Sanitäter";}
    case 3:{fraktname= "Grove Street";}
    case 4:{fraktname= "Ballas";}
    case 5:{fraktname= "S.F Rifa";}
    case 6:{fraktname= "Transport Gmbh";}
    case 7:{fraktname= "Los Santos Vagos";}
    case 8:{fraktname= "Varios Los Aztecas";}
    case 9:{fraktname= "Ordnugsamt";}
    case 10:{fraktname= "Drogendealer";}
    case 11:{fraktname= "Waffendealer";}
    case 12:{fraktname= "Swat";}
    case 13:{fraktname= "Deutsche Mafia";}
    case 14:{fraktname= "Spanische Mafia";}
    case 15:{fraktname= "LCM";}
    case 16:{fraktname= "Yakuza Mafia";}
    case 17:{fraktname= "Russen Mafia";}
    case 18:{fraktname= "Biker";}
    case 19:{fraktname= "News Reporter";}
    case 20:{fraktname= "Ivory´s Gang";}
    }
    format(string,sizeof(string),"Du wurdest von Leader %s in die Fraktion: %s eingeladen\nMöchtest du den Invite Akzeptieren?",SpielerName(playerid),fraktname);
    SendClientMessage(pID,GRÜN,string);
    ShowPlayerDialog(pID,diaInvite,DIALOG_STYLE_MSGBOX,"Invite",string,"Annehmen","Ablehnen");
    SetPVarInt(pID,"Frakinvite",GetPVarInt(playerid,"Fraktion"));
    SetPVarInt(pID,"InviteUser",playerid);
    format(string,sizeof(string),"Du hast %s in deine Fraktion: %s eingeladen",SpielerName(pID),fraktname);
    SendClientMessage(playerid,GRÜN,string);
    SendClientMessage(playerid,GRÜN,"Warte auf annahme.....");
    return 1;
    }


    ocmd:uninvite(playerid,params[])
    {
    if(GetPVarInt(playerid,"Fraktion") == 0)return SendClientMessage(playerid,ROT,"Du bist keiner Fraktion!");
    if(GetPVarInt(playerid,"Leader") == 0)return SendClientMessage(playerid,ROT,"Du bist kein Leader!");
    new pID,string[128];
    if(sscanf(params,"u",pID))return SendClientMessage(playerid,ROT,"Benutze: /invite [Spieler/ID]");
    new fraktname[64];
    switch(GetPVarInt(playerid,"Fraktion"))
    {
    case 0:{fraktname= "Keine";}
    case 1:{fraktname= "LSPD";}
    case 2:{fraktname= "Sanitäter";}
    case 3:{fraktname= "Grove Street";}
    case 4:{fraktname= "Ballas";}
    case 5:{fraktname= "S.F Rifa";}
    case 6:{fraktname= "Transport Gmbh";}
    case 7:{fraktname= "Los Santos Vagos";}
    case 8:{fraktname= "Varios Los Aztecas";}
    case 9:{fraktname= "Ordnugsamt";}
    case 10:{fraktname= "Drogendealer";}
    case 11:{fraktname= "Waffendealer";}
    case 12:{fraktname= "Swat";}
    case 13:{fraktname= "Deutsche Mafia";}
    case 14:{fraktname= "Spanische Mafia";}
    case 15:{fraktname= "LCM";}
    case 16:{fraktname= "Yakuza Mafia";}
    case 17:{fraktname= "Russen Mafia";}
    case 18:{fraktname= "Biker";}
    case 19:{fraktname= "News Reporter";}
    case 20:{fraktname= "Ivory´s Gang";}
    }
    format(string,sizeof(string),"Du hast %s aus deiner Fraktion %s geworfen",SpielerName(pID),fraktname);
    SendClientMessage(playerid,ROT,string);
    format(string,sizeof(string),"%s dich aus der Fraktion %s geworfen",SpielerName(playerid),fraktname);
    SendClientMessage(pID,ROT,string);
    SetPVarInt(pID,"Fraktion",0);
    SpawnPlayer(pID);
    SpielerSpeichern(pID);
    return 1;
    }


    stock IsPlayerAnLeader(playerid,fraktid)
    {
    if(GetPVarInt(playerid,"Leader") == fraktid)return 1;
    return 0;
    }


    Mfg


    Ivory

  • Wie wäre es mal mit nachdenken als hier deine codes zu posten.
    Ich glaube du hast System eines Forums missverstanden.
    Zu dem das man hier seine Probleme postet, welche wirklich auch welche sind und nicht das die anderen Leute deine Arbeit machen sollen.


    Zu solch einem Thema passt ein Zitat von Einstein fabellos
    "Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher"


    und das daraus ja kein Spam wird muss natürlich auch etwas poduktives dazu beigetragen werden.
    Gedenk doch mal eine if abfrage einzufügen, welche Abfrägt ob der Spieler, welcher aus der frak raus geworfen wurde auch in deiner ist
    (Operator ==)

  • Jooooar ist jah okay :) Habs mit den /uninivte hinbekommen. Hätte man jah auch selber drauf kommen können. Habe die Abfrage jah schon oft verwendet hihi. Jetzt muss ich nur noch nach dem /uninivte den Leaderwert resetet bekommen. Sry das ich meine Codes gepostet habe :( Wollte es euch nur leichter machen damit ihr auch seht wo der Fehler ist. Kann jah nicht ahnen das es zuviel verlangt ist wenn mann hilfe braucht. Ich will von euch ja nicht das ihr das für mich macht sondern, nur das ihr seht wo ich den Fehler habe und das ihr mir dann auf die Sprünge helft. Mit der if Abfrage hat schon völlig gereicht :). Nur ist das mit dem Leaderwert schon was anderes.


    Mfg


    Ivory