Warum setzt du bei Member nur einmal das Anführungszeichen u. bei Leader zweimal?
Beiträge von SoulMan
-
-
Dann guck im Script nach, da müsste, wenn ich mich nicht irre irgendwo
eine Datei erstellt werden, die den Namen des Ordners in sich hat. Guck mal, wenn du mit dini speicherst nach dini_Create
Wir haben leider keine Zeilen, daher ist es ein wenig schwierig was Genaues zu sagen. -
Kann man das nicht einfach so einstellen, dass der bei zu vielen Zeichen
nicht mehr weiterschreibt? Weil das kann doch nicht sein, dass man meinen Server so crashen kann..:S -
Hey, ich habe ein ziemlich lästiges Problem, wenn ich zu lange Texte eingebe, crasht der Server
immer. Das Problem ist extrem behindernd u. ich würde es liebend gern aus der Welt schaffen, hab aber leider
keine Ahnung, wie ich das behebe. Hab ich die Stringgröße evtl. zu groß angegeben an manchen stellen?
Wäre schön, wenn mir jmd. helfen kann.
Hier mal mein /me [Handlung] Text-Befehl als Bsp. als dieser zu lang war, crashte mein server.
COMMAND:me(playerid,params[])
{
new Float:x,Float:y,Float:z;
new text[64];
if(sscanf(params, "s",text))return SendClientMessage(playerid,0xC8C8C8FF,"/me [Handlung]");
GetPlayerPos(playerid,x,y,z);
for(new i=0;i<MAX_PLAYERS;i++)
{
if(IsPlayerInRangeOfPoint(i,20.0,x,y,z))
{
new string[128];
format(string,sizeof(string),"*%s %s*",SpielerName[playerid],text);
SendClientMessage(i,0xC17DCCFF, string);
}
}
return 1;
} -
Danke, hab aber noch n Warning.
C:\Dokumente und Einstellungen\JOSHUA\Desktop\WalkerScript\WalkerScript\WalkerScript.pwn(2711) : warning 219: local variable "i" shadows a variable at a preceding level
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase1 Warning.
Weiß zwar, was das bedeutet, will jetzt aber da nichts rauslöschen.
-
Schick schick. Sieht ordentlich aus.
8/10 -
-
Ich für meinen Teil hole mir öfter Hilfe von Maddin u. ]hp[ , weswegen sie in den "SpecialThanks" erwähnt werden.
Fände es ungerecht, die Arbeit Anderer als Selfmade zu bezeichnen. Ich würde jetzt mal ganz ethisch sagen, dass es etwas moralisches ist, aber
keinesfalls rechtlich. Dich wird sicher niemand dafür anzeigen können, dass du Teile aus einem Script rauskopierst. Das wäre auch lächerlich.
mfG
Walker -
-
Meinste ich soll den Timer bei OnGameModeInit laufen lassen statt bei OnPlayerSpawn?
Wie soll ich n das einstellen, kann ich da einfach dern gleichen Timer laufen lassen oder wie?
mfG
Walker -
Klappt, danke.
-
Also ich benutze gerade als Timer das hier. Steht halt beim Spawn, damit der Timer geladen wird.
if(pInfo[playerid][JailTime] >= 1)
{
SetTimerEx("Jail",1000,1,"i",playerid);
return 1;
}
Beim /arrest Befehl wird der Timer aufgerufen. Hier der ganze Befehl (Zeit ist extra so kurz zum Testen)
COMMAND:arrest(playerid,params[])
{
new pID;
if(sscanf(params, "u",pID))return SendClientMessage(playerid,0xC8C8C8FF,"/einsperren [ID/Name]");
if (!IsPlayerConnected(pID))return SendClientMessage(playerid,0xC8C8C8FF,"Dieser Spieler ist nicht online!");
if(pInfo[playerid][Fraktion] != 4 && pInfo[playerid][Fraktion] != 9)return SendClientMessage(playerid,0xC8C8C8FF,"Du bist kein Cop/FBI!");
if(GetPVarInt(playerid, "dienst") == 0) return SendClientMessage(playerid,0xC8C8C8FF,"Du bist nicht im Dienst!");
else
{
if(IsPlayerInRangeOfPoint(playerid,8,267.8802,82.1092,1001.0391) && pInfo[pID][Wanteds] >= 1)
{
new str[128],str2[128];
SetTimerEx("Jail",1000,1,"i",pID);
pInfo[pID][JailTime] = pInfo[pID][Wanteds] * 1000 * 2;
pInfo[pID][Wanteds] = 0;
pInfo[pID][Free] = 0;
SetPlayerWantedLevel(pID,0);
SetPlayerPos(pID,264.7867,82.0650,1001.0391);
SetPlayerInterior(pID,6);
SetPlayerVirtualWorld(pID,38);
SetPVarInt(pID, "dienst", 0);
format(str,sizeof(str),"<< %s hat den Verdächtigen %s eingesperrt >>",SpielerName[playerid],SpielerName[pID]);
format(str2,sizeof(str2),"Du wurdest von %s für %i Minuten eingesperrt!",SpielerName[playerid],pInfo[pID][JailTime]/60000);
SendClientMessageToAll(0xFF6347AA,str);
SendClientMessage(pID,0xFF6347AA,str2);
}
else return SendClientMessage(playerid,0xC8C8C8FF,"Du bist nicht an den Zellen oder der Spieler hat keine Wanteds!");
}
return 1;
}Und die public
public Jail(playerid)
{
if(pInfo[playerid][JailTime] >= 1)
{
SetPlayerPos(playerid,264.7867,82.0650,1001.0391);
SetPlayerInterior(playerid,6);
SetPlayerVirtualWorld(playerid,38);
pInfo[playerid][JailTime] -= 1000;
}
else if(pInfo[playerid][JailTime] == 0 && pInfo[playerid][Free] == 0)
{
pInfo[playerid][Free] = 1;
SetPlayerPos(playerid,1552.5352,-1675.6243,16.1953);
SetPlayerFacingAngle(playerid,90);
SetCameraBehindPlayer(playerid);
SetPlayerInterior(playerid,0);
SetPlayerVirtualWorld(playerid,0);
SendClientMessage(playerid,0xC8C8C8FF, "Du hast deine Strafe abgesessen! Du bist wieder frei!");
}
return 1;
}Ich musst Free einbauen, damit man nicht nach der Entlassung andauernd neu spawnt.
Standardmäßig ist Free immer auf 1. -
Naja, aber ich find deine Variablen ein wenig sagen wir mal verwirrend.
Warum new eingeknastet?
Hab doch ne Variable. Naja, ich versuch's jetzt mal.
mfG
Walker//Muss das nicht SetTimerEx sein? Der muss ja die public aufrufen.
//2 So, habs jetzt endlich, hab aber noch eine Frage, wie kann ich einstellen, dass sich der Timer nicht mehr wiederholt, wenn man bereits eingespert ist?
Man spawnt nämlcih immerwieder im Knast nachm arresten, also man wurde eingesperrt und wird beim ablaufen der zeit andauernd neu geportet xD -
Naja, du erstellst den Befehl und setzt eine Variable, also z.B. new Level; Dann definierst du einfach, dass Level gleich deine AdminVariable ist, bei mir ist es so
pInfo[pID][AdminLevel] = Level;mfG
Walker//Beim disconnect wird ja, sofern du es so hast, die neue Variable gespeichert.
Musst das also nicht extra im Befehl haben. -
Du darfst das nicht im Editor in ein pwn Code packen.
Musst das mit dem Quellcode machen.
mfG
Walker -
Blamier dich nicht selber.
Deiner Rechtschreibung nach würde ich dich als 13 - 14 einschätzen.
Und es heißt "Niveau".
mfG
Walker//Sobald das geklärt wurde, kann mein Beitrag gelöscht werden bzw. ich tue es selber.
Möchte nur, dass er dies noch liest.//2 Hui, und der nächste Thread von dir. [ DM ] [ 0.3 ] Team - Deathmatch - San Fierro
Wieviel noch? -
-
Bin mal gespannt.
//Achja, ich denke, dass sich die ganzen GF Reallife Scripts auf Dauer nicht halten.
Selfmade ist immer besser, da man es kontrollieren kann. Wenn ich mit meinem Roleplay-Gamemode fertig bin, werde
ich ein Team Deathmatch Script starten, dass ich evtl. releasen werde. Aber mal sehen, wie lang es noch dauert mit meinem RP Selfmade.
mfG
Walker -
Dann fügt eine neue Variable hinzu, z.B.
AdminLevel u. fragt bei den Befehlen einfach ab, wie hoch dieses Level ist. Ist es dann z.B. größer als 3,
darf er diesen Befehl ausführen. Bei /kick müsste am Ende Kick(pID); stehen, bei /ban Ban(pID); .
Warn's könnt ihr auch als Variable einschreiben u. dann bei /warn zuweisen. Wenn ihr ein wenig scriptkentnisse
besitzt, ist es eig. nicht so schwer. Hört sich nur auf dem ersten Blick schwer an.
Wenn ihr Hilfe benötigen solltet, schreibt mich heute Abend an.
mfG
Walker -
pInfo[userId][frakleader] = 1;
Definiert das hier nur, dass jemand Leader von irgendwas ist oder von Fraktion 1?Ich würde es so machen:
dcmd_makeleader(playerid, params[])
{
new userId, frakId, index;
userId = strval(strtok(params, index));
frakId = strval(strtok(params, index));
if (pInfo[playerid][AdminLevel] > 1)
{
if (IsPlayerConnected(userId))
{
pInfo[userId][fraktion] = frakId; //Die ID, die du bei /makeleade rangibst definiert nun die ID der Fraktion, in der man ist.
pInfo[userId][frakrang] = 12;
pInfo[userId][frakleader] = 1;
SendClientMessage(playerid, GELB, "Du hast einen Spieler zum Leader gemacht.");
SendClientMessage(userId, HELLBLAU, "Du wurdest zum Leader einer Fraktion gemacht.");
return 1;
}
else
{
SendClientMessage(playerid, ROT, "Spieler nicht online.");
return 1;
}
}
else
{
SendClientMessage(playerid, ROT, "Du bist besitzt nicht das nötige Adminlevel");
return 1;
}
}