Hat mir der Klammer nichts zutun der fehler liegt bei
ocmd_motor(playerid,"");
Habe vorallem das noch nicht gesehn nur mit ZCMD.
Hat mir der Klammer nichts zutun der fehler liegt bei
ocmd_motor(playerid,"");
Habe vorallem das noch nicht gesehn nur mit ZCMD.
Alles anzeigenHallo.
Wie kann ich diesen Befehl kleiner schreiben und das es nicht soviele if abfragen sind.
Code:
CMD:scheine(playerid,params[]){if(!IsPlayerConnected(giveplayerid)) return NO_CON;new giveplayerID,string[128],Float:x,Float:y,Float:z;GetPlayerPos(playa,x,y,z);if(sscanf(params,"d",giveplayerID))return SendClientMessage(playerid,Grau,"Benutzung: /scheine [SpielerID]");if(IsPlayerInRangeOfPoint(playerid, 10.0, x,y,z)){new ftext[20],wtext[20],fltext[20],atext[20],btext[20];if(Spieler[playerid][DrivLic] == 1){ ftext ="Vorhanden";}else if(Spieler[playerid][DrivLic] == 0){ ftext ="Nicht Vorhanden";}if(Spieler[playerid][GunLic] == 1){ wtext ="Vorhanden";}else if(Spieler[playerid][GunLic] == 0){ wtext ="Nicht Vorhanden";}if(Spieler[playerid][FlugLic] == 1){ fltext ="Vorhanden";}else if(Spieler[playerid][FlugLic] == 0){ fltext ="Nicht Vorhanden";}if(Spieler[playerid][AngelLic] == 1){ atext="Vorhanden";}else if(Spieler[playerid][AngelLic] == 0){ atext="Nicht Vorhanden";}if(Spieler[playerid][BootLic] == 1){ btext ="Vorhanden";}else if(Spieler[playerid][BootLic] == 0){ btext ="Nicht Vorhanden";}format(string, sizeof(string), "Scheine von %s", SpielerName(playerid));SendClientMessage(playa, COLOR_WHITE, string);format(string, sizeof(string), "Führerschein: %s Waffenschein: %s Flugschein %s", ftext, wtext, fltext);SendClientMessage(playa, COLOR_GREEN, string);format(string, sizeof(string), "Angelschein: %s Bootschein: %s", atext, btext);SendClientMessage(playa, COLOR_GREEN, string);format(string,sizeof(string),"* %s zeigt %s seine Scheine.", Spieler[playerid][pName],SpielerName(playa));ProxDetector(25.0,playerid,string,Grau,Grau2,Grau3,Grau4,Grau5);}return 1;}
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;
}
//Edit: Irgendwie klappt das ganze bei mir nicht.
Was willst du denn eigentlich genau haben?
Poste bitte dazu nochmal den aktuellen Befehl.
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.
Alles anzeigenIsPlayerAdmin(playerid) || isPlayerAnAdmin(playerid,5))
Hier wird abgefragt, ob der Admin den Rang 5 hat, wenn nicht dann geht der g esamte Befehl nicht oder irre ich?
if(SpielerDaten[playerid][pAdmin] < 7 && adminid > 1) return SendClientMessage(playerid, GRAU, "Du kannst nur den Rang Helfer vergeben.");
Hier wird abgefragt ob der Admin einen kleineren Rang als 7 hat, wenn nicht, kann er auch andere Ränge als Rang 1 vergeben oder irre ich?
MfG
//Edit: Irgendwie klappt das ganze bei mir nicht.
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);
Danke.,
Kurze frage möchte gerne eine Animation die aussieht das man sich unterhält gibt es sowas ähnliches
Guck mal unter ped, idle_chat
Habe nun das Include eingefügt in den Pawno Include Ordner.
Habe oben im Script include <timerfix> aber es kommt das ?
[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
Habe oben im Script include <timerfix> aber es kommt das ?
Hast du das Plugin auch geladen?
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?
Wie mach ich das?
Verteile deine Fragen bitte nicht über mehrere Threads, die Frage einmal stellen genügt.
AHK Gui Hilfe
Ne da war nur das Inc. drinne oder bin ich Blöde xD
Du hast vermutlich beim Source Code geschaut.
Im Download ist die .dll dabei (bzw. .so für Linux).
https://github.com/udan11/samp…imerfix/releases/tag/v1.5
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...
Es handelt sich hierbei offensichtlich nicht um eine kleine Scripting Frage.
Eröffne bitte einen separaten Thread, um adequate Hilfe zu erhalten.
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?
Aber wie soll sonst mein Krankenhaus System greifen?
Schreibe es vor die Abfrage, solange dort nicht [killerid] als Array Index verwendet wird.
Oder umklammere alles außer das Krankenhaussystem mit der Abfrage, anstatt diese mit return 1 zu versehen.