Beiträge von Brand

    Huhu,

    ich habe zureit ein kleines Problem und zwar wollte ich in mein Script eine Skinauswahl einbaun wo auch der Skin mit Dini gespeichert werden soll. Ich dachte eig. es wäre recht einfach aber es klappt jetzt doch nicht so wie ich es mir vorgestellt habe. Daher hoffe ich das mir hier jemannd helfen kann.


    Zum Speichern & Laden benutz ich das:



    stock SpielerSpeichern(playerid)
    {
    if(GetPVarInt(playerid,"loggedin")==1)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(Spielerdatei,"Skin",GetPlayerSkin(playerid));



    stock LoadAccount(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
    GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
    SetPlayerSkin(playerid,dini_Int(Spielerdatei,"Skin"));


    Doch jetzt zu meinem Problem und zwar wie benutz ich das im Script bzw. wie sage ich dem Script das er jetzt den Skin in der Dini Datei ändern soll?
    Zurzeit sieht das bei mir so aus:


    if(dialogid == DIALOG_SKINTERROR)
    {
    if(response==0)
    {
    SendClientMessage(playerid,ROT,"Du hast den Vorgang abgebrochen.");
    return 1;
    }
    if(listitem == 0)
    {
    SetPlayerSkin(playerid,220);
    SendClientMessage(playerid,GRÜN,"Du hast deinen Skin geändert!");
    }
    if(listitem == 1)
    {
    SetPlayerSkin(playerid,221);
    SendClientMessage(playerid,GRÜN,"Du hast deinen Skin geändert!");
    }
    if(listitem == 2)
    {
    SetPlayerSkin(playerid,222);
    SendClientMessage(playerid,GRÜN,"Du hast deinen Skin geändert!");
    }
    }


    Er ändert es zwar für den moment aber es wird nicht gespeichert.
    Was muss ich tuhn damit er es direkt speichert?


    SetPVarInt(playerid,"Skin",GetPlayerSkin(playerid));


    So etwas aber wo soll ich dort die Skinid reinpacken?


    hoffe mir kann jemannd helfen. - MfG Brand

    huhu,
    ich weiß ja nicht was du zum speichern verwendest aber so könnte es aussehen:


    public OnPlayerDeath(playerid, killerid, reason)
    {
    GivePlayerMoney(killerid,900); // Hier wird des Geld dazu gegeben
    SetPlayerScore(killerid,GetPlayerScore(killerid)+2); // des +2 kannst ja durch +3 austauschen wenn er halt 3 levels steigen soll

    GivePlayerMoney(playerid,-900); //da ist des Geld also er bekommt 900 abgezogen
    SetPlayerScore(playerid,GetPlayerScore(playerid)-2); //genau wie oben -2 austauschen wenn er mehr oder weniger verlieren soll
    }

    Hallo zusammen,
    ich bin gerade dran ein Script zuerstellen und hänge gerade an dem Problem mit den Kills & Deaths abspeichern. Im prinzip funktioniert es, aber wenn ich Sterbe geht bei Kills +1 und bei Deaths +1. Ich poste am besten mal meinen Code:


    Erstmal SpielerSpeichern:


    stock SpielerSpeichern(playerid)
    {
    if(GetPVarInt(playerid,"loggedin")==1)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
    dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));
    dini_IntSet(Spielerdatei,"Adminlevel",GetPVarInt(playerid,"Adminlevel"));
    dini_IntSet(Spielerdatei,"Fraktion",GetPVarInt(playerid,"Fraktion"));
    dini_IntSet(Spielerdatei,"Kills",GetPVarInt(playerid,"Kills"));
    dini_IntSet(Spielerdatei,"Deaths",GetPVarInt(playerid,"Deaths"));
    dini_IntSet(Spielerdatei,"Baned",GetPVarInt(playerid,"Baned"));
    }
    return 1;
    }


    LoadAccount:


    stock LoadAccount(playerid)
    {
    new Spielerdatei[64];
    new name[MAX_PLAYER_NAME];
    GetPlayerName(playerid,name,sizeof(name));
    format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.txt",name);
    SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
    GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));
    SetPVarInt(playerid,"Adminlevel",dini_Int(Spielerdatei,"Adminlevel"));
    SetPVarInt(playerid,"Fraktion",dini_Int(Spielerdatei,"Fraktion"));
    SetPVarInt(playerid,"Kills",dini_Int(Spielerdatei,"Kills"));
    SetPVarInt(playerid,"Deaths",dini_Int(Spielerdatei,"Deaths"));
    SetPVarInt(playerid,"Baned",dini_Int(Spielerdatei,"Baned"));
    if(GetPVarInt(playerid,"Baned")==1)
    {
    SendClientMessage(playerid,ROT,"Du bist vom Server gebannt.");
    Kick(playerid);
    }
    SetPVarInt(playerid,"loggedin",1);
    return 1;
    }


    Zu dem /stats Befehl:


    if(strcmp(cmdtext,"/stats",true)==0)
    {
    new string[128];
    new fraktname[64];
    switch(GetPVarInt(playerid,"Fraktion"))
    {
    case 0:{fraktname="Keine";}
    case 1:{fraktname=fraktname1;}
    case 2:{fraktname=fraktname2;}
    case 3:{fraktname=fraktname3;}
    }
    //1 reihe
    SendClientMessage(playerid,HELLBLAU,"|________________Statistik________________|");
    format(string,sizeof(string),"[Name: %s] [Level: %i] [Adminlevel: %i] [Fraktion: %s]",SpielerName(playerid),GetPlayerScore(playerid),GetPVarInt(playerid,"Adminlevel"),fraktname);
    SendClientMessage(playerid,HELLBLAU,string);
    //2 reihe
    format(string,sizeof(string),"[Kills: %i] [Deaths: %i]",GetPVarInt(playerid,"Kills"),GetPVarInt(playerid,"Deaths"));
    SendClientMessage(playerid,HELLBLAU,string);
    return 1;
    }


    Und jetzt zu meinem Hauptproblem dem public OnPlayerDeath:


    public OnPlayerDeath(playerid, killerid, reason)
    {
    //Killerid
    GivePlayerMoney(killerid,150);
    {
    SetPlayerScore(killerid,(GetPlayerScore(killerid)+1));
    SetPVarInt(killerid,"Level", GetPVarInt (killerid, "Level") + 1);
    SetPVarInt(killerid,"Kills", GetPVarInt (killerid, "Kills") + 1);
    }

    GivePlayerMoney(playerid,-100);
    {
    SetPVarInt(playerid,"Deaths", GetPVarInt (playerid, "Deaths") + 1);
    }


    //Message
    SendDeathMessage(killerid, playerid, reason);
    GameTextForPlayer(playerid,"~w~Death",1000,3);
    GameTextForPlayer(killerid,"~w~Kill",1000,3);
    return 1;
    }


    ich hoffe mir kann jemannd helfen. Da ich mit dem Scripten noch recht am Anfang stehe.


    MfG Brand

    Huhu, ich habe im prinzip genau das selbe problem da ich auch noch nicht solange Scripte.
    Ich hab bis jetzt schon den Portbefehl nur ich möchte es auch so haben, dass wenn man den Befehl nutz das man automatisch immer an dieser Stelle wieder spawnt. Bis man z.b. ein Befehl wie /exit macht und somit dann direkt wieder an seinem gewohnten Platz spawnt. Am besten wär es auch wenn das nicht gespeichert werden würde, also der neue spawn der durch /dm1 kommt, denn falls ein Spieler in der dm arena off geht ohne /exit zumachen würde er ja immer wieder da spawnen das sollte nicht sein.


    if(strcmp(cmdtext,"/dm1",true)==0)
    {
    SetPlayerPos(playerid,4255.0171,1339.7206,70.9211);
    SetPlayerFacingAngle(playerid,358.7274);
    SendClientMessage(playerid,ORANGE,"Du bist DM 1 beigetreten. ");
    }

    Hallo zusammen,
    als ich eben meinen MTA - Ordner aufräumte, fand ich einige Maps die ich nicht mehr benötige. Da dachte ich mir ich veröffentliche sie hier, denn vllt. kann ja jemannd was damit anfangen. Falls die Map euch gefällt - ich lade demnächst noch weitere hoch.


    Da die Map recht Groß ist passt sie leider nicht auf ein Foto. Wahrscheinlich mach ich gleich noch ein Video und packe es dazu.


    Screens:





    Pastebin: http://pastebin.com/2v7NrNDt


    MfG Brand

    Hallo zusammen,


    ich habe ein kleines problem und zwar habe ich in meinem Kompletten Script die Admin Befehle umgestellt, sodass ich sie leicht über einen Stock abfragen kann:


    stock isPlayerAnAdmin(playerid,rang)
    {
    if(GetPVarInt(playerid,"Adminlevel")>=rang)return 1;
    return 0;
    }


    Und meine Befehle sehen jetzt alle so aus:


    ocmd:sethp(playerid,params[])
    {
    if(!isPlayerAnAdmin(playerid,1))return SendClientMessage(playerid,ROT,"Du bist kein Admin.");
    {
    new pID;
    new Float:hp;
    if(sscanf(params,"uf",pID,hp)) return SendClientMessage(playerid,BLAU,"/sethp [ID/Name] [Wert]");
    SetPlayerHealth(pID,hp);
    }
    return 1;
    }


    Weil ich wollte das wenn ein nicht Admin /sethp eingibt nicht sieht wie er es ausführen muss. Wenn er es dann komplett eingibt also /sethp 5 100 würde es nicht funktionieren. Aus dem Grund habe ich jetzt alles so umgestellt. Doch zu mein Problem es ist jetzt so das auch kein Admin mehr den Befehl benutzen kann d.h. es kommt "Du bist kein Admin."


    Was kann ich jetzt machen damit die Admins die Befehle wieder nutzen können?
    Ich hoffe ich könnt mir ein paar Tipps geben. :)


    MfG Brand

    Mal eine richtig gute Idee - wenns noch mehr Schriftarten & Designs usw. gibt ist es perfekt! :) 10/10
    Ps: einfach nur auf die Werbung drücken? - Wenn ja hab ich gedrückt :D

    Ja die Bank hat wieder viele Lichter :D , aber ich finde gut das sich die Maps großteils ähneln, weil wenn alles anderst aussieht ist es auch blöd es stöhrt dann das gesamt Bild. :)

    Die Idee ist ganz ok, nur bei der Umsetzung fehlt irgendwas für mich sieht es da immernoch zu sauber aus, vllt. mal einen anderen Ort dafür auswählen würde woanderst bestimmt besser kommen. :)