Ich hoffe du weißt wie man strcat benutzt zum formatieren wie format ist das nicht gedacht.
hier mal den Syntax
strcat(dest[],const source[],maxlength=sizeof string)
Beschreibung[i] wird ein integer sein daher wird hier kein warning angezeigt
Ich hoffe du weißt wie man strcat benutzt zum formatieren wie format ist das nicht gedacht.
hier mal den Syntax
strcat(dest[],const source[],maxlength=sizeof string)
Beschreibung[i] wird ein integer sein daher wird hier kein warning angezeigt
Kannst du vllt noch hinzuschreiben welcher dialog dir die ganze zeit angezeigt wird der registrieren dialog oder login
Wie ich es schon geschrieben habe wenn man varlist eingibt in die console werden die Daten einem angegeben was man so alles auslesen kann
Alles anzeigen
-.-
Wtf, das meine ich doch nicht mit print
So:
new ip[17];
GetServerVarAsString("bind", ip, 17);
printf("Ips: %s | %s",ip,Serverip);
if(strcmp(ip,Serverip) != 0)
{
SendRconCommand("exit");
}
und schau doch mal was da raus kommt
mfg.
Wenn er in der server.cfg nicht bind drinn stehen hat bringt das ihm weiter hin nicht viel
beispiel:
bind 127.0.0.1
du kannst das auch mit varlist wenn du das in die console eingibst mal alles ausgeben lassen
Ah okay habe es jetzt so mit den einzelnen Querys gelassen
Das würde auch mit 1 query gehen oder du machst 3 verschiedene querys gibst bei der WHERE clausel die jeweilige zahl an für die einwohnerspalte und arbeitest mit mysql_num_row.
Nun um das ganze mit einem query zu machen kann man auch mit sum arbeiten da werden werte addiert und der if clausel das kan man mit dem ternär operator
fast gleich ziehen. bedingunge,(ja) die rückgabe , (nein) die rückgabe
"SELECT SUM(IF(Einwohnerort='0',1,0)) AS value1 ,SUM(IF(Einwohnerort='1',1,0)) AS value2 ,SUM(IF(Einwohnerort='2',1,0)) AS value3 FROM `accounts`"
man hätte das auch mit group by machen können oder subquerys
so nun gut mit was kann man nun die werte abrufen. Dazu kannst du
mysql_fetch_field_row(string[],spalte);
benutzen
1 Beispiel mach ich dir noch
new result[15];
mysql_fetch_field_row(result,"value1");
Geht auch ohne externes Programm. "The Pilot's Life" Eigentümer hat es gescriptet und es müsste normalerweise wie folgt ablaufen:
Abfragen ob er einen Key drückt -> Abfragen ob er in der Nähe der Fahrzeuge ist wo es gehen soll -> die Person in das Fahrzeug als Beifahrer einfügen.
Jedoch ist dabei zu beachten, dass wenn man Enter oder F drückt der Client crasht!
Für was gibt es TogglePlayerSpectating und PlayerSpectateVehicle
http://wiki.sa-mp.com/wiki/PlayerSpectateVehicle
Über OnPlayerKeyState das ganze mit der taste abfragen einsteigen/aussteigen nur beim aussteigen muss man den spieler neben das fahrzeug porten
Alles anzeigenBekomme diese Errors:
C:\Dokumente und Einstellungen\Sevket\Desktop\German Deathmatch\gamemodes\Deathmatch.pwn(3331) : error 017: undefined symbol "IsAValidVehicle"
C:\Dokumente und Einstellungen\Sevket\Desktop\German Deathmatch\gamemodes\Deathmatch.pwn(3332) : error 017: undefined symbol "i"
C:\Dokumente und Einstellungen\Sevket\Desktop\German Deathmatch\gamemodes\Deathmatch.pwn(3333) : warning 209: function "ocmd_carrespawn" should return a value
C:\Dokumente und Einstellungen\Sevket\Desktop\German Deathmatch\gamemodes\Deathmatch.pwn(3334) : error 010: invalid function or declaration
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
3 Errors.
1 da du IsAValidVehicle nicht im skript hast das native und weil eine Klammer noch fehlt im code habe ich vergessen kannst ja selbst ergänzen
Was man dazu braucht sind 2 for-schleifen einmal um die fahrzeuge zu bekommen welche auf dem server vorhanden sind und einmal um die leeren zu bekommen.
Für was rv[MAX_VEHICLES]; ?
Das skript braucht ihrgend was um zu erkennen ob das fahrzeug mit leuten gefüllt ist oder nicht da es keine funktion gibt die das direkt abcheckt muss man das alles temporär speichern
native IsValidVehicle(vehicleid);
ocmd:carrespawn(playerid, params[])
{
if(!isPlayerAnAdmin(playerid,1)) return SendClientMessage(playerid,HELLROT,"AdmCmd: Du besitzt keine Rechte, um diesen Befehl zu benutzen!");
new pID, n1[128], grund[128];
format(n1,sizeof(n1),"%s hat alle Fahrzeuge respawnt.",SpielerName(playerid),SpielerName(pID),grund);
SendClientMessageToAll(BAIGE,n1);
new bool:rv[MAX_VEHICLES];
for(new i; i < MAX_PLAYERS; ++i)if(IsPlayerInAnyVehicle(i))rv[GetPlayerVehicleID(i)]=true;
for(new i; i < MAX_VEHICLES; ++i)
if(!IsAValidVehicle(i) && rv[i])continue;
SetVehicleToRespawn(i);
}
return 1;
}
Alles anzeigenHallo Community,
mein Textlabel erscheint nicht wenn ich mein Biz betrete:
Create3DTextLabel("Drücke [Leer] um das Waffenmenu zu öffnen.", Blau, 312.8172,-165.7129,999.6010,20.0,-1,0); //ammumenu
Das ist mein enter vom Biz:
if(IstAnEinemBiz(playerid))
{
new zz = BizInfo[AnBiz[playerid]][bizinterior];
SetPlayerPos(playerid,BizInteriors[zz-1][0],BizInteriors[zz-1][1],BizInteriors[zz-1][2]);
SetPlayerInterior(playerid,BizInteriorID[zz-1]);
SetPlayerVirtualWorld(playerid,AnBiz[playerid]+10);
ImBiz[playerid] = AnBiz[playerid];
}
Ich hoffe mir kann einer helfen
LG
Benutz dazu den streamer welchen du bestimmt auch verwendest also das streamer plugin das was du machen willst geht nicht da -1 in dem Fall ein mögliche vw ist.
Dazu müsstest du deinen spieler schon in die vw -1 setzen. Meistens steht es auch im wiki dran wenn es möglich ist.
native Text3D:CreateDynamic3DTextLabel(const text[], color, Float:x, Float:y, Float:z, Float:drawdistance, attachedplayer = INVALID_PLAYER_ID, attachedvehicle = INVALID_VEHICLE_ID, testlos = 0, worldid = -1, interiorid = -1, playerid = -1, Float:streamdistance = 100.0);
Du musst nicht alle parameter ausfüllen
Mann sollte das Passwort auch auslesen und mit dme input vergleichen
mit mysql_fetch_field_row oder mysql_fetch_row_format
zum vergleichen der strings benutzt man strcmp
link:
http://wiki.sa-mp.com/wiki/Strcmp
bezüglich dem i was steckt dahinter ?
Sind dies Variabeln für Spieler.
Ich hab dir mal ein beispiel code geschrieben jedoch auf die kürze ist mir nix besseres eingefallen
new array[5] ={1,2,3,4,5};
new array1[5] ={6,7,8,90,10};
new array2[5] ={8,9,10,11,12};
new HighValue[2];
for(new i; i < 5; ++i){
if(array[i] > HighValue[0]){
HighValue[0] = array[i];
HighValue[1] = i;
}
if(array1[i] > HighValue[0]){
HighValue[0] = array1[i];
HighValue[1] = i;
}
if(array2[i] > HighValue[0]){
HighValue[0] = array2[i];
HighValue[1] = i;
}
}
if(array[HighValue[1]] > array1[HighValue[1]] && array[HighValue[1]] > array2[HighValue[1]])printf("%d",array[HighValue[1]]);
else if(array1[HighValue[1]] > array[HighValue[1]] && array1[HighValue[1]] > array2[HighValue[1]] )printf("%d",array1[HighValue[1]]);
else if(array2[HighValue[1]] > array1[HighValue[1]] && array2[HighValue[1]] > array[HighValue[1]])printf("%d",array2[HighValue[1]]);
if(GEDRUECKT(KEY_FIRE) && ValideWaffe(playerid)) {
if(!HAT_GESCHOSSEN(playerid) && (PlayerInfo[playerid][pMember] == 8 || PlayerInfo[playerid][pLeader] == 8)) {
SETZE_GESCHOSSEN(playerid);
SetTimerEx("Headshot_AntiSpam", 1000, false, "d", playerid);
Headshot_ErmittleZielperson(playerid);
//headshooter = playerid;
}
}
mal so eine Frage verstehst du überhaupt oder ist das nur so eine auf gut glück ihrgend ein zeug in sein code zu kopieren taktik.
Da sich hier noch else befindet und es wird geprüft ob der spieler geduckt ist oder nicht zu dem code über mir so wäre die abfrag am besten direkt dort abzufragen ob der spieler hitman ist oder nicht.
Zu dem wenn du meinst meine verfassten texte nicht zu lesen kannst ja mal hoffen das ein anderer dir hilft da ich das problem nicht habe und mir das auch hier egal sein kann.
Wieso schämen?
Es gibt immer dinge die man nicht weis.
Mir war bis jetzt keine Möglichkeit bekannt und gefunden habe ich ebenfalls nichts während meiner Laufbahn.
Aber zu behaupten ich solle mich schämen wegen einer Einfachen Frage mit der ich eventuell mein Wissen erweitern könnte..
Naja, kein weitere Kommentar
Schau dir mal dieses Plugin an http://forum.sa-mp.com/showthread.php?t=238844
es basiert auf die idee eines dynamischen Arrays kannst dir ja noch weitere post in dem thread durchlesen
Ich würde dennoch nicht behaupten das Dynamische Arrays nicht möglich sind
http://www.homeandlearn.co.uk/csharp/csharp_s7p3.html
wie kann ich aus 6 variablen die größte herrausfinden??
glaube so funkionierts nicht oder? :
if(zone[i][grovep] >= zone[i][copp] && zone[i][grovep] >= zone[i][mementop] && zone[i][grovep] >= zone[i][cosap] && zone[i][grovep] >= zone[i][yakuzap])
bezüglich dem i was steckt dahinter ?
Sind dies Variabeln für Spieler.
Schei** bin ich blöd :O Habe das ganz übersehen. Habe das nun ganz anders gemacht, nun gut. Ich änder das um zu playerid
Vielen Dank!!
( Es geht doch bei ErmittleZielperson das ich abfrage: if(PlayerInfo[playerid][pMember] == 8 PlayerInfo[playerid][pLeader] == und da den Rest drin ablaufen lasse, oder?
Hm macht es wirklich sinn um die abfrage einzuleiten noch die funktion aufzurufen?
( ja geht schon)
Aber macht das doch dann bevor die funktion ErmittleZielperson aufgerufen wird. Wird wahrscheinlich bei OnPlayerKeyState passieren wenn der spieler abdrückt
zusätzlich denk ich mal das ist schon enthalten welche waffe der spieler benötigt um einen Headshot zu machen aufgrund( SendDeathMessage und id 34) jedoch sollte dem nicht so sein solltest du das auch noch abfragen ob er überhaupt die waffe gerade hat.
public OnPlayerConnect(playerid)
{
if(IsPlayerNPC(playerid))
{
new botname[MAX_PLAYER_NAME];
GetPlayerName(playerid, botname, sizeof(botname));
if (!strcmp(botname, "Zug", true))
{
gPlayerLogged[playerid]=1;
}
return 1;
}
Zähl hier mal die Klammern durch vllt fällt dir was auf
Also:
Ich habe nun das FS in den Gamemode kopiert. Ich kann doch eig. eine globale Variable deklarieren und bei "ErmittleZielperson" diese auf "Mörder setzen" und dann abfragen, ob Mörder ( glob. Variable ) Hitman usw. ist, oder?
Klar geht das warum sollte das nicht gehen schau dir doch mal dein copy paste code an.
Du hast die playerid und die der zielperson.
Als kleiner Tipp :
Die playerid ist der wo abdrückt mit der sniper
und die zielperson => Der wo die Kugel abbekommt
Alter alter alter alter... da werd ich ja zum Wolf:
Also du kannst OnPlayerDeath einfach als Funktion ausführen in Quelltext, du musst ihm dann nur die Variablen geben. OnPlayerDeath ist nicht anderes als eine normale Funktion, die zwar ein Event noch hat, aber die du wie SetPlayerHealth einfach in deinem Code ausführen kannst
Am besten noch per CallLocalFunction ich persönlich würde eher zu dieser include http://forum.sa-mp.com/showthread.php?t=403713
oder seif bodypart include präferiere diese sind genauer als diese berechnung die du hier im forum gefunden hast.
Du musst nur die Einstellungen ändern. Datenbank , User, Passwort und host (muss jedoch nicht sein kommt drauf an ob der mysqlserver ihrgend wo anders gehostet wird).
Die einstellungen sind wahrscheinlich in einer config.php datei was jedoch nicht sein muss oder in einer anderen .php datei musst suchen.
einfach nach mysql_connect ausschau halten und mysql_select_db