Beiträge von Rayan
-
-
-
Code
\gamemodes\1337.pwn(8924) : error 012: invalid function call, not a valid address \gamemodes\1337.pwn(8924) : warning 215: expression has no effect \gamemodes\1337.pwn(8924) : error 001: expected token: ";", but found ")" \gamemodes\1337.pwn(8924) : error 029: invalid expression, assumed zero \gamemodes\1337.pwn(8924) : fatal error 107: too many error messages on one line
-
Woran liegt der Fehler?
format(string,sizeof(string),"<< %s wurde von ServerGuard gekickt. | Grund: DM in NO-DM (Warnung: 3/3) >>",sendername);
SendClientMessageToAll(COLOR_LIGHTRED,string);
KickPlayer(issuerid); -
Ja, habe sie erst vor kurzer Zeit aktualisiert
-
-
-
if(dialogid == DIALOG_COLOR)
{
if(response)
{
switch(listitem)
{
new vehicleid = GetPlayerVehicleID(playerid);
GivePlayerMoney(playerid,-2500);
GameTextForPlayer(playerid,"~r~KOSTEN: ~w~$2500",2500,3);
case 0:
{
SendClientMessage(playerid,COLOR_GREEN,"» Du hast dein Fahrzeug erfolgreich umgefärbt.");
ChangeVehicleColor(vehicleid,3,3);
return 1;
}
case 1:
{
SendClientMessage(playerid,COLOR_GREEN,"» Du hast dein Fahrzeug erfolgreich umgefärbt.");
ChangeVehicleColor(vehicleid,86,86);
return 1;
}
case 2:
{
SendClientMessage(playerid,COLOR_GREEN,"» Du hast dein Fahrzeug erfolgreich umgefärbt.");
ChangeVehicleColor(vehicleid,106,106);
return 1;
}
case 3:
{
SendClientMessage(playerid,COLOR_GREEN,"» Du hast dein Fahrzeug erfolgreich umgefärbt.");
ChangeVehicleColor(vehicleid,172,172);
return 1;
}
case 4:
{
SendClientMessage(playerid,COLOR_GREEN,"» Du hast dein Fahrzeug erfolgreich umgefärbt.");
ChangeVehicleColor(vehicleid,6,6);
return 1;
}
case 5:
{
SendClientMessage(playerid,COLOR_GREEN,"» Du hast dein Fahrzeug erfolgreich umgefärbt.");
ChangeVehicleColor(vehicleid,13,13);
return 1;
}
case 6:
{
SendClientMessage(playerid,COLOR_GREEN,"» Du hast dein Fahrzeug erfolgreich umgefärbt.");
ChangeVehicleColor(vehicleid,0,0);
return 1;
}
case 7:
{
SendClientMessage(playerid,COLOR_GREEN,"» Du hast dein Fahrzeug erfolgreich umgefärbt.");
ChangeVehicleColor(vehicleid,1,1);
return 1;
}
}
}
}Aufgrund diesem PAWN-Code spackt mein Compiler ab. Weiß jemand warum? Habe bereits einiges rumprobiert...
-
Wie mache ich, dass die Textdraw-Box nicht über die Map geht, sondern unter der Map?
-
forward klauen(playerid,giveplayerid);
public klauen(playerid,giveplayerid)
{
if (ProxDetectorS(5.0, playerid, giveplayerid))
{
new string[256],playername[24],giveplayer[24];
GetPlayerName(playerid,playername,sizeof(playername);
GetPlayerName(giveplayerid,giveplayer,sizeof(giveplayer);
new money = GetPlayerMoney(giveplayerid)/4;
format(string,sizeof(string),"[INFO] Spieler %s hat dir $%d geklaut.",playername,money);
SendClientMessage(giveplayerid,COLOR_YELLOW,string);
format(string,sizeof(string),"[INFO] Du hast dem Spieler %s $%d geklaut.",giveplayer,money);
SendClientMessage(giveplayerid,COLOR_YELLOW,string);
GivePlayerMoney(playerid,money);
GivePlayerMoney(giveplayerid,-money);
klauen[playerid] = 1;
SetTimerEx("StopKlauen", 1800000, false, "i", playerid); // Alle 30 Minuten klauen
return 1;
}
else
{
SendClientMessage(playerid,COLOR_RED,"» Dein Opfer befindet sich nicht mehr in der Nähe.");
return 1;
}
return 1;
}Pawn Compiler spackt ab. Verstehe nur gerade nicht warum. Kein Klammerfehler im Script vorhanden.
-
dcmd_unban(playerid, params[])
{
if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, COLOR_WHITE, "Du bist nicht eingeloggt.");
if(PlayerInfo[playerid][pAdmin] < 1338) return SendClientMessage(playerid, COLOR_WHITE, "» Du besitzt nicht die benötigten Zugriffsrechte.");
new accname[MAX_PLAYER_NAME];
if(sscanf(params, "s", accname)) return SendClientMessage(playerid, COLOR_WHITE, "BENUTZUNG: /unban [Accountname]");
new acc[MAX_PLAYER_NAME+20];
format(acc,sizeof(acc),"/Accounts/%s.ini",accname);
if(!fexist(acc)) {
format(stringx,sizeof(stringx)," Der Account %s existiert nicht!",accname);
SendClientMessage(playerid,COLOR_GRAD2,stringx);
return 1;
}
new File:banaccount = fopen(acc,io_write);
fwrite(banaccount,"Gebannt=0\n");
fclose(banaccount);
format(stringx, sizeof(stringx), "<< Administrator %s hat den Spieler %s entbannt. >>", MeinName(playerid), accname);
SendClientMessageToAll(COLOR_LIGHTRED,stringx);
return 1;
}Die gesamte Dini Speicherung wird gelöscht und durch "Gebannt=0" gesetzt.
Warum? -
Wenn dir das recht ist, dass alle, die in einem Fahrzeug sitzen den Radio hören können:
if(IsPlayerInAnyVehicle(playerid))
-
Code
Alles anzeigen18:13:14] [debug] Run time error 4: "Array index out of bounds" [18:13:14] [debug] Accessing element at negative index -145150999 [18:13:14] [debug] AMX backtrace: [18:13:14] [debug] #0 00005598 in public Streamer_OnPlayerConnect () from mode.amx [18:13:14] [debug] #1 native CallLocalFunction () from samp03svr [18:13:14] [debug] #2 00006710 in public OnPlayerConnect (13) from mode.amx [18:13:14] Test has logged in. [18:13:14] [debug] Run time error 4: "Array index out of bounds" [18:13:14] [debug] Accessing element at index 65535 past array upper bound 499 [18:13:14] [debug] AMX backtrace: [18:13:14] [debug] #0 0002a21c in public OnPlayerDeath (11, 65535, 255) from mode.amx [18:13:14] [death] Test died 255
-
Moin,
ich habe das Problem dass mein Server oft abstürtzt.
Manchmal ist zwischen den Abstürzen 1-2 Stunden Pause, jedoch stürzt der Server immer wieder ab.
Könnte es an DDos liegen?
Ich habe alle Befehle durchgecheckt, die den Rcon Command "gmx" enthalten. -
Also unter dem Variablennamen "Servername" erwarte ich normalerweise einen Text, der den aktuellen Servernamen speichert.
Genauso ist die Funktion "ServerName" irritierend meiner Meinung nach.Außerdem funktioniert (nicht getestet) dein "SendRconCommand" nicht, da er so nur versucht den Servernamen als RCON Befehl auszuführen was nicht funktioniert.
Um den (Host-)Namen des Serves zu ändern brauchst du schon ein "hostname" von dem Namen (Quelle: http://wiki.sa-mp.com/wiki/RCON#RCON_Commands)Eine switch Anweisung wäre für einen Anfänger evtl. auch verständlicher als (bei z. B. 10 verschiedenen Servernamen) 10 "else-if" Anweisungen.
Sorry, war ein wenig Müde
Habe das hostname im RconCommand vergessen. -
Hallo liebe Community!
Ich möchte euch heute ein Tutorial zeigen, wie ihr euren Servernamen alle x Sekunden ändern könnt. (automatische Funktion)
Beispiel:
Tutorial Reallife [0.3z]
[0.3z] Tutorial Reallife [Neueröffnung]Als erstes benötigen wir folgendes (am Besten ganz am Anfang des Scripts):
new Servername = 0;
Mit dieser Variable können wir nun arbeiten.Als erstes brauchen wir unter "OnGameModeInit" einen Timer:
public OnGameModeInit()
{
SetTimer("ServerName",2500,1);
return 1;
}
Dieser Timer sagt aus, dass in 2500 Millisekunden (2,5 Sekunden) der Timer ausgelöst wird. Nach dem 2500 die 1 (true) sagt aus, dass dieser Timer nicht nur 1x verwendet wird, sondern öfters.Danach schreiben wir am Besten oberhalb OnGameModeInit() folgendes:
forward ServerName();
public ServerName();
{
return 1;
}
In diesem Public wird nun festgelegt, was im Timer passieren soll. (In diesem Fall Servername wird geändert)Nun kommt auch die vorher, definierte Variable zum Einsatz:
forward ServerName();
public ServerName();
{
if(Servername == 0)
{
return 1;
}
else if(Servername == 1)
{
return 1;
}
return 1;
}
Diese Variable sagt später aus, welcher Servername zurzeit gewählt ist.Nun möchten wir, dass der Servername ständig geändert wird, dies legen wir mit einem SendRconCommand fest.
Damit dieser auch ständig gewechselt wird, benötigen wir unsere Variable, die auch ständig gesetzt wird.
forward ServerName();
public ServerName();
{
if(Servername == 0)
{
SendRconCommand("hostname Tutorial Reallife [0.3z]")
Servername = 1;
}
else if(Servername == 1)
{
SendRconCommand("hostname [0.3z] Tutorial Reallife [Neueröffnung]")
Servername = 0;
}
return 1;
}
Im SendRconCommand("TEXT") legen wir den ersten Servernamen fest.
Darunter mit Servername = 1; damit, dass die Variable auf 1 wechselt und in 2,5 Sekunden die Variable 1 ausgelesen wird, nicht die 0, wie vorher.Dies war mein erstes Tutorial.
Ich hoffe ich habe es nicht all zu kompliziert geschrieben.
Ich weiß, dies ist für Anfänger - dies sollte auch Anfänger in den Einstieg des Scriptens helfen. -
Und wenn ich das stock System nutzen würde?
Wie müsste ich es dann schreiben?- Danke im Voraus
-
sscanf plugin
-
ocmd:prison(playerid, params[])
{
new Zeit, pID, Grund[128], sendername[MAX_PLAYER_NAME], playername[MAX_PLAYER_NAME], string[500], oldtime;
if(!IsPlayerConnected(playerid)) return SendClientMessage(playerid, COLOR_GRAD2, "Du bist nicht eingeloggt!");
if(PlayerInfo[playerid][pAdmin] < 1) return SendClientMessage(playerid, COLOR_GRAD2, "» Du besitzt nicht die benötigten Zugriffsrechte.");
if(sscanf(params, "uds", pID, Zeit, Grund)) return SendClientMessage(playerid, COLOR_GRAD2, "Benutze: /prison [PLAYERID/NAME] [ZEIT IN MINUTEN] [GRUND]");
if(PlayerInfo[playerid][pAdmin] == 1 && Zeit > 30) return SendClientMessage(playerid, COLOR_GRAD2, "Als Admin1 kannst du maximal 30 Minuten Prison geben!");
if(Zeit < 10) return SendClientMessage(playerid, COLOR_GRAD2, "Die Prisonzeit darf nicht weniger als 10 Minuten betragen!");
if(!IsPlayerConnected(pID)) return SendClientMessage(playerid, COLOR_GRAD2, "Dieser Spieler ist nicht online!");
if(PlayerInfo[pID][pJailTime] == 0)
{
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(pID, playername, sizeof(playername));
new yearr, monthh,dayy,Hour,Minute,Sec;
getdate(yearr, monthh, dayy);
gettime(Hour,Minute,Sec);
format(string, sizeof(string), "* Du hast %s für %d Minuten ins Prison teleportiert. | Grund:%s", playername,Zeit,Grund);
SendClientMessage(playerid, COLOR_LIGHTRED, string);
format(string, sizeof(string), "* Du wurdest von Admin %s für %d Minuten ist Prison teleportiert. | Grund:%s", sendername,Zeit,Grund);
SendClientMessage(pID, COLOR_LIGHTRED, string);
format(string, sizeof(string), "[ADMIN] %s hat %s für %d Minuten ins Prison teleportiert. | Grund:%s",sendername,playername,Zeit,Grund);
ABroadCast(COLOR_LIGHTRED,string,1);
Log("Prison.log",string);
GameTextForPlayer(pID, "~w~Willkommen im ~n~~r~Prison", 5000, 3);
WantedPoints[pID] = 0;
WantedLevel[pID] = 0;
SetPlayerWantedLevel(pID,0);
PlayerInfo[pID][pJailed] = 5;
SetPlayerVirtualWorld(pID,pID+500);
PlayerInfo[pID][pJailTime] = Zeit*60;
ResetPlayerWeapons(pID);
//SetPlayerPos(pID,prisonspawn);
SetPlayerPos(pID,1218.4226,2552.8484,10.8203+2);
return 1;
}
}Es kommt ständig: "/prison [PLAYERID/NAME] [ZEIT] [GRUND]"
warum?
-
Wie schreibe ich am besten, dass wenn man z.B. einen Befehl eingibt, dass ein Geldrucksack am Rücken erscheint.
Bzw. welchen Scriptcode muss ich hierbei verwenden?