Das kannst du so machen:
new string[12];
getdate(string[0], string[1], string[2]);
format(string, sizeof string, "%02d/%02d/%d", string[2], string[1], string[0]);
mfg. ![]()
Das kannst du so machen:
new string[12];
getdate(string[0], string[1], string[2]);
format(string, sizeof string, "%02d/%02d/%d", string[2], string[1], string[0]);
mfg. ![]()
Man muss erstmal sehen wir sich der Server entwickelt etc.
Wenn ihr nicht mal den Server VOLL testen tut,
dann habt ihr Pech. Langsam geht die Community hier echt den Berg ab.
Selbst bei einer Open Beta...sollte das Script schon "ein wenig" spielbar sein...aber das war ja eine Katastrophe...
Also so wie ich das sehe, sind einige Personen im Forum schon fast 2 Jahre registriert. Daraus schließt man doch, dass das Projekt selbst schon so fast 2 Jahre alt ist.
Folglich wird an diesem Script schon fast 2 Jahre gearbeitet...und was da bis jetzt rauskam, war eine Katastrophe.
Ich meine...allein dass der /starbonus Befehl nicht klappt, die Missionen ab der 2. Mission nicht mehr funktionieren oder das Tutorial hängt, die Spawn-Button buggen...etc
Und das sind lediglich die Anfangs Bugs...man wird doch wohl in 2 Jahren mal in der Lage sein, ein vernünftiges Login-System zu schreiben und da gibt es auch eig keine Ausreden für!
mfg.
Danke Leute ![]()
Schreib es so:
COMMAND:ooc(playerid, params[])
{
if(!params[0]) return SendClientMessage(playerid,-1,"Verwendung: /ooc [Text]");
new string[144];
format(string, sizeof(string), "{00FFFF}[OOC]{ffffff} %s{ffffff} sagt: %s", playerInfo[playerid][CharName], params);
return SendClientMessageToAll(COLOR_WHITE, string);
}
mfg. ![]()
Handschunde
Falls das Handschuhe heißen soll, die gibt es nicht, die kommen nur vom Skin aus, aber als Objekt o.ä. gibt es sie nicht.
Falls es Handschellen heißen soll, dann les die Posts, da steht ja schon alles drinnen ![]()
mfg. ![]()
Also ich habe es mal getestet, hier so funktioniert es:
stock ConvertCentMoney(Float:geld) {
new str[32],i,tmp[16];valstr(str,floatround(geld)),i=(geld > 0) ? strlen(str)-3 : strlen(str)-4;
for(; i>0; i-=3) strins(str,".",(geld > 0) ? i : i+1,24);
format(tmp,sizeof tmp,"%.02f",geld),strmid(tmp,tmp,strfind(tmp,".")+1,strlen(tmp),sizeof tmp);
return strcat(str,","),strcat(str,tmp),str;
}
//Beispiel wie ich es getestet habe:
new Float:money = 39931.42;
printf("%s$",ConvertCentMoney(money));
//-> Output: 39.931,42$
//Edit: Ich sag mal so wie es ist, wenn man zu große Float Variablen benutzt, dann kann Pawn das nicht mehr richtig verarbeiten! Also, nutze doch einfach 2 Variablen als int...
mfg. ![]()
Wie benutze ich Farben in solch einem Fall?
Das kannst du so machen:
new tmp[32 + 8];
strcat(tmp,"~r~"),strcat(tmp,VehicleNames[car-400]);
GameTextForPlayer(playerid, tmp, 2500, 1); //Jetzt wäre es rot wegen dem ~r~
Hier alle Farben: http://wiki.sa-mp.com/wiki/GameTextStyle
mfg. ![]()
Also wenn du irgendwelche Mods o.ä. hast, einfach mal deinstallieren.
Und naja das kann an Objekten liegen, entweder die DrawDistance von den Objekten ist zu hoch, dann kann es zu einem Problem kommen (also stell die mal Testweise n bissl runter) oder du benutzt sehr oft sehr große Objekte, dass kann auch zu einem Fehler führen.
mfg. ![]()
Die Z Position die OnPlayerClickMap ausspruckt ist idR keine gültige Höhe auf der Map, so dass man mit dem Fahrzeug fallen würde.
Das ist wohl richtig, allerdings hat der Ersteller der Include das ja selbst so gemacht, ich wollte lediglich aufzeigen, dass es ein wenig besser geht...ohne so viele Variablen..etc
Nun, man könnte hier auch SetPlayerPosFindZ machen und dann die Position des Spielers nehmen und dann das Auto setzen. Richtig, dass wäre am Besten ![]()
Wenn das jemanden stört, kann er das ja so machen oder das MapSanAndreas Plugin nutzen ![]()
mfg. ![]()
Also, man kann das auch einfach so schreiben:
#include <a_samp>
static bool:active[MAX_PLAYERS char];
public OnFilterScriptInit() return print("\tMap Teleporter Loaded. Edited by Kaliber");
public OnPlayerConnect(playerid) return active{playerid}=false;
public OnPlayerCommandText(playerid, cmdtext[]) {
if(!strcmp(cmdtext, "/mapteleport", true)) {
if(!active{playerid}) return SendClientMessage(playerid, -1, "Du hast den Map Teleporter {00FF40}aktiviert{FFFFFF}!"),active{playerid}=true,1;
return SendClientMessage(playerid, -1, "Du hast den Map Teleporter {FF0000}deaktiviert{FFFFFF}!"),active{playerid}=false,1;
}
return 0;
}
public OnPlayerClickMap(playerid, Float:fX, Float:fY, Float:fZ) {
if(!active{playerid}) return 1;
return (IsPlayerInAnyVehicle(playerid)) ? SetVehiclePos(GetPlayerVehicleID(playerid), fX, fY, fZ) : SetPlayerPosFindZ(playerid, fX, fY, fZ);
}
Das return 0; bei OnPlayerCommandText ist wichtig und strcmp gibt 0 zurück, wenn der Befehl übereinstimmt...und leere if-Abfragen sind sinnlos..logischerweise ![]()
//Edit:
Dome_:
FaMezZz:
Versucht mal diese Version ![]()
mfg. ![]()
Danke euch schon mal im Voraus!
Downloade dir mal den nativechecker und poste dann mal deinen server.log hierein ![]()
mfg. ![]()
Schreibs mal so:
ocmd:r(playerid,params[])
{
if(AFK[playerid]) return SendClientMessage(playerid,ROT,"Du kannst keine Befehle verwenden solange du AFK bist.");
if(isPlayerInFrakt(playerid,0)) return SendClientMessage(playerid,ROT,"Du bist nicht befugt diesen Befehl zu benutzen.");
if(!SpielerInfo[playerid][pFraktion] || SpielerInfo[playerid][pFraktion] > 3) return SendClientMessage(playerid,ROT,"Du bist nicht befugt diesen Befehl zu benutzen.");
if(!params[0]) return SendClientMessage(playerid,DUNKELGRAU, "Benutzung: /r [Text]");
new string[144];
if(SpielerInfo[playerid][pRang] == 7) format(string,144,"** Leitung '%s': %s",SpielerName(playerid),params);
else format(string,144,"** Rang %d '%s': %s",SpielerInfo[playerid][pRang],SpielerName(playerid),params);
for(new i; i<MAX_PLAYERS; i++) {
if(!isPlayerInFrakt(i, SpielerInfo[playerid][pFraktion])) continue;
SendClientMessage(i, 0x7B89FFFF, string),Frakchatlog(string);
}
return 1;
}
Wenn das nicht klappt liegt der Fehler in der Funktion "Frakchatlog" ![]()
mfg. ![]()
SetVehicleNumberPlate(vehicleid,vehicleid);
Das wird nicht funktionieren ![]()
numberplate benötigt einen String, keinen Integer.
Sprich man müsste es erst umkonvertieren:
new tmp[4];
//Hier der Code
valstr(tmp,vehicleid);
SetVehicleNumberPlate(vehicleid,tmp);
mfg. ![]()
Habe es nur bis jetzt immer so gemacht.
Ja...aber es ist dann halt anders sortiert ![]()
for(new i; i<5; i++) {
format(string,sizeof string,"Hallo ID: %d|%s",i,string);
}
/*
Gibt aus:
Hallo ID: 4|Hallo ID: 3|Hallo ID: 2|Hallo ID: 1|Hallo ID: 0|
*/
//Und mein/unser Code gibt aus:
for(new i; i<5; i++) {
format(string,sizeof string,"%sHallo ID: %d|",string,i);
}
/*
Gibt aus:
Hallo ID: 0|Hallo ID: 1|Hallo ID: 2|Hallo ID: 3|Hallo ID: 4|
*/
mfg. ![]()
Versuche das mal
Das ist nicht ganz richtig...schau dir meinen Code an, oder den von Mr.Reese...
mfg. ![]()
Schreib es so, dass ist wesentlich besser und richtiger:
dcmd_admins(playerid,params[])
{
#pragma unused params
new string[128];
for(new i; i < MAX_PLAYERS; i++) {
if(!IsPlayerConnected(i) || !AccInfo[i][Level] || AccInfo[i][Hide]) continue;
format(string, sizeof string, "%sAdmin %s (ID: %i)- Level %d - %s\n",string,PlayerName2(i),i, AccInfo[i][Level],(!AccInfo[i][OnDuty]) ? ("Busy") : ("Available"));
}
if(!string[0]) return ShowPlayerDialog(playerid,NO_ADMINS,DIALOG_STYLE_MSGBOX,"Online Admins","\n\n\n\nThere are no admins online.","Close","");
return ShowPlayerDialog(playerid,DIALOG_ADMINS,DIALOG_STYLE_MSGBOX,"Online Admins",string,"Close","");
}
mfg. ![]()
gilt das dann auch für ocmd Befehle?
Wenn du das auch in die ocmd-Include einfügst, dann ja ![]()
Im Moment wird ein normal JPEG Bild angezeigt möchte aber, dass ein GIF Bild angezeigt wird.
Einfach...den Pfad der Datei von dem .jpg Bild auf den von dem .gif ändern...
mfg. ![]()
Hier eine etwas kompaktere Funktion, die mehr deinen Wünschen entspricht:
stock EditName(name[]) {
static delimiter[][] = {"_",".",","},i,pos; //Du kannst das Array beliebig fortführen
for(; i<sizeof delimiter; ++i) {
pos = strfind(name,delimiter[i]);
if(pos == -1) continue;
name[pos] = ' ';
}
return name;
}
mfg. ![]()
Selber Error
Ja...immer noch falsche Zugangsdaten ![]()