[SAMMELTHREAD] Kleine Scripting Fragen

Dein Problem konnte durch einen User gelöst werden? Bedank dich bei ihm indem du seinen Beitrag als Hilfreich markierst sowie einen Daumen oben dalässt
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
  • CMD:scheine(playerid, params[])
    {
    new giveplayerID, string[128], Float:x, Float:y, Float:z;
    if(sscanf(params, "u", giveplayerID)) return SendClientMessage(playerid, Grau, "Benutzung: /scheine [SpielerID]");
    if(!IsPlayerConnected(giveplayerID)) return NO_CON;
    GetPlayerPos(giveplayerID, x, y, z);
    if(IsPlayerInRangeOfPoint(playerid, 10.0, x, y, z))
    {
    format(string, sizeof(string), "Scheine von %s", SpielerName(playerid));
    SendClientMessage(giveplayerID, COLOR_WHITE, string);
    format(string, sizeof(string), "Führerschein: %s Waffenschein: %s Flugschein %s", (Spieler[playerid][DrivLic] == 1 ? ("Vorhanden") : ("Nicht Vorhanden")), (Spieler[playerid][GunLic] == 1 ? ("Vorhanden") : ("Nicht Vorhanden")), (Spieler[playerid][FlugLic] == 1 ? ("Vorhanden") : ("Nicht Vorhanden")));
    SendClientMessage(giveplayerID, COLOR_GREEN, string);
    format(string, sizeof(string), "Angelschein: %s Bootschein: %s", (Spieler[playerid][AngelLic] == 1 ? ("Vorhanden") : ("Nicht Vorhanden")), (Spieler[playerid][BootLic] == 1 ? ("Vorhanden") : ("Nicht Vorhanden")));
    SendClientMessage(giveplayerID, COLOR_GREEN, string);
    format(string, sizeof(string),"* %s zeigt %s seine Scheine.", Spieler[playerid][pName], Spieler[giveplayerID][pName]);
    ProxDetector(25.0, playerid, string, Grau, Grau2, Grau3, Grau4, Grau5);
    }
    return 1;
    }

  • Einmal Dr Frauenarzt wgen dem Motor mit Taste wo wir net witerkamen und mein makehelfer Befehl bitte.


    ocmd:makehelfer(playerid, params[]){ #pragma unused params if(Eingeloggt[playerid] == 0)return SendClientMessage(playerid, GRAU, "Du bist nicht eingeloggt!"); new pID, adminid, string[128]; if(IsPlayerAdmin(playerid) || SpielerDaten[playerid][pAdmin] < 5) { if(SpielerDaten[playerid][pAdmin] < 7 && adminid > 1)return SendClientMessage(playerid, GRAU, "Du kannst nur den Rang Helfer vergeben."); if(IsPlayerNPC(pID))return 1; if(sscanf(params, "ui", pID, adminid))return SendClientMessage(playerid, GRAU, "Benutze /makehelfer [SpielerID/Name] [Teamrang]"); if(!Eingeloggt[pID])return SendClientMessage(playerid, GRAU, "Dieser Spieler ist nicht eingeloggt!"); if(SpielerDaten[pID][pIntro] < 1)return SendClientMessage(playerid, GRAU, "Der Spieler ist noch im Tutorial."); if(adminid == 0){ format(string, sizeof(string), "Du hast %s aus dem Teamposten %s entlassen", SpielerDaten[pID][pName], GetAdminRangName(pID)); SendClientMessage(playerid, BLAU, string); format(string, sizeof(string), "%s hat dich aus dem Team entlassen!", SpielerDaten[playerid][pName]); SendClientMessage(pID, BLAU, string); format(string, sizeof(string), "AdmCMD: %s hat %s aus dem Team entlassen!", SpielerDaten[playerid][pName], SpielerDaten[pID][pName]); SendAdminMessage(ADMCMD, string); SpielerDaten[pID][pAdmin] = 0; SpielerSpeichern(pID); return 1; } if(adminid < 1 || adminid > MAX_ADMIN)return SendClientMessage(playerid, GRAU, "Dieser Adminrang existriert nicht!"); SpielerDaten[pID][pAdmin] = adminid; format(string, sizeof(string), "Du hast %s den Teamrang %s gegeben", SpielerDaten[pID][pName], GetAdminRangName(pID)); SendClientMessage(playerid, BLAU, string); format(string, sizeof(string), "* %s hat dir den Teamrang %s gegeben", SpielerDaten[playerid][pName], GetAdminRangName(pID)); SendClientMessage(pID, BLAU, string); format(string, sizeof(string), "AdmCMD: %s hat %s zum %s ernannt.", SpielerDaten[playerid][pName], SpielerDaten[pID][pName], GetAdminRangName(pID)); SendAdminMessage(ADMCMD, string); //SpawnPlayerEx(pID); SpielerSpeichern(pID); return 1; } else {SendClientMessage(playerid, GRAU, "Du hast nicht genügend Rechte für diesen Befehl.");} return 1;}
    So hab ichs versucht.

  • makehelfer Befehl bitte.

    1. Leserlich posten.
    2. Erklären was du willst, dass der Befehl bei welchem Level macht.



    Es besteht übrigens auch die Möglichkeit, separate Threads aufzumachen, dann muss man hier nicht kreuz und quer mit zig Antworten dazwischen Probleme lösen.




    Hat mir der Klammer nichts zutun der fehler liegt bei

    ocmd_motor(playerid);

    3HZXdYd.png

    Einmal editiert, zuletzt von Jeffry ()

  • Habe nun das Include eingefügt in den Pawno Include Ordner.
    Habe oben im Script include <timerfix> aber es kommt das ?



    Code
    [11:34:39] [debug] Run time error 19: "File or function is not found"
    [11:34:39] [debug]  KillPlayerTimers
    [11:34:39] [debug] Run time error 19: "File or function is not found"
    [11:34:39] [debug]  KillPlayerTimers
    [11:34:39] Script[gamemodes/selfmade.amx]: Run time error 19: "File or function is not found"
    [11:34:39] Number of vehicle models: 0

    https://github.com/udan11/samp-plugin-timerfix

  • Moin,


    also ich habe folgendes Problem:
    Ich will bei meinem GUI durch das drücken von Button1 im gleichem Fenster einen Text erscheinen lassen. (Das klappt auch)
    Aber nun soll der Text durch drücken von Button2 wieder verschwinden.
    Wie mach ich das?


    Code
    Gui, Add, Button, x552 y575 w100 h30 gButton1 , Button1
    Gui, Add, Button, x662 y575 w100 h30 gButton2 , Button2
    
    
    Button1:
    Gui, Add, Text, x32 y19 w110 h30 , Test
    return
  • Beitrag von Dr. Frauenarzt ()

    Dieser Beitrag wurde vom Autor aus folgendem Grund gelöscht: Selbst gelöst ().
  • Also folgendes Problem:


    Ich möchte ein PayDay System machen, aber nicht jede stunde, sondern einfach so,


    dass die Zeit bis zum PayDay gespeichert wird.



    Folgendes:


    SetTimerEx("PayDayAbzug", 60000, true, "i", playerid);


    Ich überprüfe jede Minute ob PayDay ist mit dem Befehl.


    Und den PayDay sette ich nach


    SetTimerEx("PayDayForPlayer", PlayerInfo[playerid][pPayDayTime] * 1000 * 60, true, "i", playerid);



    public PayDayAbzug(playerid){if(PlayerInfo[playerid][pPayDayTime] >= 60){PayDayForPlayer(playerid);SendClientMessage(playerid,-1,"yo-ho hahaha du hast payday yoo");return 1;}else{PlayerInfo[playerid][pPayDayTime] = PlayerInfo[playerid][pPayDayTime]+=1; // hier wird jede minute +1 addiertreturn 1;}}


    Nach dem PayDay wird der Wert dann auf 1 Gesetzt (da man ja bei 60 Minuten PayDay bekommt)



    Problem ist jedoch, das dann SetTimerEx("PayDayForPlayer", PlayerInfo[playerid][pPayDayTime] * 1000 * 60, true, "i", playerid);


    Mal 1 ausgeführt wird also bekomme ich jede Minute payday.



    [pwn]public PayDayAbzug(playerid){if(PlayerInfo[playerid][pPayDayTime] >= 60)



    Auf 60 Setzten kann ichs auch nicht, da ich ja dann bei PayDayAbzug payday bekomme.


    Pro PayDayAbzug bekomme ich dann ja +1 PayDayTime, welcher natürlich bei


    public PayDay wd auf 1 gesetzt wurde, da ich ihn ja nicht auf 0 setzten kann,


    da ich nicht 0 * 1000 nehmen kann...


    Hab schon viel nachgedacht und bin irgendwie ein bisschen durcheinander gekommen,


    bräuchte da mal ein bisschen hilfe xd












    hier ist btw noch der payday public


    public PayDayForPlayer(playerid){new string[128];new account,interest;new rent = 0;for(new i = 0; i < MAX_PLAYERS; i++){if(IsPlayerConnected(i)){PlayerInfo[playerid][pPayDayTime] = 1;//if(M_Bot[i][PAFK] == 0)//{if(MoneyMessage[i]==1){SendClientMessage(i, COLOR_LIGHTRED, "Du konntest deine Schulden nicht Bezahlen.");GameTextForPlayer(i, "~r~Busted!", 2000, 1);SetPlayerInterior(i, 6);SetPlayerPos(i, 264.6288,77.5742,1001.0391);PlayerInfo[i][pJailed] = 1;ResetPlayerWeapons(i);ResetPlayerMoney(i);WantedLevel[i] = 0;PlayerInfo[i][pJailTime] = 240;format(string, sizeof(string), "Du bist eingesperrt für %d sekunden. Kaution: Keine", PlayerInfo[i][pJailTime]);SendClientMessage(i, COLOR_LIGHTBLUE, string);}new playername2[MAX_PLAYER_NAME];GetPlayerName(i, playername2, sizeof(playername2));account = PlayerInfo[i][pAccount];new key = PlayerInfo[i][pPhousekey];if(key != 255){rent = HouseInfo[key][hRent];if(strcmp(playername2, HouseInfo[key][hOwner], true) == 0){rent = 0;}else if(rent > GetPlayerMoney(i)){PlayerInfo[i][pPhousekey] = 255;SendClientMessage(i, COLOR_WHITE, "You have been evicted.");rent = 0;}HouseInfo[key][hTakings] = HouseInfo[key][hTakings]+rent;}new tmpintrate;if (key != 255 && strcmp(playername2, HouseInfo[key][hOwner], true) == 0){if(PlayerInfo[i][pDonateRank] > 0) { tmpintrate = intrate+4; }else { tmpintrate = intrate+2; }//HouseInfo[key][hLevel]}else{if(PlayerInfo[i][pDonateRank] > 0) { tmpintrate = 3; }else { tmpintrate = 1; }}Tax += TaxValue;//Should work for every player onlinePlayerInfo[i][pAccount] -= TaxValue;if(PlayerInfo[i][pDonateRank] > 0){new bonus = PlayerInfo[i][pPayCheck] / 2;PlayerInfo[i][pPayCheck] += bonus;}new checks = PlayerInfo[i][pPayCheck];new ebill = (PlayerInfo[i][pAccount]/10000)*(PlayerInfo[i][pLevel]);//new oil = (PlayerInfo[i][pPhousekey]*100);ConsumingMoney[i] = 1;GivePlayerMoney(i, checks);PlayerInfo[i][pMoneys] = PlayerInfo[i][pMoneys]+checks;if(PlayerInfo[i][pAccount] > 0){PlayerInfo[i][pAccount] -= ebill;SBizzInfo[4][sbTill] += ebill;}else{ebill = 0;}if(PlayerInfo[i][pPhousekey] != 255){//PlayerInfo[i][pAccount] -= oil;//SBizzInfo[3][sbTill] += oil;}else{//oil = 0;}if(PlayerInfo[i][pMember] == 0 && PlayerInfo[i][pLeader] == 0){checks += 500;}interest = (PlayerInfo[i][pAccount]/1000)*(tmpintrate);PlayerInfo[i][pExp]++;PlayerPlayMusic(i);PlayerInfo[i][pAccount] = account+interest;SendClientMessage(i, COLOR_GOLD, "|================| KONTO AUSZUG |================|");format(string, sizeof(string), " Gehalt: $%d Miete: -$%d Steuern: -$%d", checks, rent, TaxValue);SendClientMessage(i, COLOR_GRAD1, string);if(PlayerInfo[i][pPhousekey] != 255 || PlayerInfo[i][pPbiskey] != 255){format(string, sizeof(string), " Strom Kosten [incl.: Heitzkosten,Wasser: -$%d", ebill);SendClientMessage(i, COLOR_GRAD1, string);}if(PlayerInfo[i][pHandyVer] == 1){SendClientMessage(i,COLOR_GRAD2," Handyvertragskosten: -$100");GivePlayerMoney(i, -100);PlayerInfo[i][pMoneys] = PlayerInfo[i][pMoneys]-100;}format(string, sizeof(string), " Zinsen: $%d [0.%d prozent]", interest,tmpintrate);SendClientMessage(i, COLOR_GRAD2, string);SendClientMessage(i, COLOR_GOLD, "|=================||============||=================|");format(string, sizeof(string), " Neuer Kontostand: $%d", PlayerInfo[i][pAccount]);SendClientMessage(i, COLOR_GRAD5, string);format(string, sizeof(string), "~g~PayDay~y~!!!");GameTextForPlayer(i, string, 5000, 1);rent = 0;PlayerInfo[i][pPayDay] = 0;PlayerInfo[i][pPayCheck] = 0;PlayerInfo[i][pConnectTime] += 1;if(PlayerInfo[i][pDonateRank] > 0){PlayerInfo[i][pPayDayHad] += 1;if(PlayerInfo[i][pPayDayHad] >= 5){PlayerInfo[i][pExp]++;PlayerInfo[i][pPayDayHad] = 0;}}if(PlayerInfo[i][pLevel] >= 0){new nxtlevel = PlayerInfo[i][pLevel]+1;// new costlevel = nxtlevel*levelcost;//10k for testing purposesnew expamount = nxtlevel*levelexp;new infostring[256];if (PlayerInfo[i][pExp] < expamount){format(infostring, 256, " Du brauchst noch mindestens %d Respekt Punkte für ein Level Up, du hast [%d] !",expamount,PlayerInfo[i][pExp]);SendClientMessage(i, COLOR_GRAD1, infostring);PlayerInfo[playerid][pPayDayTime] = 1;return 1;}else{format(string, sizeof(string), "~g~LEVEL UP~n~~w~Du bist jetzt Level %d", nxtlevel);PlayerPlaySound(i, 1052, 0.0, 0.0, 0.0);SetPlayerScore(i,PlayerInfo[i][pLevel]);PlayerPlayMusic(i);// PayDAy SYSPlayerInfo[i][pLevel]++;if(PlayerInfo[i][pDonateRank] > 0){PlayerInfo[i][pExp] -= expamount;new total = PlayerInfo[i][pExp];if(total > 0){PlayerInfo[i][pExp] = total;}else{PlayerInfo[i][pExp] = 0;}}else{PlayerInfo[i][pExp] = 0;}PlayerInfo[i][gPupgrade] = PlayerInfo[i][gPupgrade]+2;GameTextForPlayer(i, string, 5000, 1);format(infostring, 256, " Du hast nun Level %d. Glückwunsch", nxtlevel);SendClientMessage(i, COLOR_GRAD1, infostring);//format(infostring, 256, " Du hast %d unspent Upgrade Punkte",PlayerInfo[playerid][gPupgrade]);//SendClientMessage(playerid, COLOR_GRAD2, infostring);}}/* }else{SendClientMessage(i, COLOR_LIGHTRED, "* Du hast kannst keinen PayDay bekommen solange du AFK bist!");}*/}}Checkprop();return 1;}













    EDIT: Pro PayDayAbzug bekomme ich dann ja +1 PayDayTime, welcher natürlich bei


    public PayDay wd auf 1 gesetzt wurde, da ich ihn ja nicht auf 0 setzten kann,


    da ich nicht 0 * 1000 nehmen kann...

  • Beitrag von Studs ()

    Dieser Beitrag wurde von Canna aus folgendem Grund gelöscht: Spam ().
  • Wenn ich bei OnPlayerDeath


    if(killerid == INVALID_PLAYER_ID) return 1;


    entferne, bekomme ich fehler


    [debug] Run time error 4: "Array index out of bounds"
    [debug] Attempted to read/write array element at index 65535 in array of size 1000
    [debug] AMX backtrace:
    [debug] #0 00020110 in public OnPlayerDeath (1, 65535, 255) from gfl.amx
    [death] yoSpieler died 255


    Aber wie soll sonst mein Krankenhaus System greifen?