Bisschen mehr Code wäre schon hilfreichern, jedoch denke ich einfach, dass du einen Klammer oder Semikolon Fehler hast.
Beiträge von coVer
-
-
Kommt in den Scripting - Bereich.
new Float:x, Float:y, Float:z;
GetVehiclePos(407,Float:x,Float:y,Float:z);
if(IsPlayerInRangeOfPoint(playerid,10.0,Float:x,Float:y,Float:z))
{
ShowPlayerDialog(playerid,dialogname,style,blablabla);
return 1;
}
return 1;ich weiß ned ob dass so schwer war...
Mit freundlichem Gruß,
coVer
-
Also hier mal die Stocks:
//Spieler Speichern
stock SpielerSpeichern(playerid)
{
if(GetPVarInt(playerid,"loggedin")==1)
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",name);
if(dini_Exists(Spielerdatei))
{
dini_IntSet(Spielerdatei,"Adminlevel",sSpieler[playerid][Adminlevel]);
}
}
return 1;
}Dann beim Login diesen Stock:
stock LoadAccount(playerid)
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",name);
if(dini_Exists(Spielerdatei))
{
sSpieler[playerid][Adminlevel] = dini_Int(Spielerdatei,"Adminlevel");
}
SetPVarInt(playerid,"loggedin",1);
SpawnPlayer(playerid);
return 1;
}und registrieren:
stock Register(playerid,key[])
{
new Spielerdatei[64];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid,name,sizeof(name));
format(Spielerdatei,sizeof(Spielerdatei),"/Accounts/%s.ini",name);
dini_Create(Spielerdatei);
dini_Set(Spielerdatei,"Passwort",key);
dini_IntSet(Spielerdatei,"Adminlevel",0);
SpawnPlayer(playerid);
return 1;
}Das "SpielerRegistrieren", natürlich beim ersten Connect auf dem Server.
SpielerLaden bei jedem Login bzw. OnplayerConnect,
und zu guter letzt, SpielerSpeichern bei OnPlayerDisconnect, so lädt es die Spielerdateien.
MfG
-
ocmd:ban (playerid,params[])
{
new MSG[145],Grund[100],TargetID;
if(!isPlayerAdmin(playerid,2))return SendClientMessage(playerid, FARBE_ROT, "Error: Du bist kein Admin2!");
if(sscanf(params,"us",TargetID,Grund))return SendClientMessage(playerid, FARBE_GRAU, "Fehler: /ban [Username/ID] [Grund]");
format(MSG,sizeof(MSG),"Server: %s wurde von Administrator %s gebannt, Grund: %s", SpielerName(TargetID),SpielerName(playerid), Grund);
SendClientMessageToAll(FARBE_ROT,MSG);
Ban(TargetID);
return 1;
}Bitteschön.
-
SetPlayerColor(playerid,FARBCODE / DEFINIERTE FARBE);
return 1;MfG
-
Schick mal den Log.
Probiers mal so:
ocmd:makeadmin(playerid,params[])
{
if(GetPVarInt(playerid,"Eingeloggt") == 1)
{
if(GetPVarInt(playerid,"Admin") == 5)
{
new pID;
new rank;
if(sscanf(params, "ud", Spieler,rank) return SendClientMessage(playerid, COLOR_ROT, "Bitte benutzte: /makeadmin [PlayerID] [Rank]");
{
new string[255], string1[255];
new name[MAX_PLAYER_NAME];
GetPlayerName(playerid, name, sizeof(name));
format(string, sizeof(string), "Du wurdest von Administrator %s zum Adminlevel %d befördert.", name,rank);
SendClientMessage(pID,COLOR_GRüN,string);
format(string1, sizeof(string1), "Du hast Spieler %s zum Adminlevel %d befördert.", pID, rank);
SendClientMessage(playerid,COLOR_GRüN,string1);
SetPVarInt(pID,"Admin",rank);
}
}
else
{
SendClientMessage(playerid, COLOR_ROT, "Du bist kein Administrator, oder hast nicht die Befugnis");
}
}
return 1;
}//Edit:
Ich habe deinen Fehler gefunden...
SetPVarInt(playerid,"Admin",Rank); // Der Spieler der den Command ausführt wird wieder zum Administrator gemacht, da du anstatt "Spieler" - "playerid" gemacht hast, somit kann die gewünschte Zielperson garnicht admin werden.
-
Guck mal in den Server-Crashlog, was dort drinnen steht, denke nicht dass es am Befehl liegt.
Lösche mal den Befehl, versuch dann den Server neuzustarten, wenns nicht klappt liegts an eetwas anderem.
Mit freundlichem Gruß,
coVer
-
Ich tippe die gespeicherte Interior-ID & Position wird nicht richtig gespeichert / gelesen.
-
Also das /help wirst du wohl selbst hinkriegen, das sind einfach nur SendClientMessages...
Zum gethere / goto.
Goto
ocmd:goto (playerid,params[])
{
new pID;
if(!isPlayerAdmin(playerid,1))return SendClientMessage(playerid, FARBE_ROT, "Error: Du bist kein Admin!");
if(sscanf(params,"u", pID))return SendClientMessage(playerid, FARBE_GRAU, "Fehler: /goto Spielername");
GetPlayerPos(pID,x,y,z);
SetPlayerPos(playerid, x+1,y,z);
return 1;
}Gethere
ocmd:gethere (playerid,params[])
{
new pID;
if(!isPlayerAdmin(playerid,1))return SendClientMessage(playerid, FARBE_ROT, "Error: Du bist kein Admin!");
if(sscanf(params,"u", pID))return SendClientMessage(playerid, FARBE_GRAU, "Fehler: /gethere Spielername");
GetPlayerPos(playerid,x,y,z);
SetPlayerPos(pID, x+1,y,z);
return 1;
}Bisschen das Köpfchen einschalten, http://wiki.sa-mp.com/wiki/Main_Page benutzen und es klappt von alleine. Gegenbenfalls sogar die SuFu hier im Forum.
-
if(strcmp(cmdtext,"/fixcar",true)==0)
{
new vehid = GetPlayerVehicleID(playerid);
RepairVehicle(vehid);
SendClientMessage(playerid,FARBE,"Dein Fahrzeug wurde repariert!");
return 1;
} -
Eventuell noch ein paar kleine Befehle, hier mal meine Version:
ocmd:handsup(playerid,params[])
{
new name[MAX_PLAYER_NAME],string1[128];
GetPlayerName(playerid, name, sizeof(name));
ResetPlayerWeapons(playerid);
SetPlayerSpecialAction(playerid,SPECIAL_ACTION_HANDSUP);
SendClientMessage(playerid, Grün, "Bleibe hier stehen, sonst wirst du erschossen!");
for(new i=0; i<GetMaxPlayers(); i++)
if(IsPlayerInFrak(i,1)) // Behörden
{
format(string1,sizeof(string1),"Verdächtiger %s stellt sich!", name);
SendClientMessage(i,FARBE,string1);
}
return 1;
}Mit freundlichem Gruß,
coVer
-
Also, das heißt soviel wie, dass im zcmd.inc das Sybmol "OnPlayerCommandText" schon definiert ist.
öffne die zcmd.inc mit einem Texteditor, öffne die Suche mit STRG+F und Suche "OnPlayerCommandText".
Nun löschst du einfach das einfach diese definierung und compilst es nochmal, dann sollte es klappen.
Mit freundlichem Gruß,
coVer
-
[Suche]Suche Ein /o Chat Und /report System
Bitteschön, wenn du nicht weißt, wo du es einfügen sollst, dann lass es mitm Scripten
Mit freundlichem Gruß,
coVer
-
Der "/o Chat".
ocmd:o(playerid,params[])
{
new MSG[255],Text[255] ;
if(IsPlayerConnected(playerid))return SendClientMessage(playerid,FARBE,"Du bist nicht eingeloggt!");
if(sscanf(params,"s",Text))return SendClientMessage(playerid,FARBE_GRAU,"Fehler: /o Text");
format(MSG,sizeof(MSG)," %s: %s",SpielerName(playerid), Text);
for(new i=0; i<GetMaxPlayers(); i++)
{
SendClientMessage(i,FARBE_GELB,MSG);
}
return 1;
}und um "SpielerName(playerid)", zu definieren:
SpielerName(playerid)
{
new xname[MAX_PLAYER_NAME];
GetPlayerName(playerid,xname,sizeof xname);
return xname;
}Einfach oben irgendwo ins Script einfügen.
Sollte dann klappen.
Mit freundlichem Gruß,
coVer
-
Oder du lädst dir einfach die Streamdateien von den Servern der Website runter, lädst sie irgendwo hoch, Webspace (funpic,o.Ä.) wobei ich hier Dropbox empfehle, kopierst den Link und schon spielt es die Audiodatei ab.
Klappt ganz gut, kannst mal bei mir probieren.
http://cover0815.co.funpic.de/
Dort eine Sounddatei auswählen und sie wird direkt abgespielt, genau so etwas benötigt SA-MP.
Also einfach Webspace (kostenlos) erstellen, http://www.funpic.de/, mit einem FTP Uploader die Dateien hochladen und den Link ins Script einfügen.
Mit freundlichem Gruß,
coVer
-
ocmd:fesseln(playerid,params[])
{
if(gTeam[playerid] == TEAM_ADMIN)
{
new pID, string[255];
if(sscanf(params,"u",pID))return SendClientMessage(playerid,FARBE_GRAU,"Fehler: /fesseln [Spielername]");
{
TogglePlayerControllable(pID,1);
format(string,sizeof(string),"Du hast %s gefesselt!",SpielerName(pID));
SendClientMessage(playerid,FARBE_GRAU,string);
return 1;
}
}
else
{
SendClientMessage(playerid,FARBE_ROT,"Du kannst diesen Befehl nicht nutzen!");
}
return 1;
}Hier einmal in OCMD, für Uncuff einfach das selbe, nur mit toggleplayercontrollabel 0
Mit freundlichem Gruß,
coVer
-
Dann mach einfach eine Abfrage rein.
if(fraktion < 1 || fraktion > 3) return SendClientMessage(playerid,FARBE_ROT, "Die Fraktionsnummer kann nur zwischen 1 und 3 liegen!");
Jedoch klappt es bei mir ohne Probleme.
/makeleader ID 0 ist dann halt entleadern.
MIt freundlichem Gruß
-
Also probiers mal so, funktionen auf dein Script umbenennen.
new TargetID, LeaderMSG[150], fraktion, frak_string[128], string[128];
if(!isPlayerAdmin(playerid,1337))return SendClientMessage(playerid, FARBE_ROT, "Tja, Plankton!");
if(sscanf(params,"ui",TargetID,fraktion))return SendClientMessage(playerid,FARBE_GRAU,"Fehler: /makeleader [Username/ID] [Fraktions ID]");
switch(fraktion)
{
case 1:
{
frak_string="Frak 1";
}
case 2:
{
frak_string="Frak 2";
}
case 3:
{
frak_string="Frak3";
}
}
sSpieler[TargetID][Leader] = 1;
sSpieler[TargetID][Fraktion] = fraktion;
sSpieler[TargetID][Leader] = fraktion;
SpawnPlayer(TargetID);
SpielerSpeichern(TargetID);
format(string,sizeof(string),"Du wurdest von Administrator %s zum Leader befördert. Fraktion: %s",SpielerName(playerid),frak_string);
SendClientMessage(TargetID,FARBE_HELLBLAU,string);
format(LeaderMSG,sizeof(LeaderMSG), "Du hast %s zum Leader der Fraktion: %s befördert.", SpielerName(TargetID),frak_string);
SendClientMessage(playerid, FARBE_GELB, LeaderMSG);
return 1;Müsste so klappen.
Mit freundlichem Gur0
-
Spieler Laden:
SetPlayerScore(playerid,dini_Int(Spielerdatei,"Level"));
GivePlayerMoney(playerid,dini_Int(Spielerdatei,"Geld"));Spieler Speichern:
dini_IntSet(Spielerdatei,"Level",GetPlayerScore(playerid));
dini_IntSet(Spielerdatei,"Geld",GetPlayerMoney(playerid));Das sollte so funktionieren.
Mit freundloichem Gruß
-
ShowPlayerMarkers(0);
Somit werden keine Markierungen von den Spielern auf der Minimap angezeigt.
SetPlayerColor(playerid,FARBE_DEINEFARBE);
Somit setzt du die Farbe eines Spielers in z.B. Rot oder Blau, jenachdem. Diese wird dann in der TAB Leiste angezeigt und auch über dem Spieler.
Mit freundlichem Gruß