habs immer noch nicht kapiert? wie ich den bsn enter Ceckpoint weg kriege!???
http://wiki.sa-mp.com/wiki/DisableInteriorEnterExits
MFG
habs immer noch nicht kapiert? wie ich den bsn enter Ceckpoint weg kriege!???
http://wiki.sa-mp.com/wiki/DisableInteriorEnterExits
MFG
Ja genau DialogHD
Ich will, das der getötete entscheiden kann, ob er den "Täter" ins prison kommt oder nicht.
Denn ShowPlayerDialogForPlayer(playerid, DIALOG_blabla, DIALOG_STYLE, blabla, "Strafe", "Prison\nBan usw.", "Auswählen", "Beenden");
Bei onplayerdeath ungefähr so:
if(SpawnKillAktiv[playerid] == 1)
{
ShowPlayerDialogForPlayer(playerid, DIALOG_blabla, DIALOG_STYLE, blabla, "Strafe", "Prison\nBan usw.", "Auswählen", "Beenden");
}
Alles anzeigenHallo,
Ich will etwas scripten wobei ich allerdings nicht weiß wie ich es machen soll. Undzwar habe ich ein Anti-Spawnkillschutz eingebaut.
if(SpawnKillAktiv[issuerid] == 1){SpawnSkillSchutz(issuerid);
Ich will, dass wen ein User wo der Spawnschutz aktiv ist getötet wird ein Dialog geöffnet wird, wo man auswählen kann ob der User für 30 Minuten ins Prison soll oder ihm nachgegeben werden soll.
Dialog kann ich erstellen, allerdings weiß ich nicht, wie die if abfrage in onplayerdeath aussehen soll...
Kann mir einer Helfen?
if(SpawnKillAktiv[playerid] == 1) //On PlayerDeath
{
//For schleife..
//Adminabfrage
//Dialog für Admins anzeigen
}
Sollte klappen
Wie bekomme ich das gescriptet das der Hostname sich immer so ändert z.b kommt da zu erst: DM Server danach 4sec später: Hier kannst du DM schieben.
mfg
SendRconCommand("hostname "SERVER_NAME);
Und ggf. nen Timer erstellen.
MFG
Hi ich versuche gerade bei meinen Selfmade MySQL einzustellen aber es klappt nicht richtig....
immer wenn ich connecte passiert nicht das wie "stock Login" also man wird nicht richtig gespawnt..
ich weiss nicht wie ich es erklären soll..
/e wenn ich bei Navicat die Tabelle accounts öffne kommt das:
Primären Schlüssel setzen, steht da doch.
Falls du die Tabelle über deinen Script erstellen lässt, zeig mal die Zeile wo die Tabelle erstellt wird, MFG
Es sing eingänge =P ????
http://wiki.sa-mp.com/wiki/Function:SetPlayerCheckpoint
Rest ist selbsterklärend, mfg
Sieht nach nem CheckPoint aus..
Wir Du vielleicht schon gelesen hast,
hat es ungewöhnlich viele Ausschnitte aus dem Script von MrMonat.
Somit unterliegt es auch dem Copyright des Jenigen der es Veröffentlicht hat.
Natürlich hast Du zu allem was Du dazu geschrieben hast die alleinigen Rechte,
trotzdem solten die ursprünglichen Credits erhalten bleiben,
geschweige denn ist dies dann kein Selfmade.
Da das MrMonat Script ja auch schon seit dem 29.03.2012 veröffentlicht ist, jo ist klar.
MFG
Zuerst musst du den Textdraw natürlich erstellen...
Erstellt ist er, geht auch soweit:
new newDM[64];
format(newDM, sizeof(newDM), "DM: %i\tMinigun: %i",IsInArena1, IsInArena2);
TextDrawSetString(Arenen, newDM);
So, nun ist die Frage wie ich den Textdraw auf -1 setzte, wenn jemand die Arena verlässt?
//Edit ok geht soweit:
new newDM[64];
format(newDM, sizeof(newDM), "\nDM: %i",IsInArena1);
TextDrawSetString(Arenen, newDM);
Geht das hier nicht mit nem Zeilenumbruch (\n?)
Ja, ich denke mal
Okay danke, meinte nur weil die Variable ja nur auf = 1; gesetzt wird, werde es mal testen.
Edite hier denn gleich, MFG
//Edit vom Test:
Nein mir der Textdraw nicht mal angezeigt:
TextDrawShowForPlayer(playerid, Arenen);
Ist bei OnPlayerConnect drinne, sollte funktionieren oder?
//Edit2: Nice hat jetzt funktioniert, allerdings noch ne Frage: Jemand n guten Editor für die Textdraw Position?
IsInArena1[playerid] = 1;
new newDM[64];
format(newDM, sizeof(newtext), "DM: %i",IsInArena1);
TextDrawSetString(Arenen, newDM);
TextDrawShowForPlayer(playerid, Arenen);
Würde das funktionieren?
MFG
Guten Abend, wollt mich nun mal mit Textdraws beschäftigen, und Fragen wie kann man z.b. Spieler: %d anzeigen lassen?
Kleines Beispiel, jemand betritt die Beispiel Arena > Textdraw zeigt denn an:
Spieler in Beispiel Arena = 1.
Habe die Variablen global erstellt im Script, sollte also machbar sein?
MFG
So hab mein Car-Lösch Befehl bisschen umgebaut, funktioniert auch zumindestens die Errormessage, aber das Auto wird nicth mehr gelöscht..
//-OCMD-Delcar-//
ocmd:delcar(playerid,params[])
{
if(SpielerInfo[playerid][Adminlevel] >= 2) {
if(IsPlayerInAnyVehicle(playerid))
{
new vehid;
vehid = GetPlayerVehicleID(playerid);
for(new i = 0; i < MAX_VEHICLES; i++)
{
if (vehid == Autos[i])return SendClientMessage(playerid, ROT, "Dieses Auto gehört dem Server und kann nicht gelöscht werden.");
if (vehid == StuntAutos[i])return SendClientMessage(playerid, ROT, "Diese Auto gehört dem Server und kann nicht gelöscht werden.");
}
DestroyVehicle(GetPlayerVehicleID(playerid));
SendClientMessage(playerid, GRÜN, "Du hast dass Auto erfolgreich gelöscht!");
}
} else return SendClientMessage(playerid, ROT, "Du bist kein Admin!");
return 1;
}
r_LoadEntrance(table[],"Name", SpielerName(playerid));
wenn dann so
if(r_LoadSQLEntrance("accounts","Name",SpielerInfo[playerid][pName]))
{
Also das hab ich schon oben im Stock drinne
wo öffnest du die verbindung ?!
r_LoadEntrance(table[], where1[], where2[]);
Nutz die Funktion er kann sonst nix finden, da nix angegeben wurde
r_LoadSQLEntrance("accounts", "TBan", SpielerInfo[playerid][TBan]);
So? Hab die Funktion noch nicht weiter gebraucht, sorry.
Ich verweise immernoch hierrauf
r_LoadEntrance(table[], where1[], where2[]);
r_UnloadEntrance();
stock SpielerLaden(playerid)
{
if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
{
GetPlayerName(playerid,SpielerInfo[playerid][pName],MAX_PLAYER_NAME);
if(r_LoadSQLEntrance("accounts","Name",SpielerInfo[playerid][pName]))
{
SpielerInfo[playerid][TBan] = r_mysql_GetInt("TBan");
printf("Spielerdaten vom Spieler %s erfolgreich aus der Datenbank geladen",SpielerName(playerid));
new timestamp = gettime();
new bisgebannt = SpielerInfo[playerid][TBan] = r_mysql_GetInt("TBan");
if(timestamp < bisgebannt)
{
SendClientMessage(playerid,0xFF3200FF,"Du bist noch gebannt! Komm später wieder!");
Kick(playerid);
}
r_UnloadSQLEntrance();
}
}
return 1;
}
Edit: SpielerLaden Stock eingefügt
Meintest du das damit=
lässt du auch beim laden den Pfad öffnen?
Denn nach deinen Muster lädst du wieder was, wo er nicht weiß wovon
SpielerInfo[playerid][TBan] = r_mysql_GetInt("TBan"); //Von der SpielerInfo
So hab ich das, funktioniert überall anders auch, nur bei TBan nicht
Schau dir das mal an
[ INCLUDE ] RFT MySql + SQLLite (Remake) Version 2.0.1 (Bug FIx) RC1 (RC2 in bearbeitung)
Du benutzt das r_mysql_setint auch nicht richtig, da du vorher nix lädtst.
er kann garnichts setzen da er nicht weiß wohin damit
Hab das nun bei SpielerLaden laden lassen, jetzt speicherts zwar, aber kann immer noch connecten
Alles anzeigenDu hats anscheinend meinen Post nicht richtig gelesen.
Mach es mal so:
ocmd:tban(playerid,params[])
{
new pID,grund[64],dauer;
if(SpielerInfo[playerid][Adminlevel] < 2)return SendClientMessage(playerid, ROT, "Du hast nicht die nötigen Rechte!");
if(sscanf(params, "uis", pID, dauer, grund))return SendClientMessage(playerid, WEISS, "/tban [ID] [Dauer (in Minuten)] [Grund]");
TBan2(pID,grund, dauer,playerid);
return 1;
}
stock TBan2(playerid,const string[],dauer,bannerid)
{
new timestamp;
timestamp = gettime();
new sekunden = dauer * 60;
timestamp += sekunden;
SpielerInfo[playerid][TBan] = timestamp;
new str[256];
new name[MAX_PLAYER_NAME],bannername[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
GetPlayerName(bannerid,bannername,sizeof(bannername));
format(str,sizeof(str),"Admin-Command: %s wurde von %s für %d Minuten gebannt",name,bannername,dauer);
SendClientMessageToAll(ROT,str);
format(str,sizeof(str),"Grund: %s",string);
SendClientMessageToAll(ROT,str);
r_mysql_SetInt(SpielerInfo[playerid][TBan],timestamp);
Kick(playerid);
return 1;
}
Ne, jetzt steht die Datenbank auf 0, d.h. es kommt garnix mehr, habs auch schon anders probiert.
Alles anzeigenDas kann dann ja nicht funktionieren.
Du nimmst folgende Zeile raus:
SpielerInfo[pID][TBan] = dauer;
Und fügst diese in stock Tban2 unter timestamp +=sekunden hinzu.
und ersetzt dauer durch timestamp.
Du darfst nicht die Dauer speichern, sondern den timestamp.
Denn: der timestamp sind die Anzahl der Sekunden seit dem 01.01.1970. Bedeutet: Der timestamp der Zeit, an dem der Bann abläuft ist größer, als der aktuelle Timestamp.
Und 5 sind 5 Sekunden nach dem 01.01.1970, was bedeutet, dass der Bann garnicht mehr besteht, da diese Zeit in der Vergangenheit liegt.
/EDIT: PWN Tags
//EDIT 2: Erklärung hinzugefügt
new sekunden = dauer * 60;
timestamp += sekunden;
Also das habe ich im Stock TBan2
//Edit: Funktioniert immer noch nicht..
Habs nu so
ocmd:tban(playerid,params[])
{
new pID,grund[64],dauer;
new timestamp;
timestamp = gettime();
new sekunden = dauer * 60;
timestamp += sekunden;
if(SpielerInfo[playerid][Adminlevel] < 2)return SendClientMessage(playerid, ROT, "Du hast nicht die nötigen Rechte!");
if(sscanf(params, "uis", pID, dauer, grund))return SendClientMessage(playerid, WEISS, "/tban [ID] [Dauer (in Minuten)] [Grund]");
SpielerInfo[pID][TBan] = timestamp;
TBan2(pID,grund, dauer,playerid);
return 1;
}