Beiträge von tonyalva
-
-
-
Das wird so nicht funktionieren
Attach3DTextLabelToPlayer(wantedtext[playerid],playerid, wX, wY, 1.0);
ist auch Sinnlos an der stelle.
Da der Label bereits an den Spieler beim erstellen gehängt wird.
new giveplayer[MAX_PLAYER_NAME], Float:wX, Float:wY, Float:wZ, string[256];
GetPlayerPos(playerid, wX, wY, wZ );
ebenfalls Sinnlos. 0.0 würde ausreichen beim Anhängen des Labels.
Danke daran lag es
Grüße,
tonyalva -
Versuchs so?
CreatePlayer3DTextLabel(forplayerid,string,COLOR_RED,wX,wY,wZ,40.0);
//edit
Umgekehrt würde ich sagen, playerid soll sehn was an forplayerid angettacht wurde x-D
Bin durcheinander... xDlg
pS
Mh,
also die Zeile funktioniert ja und wenn ich es so mache, kann ich ja wiederum nichts attachen.
http://wiki.sa-mp.com/wiki/OnPlayerStreamIn
Ich glaube, dass ist schon richtig, dass es an playerid attached werden muss, allerdings enthält genau der Code zum attachen ja die Warnung//Edit: Ein Problem weniger, jedoch klappt dies immer noch nicht.
Hoffe, dass mir jemand helfen kannGrüße,
tonyalva -
if(strcmp(cmd, "/goto", true) == 0)
{
if(IsPlayerConnected(playerid) && PlayerInfo[playerid][pAdmin] >= 1)
{
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "BENUTZUNG: /goto [playerid/PartOfName]");
return 1;
}
new plo,Float:plocx,Float:plocy,Float:plocz;
plo = ReturnUser(tmp);
if(PlayerInfo[plo][pAdmin] > PlayerInfo[playerid][pAdmin])
{
SendClientMessage(playerid,COLOR_GRAD2,"Der Spieler hat ein höheres Adminlevel als du!");
return 1;
}
if (IsPlayerConnected(plo))
{
if(plo != INVALID_PLAYER_ID)
{
GetPlayerPos(plo, plocx, plocy, plocz);
SetPlayerInterior(playerid, GetPlayerInterior(plo));
PlayerInfo[playerid][pInt] = GetPlayerInterior(plo);
SetPlayerVirtualWorld(playerid, GetPlayerVirtualWorld(plo));
if(GetPlayerState(playerid) == 2)
{
new tmpcar = GetPlayerVehicleID(playerid);
SetVehiclePos(tmpcar, plocx, plocy+4, plocz);
TelePos[playerid][0] = 0.0;TelePos[playerid][1] = 0.0;
}
else
{
SetPlayerPos(playerid, plocx, plocy, plocz);
}
SendClientMessage(playerid, COLOR_YELLOW, " Teleport!");
GetPlayerName(playerid, sendername, sizeof(sendername));
GetPlayerName(plo, giveplayer, sizeof(giveplayer));
format(string, sizeof(string), " AdmCmd: Admin %s hat sich zu %s teleportiert.", sendername, giveplayer);
AdminLog(string);
return 1;
}
else
{
SendClientMessage(playerid, COLOR_GRAD2, " Unbekannte ID");
return 1;
}
}
}
else
{
SendClientMessage(playerid, COLOR_GRAD2, " Du bist nicht berechtigt, diesen Befehl zu benutzen !");
return 1;
}
}Du darfst "plo" auch nicht benutzen, bevor du es neu definiert hast.
Für die, die sagen "versuch es doch mit giveplayerid", hier steht doch klar:Zitatplo = ReturnUser(tmp);
Grüße,
tonyalva -
Zitat
if(PlayerInfo[playerid][pAdmin] > PlayerInfo[playerid][pAdmin])
Du fragst auch ab, ob das Adminlevel von "playerid" höher ist als das von "playerid".
Schau Dir mal an, wie ich es geschrieben habe.
Du musst prüfen, ob der Wert von der Person, zu der Du dich portest höher istGrüße,
tonyalva -
if(PlayerInfo[plo][pAdmin] > PlayerInfo[playerid][pAdmin]) return SendClientMessage(playerid,COLOR_X,"Der Spieler hat ein höheres Adminlevel als du!");
So ungefähr?
Einfach in den Code einfügen.
//Edit: Und natürlich die Farbe ersetzen.Grüße,
tonyalva -
ich meine wer tot ist muss auch geld bezahlen
Es wird Dir ja wohl nicht so schwer fallen die eine Zeile selbst zu modifizieren?
Wie wäre es mal, wenn Du selbst anfangen würdest, das Scripten zu lernen?GivePlayerMoney(playerid, -500)
Grüße,
tonyalva -
Zitat
#IfWinActive, GTA:SA:MP
Ist das auch ganz oben im Script?
Btw,
SendInput t/ad{enter}
SendInput Du brauchst ein Auto?... Es darf nicht zu teuer sein?{enter}Das kann so nicht klappen, es wird immer nur /ad gesendet.
Danach ist der Chat zu und der Rest wird garnicht gesendet.Grüße,
tonyalva -
Ich frage mich nur eins:
Wenn du in einem anderen Thread das hier hinbekommen hast:
if (strcmp("/deletecar", cmdtext, true) == 0)
{
if (AccountInfo[playerid][AdminLevel] >= 3|| IsPlayerAdmin(playerid))
DestroyVehicle(GetPlayerVehicleID(playerid));
SendClientMessage(playerid,0xFF2222AA,"Du hast dein Car gelöscht");
return 1;
}Dann kannst Du ja wohl eine Abfrage ändern und diesen Command dadurch anpassen?
Wenn Du das nicht hinkriegst, sieht es schlecht aus mit dem Scripting.Grüße,
tonyalva -
vielen dank und wie mache ich das es nur admin level 1 kann?
Eine solche einfache Abfrage dürfte Dich ja wohl nicht überfordern.
Du kennst ja Dein Adminsystem, kannst es dementsprechend also anpassen.
Ansonsten schaue Dir halt deine anderen Admincommands anGrüße,
tonyalva -
Empfehlung: Benutze DINI, damit wirst du nicht soviele Probleme haben, denn da könntest du dini_IntSet("Banned",1) machen und das wäre leichter als dein derzeitiges.
Hey,
naja möchte jetzt nicht den ganzen GM umändern, sofern ich jedoch ein Selfmade anfange, werde ich dies wohl machen.
Hat jemand eine Lösung für dieses System?Grüße,
tonyalva -
Hey,
ich habe ein Problem mit meinem Offlineban-Command.
Und zwar werden die Werte zwar in die Userdatei geschrieben, ich möchte allerdings, dass die bereits vorhandenen Werte aus der Datei ausgelesen werden und sich die Werte: Banned, BanFrom, BanReason nur aktualisieren.
Denn jetzt wird die ganze File gelöscht und nur die neuen Dateien werden reingeschrieben.ocmd:alock(playerid,params[])
{
if (PlayerInfo[playerid][pAdmin] < 4) return SendClientMessage(playerid,COLOR_GREY,"Du bist kein Administrator!");
new acc[64], string[256],giveplayer[32],reason[128], sendername[MAX_PLAYER_NAME];
if(sscanf(params,"s[32]s[128]",giveplayer,reason)) return SendClientMessage(playerid, COLOR_GREY,"[Benutzung]: /alock [Spieler] [Grund]");
format(acc,sizeof(acc),"/Accounts/%s.ini",giveplayer);
if(!fexist(acc)) {
format(string,sizeof(string)," Der Account von %s existiert nicht!",giveplayer);
SendClientMessage(playerid,COLOR_GRAD2,string);
return 1;
}
new File:banaccount = fopen(acc,io_write);
fwrite(banaccount,"Banned=1\n");
GetPlayerName(playerid,sendername,sizeof(sendername));
format(string, sizeof(string), "BanFrom=%s\n",sendername);
fwrite(banaccount,string);
format(string, sizeof(string), "BanReason=%s\n",reason);
fwrite(banaccount,string);
fclose(banaccount);
format(string, sizeof(string), "AdmCmd: %s wurde von %s gebannt, Grund: %s",giveplayer,sendername, reason);
SendClientMessageToAll(COLOR_LIGHTRED,string);
format(string, sizeof(string), "[Bann:A]: Der Account von %s wurde durch %s gesperrt, Grund: %s", giveplayer, sendername, reason);
SaveToFile("Adminlog",string);
return 1;
}}
Kann mir jemand helfen?
//Edit: Unnötige Zeile entferntGrüße,
tonyalva -
Hast du jetzt dein Atach Code geändert oder ist es immer noch wie vorhin??
//edit
Und sollte es nicht bei Attach... giveplayerid heißen??
lg
pS
Hey,
ich habe nun die erste Warnung gefixxt, jedoch bleibt beim Attach Code immer noch eine Warnung
Folgende Zeile:Attach3DTextLabelToPlayer(WantedText[playerid], playerid, 0.0, 0.0, 0.7);
Dabei tritt folgender Warnung ein:
Zitatscript.pwn(8424) : warning 213: tag mismatch
Zumal es im Wiki allerdings ähnliches gibt:
ZitatAttach3DTextLabelToPlayer(label[playerid], playerid, 0.0, 0.0, 0.7);
//Edit: Nein, wenn dann überhaubt "forplayerid", allerdings soll das TextLabel ja an playerid attached werden, damit forplayerid dieses sieht, oder täusche ich mich da?
Grüße,
tonyalva -
ok nice
Schon,
nur klappt das Ganze ja immer noch nicht.
Ich hoffe, dass mir da jemand helfen kann, vielleicht hast Du ja noch eine Idee?Grüße,
tonyalva -
und haste das Behoben? Warning?
In der Zeile, die Du verändern wolltest, war ja garkeiner, ich habe mich nur in der Zeile versehen
Grüße,
tonyalva -
Hey,
danke für die Antwort erstmal.
Mir ist allerdings aufgefallen, dass ich die Warning in der folgenden Zeile habe:wantedtext[playerid] = CreatePlayer3DTextLabel(forplayerid,string,COLOR_RED,wX,wY,wZ,40.0,playerid,INVALID_VEHICLE_ID,1);
Grüße,
tonyalva -
Ja tonyalva,
aber das ist ja anders /o befehl wie bei mir
Ist ja trotzdem das gleiche Prinzip.
Beim Befehl /togooc setzt Du einen Bool auf 1.
Gibst Du den Befehl nocheinmal ein, setzt Du den Wert auf 0.Nun fügst Du eine Abfrage in den /ooc-Befehl ein, welche abfragt, ob der Spieler, der den Befehl eingegeben hat die entsprechenden Adminrechte hat.
Dann kann er auch bei ausgeschaltetem Chat schreiben.
Du musst also auch überprüfen, ob der Chat ausgeschaltet ist (durch den Bool..) und lässt dann halt eine ClientMessage ausgebenEin bisschen muss man auch selbst machen, achso:
Schau Dir doch das Standart GF-Script an, dort ist eigentlich alles vorhanden, was Du in letzer Zeit so nachgefragt hast.Grüße,
tonyalva -
-
Hey,
sicherlich ganz nett für Anfänger, jedoch finde ich eine solche Art einfach unsauber:
Zitatif(strcmp(cmdtext,"/waffe kaufen deagle",true)==0)
Viel mehr solltest Du mit 2 Parametern arbeiten, einem Waffenparameter und einem Munitionsparameter, also z.B /buy deagle 10
Dann bekommt man pro X Schuss eine bestimmte Anzahl Geld abgezogen usw.Grüße,
tonyalva