Wie kann ich es erstellen das über den Benutzernamen des jeweiligen Users angezeigt wird wieviele Wanteds er hat ?
Beiträge von robbi2304
-
-
Du hast zuerst den Timer gestartet und dann den Timer eine Zeile drunter wieder beendet, also die beiden Zeilen, die ich dir gegeben habe, vertauscht.
Ich habe dir auch noch das format angepasst, damit du da keine Variablen brauchst, ist etwas geschickter dann:
if(PlayerInfo[playerid][pJailTime]){ new string[128]; if(jailTimer[playerid] != -1) KillTimer(jailTimer[playerid]); jailTimer[playerid] = SetTimerEx("SetPlayerUnjail", 1000, 1, "d", playerid); SendClientMessage(playerid,COLOR_BUSBLUE,"Rein mit dir!"); SendClientMessage(playerid,COLOR_BUSBLUE,"Verbrecher gehören in den Knast!"); format(string,sizeof(string),"Du bist noch für %d Minuten und %d Sekunden im Knast!",PlayerInfo[playerid][pJailTime]/60,PlayerInfo[playerid][pJailTime]%60); SendClientMessage(playerid,COLOR_BUSBLUE,string); SetPlayerPos(playerid,265.9037,77.2875,1001.0391); SetPlayerInterior(playerid,6);}/60 gibt die Minuten an
und %60 ist Modulo 60, da gibt den Rest an, der bei einer Teilung durch 60 übrig bleibt, was in dem Fall den Sekunden entspricht.
Kleiner Trick am RandeOh supi danke
-
Das ist ja auch quatsch...du setzt den Timer...(dann ist er immer != -1) und dann killst du ihn direkt
Das war auch schon der Fehler. Hoffe ich zumindest mal. Also ich hab es nun folgendermaßen gemacht
if(PlayerInfo[playerid][pJailTime])
{
new string[128];
jailTimer[playerid] = SetTimerEx("SetPlayerUnjail", 1000, 1, "d", playerid);
if(jailTimer[playerid] == -1) KillTimer(jailTimer[playerid]);
SendClientMessage(playerid,COLOR_BUSBLUE,"Rein mit dir!");
SendClientMessage(playerid,COLOR_BUSBLUE,"Verbrecher gehören in den Knast!");
new Time = PlayerInfo[playerid][pJailTime], Min = Time/60, Sek = Time - Min*60;
format(string,sizeof(string),"Du bist noch für %d Minuten und %d Sekunden im Knast!",Min,Sek);
SendClientMessage(playerid,COLOR_BUSBLUE,string);
SetPlayerPos(playerid,265.9037,77.2875,1001.0391);
SetPlayerInterior(playerid,6);
} -
Schein irgendwas nicht bei zu klappen. Bekomme nichtmal mehr den Timer angezeigt.
if(PlayerInfo[playerid][pJailTime])
{
new string[128];
jailTimer[playerid] = SetTimerEx("SetPlayerUnjail", 1000, 1, "d", playerid);
if(jailTimer[playerid] != -1) KillTimer(jailTimer[playerid]);
SendClientMessage(playerid,COLOR_BUSBLUE,"Rein mit dir!");
SendClientMessage(playerid,COLOR_BUSBLUE,"Verbrecher gehören in den Knast!");
new Time = PlayerInfo[playerid][pJailTime], Min = Time/60, Sek = Time - Min*60;
format(string,sizeof(string),"Du bist noch für %d Minuten und %d Sekunden im Knast!",Min,Sek);
SendClientMessage(playerid,COLOR_BUSBLUE,string);
SetPlayerPos(playerid,265.9037,77.2875,1001.0391);
SetPlayerInterior(playerid,6);
} -
Wie startest du den Timer?
Siehst du den GameText?Ich rufe den Timer wie folgt z.b beim Connecten auf
if(PlayerInfo[playerid][pJailTime])
{
new string[128];
SetTimer("SetPlayerUnjail", 1000, 1);
SendClientMessage(playerid,COLOR_BUSBLUE,"Verbrecher gehören in den Knast!");
SendClientMessage(playerid,COLOR_BUSBLUE,"Rein mit dir!");
new Time = PlayerInfo[playerid][pJailTime], Min = Time/60, Sek = Time - Min*60;
format(string,sizeof(string),"Du bist noch für %d Minuten und %d Sekunden im Knast!",Min,Sek);
SendClientMessage(playerid,COLOR_BUSBLUE,string);
SetPlayerPos(playerid,265.9037,77.2875,1001.0391);
SetPlayerInterior(playerid,6);
}Was ich glaub noch vergessen habe, den Timer zu killen daher sende ich nochmal den neuen Code der einen Funktion
forward SetPlayerUnjail(playerid);
public SetPlayerUnjail(playerid)
{
PlayerInfo[playerid][pJailTime]--;
if(PlayerInfo[playerid][pJailTime]>0)
{
new string[128];
new Time = PlayerInfo[playerid][pJailTime], Min = Time/60, Sek = Time - Min*60;
format(string,sizeof(string),"%d Minuten %d Sekunden",Min,Sek);
GameTextForPlayer(playerid,string,2000,3);
}
else if(PlayerInfo[playerid][pJailTime] == 0)
{
SetTimerEx("SpawnTimer",2000,false,"i",playerid);
GameTextForPlayer(playerid,"Versuche ein besserer Mensch zusein",10000,3);
KillTimer(SetPlayerUnjail(playerid));
}
return 1;
}// Edit Frage vergessen zu beantworten
Ja den Timer sehe ich bis er uf 0 ist bzw auf 1 Sekunde ausgelaufen ist. Danach zeigt er nichts mehr an
-
Ich habe derzeit ein Problem it meinem Timer.
Dieser spawnt den User nicht neu sobald die knastzeit abgelaufen ist.
forward SetPlayerUnjail(playerid);
public SetPlayerUnjail(playerid)
{
PlayerInfo[playerid][pJailTime]--;
if(PlayerInfo[playerid][pJailTime]>0)
{
new string[128];
format(string, sizeof(string), "Knastzeit %d Sekunden [%d Minuten] eingesperrt.",PlayerInfo[playerid][pJailTime],PlayerInfo[playerid][pJailTime]/60);
GameTextForPlayer(playerid,string,259200000,3);
}
else if(PlayerInfo[playerid][pJailTime] == 0)
{
SpawnPlayer(playerid);
}
return 1;
} -
-
Bin mal dabei
-
-
Zeig mal deine pMoney Funktion
Ähm was willst du da Groß sehen ?
Es geht nicht um das speichern in die pMoney sondern um die Anzeige des Geldes die nicht Richtig funktioniert.
Hinzu definiere ich die pMoney in den User Enum worin rein geschrieben wird und dann gespeichert wird.Das hat aber rein nichts mit der Anzeige zutun.
Ich bin mir auch ziemlich sicher, dass man bei einem Tod 100$ abgezogen bekommt.
Gib ihm einfach am Anfang von OnPlayerDeath 100$ dann musst du die nirgendwo verrechnen.
MfG
Schau dir mal das Video an. Ich setze den Spieler mehr Geld aber beim spawn wird ihm das wieder abgezogen. Spieler die darauf achten, denen fällt es auf und diese sind dann verwundert. Daher muss es doch eine möglichkeit geben das ganze zu blocken das beim spawn nach dem tot geld abgezogen wird bzw in der anzeige was abgezogen wird -
Da bin ich mir sogar sehr sicher
public OnPlayerSpawn(playerid)
{
if(PlayerInfo[playerid][pBanned] == 1)
{
new string[1300],name1[MAX_PLAYER_NAME];
GetPlayerName(playerid,name1,sizeof(name1));
format(string,sizeof(string),"Du wurdest von %s gebannt. Grund: %s \nSolltest du der Meinung sein das es sich hierbei\num eine Verwechslung handelt, wende dich an %s.",PlayerInfo[playerid][pBanner],PlayerInfo[playerid][pBanreason],PlayerInfo[playerid][pBanner]);
ShowPlayerDialog(playerid, DIALOG_BAN, DIALOG_STYLE_MSGBOX,"Gebannt",string,"Ok",""); SetTimerEx("KickTimer",100,false,"i",playerid);
}
SetPlayerPos(playerid,742.4116,-1339.6249,13.5291);
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,0);
SetPlayerColor(playerid, 0xFFFFFFAA);
if(GetPlayerFrakID(playerid) == 0)
{
SetPlayerPos(playerid, 742.4116,-1339.6249,13.5291);
return 1;
}
else
{
new fID = GetPlayerFrakID(playerid);
SetPlayerPos(playerid,fInfo[fID][f_x],fInfo[fID][f_y],fInfo[fID][f_z]);
SetPlayerFacingAngle(playerid,fInfo[fID][f_r]);
SetPlayerInterior(playerid,fInfo[fID][f_inter]);
SetPlayerVirtualWorld(playerid,fInfo[fID][f_world]);
return 1;
}
}
public OnPlayerDeath(playerid, killerid, reason)
{
//Beispielcode
if(killerid != INVALID_PLAYER_ID)
{
if(PlayerInfo[playerid][pMember] == 1 && OnDuty[playerid] ==1) return 1;
{
PlayerInfo[killerid][pKills]++;
PlayerInfo[killerid][pWanted]+=2;
}
}
PlayerInfo[playerid][pDeaths]++;
GivePlayerMoney(playerid,-500);
PlayerInfo[playerid][pMoney]-= 600;
return 1;
} -
0/0 Punkten
Das Bild ist einfach aus dem Internet geklaut. Es wurde lediglich einfach nur ein Text hingeklatscht.
-
Du verstehst mich scheinbar falsch. Sobald ein Spieler stirbt, werden Ihn 100$ beim spawnen gutgeschrieben. Das ist SAMP intern.
Damit die Spieleranzeige stimmt, setzte ich den Wert GivePlayerMoney 100$ höher. Sobald der Spieler stirbt werden Ihm 10100 $ mehr angezeigt. Sobald er allerdings gespawnt wird, werden Ihn 100$ abgezogen. Warum ist hier die Gute Frage. Denn ich sage ihm nicht im OnPlayerSpawn ziehe 100$ aus GivePlayerMoney ab
//Edit YouTube Link eingefügt
Demonstration:
Externer Inhalt youtu.beInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt. -
Hallo,
gibt es die möglichkeit das Todesgeld von 100$ irgendwie abzuschalten ? Ich finde es doof das ganze wie folgt zumachen
public OnPlayerDeath(playerid, killerid, reason)
{
//Beispielcode
if(killerid != INVALID_PLAYER_ID)
{
PlayerInfo[killerid][pKills]++;
if(PlayerInfo[killerid][pKills] > 3)
{
PlayerInfo[killerid][pLevel] = 1;
}
}
PlayerInfo[playerid][pDeaths]++;
GivePlayerMoney(playerid, 10100);
PlayerInfo[playerid][pMoney] += 10000;
return 1;
}Denn die Money anzeige verändert sich ja dennoch und kann zur Verwirrung führen. Eigentlich will ich z.b 10.000$ setzen für den der gestorben ist
-
Hallöle,
ich bin gerade an einem AntiCheat bei von AC-BS.
Sobald ich Money hacke, erkennt er nicht den ersten versuch. Und manchmal auch nicht den 2 versuch.
Was wurde hier falsch gemacht ?
if(NN == 1)
{
if(GetPVarInt(i, "AdminProtect") == 0)
{
new novac = GetPlayerMoney(i);
if(GetPVarInt(i, "SafeMoney") == 0 && novac > Novac1[i] && Zastita[i] == 0 && kikovan[i] == 0)
{
GetPlayerName(i, ime, sizeof(ime));
ResetPlayerMoney (i);
AC_BS_GivePlayerMoney (i, Novac1[i]);
getdate(y,m,d);
gettime(h,mi,s);
format(string,sizeof(string), "[%d/%d/%d]-[%d:%d:%d] [AC - Balkan Security] has reseted %s money for using Money Hack-a",d,m,y,h,mi,s,ime);
log(string);
OpomenaNovca[i]++;
if(OpomenaNovca[i] == 3)
{
ResetPlayerMoney (i); kikovan[i] = 1;
AC_BS_GivePlayerMoney (i, Novac1[i]);
GetPlayerName(i, ime, sizeof(ime));
GetPlayerIp(i, ipadresa, sizeof(ipadresa));
format(string, sizeof(string), "%s %s wurde gekickt. Grund: Money Hack(3/3 warnings).",acime, ime);
SendClientMessageToAll(RED, string);
format(string2, sizeof(string2),"{CD0000}Du wurdest gekickt.!\n{FFF8DC}Name:{CD0000} %s\n{FFF8DC}Grund:{CD0000} 3/3 Money Hack Warnings\n{FFF8DC}IP:{CD0000} %s\n \n{CD0000}If you think that you are kicked for no reason,\n press F8 and report mistake on forums.\n Web Site: %s",ime,ipadresa,forum);
ShowPlayerDialog(i, 20000, DIALOG_STYLE_MSGBOX, "{FFF8DC}[AC - Balkan Security]",string2, "Ok", "");
getdate(y,m,d);
gettime(h,mi,s);
format(string,sizeof(string), "[%d/%d/%d]-[%d:%d:%d] [AC - Balkan Security] has kicked %s for max Money Hack warnings (3x money hacking)",d,m,y,h,mi,s,ime);
log(string);
SetTimerEx("kick",10, false, "i", i);
}
}
if(GetPVarInt(i, "SafeMoney") == 1)
{
Zastita[i] = 1;
Novac1[i] = GetPlayerMoney(i);
SetPVarInt(i, "SafeMoney", 0);
}
}
} -
Wie und wo rufst du die Textdraws denn auf?
Beim laden des Spielers beim Login
PlayerWantedBarCreate(playerid);
Es liegt wahrscheinlich an der Reihenfolge an der du die Textdraws erstellst, ändere das mal um.
Edit: Du musst natürlich PlayerTextdrawShow bei beiden Textdraws verwenden.
was meinst du genau mit der reinfolge ?
// Fehler gefunden
PlayerTextDrawShow(playerid, Textdraw0[playerid]);
hat gefehlt
-
Nein keine
-
Ich würde gerne 2 TextDraws anzeigen lassen. Einer von meinen TextDraws funktioniert. Allerdings nicht der untere Teil. Dieser wird garnicht erst angezeigt.
Was könnte ich verkehrt gemacht haben ?
-
Das ganze war gerade eine doofe Frage von mir gewesen bemerke ich gerade.
Ich meinte wie ich die Farbe eines LSPD´s Fahrzeugs anpassen kann wenn ich es mit der modelid speichere.
Die Farbe muss ich ja aber im Grunde nur auf -1 setzen. Denn dann wird das Fahrzeug ja mit den Standard Farben erstellt.
Also einfach nur ein totaler Fail von mir
-
Guten Tag,
ich erstelle meine Fahrzeug in einer Datenbank mit der definierung der Farbe.
Nun ist meine Frage, gibt es einen Farbcode für ein LSPD Fahrzeug so das die Farbe und der Text Identisch sind ?