Poste bitte deinen Code dazu nochmal, so wie er jetzt ist. Ich habe das Gefühl, dass du es nicht so gemacht hast, wie ich es postet habe, und es deshalb den print nicht anzeigt.
Beiträge von Jeffry
-
-
new time = gettime()-3600;
Das stimmt nicht.
Hast du bei deinem tban Befehl das +3600 noch dran oder nicht?
Wenn ja:
new time = gettime()+3600;Wenn nein:
new time = gettime();Wenn es so noch immer nicht klappt, poste bitte den Befehl und das aktuelle OnPlayerConnect nochmal.
EDIT:
Domain_26: Super!(PS: Nicht wahrscheinlich, sondern auf jeden Fall ;)).
-
Du musst den Befehl aussplitten, sonst klappt das nicht:
new cmd[20], idx;
cmd = strtok(cmdtext, idx);
if(strcmp(cmd, "/admin", true, 6) == 0 || strcmp(cmd, "/a", true, 2) == 0)
{
if(!IsPlayerAnAdmin(playerid,1)) return SendClientMessage(playerid, rot,"Du hast keine Berechtigung!");
new tmp[20];
tmp = strtok(cmdtext, idx);
if(!strlen(tmp)) return SendClientMessage(playerid,gelb,"* Verwendung: /a(dmin) [text]");
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
new string[100];
format(string,sizeof(string),"{32CD32}**AChat: %s: %s",name,cmdtext[strlen(cmd)+1]);
for(new ii=0; ii<MAX_PLAYERS; ii++) if(IsPlayerAnAdmin(playerid,1))SendClientMessage(ii,GetPlayerColor(playerid),string);
print("Adminchat wurde ausgeführt");
return 1;
}Ganz unten in dem Gamemode:
stock strtok(const string[], &index) //©Jeffry
{
new result[20], length = strlen(string), i = index;
while ((i < length) && (string[i] == ' ')) i++;
strmid(result,string,i,((index = strfind(string, " ", false, i)) == -1) ? (index = length) : (index) , 20);
index++;
return result;
} -
Das liegt dann daran, dass der Wert hiervon noch 0 ist.
GetPVarInt(playerid,"Timeban")Das musst du zuvor aus der Spielerdatei laden.
Außerdem musst du beim Laden des Grundes und des Admins den Wert in eine Variable schreiben, sonst bringt es nichts.
Versuch das mal zu realisieren, wenn du mit der Erklärung nicht klar kommst, poste nochmal den Code wie du ihn bis dahin hast, dann kann ich es dir machen.
-
Alle Objekte? Ich hoffe du meinst alle Objekte mit der angegebenen Model ID, sonst wäre die Map ja leer.
public OnPlayerConnect(playerid)
{
//Spawn Bahnhof LS
RemoveBuildingForPlayer(playerid, 4025, 0.0, 0.0, 0.0, 6000.0);
RemoveBuildingForPlayer(playerid, 4070, 0.0, 0.0, 0.0, 6000.0);
RemoveBuildingForPlayer(playerid, 4071, 0.0, 0.0, 0.0, 6000.0);
RemoveBuildingForPlayer(playerid, 4072, 0.0, 0.0, 0.0, 6000.0);
return 1;
}
Würde alle Default-Objekte mit den 4 Model IDs entfernen, im ganzen Spiel. -
Ich suche eine kleine viereckige Plattform, die man hochfahren lassen kann.
Im Mapeditor bin ich zum LV Parkhaus gefahren, und dieser Aufzug da. Den gibts dort nicht.
Hast du ein Bild oder die Position dieses Aufzugs, oder idealerweise beides? In LV gibt es einige Parkhäuser. -
Hast du das streamer Plugin auch im "plugins" Ordner?
Wenn ja, dann solltest du wie Tom Sunder schon andeutete, die .NET 3.5 Version installieren, die fehlt dann. Ohne die läuft der Streamer nicht. -
Es gibt die Sekunden seit 01.01.1970 zurück, normalerweise in GMT Zeit, und wir sind ja gerade GMT+1.
Wenn du das beibehalten willst, dann musst du hier die Änderung machen, die anderen zwei Änderungen kannst du dann vergessen:new time = gettime();
zu:
new time = gettime()+3600;PS: Vergesse nicht, dass wir in einem halben Jahr wieder Sommerzeit haben, also GMT+2.
-
In diesem Fall ist es relativ egal.
Wenn man aber Vehicles auch entfernt und wieder erstellt, muss man das jedes mal zurücksetzen, und immer die Vehicle ID abfragen, das kann schneller zu Fehler führen. Leichter und ressourcenschonender ist es hier mit dem Spieler zu arbeiten, anstatt dem Fahrzeug. -
Spontan fällt mir das ein:
printf("{%06x}", (hex << 8) >>> 8); -
Eine Meldung mit Heap Size und ganz vielen Zahlen.
Unter die letzte Include die du angegeben hast. -
Das ist komisch.
Hast du im Compiler eine mehrzeilige Meldung mit vielen Zahlen? Wenn nein, dann nimm die Print Zeile mit dem Job und füge sie über die andere Print Zeile ein, die die kommt. Kommt der Job Print dann?Wenn du eine mehrzeilige Meldung hast, dann füge unter den Includes
#pragma dynamic 100000
ein. -
Dann musst du die beiden Nachrichten unter die Berechnung des neuen Kontostandes setzen.
-
Mehr nicht? Der Print mit dem Job muss auch kommen.
Oder klappt alles bereits? -
Wie sonst? Nur, dass das strval da nicht hingehört.
ocmd:ueberweisung(playerid,params[])
{
new string[128],pID,uberweisunggeld;
if(sscanf(params,"ui",pID,uberweisunggeld))return SendClientMessage(playerid,FARBE_WEISS,"[{FF0000}FEHLER{FFFFFF}]: Nutze /uberweisung [ID/NAME] [GELD]");
if(pID == playerid)return SendClientMessage(playerid,FARBE_WEISS,"[{FF0000}FEHLER{FFFFFF}]: Du kannst dir nicht selber Geld überweisen!");
if(!IsPlayerConnected(pID))return SendClientMessage(playerid,FARBE_WEISS,"[{FF0000}FEHLER{FFFFFF}]: Der Spieler ist nicht Online!");
if(uberweisunggeld > sInfo[playerid][sBankgeld])return SendClientMessage(playerid,-1,"nicht genug Geld auf dein Konto");
format(string,sizeof(string),"Du hast %s %i$ überwiesen! Kontostand: %i$",SpielerName(pID),uberweisunggeld,sInfo[playerid][sBankgeld]);
SendClientMessage(playerid,FARBE_ORANGE,string);
format(string,sizeof(string),"Du hast von %s %i$ Überwiesen bekommen! Kontostand: %i$",SpielerName(playerid),uberweisunggeld,sInfo[pID][sBankgeld]);
SendClientMessage(pID,FARBE_ORANGE,string);
sInfo[playerid][sBankgeld] -= uberweisunggeld;
sInfo[pID][sBankgeld] += uberweisunggeld;
SpielerSpeichern(pID);
SpielerSpeichern(playerid);
return 1;
}Probiere es aus.
-
Klammersetzung und der ganze Aufbau passt nicht.
So ist es besser:
if(strcmp(cmdtext, "/repair", true) == 0)
{
if(GetPlayerMoney(playerid)<10000) return SendClientMessage(playerid,COLOR_RED,"Um Dein Auto zu reparieren brauchst du 10.000$!");
SendClientMessage(playerid, 0x6CAFF9FF, "Du hast dein Auto Repariert!");
SetVehicleHealth(GetPlayerVehicleID(playerid), 1000);
PlayerPlaySound(playerid,1057,0,0,0);
GivePlayerMoney(playerid, -10000);
return 1;
} -
Naja, das bringt nur nichts, wenn der Code nicht aufgerufen wird.
Füge den Bestatter Code
printf("IsARomero: %d / playerid: %d / model: %d", IsARomero(GetPlayerVehicleID(playerid)), playerid, GetVehicleModel(GetPlayerVehicleID(playerid)));
if(IsARomero(GetPlayerVehicleID(playerid)))
{
printf("Job: %d / NPC: %d", PlayerInfo[playerid][pJob], IsPlayerNPC(playerid));
if(PlayerInfo[playerid][pJob] != 33 || IsPlayerNPC(playerid))
{
printf("Entfernt.");
SendClientMessage(playerid,COLOR_GREY," Du bist kein Bestatter !");
RemovePlayerFromVehicle(playerid);
return 1;
}
}mal ganz als erstes bei OnPlayerStateChange ein, also direkt unter die erste öffnende geschwungene Klammer. Geht es dann?
-
Ich habe es so getestet, in einem Filterscript, das geht bei mir:
#include <a_samp>new pdtor1;
public OnFilterScriptInit()
{
pdtor1 = CreateObject(980,1539.80004883,-1627.80004883,15.19999981,0.00000000,0.00000000,90.20056152); //
return 1;
}public OnPlayerCommandText(playerid, cmdtext[])
{
if(strcmp(cmdtext, "/pdweg", true) == 0)
{
CreateExplosion(1539.80004883,-1627.80004883,15.19999981, 7, 10);
DestroyObject(pdtor1);
SetTimer("pdwiederda",5000,0);
return 1;
}
return 0;
}forward pdwiederda();
public pdwiederda()
{
printf("Objekt wieder erstellt.");
pdtor1 = CreateObject(980,1539.80004883,-1627.80004883,15.19999981,0.00000000,0.00000000,90.20056152); //
return 1;
}Versuch das mal bei dir. Kommt der print?
Hast du eventuell eine mehrzeilige Meldung mit vielen Zahlen im Compiler?
Oder hast du das Limit an Objekten überschritten? -
Da ich nicht weiß in welcher Reihenfolge du deinen Code ausführst, füge einfach bei deinem Befehl das hinzu:
dini_Set(Spieler,"Gesperrt","1"); -
Das ist schlecht.
Dann liegt der Fehler an einer Stelle über diesem Code im Callback.
Poste mal das gesamte Callback.