Habe eine Funktion geschrieben zum Runden von Integern.
Kann man diese auch mit Bitwise Verknuepfungen und Shifts darstellen?
Kannst du mal Beispiele geben, was du als Input eingibst und als Output raushaben magst?
Habe eine Funktion geschrieben zum Runden von Integern.
Kann man diese auch mit Bitwise Verknuepfungen und Shifts darstellen?
Kannst du mal Beispiele geben, was du als Input eingibst und als Output raushaben magst?
ohne komma zahlen in die Datenbank gespeichert
Wie hast denn GeschenkX etc definiert? Und wie benutzt du es?
und was genau steht in der Datenbank? xD
aber das klappt ja nicht.
Was genau klappt denn nicht?
Was genau passiert denn...was willst du haben?! xD
Bissl präziser
Muss ich eine Reihenfolge beachten? publics, ocmd Befehle, stocks, oder anders rum?
Nein, aber defines müssen nach oben.
Und was erwartest du jetzt von uns?
Eventuell hookst du irgendwo etwas...oder keine Ahnung...
Man kann dir so echt schlecht nur helfen
jetzt funktionieren meine Befehle nicht und es kommt immer unknown command.
Das liegt aber nicht an der Code Änderung.
Ja..lass mal Crashdetect laufen und schau in den Log
Kommt darauf an, wie groß dein Skript ist und wie effizient du mit dem Speicher umgehst, aber so wie ich deinen Code sehe, tust du das eben nicht.
Du kannst Variablen mehrfach verwenden:
public OnPlayerText(playerid, text[])
{
new message[128];
if(text[0] == '$')
{
if(iPAA(playerid,2))return rangniedrig;
if(!text[1]) return SCM(playerid, ROT,"$ [Text]"),0;
format(message, sizeof(message), "(([Adminchat] %s: %s ))", SpielerDaten[playerid][pName],text[1]);
return SAM(ROT,message),0;
}
if(text[0] == '§')
{
if(iPAA(playerid,1))return rangniedrig;
if(!text[1]) return SCM(playerid, ROT,"§ [Text]"),0;
format(message, sizeof(message), "(([Helferchat] %s: %s ))", SpielerDaten[playerid][pName],text[1]);
return SAM(HGREEN,message),0;
}
format(message, sizeof(message), "{969696}%s sagt: {FFFFFF}%s", SpielerDaten[playerid][pName], text);
return ProxDetector(7.0, playerid, message, WEISS,WEISS,WEISS,WEISS,WEISS),0;
}
Alles anzeigen
Dadurch kannst du dir also die ganzen anderen Variablen schenken.
...kann man nicht wirklich sehen.
Kommentiere doch mal sogut wie alles aus.
Dann compile und dann entkommentiere nach und nach und dann weißt du ja, an welcher Zeile es schließlich liegt.
Wie hast du denn rangniedrig definiert?
Das ist meine includes.inc
...und was steht im Gamemode und in den anderen Gamemmodes?
Hast du dort überall die selben Includes..rufen die sich alle endlos gegenseitig auf....
Kannst du uns mal Beispiel Koordinaten geben, bzw die die du verwendest.
Sonst ist das schwer zu reproduzieren, was du da machst
Woran kann das liegen?
Zu lange heißt meistens zu große Arrays.
Hast du irgendwo ausversehen...zu viele erstellt oder hast es geschafft...bestimmte Includes in Schleife zu Includen?!
Habe 2500 Liter abgeladen
Ja und jetzt?
Wenn, dann printe dir ALLE Variablen vorher und nacher..und sag genau, was nicht stimmt...
printf("Tankstelle: Diese Tankstelle hat %d Benzin erhalten.", floatadd(gebraucht, Tanke[i][tLiterBenzin]))
floatadd gibt immer einen Float Wert zurück.
Also musst du:
printf("Tankstelle: Diese Tankstelle hat %d Benzin erhalten.", floatround(floatadd(gebraucht, Tanke[i][tLiterBenzin])));
machen.
jemand da der mir evtl weiterhelfen könnte
Schauen wir uns das doch mal an
sscanf scheint glaube bei dir veraltet zu sein (du scheinst die Funktion zu nutzen, aber das Plugin ist um einiges besser), in diesem Fall, wo man auch nur einen Parameter nutzt, sollte man gänzlich darauf verzichten (erst bei einem String).
Schreib das alles mal so:
ocmd:a(playerid, params[])
{
if(PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, COLOR_RED, ""err""COLOR_HEX_WHITE""a404"");
if(!params[0] || params[0] == '\1') return SendClientMessage(playerid, COLOR_WHITE, "[Nutzung] /a(dminchat) [Text]");
new string[144];
format(string, sizeof(string), "%s "COLOR_HEX_YELLOW"%s"COLOR_HEX_WHITE": %s", admName(playerid), PlayerName(playerid), params);
SendToAdms(COLOR_WHITE, string);
return 1;
}
stock SendToAdms(COLOR, const msg[])
{
for(new i=GetPlayerPoolSize(); i!=-1; i--)
{
if(IsPlayerConnected(i) && PlayerInfo[i][pAdmin] >= 1) SendClientMessage(i, COLOR, msg);
}
return 1;
}
Alles anzeigen
Neuer Server, neu Anfangen.
Auf deinem Server sollten ganz andere Preissysteme herrschen.
Und bei dir kommt man auch durch ganz andere Arbeit etc an Dinge...wieso sollte man da irgendwas bekommen?
Fande so Systeme noch nie sinnvoll...und da haben die Server gar keinen Spaß gemacht..jeder kam mit fake screens und fertig xD
vor einigen Jahren war sowas Utopie.
Awas, gab schon vor 5 Jahren, wenn nicht noch länger her Zombie Server, die einen angegriffen haben oder so.
Halt alles um einiges schlechter realisiert, aber gegeben hat es das schon.
Gerade in der englischen bzw russischen Szene xD
Aber ich erinnere mich auch mal an einen Deutschen Server von Beavis und Blackace oder so xD
Ist es machbar NPC, bzw. Bots zu bauen, welche bspw. als annehmbare Gegner in einem Deathmatch dienen koennen?
Die sich also auf den Spieler zu bewegen, man diese vernichten kann, und auch den Gegner angreifen?
Jup, das geht mit FCNPC.
Zwar etwas fricklig, aber es wurde mal n gutes Include realisiert, was dir vielleicht weiter hilft: https://forum.sa-mp.com/showthread.php?t=663155
Ist das angeben eines :default wertes bei switch sinvoll? Bzw. warum macht man das? Oder dient das einfach nur als "else" ?
Dient einfach nur als else.
Muss man nicht angeben, der Code darunter würde ja quasi einfach weiter laufen.
Oben im Script einbaue findet er SCM nicht
Das muss natürlich unter das SCM oder schreibe es so:
#define SCME(%0,%1,%2,%3) format(string,sizeof(string),%2,%3),SendClientMessage(%0,%1,string)
Muss man da kein float davor machen oder so?
Entweder fällt dir lesen schwer, oder das kopieren.
Habe ich da irgendwo in meinem Code SendClientMessage stehen?
Und jetzt frage dich, wieso das du das?
Theoretisch muss man da kein Float vor machen, da du ja ganze Liter haben willst und das über das floatround gerundet wird.
Und..meine letzte Frage, in welcher Zeile der Fehler auftritt sagst du mir nicht und gibst uns keine Debug Informationen...
as Problem dabei ist dass das System manchmal 5x 5 Tokens gibt. Hat jemand eine Lösung dafür?
Du erstellst einen Timer für jeden Spieler und Loopst bei jedem Spieler durch alle Spieler o:
Daaavon ist abzuraten
//Edit:
Ahh wait, du willst, dass für jeden Spieler der Timer individuell gestartet wird.
Mach es so:
//Unter OnPlayerConnect
SetPVarInt(playerid,"reward_timer", SetTimerEx("PlayReward", 900000, true, "i", playerid));
//Unter OnPlayerDisconnect
KillTimer(GetPVarInt(playerid, "reward_timer"));
forward PlayReward(i);
public PlayReward(i)
{
if(!PlayerInfo[i][LoggedIn] || isPlayerAFK(i)) return 1;
PlayerInfo[i][Tokens] += 5;
SFM(i,COLOR_COP,"Reward: {FFFFFF}Du bekommst 5 Tokens!");
SavePlayer(i); //Are you sure about this?
return 1;
}
Alles anzeigen
Bist du sicher, dass du da den Spieler direkt speichern magst?
Also kannst du machen, aber reicht es nicht unter OnPlayerDisconnect oder dient das der Server-Crash Vorbeugung?