machs mal so:
if(sscanf(params,"iii", cID, cl1, cl2))return SendClientMessage(playerid,ROT,"/command [Wert 1] [Wert 2] [Wert3]");
//Hier jetzt das, was passieren soll, wenn alle Parameter korrekt sind
machs mal so:
if(sscanf(params,"iii", cID, cl1, cl2))return SendClientMessage(playerid,ROT,"/command [Wert 1] [Wert 2] [Wert3]");
//Hier jetzt das, was passieren soll, wenn alle Parameter korrekt sind
Hör mal schätzken, der Einzige, der ekelhaft rüberkommt, bist Du.
D.Fence hat höflich gefragt, was Du meinst und Du kommst direkt überheblich rüber.
Aber um des zu kapieren muss man ja sein Gehirn einschalten...
//EDIT: Übrigens: google ist in Bezug auf das Wörtchen "assi" sehr hilfreich.
Du könntest in Photoshop das Polygon Lasso Werkzeug nehmen und den Teil, den du haben willst, rausschneiden.
Das Tolle ist auch, dass man sich die Funktionen von Pawno meistens erschließen kann, da diese fast alle immer im gleichen Musterf aufgebaut sind. :>
Den Rest tut die Wiki, falls man mal nicht bescheid weiß :>
Alles anzeigenJohn_Hunter das war schon richtig was er hatte.
man kann erst 1 und dann 0 returnen...
denn das return 1; steht unter einer abfrage, wenn also die abfrage true ist, wird eins returnt, bei einem return wird die methode sofort abgebrochen und der wert returnt..
d.h. das return 0 kommt garnicht mehr vor, ausser die bedingung ist eben false, dann überspringt es das return 1; und verwendet return 0;
du kannst es genauso so schreiben
if(rang<=Adminrang) return 1;
else return 0;
//achja und das was du geschrieben hast is völliger mist, wieso überflüssige methoden erstellen =!
Wo siehst Du denn in seinem Stock eine Beendung der If Schleife?
Demnach waren return 1 und return 0 auf einer Ebene.
Und warum ich den anderen Stock bevorzuge?
Ganz einfach: Stell Dir mal vor, Du willst den Rang eines admins ermitteln, ohne zu wissen, welchen er hat.
Dann kann man den Rang nicht als Parameter übergeben.
also gibt man ihn per return aus.
Grüße
Du returnst doch den Rang.
Nach meinem Wissen, sollte das falsch sein.
Wenn ich mich irre, mach den Stock mal andersindem du einfach die PVar returnst
stock padmin(pID){
return GetPVarInt(pID,"Adminlevel");
}
und in der abfrage fragst:
if(padmin(playerid)==3)// 3 = Adminlevel
Du returnst erst 1 und dann null. wieso?
Ok, ich habe den Fehler gefunden xD
Lag an einer Stelle, wo das Textdraww angezeigt wurde, obwohl es dort nicht sollte xD
Danke an alle, die mir geholfen haben
Grüße
z.B.
new rank[20];
switch(adminlevel){ //Rang als Zahl
case 1: rank = "Supporter" //Rang als Wort
case usw....
}
also beim ersten Versuch funktionierte es, beim zweiten nciht.
ich habe den Code von Dir genommen und nur beim hide und show auf ein PlayerTextDraw angepasst, da sonst Tag missmatch Fehler kamen und der Fehler besteht leider immernoch.
also muss ich den TextDraw beim Death löschen und wieder neu erstellen?
Und jo ich setz den mal runter xD
Ich hab's jetzt so gem.:
stock kd(pID){
new str[64];
format(str,sizeof(str),"Kills: %i - Deaths: %i",mysql_GetInt("accounts","kills","name",SpielerName(pID)),mysql_GetInt("accounts","deaths","name",SpielerName(pID)));
stats[pID]=CreatePlayerTextDraw(pID,390, 430,str);
PlayerTextDrawUseBox(pID,stats[pID] , 1);
PlayerTextDrawFont(pID,stats[pID] , 2);
PlayerTextDrawBackgroundColor(pID,stats[pID] ,0x000021FF);
PlayerTextDrawBoxColor(pID,stats[pID] ,0x000021FF);
PlayerTextDrawShow(pID,stats[pID]);
}
und dann bei onplayerdeath:
PlayerTextDrawDestroy(playerid,stats[playerid]);
PlayerTextDrawDestroy(killerid,stats[killerid]);
kd(playerid);
kd(killerid);
Moinsen,
folgnder Code:
public OnPlayerDeath(playerid, killerid, reason)
{
new oldkills=mysql_GetInt("accounts","kills","name",SpielerName(killerid));
mysql_SetInt("accounts","kills",oldkills+1,"name",SpielerName(killerid));
new olddeaths=mysql_GetInt("accounts","deaths","name",SpielerName(playerid));
mysql_SetInt("accounts","deaths",olddeaths+1,"name",SpielerName(playerid));
new str1[1000];
format(str1,sizeof(str1),"Kills: %i - Deaths: %i",mysql_GetInt("accounts","kills","name",SpielerName(killerid)),mysql_GetInt("accounts","deaths","name",SpielerName(killerid)));
PlayerTextDrawSetString(killerid,stats[killerid],str1);
new str2[1000];
format(str2,sizeof(str2),"Kills: %i - Deaths: %i",mysql_GetInt("accounts","kills","name",SpielerName(playerid)),mysql_GetInt("accounts","deaths","name",SpielerName(playerid)));
PlayerTextDrawSetString(playerid,stats[playerid],str2);
return 1;
}
Beim ersten Kill und Death, aktualisiert es sich, doch beim zweiten überlappen sich alter und neuer Textdraw.
Ich versuche nun seit knapp 3 Stunden den Fehler zu lokalisieren, doch ich finde ihn einfach nicht.
Was mache ich falsch?
Grüße
if(dini_Isset(accFormat,"Admin") == 1)
Diese Codezeile ist falsch. Es müsste heißen
if(dini_Int(accFormat,"Admin") == 1)
Ich habe es versucht, jedoch weiß ich nicht, wie ich in das Casino komme.
Leider helfen da auch nicht die wenigen Tutorials, die es zu dem Programm gibt, weiter.
Wie komme ich in das Casino?
Moinsen,
Wie ist es möglich die "Abgestellten" im Casino zu entfernen?
Ich meine diese:
http://screencloud.de/-g96vkup4jh
Diese nerven ein bischen und passen nicht in mein Konzept xD
Danke schonmal im Voraus.
Grüße
ocmd:gotothecar(playerid,params[]){
if(!isPlayerAnAdmin(playerid,2))return SendClientMessage(playerid,ROT,"AdminRang zu niedrig.");
new Float:X, Float:Y, Float:Z,vid;
if(sscanf(params,"d",vid))return SendClientMessage(playerid,Grau,"Fehler: /gotothecar [ID]");
GetPlayerPos(vid,X,Y,Z); //wiespo fragst Du die Position vom Spieler ab, du musst die Position vom Car abfragen und des kannste mithilfe von Dudalos Post.
SetPlayerPos(vid,X,Y,Z);
return 1;
}
alles 3 leer.
das Einzige wäre Onplayerspawn:
if(IsPlayerAnAdmin(playerid,1)){
SetPVarInt(playerid,"SupOnDuty",0);
SetPlayerPos(playerid,1123.2590,-2037.0715,69.8876);
SetPlayerInterior(playerid,0);
SetPlayerSkin(playerid,188);
}
Moinsen,
ich stehe vor einem großen Problem:
Ich scripte gerade einen DM Server und wenn man in einem Interior stirbt/erschossen wird, habe ich eine Lebensanzeige von Null.
Bei dem Mörder liege ich in einer Blutlache, ich kann abernoch rumlaufen, wie ges. aber mit einer Lebensanzeige von Null.
Ich finde den Fehler nicht und da es in einem alten Script auch war und ioch ein komnplett neue Script angef. habe, gehe ich nicht von einem Scriptfehler aus.
Hatte jmd. einen ähnlichen Fehler und weiß, wie man den beheben kann?
Ich weiß ehrlich ges. auich nicht, welchen Code ich posten sollte, da dies nur im Interior passiert.
//EDIT: bei uns beiden ist dann aich die Lebensanzeige und die Waffen anzeige weg.
Viele Grüße
Moinsen,
ich habe momentan folgenden Code:
public OnPlayerText(playerid, text[])
{
for(new i=0; i<GetMaxPlayers(); i++)
{
new Float:X,Float:Y,Float:Z;
GetPlayerPos(playerid,X,Y,Z);
if(IsPlayerInRangeOfPoint(i,15,X,Y,Z))
{
SendClientMessage(i,White,text);
new Log[100];
format(Log,sizeof(Log),"[Chat] %s: %s",SpielerName(playerid),text);
SaveToFile(Log);
}
}
for(new i = 0;i<1000000;i++){
if(strfind(text,BadWords[i],true)!=-1){
new string[128];
new log[100];
format(string,sizeof(string),"%s wurde vom Anti Bad Word System gekickt.",SpielerName(playerid));
SendClientMessageToAll(ROT,string);
format(log,sizeof(log),"[Kick] Server ----> %s, Grund: Verbotenes Wort [%s]",SpielerName(playerid),text);
SaveToFile(log);
Kick(playerid);
}
}
}
Jetzt ist mir aufgefallen, dass beide Code blöcke nicht miteinander korrespondieren.
Wenn ich etwas eingebe, ist der globale Chat noch da, aber der lokale auch. Ich möchte ja den globalen Chat weghaben und NUR den lokalen Chat beibehalten.
Dies gelingt mir, sobald das anti bad word System weg ist.
Wie kann ich beides zusammen in onplayertext unterbringen, sodass der globale Chat weg ist und der lokale bleibt?