so?
andersrum ![]()
und bitte auch anstatt:
GetPlayerIp(playerid,IP,512);
//So schreiben: !!!
GetPlayerIp(playerid,IP,16);
mfg. ![]()
so?
andersrum ![]()
und bitte auch anstatt:
GetPlayerIp(playerid,IP,512);
//So schreiben: !!!
GetPlayerIp(playerid,IP,16);
mfg. ![]()
Kaliber
Du Genie vllt weisst du es
Der Ip string, sollte keine 512 Zeichen Verbrauchen omg!
Das sind 512*4 Bytes ![]()
Mach einfach 16 hin und den Text string auf 256 und dann reicht das locker ![]()
und funktioniert auch ![]()
mfg. ![]()
Würde sich nach deiner Meinung es lohnen es zu lernen
Das musst du doch wissen, ob es sich für dich lohnt ![]()
Und welche Programmiersprache sollte ich dafür lernen.
Ich weiß nicht genau was du machen willst, aber ich würde dir C# oder C++ empfehlen ![]()
wie lange muss man es lernen?
Solange bis es klappt bzw du es kannst ![]()
Ist unterschiedlich von Person zu Person ![]()
mfg. ![]()
Kaliber
Ich habe leider keine Kenntnisse, sind viele Kenntnisse nötig? Ich habe nämlich keine Zeit um eine Programmiersprache zu lernen.
Nun, wenn du einen Client Programmieren willst, sprich du willst etwas programmieren, dann wäre es schon praktisch wenn man programmieren kann ![]()
mfg. ![]()
(ist wenn du dich z.B selber killst).
Echt?
Eigentlich ist dann doch killerid = playerid...
INVALID_PLAYER_ID ist es dann, wenn man z.B. von einem berg oder haus oder so springt und dann stirbt oder ertrinkt ![]()
mfg. ![]()
Weist du zufälliger weise ob es schwer ist so einen Client zu erstellen?
Das kommt darauf an, wie gut du dich damit auskennst ![]()
mfg. ![]()
[DT]Sniper
Alles ist möglich wenn man fest daran glaubt !
Nein, das leider nicht.
Es reicht schon wenn man die .txd verändert, da kannst du das mit dem Objekten schon alles verändern und sogar eigene Objekte bzw TextDrawBilder erstellen, die muss sich aber leider jeder neu downloaden, damit das geht ![]()
mfg. ![]()
stock isPlayerPremium(playerid)
{
if(GetPVarInt(playerid,"Premium") == 1)return 1;
else if(GetPVarInt(playerid,"Premium") == 0) return 0;
}
Es muss so aussehen:
stock isPlayerPremium(playerid)
{
if(GetPVarInt(playerid,"Premium") == 1)return 1;
return 0;
}
mfg. ![]()
Wo hab ich da den wurm sitzen?[/pwn]
Ja, sscanf mit dem cmdtext zu nutzen, funktioniert etwas anders ![]()
Du musst es so machen:
public OnPlayerCommandText(playerid,cmdtext[]) {
if(!strcmp(cmdtext,"/unban",true)) {
new pos=strfind(cmdtext," ");
strdel(cmdtext,0,pos);
//Jetzt kannst du sscanf nutzen mit cmdtext, sollte gehen ;)
}
}
Ist ungetestet, sollte aber gehen ![]()
danke Kaliber.
Kein Ding ![]()
mfg. ![]()
Was ich verstehe dein Problem und deine Abfragen nicht ![]()
Wieso fragst du 2x ab, ob der User Premium ist, erkläre das mal genauer ![]()
mfg. ![]()
Hat wirklich keiner einen Lösungsvorschlag? Ich scheitere bei der Ausgabe von Minuten und Sekunden. Wenn's nur Sekunden sind, kann ich's auch.
Doch, das macht man z.B. so:
@timer(min,sek);
@timer(min,sek) {
new string[16];
if(!min && !sek) return 0;
if(sek == 0) min--,sek=60;
sek--;
format(string,16,"%02d:%02d",min,sek);
print(string); //printet halt nur...ändern halt...
return SetTimerEx("@timer",1000,0,"ii",min,sek);
}
//Und Nutzen tut man es so:
SetTimerEx("@timer",1000,0,"ii",30,0); //Würde jetzt von 30min runter zählen
Printet halt momentan musst du halt ändern ![]()
mfg. ![]()
So sähe das ungefähr aus:
ocmd:setpremium(playerid, params[])
{
new pID,string[128],name[25],premium;
if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,HELLROT,"AdmCmd: Du besitzt keine Rechte, um diesen Befehl zu benutzen!");
if(sscanf(params,"ud",pID,premium))return SCM(playerid,HELLROT,"AdmCmd: Benutze /setpremium [SpielerID] [Premium]");
if(!IsPlayerConnected(pID)) return SCM(playerid,HELLROT,"AdmCmd: Der Spieler befindet sich zurzeit nicht auf dem Server!");
if(premium < 0 || premium > 1) return SendClientMessage(playerid,HELLORT,"Du kannst nur 0 oder 1 verwenden!");
GetPlayerName(playerid,name,25);
switch(premium) {
case 0: SCM(playerid,GRUEN,"AdmCmd: Du hast dem Spieler Premium Rank 1 gegeben."),format(string,128,"Administrator %s hat Dir Deine Premium Rechte gegeben.",name);
case 1: SCM(playerid,GRUEN,"AdmCmd: Du hast dem Spieler Premium Rank 0 gegeben."),format(string,128,"Administrator %s hat Dir Deine Premium Rechte weggenommen.",name);
}
SCM(pID,GRUEN,string);
SetPVarInt(pID,"Premium",premium);
return 1;
}
Schreibe den Befehl mal so:
ocmd:setpremium(playerid, params[])
{
new pID,string[128],name[25];
if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,HELLROT,"AdmCmd: Du besitzt keine Rechte, um diesen Befehl zu benutzen!");
if(sscanf(params,"u",pID))return SCM(playerid,HELLROT,"AdmCmd: Benutze /setpremium [SpielerID]");
if(!IsPlayerConnected(pID)) return SCM(playerid,HELLROT,"AdmCmd: Der Spieler befindet sich zurzeit nicht auf dem Server!");
SCM(playerid,GRUEN,"AdmCmd: Du hast dem Spieler Premium Rank 1 gegeben.");
GetPlayerName(playerid,name,25);
format(string,128,"Administrator %s hat Dir Deine Premium Rechte gegeben.",name);
SCM(pID,GRUEN,string);
SetPVarInt(pID,"Premium",1);
return 1;
}
mfg. ![]()
Alles Korrekt . .dll für Windows Home Server
du hast in der .cfg sccanf geschrieben, es heißt aber sscanf ![]()
mfg. ![]()
Alles anzeigenGeht nicht
selbst wenn ich es so mache
new Float:Fuuuuuuu = 100/3600;
printf("%f",Fuuuuuuu);
new Float:SoEinDreck = Fuuuuuuu*VehicleData[id][Tank];
printf("%f",SoEinDreck);
Haut er mir immer 0 raus
Das macht man so:
new Float:Fuuuuuuu = floatdiv(100,3600);
printf("%f",Fuuuuuuu);
new Float:SoEinDreck = floatmul(Fuuuuuuu,VehicleData[id][Tank]);
printf("%f",SoEinDreck);
mfg. ![]()
Dann kannst du ja mal 3000 Beiträge schreiben, ohne verwarnt oder gesperrt zu werden.
Kannst du kaum. Das braucht alles seine Zeit.
Du sagst gerade selbst, dass man an den Beiträgen sieht, dass das seine Zeit braucht und man so sieht, dass man auch schon länger dabei ist ![]()
Schreib das mal so:
stock IsAnFracCar(playerid)
{
new carid = GetPlayerVehicleID(playerid);
if(!IsPlayerConnected(playerid)) return 1;
for(new v; v<sizeof(LSPD); v++) {
if(carid == LSPD[v]) {
if(!IsACop(playerid)) return RemovePlayerFromVehicle(playerid),SendClientMessage(playerid, Rot, "Du hast keinen Schlüssel für dieses Auto.") & 1;
}
}
return 0;
}
mfg. ![]()
Du musst auf:
Options->Font und dann:
Courier New | Standard | 10
mfg. ![]()
Das sollte übrigens so aussehen:
#include <a_samp>
public OnFilterScriptInit()
{
//Hier alle Objekte rein!!!
print("\n--------------------------------------");
print(" Blank Filterscript by your name here");
print("--------------------------------------\n");
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
mfg. ![]()