Beiträge von [GM] Giga11

    Guten Tag,


    ich habe einen /su Befehl gescriptet der nach dem Schema /su [ID] [Anzahl] [Grund] funktioniert.
    Wenn ich nun beispielsweise eingebe /su 0 1 Test um mir selbst 1 Wanted zu geben sollte eigentlich "Man kann Polizisten keine Wanteds geben." im Chat stehen, stattdessen steht dort aber "Dieser Spieler ist nicht online."
    Wenn ich eingebe /su 0 1 1 (also statt Grund irgendeine Zahl) funktioniert es.
    Ich weiß nicht wo der Fehler liegt, hier der Befehl:
    ocmd:su(playerid,params[])
    {
    if(!IsPlayerMember(playerid,1) || !IsPlayerLeader(playerid,1))return SendClientMessage(playerid,COLOR_RED,"Du bist kein Mitglied vom LVPD.");
    new pID,Anzahl,reason,string[128];
    if(sscanf(params,"uis",pID,Anzahl,reason))return SendClientMessage(playerid,COLOR_GREY,"Benutze: /su [ID] [Anzahl] [Grund]");
    if(!IsPlayerConnected(pID))return SendClientMessage(playerid,COLOR_RED,"Dieser Spieler ist nicht online.");
    if(IsPlayerMember(playerid,1) || IsPlayerLeader(playerid,1))return SendClientMessage(playerid,COLOR_RED,"Man kann Polizisten keine Wanteds geben.");
    SetPlayerWantedLevel(pID,GetPlayerWantedLevel(pID)+Anzahl);
    format(string,sizeof(string),"Du hast dem Spieler %s %i Wanteds gegeben. Grund: %s.",SpielerName(pID),Anzahl,reason);
    format(string,sizeof(string),"Der Polizist %s hat dir %i Wanteds gegeben. Grund: %s.",SpielerName(playerid),Anzahl,reason);
    SendClientMessage(playerid,COLOR_BLUE,string);
    SendClientMessage(pID,COLOR_BLUE,string);
    SaveAccount(pID);
    return 1;
    }
    Ich hoffe jemand weiß woran es liegt.


    Mit freundlichen Grüßen,
    Mr.Cro997

    es muss doch heissen "!IsPlayerConnected"
    denn sonst fragst du ab, ob er da ist, und wenn er da ist wird der string angezeigt das es nicht Online ist :D


    also einfach das Ausrufezeichen(!) vor das IsPlayerConnected


    //Handy

    Klappt jetzt nachdem ich statt dem sscanf Include den sscanf stock benutze.

    Guten Tag,


    ich habe eben einen Befehl gescriptet mit dem man einen Spieler mit dem Schema /auninvite [ID] [Grund] einen Spieler zum Zivilisten machen kann.
    Wenn ich nun aber beispielsweise eingebe: /auninvite 0 kommt im Chat: Benutze: /auninvite [ID] [Grund].
    Ich hoffe jemand kann mir helfen den Fehler zu lösen.
    Hier der Befehl:
    ocmd:auninvite(playerid,params[])
    {
    if(!IsPlayerAnAdmin(playerid,1337))return SendClientMessage(playerid,COLOR_RED,"Du hast nicht das ausreichende Adminlevel.");
    new pID,reason[64],string[128];
    if(sscanf(params,"us",pID))return SendClientMessage(playerid,COLOR_GREY,"Benutze: /auninvite [ID] [Grund]");
    SetPVarInt(pID,"Fraktion",0);
    format(string,sizeof(string),"Du hast den Spieler %s aus seiner Fraktion geworfen.",SpielerName(pID));
    SendClientMessage(playerid,COLOR_ORANGE,string);
    format(string,sizeof(string),"Du wurdest vom Admin %s aus deiner Fraktion geworfen. Grund: %s.",SpielerName(playerid),reason);
    SendClientMessage(pID,COLOR_ORANGE,string);
    SpawnPlayer(pID);
    SetPlayerInterior(pID,0);
    SaveAccount(pID);
    return 1;
    }


    Mit freundlichen Grüßen,
    Mr.Cro997

    Guten Tag,


    ich bin gerade dabei einen Server zu scripten der in LV spielt.
    Meine frage an euch ist nun: Soll auf dem Server LV Las Venturas oder Las Vegas bedeuten, bzw. darf ich den Namen Las Vegas überhaupt verwenden?
    Ich hoffe jemand beantwortet meine Frage.


    Mit freundlichen Grüßen,
    Mr.Cro997

    Ich Chat steht: Der Spieler ist nicht online.

    Wenn ich mache /kick 0 test kommt da: [AdmCmd] wurde von Smokey gekickt. Grund:
    Server unknown command.

    Guten Morgen,


    ich habe ein Problem mit meinem Kick Befehl.
    Ich habe bereits die Suchfunktion benutzt und mir sehr viele Beiträge angeschaut aber keiner hat mir geholfen.
    Mein Problem ist: Wenn ich beispielsweise /kick 0 Test eingebe, steht nur im Chat: AdmCmd: wurde von Smokey gekickt. Grund:
    Dies passiert auch wenn ich ID 1 nehme, obwohl diese ID nicht mal online ist.


    Ich habe das Problem auch noch mal in einem Video aufgenommen:
    http://www.youtube.com/watch?v=5LWLsJheB6s&feature=youtu.be


    Hier mein /kick Befehl:
    ocmd:kick(playerid,params[])
    {
    if(!IsPlayerAnAdmin(playerid,1))return SendClientMessage(playerid,COLOR_RED,"Du hast nicht das ausreichende Adminlevel.");
    new pID, reason[128], string[128];
    if(sscanf(params,"us[128]",pID,reason))return SendClientMessage(playerid,COLOR_RED,"Benutze: /kick [ID] Grund]");
    format(string,sizeof(string),"AdmCmd: %s wurde von %s gekickt. Grund: %s.",Spielername(pID),Spielername(playerid),reason);
    SendClientMessageToAll(COLOR_RED,string);
    Kick(pID);
    return 1;
    }
    Ich hoffe mir kann jemand helfen meinen /kick Befehl funktionsfähig zu machen.


    Mit freundlichen Grüßen,
    Mr.Cro997

    Du musst speichern bevor du den Restart machst bzw. vor "gmx".

    Jetzt siehts so aus, funktioniert aber trotzdem nicht:
    if(strcmp(cmdtext, "/gmx", true) == 0)
    {
    if(IsPlayerAnAdmin(playerid,2000))
    {
    for(new i = 0; i < GetMaxPlayers(); i++)
    {
    SaveAccount(i);
    }
    SendClientMessageToAll(COLOR_YELLOW,"[Server-Restart] Der Server wird neugestartet, wir sind gleich wieder zurück.");
    SendRconCommand("gmx");
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du hast nicht das ausreichende Adminlevel.");
    }
    return 1;
    }

    Guten Tag,


    da ich aus Versehen meinen anderen Beitrag auf "Abgeschlossen" gestellt habe erstelle ich jetzt einen neuen Beitrag.
    Und zwar: Alle Sachen werden beim Einloggen normal geladen und bei /q auch gespeichert.
    Bei einem Serverrestart aber werden nur die Sachen gespeichert die es schon in Pawn gibt, also Geld, Fightstyle usw., aber dazugescriptete Dinge wie Bank, Adminlevel usw. werden aber immer wieder auf 0 gesetzt.
    In meinem letzten Beitrag wurde ja schon gesagt, dass ich in den Restart Befehl eine Schleife machen soll die alle Spieler durchläuft und dann speichert, dies habe ich getan, aber nach dem Restart sind die Dinge wieder auf 0 gesetzt.
    Hier mein SaveAccount stock:
    stock SaveAccount(playerid)
    {
    new name[128], save[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(save,sizeof(save),"/Spieler/%s.ini",name);
    if(dini_Exists(save))
    {
    dini_IntSet(save,"Geld",GetPlayerMoney(playerid)); // speichert das aktuelle Geld, was der Spieler zum schluss hatte
    dini_IntSet(save,"Skin",GetPlayerSkin(playerid)); // speichert den aktuellen Skin, welchne der Spieler zum schluss hatte
    dini_IntSet(save,"Bank",GetPVarInt(playerid,"Bank"));
    dini_IntSet(save,"Perso",GetPVarInt(playerid,"Perso"));
    dini_IntSet(save,"Fightstyle",GetPlayerFightingStyle(playerid));
    dini_IntSet(save,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
    dini_IntSet(save,"Fraktion",GetPVarInt(playerid,"Fraktion"));
    dini_IntSet(save,"Level",GetPlayerScore(playerid));
    }
    return 1;
    }


    Mein OnPlayerDisconnect:
    public OnPlayerDisconnect(playerid, reason)
    {
    new name[128], save[128];// Gleiche
    GetPlayerName(playerid,name,sizeof(name)); // wie
    format(save,sizeof(save),"/Spieler/%s.ini",name);// oben
    if(dini_Exists(save)) // steht
    {
    SaveAccount(playerid);
    }
    return 1;
    }


    Und mein Restart Befehl:
    if(strcmp(cmdtext, "/gmx", true) == 0)
    {
    if(IsPlayerAnAdmin(playerid,2000))
    {
    SendClientMessageToAll(COLOR_YELLOW,"[Server-Restart] Der Server wird neugestartet, wir sind gleich wieder zurück.");
    SendRconCommand("gmx");
    for(new i = 0; i < GetMaxPlayers(); i++)
    {
    SaveAccount(i);
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du hast nicht das ausreichende Adminlevel.");
    }
    return 1;
    }



    Ich weiß nicht wo der Fehler liegen könnte und ich hoffe ihr wisst wie ich das Problem lösen kann.


    Mit freundlichen Grüßen,
    Mr.Cro997

    public OnPlayerDisconnect(playerid, reason)
    {
    new name[128], save[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(save,sizeof(save),"/Spieler/%s.ini",name);
    if(dini_Exists(save))
    {
    SaveAccount(playerid);
    }
    return 1;
    }


    [quote='Bluescreen','san-andreas-multiplayer/scripting-base/152717-speicherungs-problem/'Wie Speicherst du es den bei OnPlayerDisconnect?
    Vielleicht hast du es ja dort anderst[/quote]

    Mach die Schleife bei deinem Restart Command, den OnGameModeExit wird aufgerufen wenn kein Spieler mehr auf dem Server ist, soweit ich es weiß, die Schleife unter den /restart Command Packen und dann Probieren:


    for(new i = 0; i < GetMaxPlayers(); i++)
    {
    SaveAccount(i);
    }

    Hat nicht geklappt...
    Mein Restart Befehl sieht so aus:
    if(strcmp(cmdtext, "/gmx", true) == 0)
    {
    if(IsPlayerAnAdmin(playerid,2000))
    {
    SendClientMessageToAll(COLOR_YELLOW,"[Server-Restart] Der Server wird neugestartet, wir sind gleich wieder zurück.");
    SendRconCommand("gmx");
    SaveAccount(playerid);
    for(new i = 0; i < GetMaxPlayers(); i++)
    {
    SaveAccount(i);
    }
    }
    else
    {
    SendClientMessage(playerid,COLOR_RED,"Du hast nicht das ausreichende Adminlevel.");
    }
    return 1;
    }

    Guten Tag,


    ich habe ein Problem mit der Speicherung der Spieler.
    Wenn ich Ingame gehe werden alle Dinge normal geladen und wenn ich /q mache auch gespeichert.
    Wenn ich aber einen Serverrestart mache wird aber nur gespeichert: Skin, Geld, Score und Fightstyle, also alles was es in Pawn schon gibt, solche Dinge wie Bank, oder Perso (also selbst dazugescriptete Dinge) werden aber immer wieder auf 0 gesetzt.
    Ich weiß nicht wo das Problem liegt oder ob es an dem stock liegt in dem der Spieler gespeichert wird.
    Hier mal mein Spieler speichern stock:
    stock SaveAccount(playerid)
    {
    new name[128], save[128];
    GetPlayerName(playerid,name,sizeof(name));
    format(save,sizeof(save),"/Spieler/%s.ini",name);
    dini_IntSet(save,"Geld",GetPlayerMoney(playerid)); // speichert das aktuelle Geld, was der Spieler zum schluss hatte
    dini_IntSet(save,"Skin",GetPlayerSkin(playerid)); // speichert den aktuellen Skin, welchne der Spieler zum schluss hatte
    dini_IntSet(save,"Bank",GetPVarInt(playerid,"Bank"));
    dini_IntSet(save,"Perso",GetPVarInt(playerid,"Perso"));
    dini_IntSet(save,"Fightstyle",GetPlayerFightingStyle(playerid));
    dini_IntSet(save,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
    dini_IntSet(save,"Fraktion",GetPVarInt(playerid,"Fraktion"));
    dini_IntSet(save,"Level",GetPlayerScore(playerid));
    return 1;
    }


    Ich hoffe jemand kann mir irgendwie helfen.


    Mit freundlichen Grüßen,
    Mr.Cro997

    Wenn du was verändern willst, musst du SetPVarInt machen
    also so:
    SetPVarInt(playerid,"Bank", GetPVarInt(playerid,"Bank") + strval(inputtext);

    Danke für die Antwort.
    Die Zeilen kommen ja alle aus meinem Banksystem und meine frage ist jetzt:
    Es heißt ja: + strval... wird dann dem Spieler auch das Geld abgezogen was er überwiesen hat oder muss man dann das + durch ein - austauschen?

    Guten Tag,


    immer wenn ich meine Script compile bekomme ich diese Errors:


    C:\Users\Marcel\Desktop\LV Script [Selfmade]\gamemodes\LegendsLife.pwn(905) : error 022: must be lvalue (non-constant)
    C:\Users\Marcel\Desktop\LV Script [Selfmade]\gamemodes\LegendsLife.pwn(915) : error 022: must be lvalue (non-constant)
    C:\Users\Marcel\Desktop\LV Script [Selfmade]\gamemodes\LegendsLife.pwn(936) : error 022: must be lvalue (non-constant)
    C:\Users\Marcel\Desktop\LV Script [Selfmade]\gamemodes\LegendsLife.pwn(937) : error 022: must be lvalue (non-constant)


    Hier die Zeilen:
    GetPVarInt(playerid,"Bank") += strval(inputtext);
    GetPVarInt(playerid,"Bank") -= strval(inputtext);
    GetPVarInt(playerid,"Bank") -= strval(inputtext);
    GetPVarInt(pID,"Bank") += strval(inputtext);


    Ich hoffe jemand kann mir weiterhelfen.


    Mi freundlichen Grüßen,
    Mr.Cro997