... kannste mir bitte sagen wie ich zb. nur einen ordner kopiere?
Beiträge von Meisternuke
-
-
ich erstelle eine datei mit dini... ich will davon jetzt aber eine sicherheitskopie machen...
gibts die möglichkeit die datei zu kopieren, ohne jeden wert einzeln auszulesen und erneut in die neue datei zu scheiben?//e frage geändert
-
new stringtest[128];
strcat(stringtest, "Name: %s",Spielername(playerid));geht nicht... also ich kann in wiki nicht erkennen das man da noch eine variable einbauen kann...
bei einem /stats fenster, dann also die variante von aspire nehmen mit format? -
wie ist das wenn ich jetzt zb einen string einer variable drinnen haben möchte?
also geht das so:strcat(s,"Spielername: %s",Spielername(playerid));
ist das gleich wie bei format?
-
mach das mal so wie ich mit den 40 admincmds
-
also ich habe es so bei /fraktionen:
#define DIALOG_ADMINCMDS 90
^ganz obenund dann halt im befehl, bei mir zb für euch /admincmds:
new ALLECMDS[1024],CMDS1[256],CMDS2[256],CMDS3[256],CMDS4[256],CMDS5[256]; // bei bedarf erhöhen
format(CMDS1, sizeof(CMDS1), "/testcommand1 /testcommand2 /testcommand3 /testcommand4 \n/testcommand5 /testcommand6 /testcommand7 /testcommand8"); //entspricht 8 commands für 2 zeilen
format(CMDS2, sizeof(CMDS2), "/testcommand9 /testcommand10 /testcommand11 /testcommand12 \n/testcommand13 /testcommand14 /testcommand15 /testcommand16"); //entspricht 8 commands für 2 zeilen
format(CMDS3, sizeof(CMDS3), "/testcommand17 /testcommand18 /testcommand19/testcommand20 \n/testcommand21 /testcommand22 /testcommand23 /testcommand24"); //entspricht 8 commands für 2 zeilen
format(CMDS4, sizeof(CMDS4), "/testcommand25 /testcommand26 /testcommand27 /testcommand28 \n/testcommand29 /testcommand30 /testcommand31 /testcommand32"); //entspricht 8 commands für 2 zeilen
format(CMDS5, sizeof(CMDS5), "/testcommand33 /testcommand34 /testcommand35 /testcommand36 \n/testcommand37 /testcommand38 /testcommand39 /testcommand40"); //entspricht 8 commands für 2 zeilen
format(ALLECMDS, sizeof(ALLECMDS), "%s\n%s\n%s\n%s\n%s",CMDS1,CMDS2,CMDS3,CMDS4,CMDS5); //alle strings werden zusammen gefasst, und als "ALLECMDS" formatiert...
ShowPlayerDialog(playerid,DIALOG_ADMINCMDS,DIALOG_STYLE_MSGBOX,"Admincommands",ALLECMDS,"OK","");//... und hier dann als dialog für den spieler ausgegebenungetestet ... aber sollte so klappen, habs bei mir halt noch mit variablen usw...
wenns errors gibt, einfach schickenfunktioniert:
//e 1 leerzeichen zu viel im script
//e 2 bild hinzugefügt -
//e anderes problem =D
es wird irgendwie nichts mehr gespeichert..
die datei Zeitung.txt ist im scriptfilesordner im ordner Zeitung vorhandenwas ist am speichern falsch?
new Zeitungdatei[20];
if(sscanf(params,"iis",seite,zeile,text))return SendClientMessage(playerid, ROT, "Benutze: /schreiben [Zeitungsseite] [Zeile] [Text]");
{
if(GetPVarInt(playerid,"loggedin")==1)
{
if(seite==1)
{
if(zeile==1)
{
format(Zeitungdatei,sizeof(Zeitungdatei),"/Zeitung/Zeitung.txt");
dini_Set(Zeitungdatei,"Seite1Zeile1",text);
} -
^this
respekt xD
nochnie so ein dialog gesehen haha geile idee -
Weiß einer wie lang der Text bei einem Dialog mit dem Style: DIALOG_STYLE MSGBOX sein darf?
hab hier was von kye gefunden, aber stimmt das?
<Kye> 2048 characters but that will probably be increased
Frage nr2:
Wie oft kann ich \n machen?
irgendwann ist der dialog ja dann nicht mehr im bild, gibts da auch ein limit? also max zeilenanzahl? -
also das script das du mir gesendet hast müsste so gehen...
bei oplayerdeath wird jaSetPVarInt(playerid,"Tode",GetPVarInt(playerid, "Tode")+1);
SetPVarInt(killerid,"Kills",GetPVarInt(killerid, "Kills")+1);um 1 erhöht...
hab dir mal noch was eingefügt, ersetzt das nochmal:
public OnPlayerDeath(playerid, killerid, reason)
{
new string[128];
format(string,sizeof(string),"Du Hast %s Gekillt HGW!",SpielerName(playerid));
SendClientMessage(killerid,ROT,string);
format(string,sizeof(string),"Du wurdest von %s Gekillt!",SpielerName(killerid));
SendClientMessage(playerid,ROT,string);
GameTextForPlayer(playerid,"~w~-> ~r~ToT ~w~<-",1000,3);
GameTextForPlayer(killerid,"~w~-> Kill <-",1000,3);
SetPlayerScore(killerid,(GetPlayerScore(killerid)+1));
if(killerid == INVALID_PLAYER_ID){
SetPVarInt(playerid,"Tode",GetPVarInt(playerid, "Tode")+1);
Todeupdate(playerid);
}
else
{
SetPVarInt(playerid,"Tode",GetPVarInt(playerid, "Tode")+1);
Todeupdate(playerid);
SetPVarInt(killerid,"Kills",GetPVarInt(killerid, "Kills")+1);
Killupdate(killerid);
SpielerSpeichern(playerid);
SpielerSpeichern(killerid);
}return 1;
} -
hast du ein register / login script?
-
public OnPlayerDeath(playerid, killerid, reason)
{
new string[128];
format(string,sizeof(string),"Du Hast %s Gekillt HGW!",SpielerName(playerid));
SendClientMessage(killerid,ROT,string);
format(string,sizeof(string),"Du wurdest von %s Gekillt!",SpielerName(killerid));
SendClientMessage(playerid,ROT,string);
GameTextForPlayer(playerid,"~w~-> ~r~ToT ~w~<-",1000,3);
GameTextForPlayer(killerid,"~w~-> Kill <-",1000,3);
SetPlayerScore(killerid,(GetPlayerScore(killerid)+1));
if(killerid == INVALID_PLAYER_ID){
SetPVarInt(playerid,"Tode",GetPVarInt(playerid, "Tode")+1);
Todeupdate(playerid);
}
else
{
SetPVarInt(playerid,"Tode",GetPVarInt(playerid, "Tode")+1);
Todeupdate(playerid);
SetPVarInt(killerid,"Kills",GetPVarInt(killerid, "Kills")+1);
Killupdate(killerid);
}
return 1;
}habs für dich gemacht
-
probier mal das auszutauschen...
SetPVarInt(killerid,"Kills",GetPVarInt(killerid, "Kills")+1);
also bei dir werden die kills von playerid hochgesetzt, wenn man stirbt, muss ja aber killerid sein
-
wenn du das so machst, ändert sich das textdraw für jeden spieler, also angenommen ich sterbe wird dein textdraw auch geändert, ich machs mal für dich:
irgendwo über ongamemodeinit:
new Text:Killtextdraw[MAX_PLAYERS];
new Text:Todetextdraw[MAX_PLAYERS];unter onplayerconnect:
Killtextdraw[playerid] = TextDrawCreate(0.000000,437.000000,"[Kills: 50 ]");
TextDrawAlignment(Killtextdraw[playerid],0);
TextDrawBackgroundColor(Killtextdraw[playerid],0x000000ff);
TextDrawFont(Killtextdraw[playerid],3);
TextDrawLetterSize(Killtextdraw[playerid],0.499999,1.000000);
TextDrawColor(Killtextdraw[playerid],0xffffffff);
TextDrawSetOutline(Killtextdraw[playerid],1);
TextDrawSetProportional(Killtextdraw[playerid],1);
TextDrawSetShadow(Killtextdraw[playerid],1);Todetextdraw[playerid] = TextDrawCreate(528.000000,436.000000,"[Tode: 50 ]");
TextDrawAlignment(Todetextdraw[playerid],0);
TextDrawBackgroundColor(Todetextdraw[playerid],0x000000ff);
TextDrawFont(Todetextdraw[playerid],3);
TextDrawLetterSize(Todetextdraw[playerid],0.499999,1.100000);
TextDrawColor(Todetextdraw[playerid],0xffffffff);
TextDrawSetOutline(Todetextdraw[playerid],1);
TextDrawSetProportional(Todetextdraw[playerid],1);
TextDrawSetShadow(Todetextdraw[playerid],1);bei onplayerdisconnect:
TextDrawDestroy(Killtextdraw[playerid]);
TextDrawDestroy(Todetextdraw[playerid]);unter onplayerspawn:
TextDrawShowForPlayer(playerid, Killtextdraw[playerid]);
TextDrawShowForPlayer(playerid, Todetextdraw[playerid]);damit wird aufjeden fall schon mal das textdraw erstellt...
jetzt gehts ans updaten, dafür benutze ich zb. immer eine funktionWir nennen die funktionen mal Killupdate und Todeupdate...
stock Killupdate(playerid)
{
new killud[40];
format(killud, sizeof(killud), "[Kills: %d ]",GetPVarInt(playerid, "Kills"));//hier halt mir deinem erstetzen.. also GetPVarInt
TextDrawSetString(Killtextdraw[playerid], killud);
}
stock Todeupdate(playerid)
{
new todeud[40];
format(todeud, sizeof(todeud), "[Tode: %d ]",GetPVarInt(playerid, "Tode"));//hier halt mir deinem erstetzen.. also GetPVarInt
TextDrawSetString(Todetextdraw[playerid], todeud);
}Jetzt wird das textdraw überall geupdatet wenn du:
Killupdate(playerid);
bzw.
Todeupdate(playerid);
einfügst.logisch wäre es aber bei Onplayerdeath:
Killupdate(killerid); //dem killer wird das textdraw für kills geupdatet
und
Todeupdate(playerid); //wenn ich selber sterb, wird das textdraw für tode geupdatetaber bitte erst nachdem du den wert erhöht hast, also
SetPVarInt(playerid,"Tode",GetPVarInt(playerid,"Tode")+1);
SetPVarInt(playerid,"Kills",GetPVarInt(playerid,"Kills")+1);
und dann erst
Killupdate(killerid);
Todeupdate(playerid);ist ungetestet, aber sollte gehen...
wegen dem textdraw2, also der adresse, einfach so lassen also bei ongamemodeinit
nur halt bei ongamemodeexit:
TextDrawHideForAll(textdraw2);
TextDrawDestroy(textdraw2);und bei onplayerconnect:
TextDrawShowForPlayer(playerid, textdraw2);wenns was gibt melde dich
mfg
-
[video]
Externer Inhalt www.youtube.comInhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.Durch die Aktivierung der externen Inhalte erklären Sie sich damit einverstanden, dass personenbezogene Daten an Drittplattformen übermittelt werden. Mehr Informationen dazu haben wir in unserer Datenschutzerklärung zur Verfügung gestellt.
http://www.youtube.com/watch?v=n3rf3-f5FfI&feature=youtu.behab mal kurz n kleines vid gemacht, für die die nicht wissen was ich mein...
naja schade, das man da nix machen kann
-
Ihr kennt ja alle den "Bug", das wenn man z.B. eine Deagle auf 1 Schuss runterballert, dann auf faust oder eine andere Waffe wechselt, man dann wieder zurück wechselt, man wieder bei der Deagle volle Munition hat, geht ja bei jeder Waffe.
Gibts es da die möglichkeit, das zu verhindern?
Also ich wechsle Waffe mit 3 Schuss, wechsle zurück, hab immernoch 3 Schuss.Glaube Trooper hatte da mal was, kann aber nichts mehr finden.
-
Zitat
jap mehr informationen wären gut , und ne persönliche frage warum nich F.Informatiker für Anwendungsentwicklung wäre doch als Scripter besser
hab ich mir auch überlegt...
aber systemintegration lernt soweit ich jetzt mitbekommen habe auch programmieren usw...
vllt kann er einfach besser am pc rumschrauben -
wenn Meisternuke vertreten ist, dann {00FF00}Meisternuke
ansonsten {FF0000}Meisternuke{00FF00} = Farbcode für Grün
{FF0000} = Farbcode für Rot -
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(strcmp(Spielername(i),"Meisternuke", true) == 0)
{
SendClientMessage(playerid,BLAU,"Projektleiter und Vorstand: {00FF00}Meisternuke");
}
else
{
SendClientMessage(playerid,BLAU,"Projektleiter und Vorstand: {FF0000}Meisternuke");
}
if(strcmp(Spielername(i),"TomBo", true) == 0)
{
SendClientMessage(playerid,BLAU,"Vorstand: {00FF00}TomBo");
}
else
{
SendClientMessage(playerid,BLAU,"Vorstand: {FF0000}TomBo");
}
if(strcmp(Spielername(i),"Mysterion", true) == 0)
{
SendClientMessage(playerid,BLAU,"Vorstand: {00FF00}Mysterion");
}
else
{
SendClientMessage(playerid,BLAU,"Vorstand: {FF0000}Mysterion");
}
SendClientMessage(playerid,BLAU,"HeadAdmin: {FF0000}- ");
if(strcmp(Spielername(i),"Phil", true) == 0)
{
SendClientMessage(playerid,BLAU,"Superadmin: {00FF00}Phil");
}
else
{
SendClientMessage(playerid,BLAU,"Superadmin: {FF0000}Phil");
}
if(strcmp(Spielername(i),"Studtie", true) == 0)
{
SendClientMessage(playerid,BLAU,"Admin: {00FF00}Studtie");
}
else
{
SendClientMessage(playerid,BLAU,"Admin: {FF0000}Studtie");
}
SendClientMessage(playerid,BLAU,"TestAdmin: {FF0000}- ");
SendClientMessage(playerid,BLAU,"++++++++++++++++++++++++++++++++++++");
return 1;
}hab hier meinen /admins befehl
es sollen die namen in grün angezeigt werden, wenn der admin online ist, sonst grün...
die farben und so stimmen schonmal
jetzt ist es so...
ich "Meisternuke" tippe /admins ein...
wenn jetzt phil online ist, wird er grün angezeigt... ich selber werde aber rot angezeigt...wenn jetzt noch Studtie oder so online ist, wird dieser auch rot angezeigt, also es wird gerade nur 1 admin grün angezeigt
//e woran kann das liegen
-
hab hier meinen giveweapon befehl...
ocmd:giveweapon(playerid, params[])
{
if(!Admin(playerid,4))return SendClientMessage(playerid,ROT,"Du bist kein Admin [4]");
new pID, wID, ammo, string[128];
if(sscanf(params,"udd",pID,wID,ammo)) return SendClientMessage(playerid,0xFFF000FF,"Benutzung:/giveweapon [ID] [Waffe] [Munition]");
if(pID == INVALID_PLAYER_ID)return SendClientMessage(playerid,ROT,"Spieler nicht gefunden");
GivePlayerWeapon(pID, wID, ammo);
format(string,sizeof(string),"Du hast %s die Waffe %i mit %i Munition gegeben!",Spielername(pID),wID,ammo);
SendClientMessage(playerid, BLAU, string);
format(string,sizeof(string),"Du hast von %s die Waffe %i mit %i Munition bekommen!",Spielername(playerid),wID,ammo);
SendClientMessage(pID, BLAU, string);
format(string, sizeof(string),"[%s hat %s die Waffe %i mit %i Munition gegeben!]",Spielername(playerid), Spielername(pID),wID,ammo);
SendAdminMessage(PINK, string);
return 1;
}nur wird ja jetzt die munition drauf gegeben.
also wenn der spieler 400 deagleschuss hat, ich dann ihm nochmal per befehl 400 gebe, dann hat er 800...
wie mache ich, das abgefragt wird ob der spieler noch miunition in der waffe hat...
also spieler hat 400 munition, ich mache den befehl, returned message, hat noch munition