Wo ihr gerade über MysQl spricht.
Wo stehen im Phpmyadmin eigentlich die Zugangsdaten für die Datenbank von mysql ?
Das solltest du doch am besten wissen wenn du einen benutzer erstellt hast.
Wo ihr gerade über MysQl spricht.
Wo stehen im Phpmyadmin eigentlich die Zugangsdaten für die Datenbank von mysql ?
Das solltest du doch am besten wissen wenn du einen benutzer erstellt hast.
Ja hab den Fehler ja nicht mehr sondern nur noch 2
Nun gut wenn du meist du benutzt momentan die neuste version dieses plugin die R7 und dort gibt es kein mysql_query mehr sonder mysql_function_query und mysql_fetch_int gibt auch nicht mehr es heißt nun cache_get_int
wenn du das nicht haben willst das ließ dir den vorherigen post nochmal durch von mir
Zum ändern der Texturen gibt es die funktion SetObjectMaterial
http://wiki.sa-mp.com/wiki/SetObjectMaterial
mann hat auch die möglichkeit was auf Objecte drauf zu schreiben per SetObjectMaterialText
http://wiki.sa-mp.com/wiki/SetObjectMaterialText
Sollte man ein streamer benutzen wie das streamer plugin heißen die funktionen anders SetDynamicObjectMaterialText etc...
Ein Tutorial zum verändern der textur findest du hier
http://gta-sa-mp.de/forum/3-sa…aterial-von-a-z/#post6179
Um raus zu schauen aus gebäuden muss eine gegebenheit gegeben sein und zwar das das Object von innen nach außer unsichtbar ist.
Einfach die fenster rein setzen und einen boden mappen easy doing ^^.
Hier mal ein beispiel:
von außen
in dem Object
du musst natürlich den spieler dort rein porten in den "innenraum" den du gemappt hast
Aufgrund der dem Fehler
[23:14:08] Error: Function not registered: 'mysql_fetch_row_format'
Benutzt du das MySQL-Plugin von BlueG die R5 beziehungsweise die R6 version ? wenn nein dann ist das diese und nicht die R7 version
Siehe:
http://forum.sa-mp.com/showthread.php?t=56564
unten vor den thanks to
habe ich dir schon genannt doppelt eine dialogid genutzt du kannst ja zusätzlich das crash detect plugin anschmeißen und dein skript im debugmodus kompilen ob ihrgend welche informationen ausgegeben werden.
else if und case gehen die selben schritte durch nur ist die prozedur anders.
beispiel bei dem rückgabe wert einer funktion.
bei switch wird der rückgabe wert genommen und verglichen bei else if wird das ganze funktion wieder aufgerufen und der rückgabe wert erneut verglichen.
@ Goldkiller man sollte auch beachten wann man case benutzen kann es ist schneller als else if. Aber die werte liegen im hunderstel bereich bei mehreren tausend durchgängen.
Man kann damit sein skript "schneller" machen jedoch merkt ein spieler davon rein garnix.
Alles anzeigenGuten Abend,
ich habe einen Seltsamen Fehler und zwar kann ich kaum Befehle nutzen, in denen ein Dialog beinhaltet ist.
In der Server Log ist der Fehler gekennzeichnet: [00:01:19] Warning: PlayerDialogResponse PlayerId: 13 dialog ID doesn't match last sent dialog ID.
Ich habe natürlich die Sufu genutz und mich schlau gemacht, doch leider kam ich nicht weiter.
Aufjedenfall heißt das, dass ein Dialog benutzt wird wärend der Server Neustartet oder so...
Ich hoffe mir kann jemand helfen!
lG
Es bedeutet das ein User ein Dialog während eines Serverrestartes geöffnet hat oder du benutzt ihrgend wo die selbe dialogid und dein skript will so gesehen zwei dialoge aufrufen. Es kann auch eine dialogid definiert sein in einem filterskript das du nutzt und die selbe dialogid benutzt du in deinem gamemode
Die haben einfach paar objecte entfernt und neue hinzugefügt das was du siehst ist das ls_mall filterskript.
siehe filterscript ordner
IPrototypeI: Endlich 18 wa? Aber übertreib es nicht so wie ich es gemacht habe..
Danke euch beiden naja bei solch einem scheiß wetter kann man es ja nicht übertreiben naja die party muss leider noch warten bis
zum Sommer wenigstens habe dann hoffentlich gutes wetter aber sturmfreie Bude aufjedenfall.
Danke Arendium jo werde ich
Du kannst das auch anders machen
SetObjectMaterial(CreateObject(...), ...);
da nur die id der Objectes benötigt wird und die jeweilige id gibt
CreateObject zurück
Hier ist ein nettes tutorial
hää wie geht das?
Das nennt man Mappen dies kannst du mit MTA dort gibt es einen Mapeditor musst jedoch die 0.3e Objecte + 0.3x Objecte konvertieren find ich persönlich scheiße da paar Objecte überschrieben werden.
oder du benutz den Samp Mapeditor
Du kannst die wall objecte die es seit 0.3e gibt benutzen und dir deine eigene gebäude mappen oder du benutzt die schon vorgefertigte gebäude die eine Tür haben aber da gibt es nicht sehr viele.
kannst ja hier mal schauen nach den objekten oder du schaust auf der seite von Doerfler
http://www.k-dst.de/kategorien…3e%20RC1&ver=SA:MP%200.3e
Ist es Resssoursensparender wenn ich else if oder Switch & case benutze? oder macht das kein unterschied?
was verstehst du unter "Ressoursensparender" also ich versteh darunter den memory verbrauch zu senken und
else if ist langsamer als Switch & case.
Du solltest die jeweiligen hunter auch löschen sonst respawnen diese an der jeweiligen position dein problem ist es auch noch das zuweißen konstanter ids
du kannst es so machen dann sollte es gehen
PutPlayerInVehicle(0,CreateVehicle(425,207.5967,1970.2676,18.1989,170.5864,43,0,4),0);
switch(playerid){
case 1:PutPlayerInVehicle(playerid,CreateVehicle(425,207.5967,1970.2676,18.1989,170.5864,43,0,4),0);
.....
}
wenn du auf deiner variante bestehen willst benutz doch switch + case ist viel schneller als ständig neue if abfragen
ich hab dir noch eine alternative geschrieben.
new VehicleID[MAX_PLAYERS]={-1,...};
enum Hdata
{
Float:X,
Float:Y,
Float:Z,
Float:R,
bool:used,
};
new SpawnPoints[10][Hdata] ={
{207.5967,1970.2676,18.1989,170.5864,false},
{302.8576,1917.3538,18.2224,111.6347,false},
{299.9578,1800.1853,18.2074,45.6318,false},
{219.7984,1775.9066,18.2146,356.6694,false},
{130.5297,1777.3433,18.2115,4.2426,false},
{70.0847,1831.8342,18.1267,294.0165,false},
{71.6726,1884.7916,18.1407,265.4783,false},
{99.6341,2000.1439,18.9960,186.1364,false},
{168.2447,1975.9928,19.1268,178.6246,false},
{201.1181,1877.8492,18.2178,5.6423,false}
};
new bool:PlayerDeath[MAX_PLAYERS char];
forward public Spawn(playerid);
public Spawn(playerid){
TogglePlayerSpectating(playerid,false);
return 1;
}
public OnPlayerSpawn(playerid)
{
if(VehicleID[playerid] != -1 && PlayerDeath{playerid}){
PlayerDeath{playerid}= false;
PutPlayerInVehicle(playerid,VehicleID[playerid],0);
}else if(VehicleID[playerid] != -1 && !PlayerDeath{playerid}){
PlayerDeath{playerid} =!!TogglePlayerSpectating(playerid,true);
SetTimerEx("Spawn",10000,false,"i",playerid);
}
return 1;
}
CMD:hunter(playerid,params[])
{
new bool:no;
for(new i; i < 10; ++i){
if(!SpawnPoints[i][used]){
SpawnPoints[i][used] =!!SendClientMessage(playerid,-1,"Sie haben an dem Unterfight teilgenommen");
VehicleID[playerid] = CreateVehicle(425,SpawnPoints[i][X],SpawnPoints[i][Y],SpawnPoints[i][Z],SpawnPoints[i][R],0,0,-1);
PutPlayerInVehicle(playerid,VehicleID[playerid],0);
no=false;
break;
}else no=true;
}
if(no)return SendClientMessage(playerid,-1,"Es ist kein Platz mehr Frei");
return 1;
}
Am besten machst du alles Serverseitig und überprüfst die werte.
Es sollte garnix gespeichert werden zu dem du SetPVar benutzt auch zum speichern.
Es wird zweimal MONEYS rein geschrieben es wird auch nicht unter dem namen ausgelesen.
Am besten schaust dir nochmal ein tutorial zur benutzung von Y_INI an. Du speicherst ja nichtmal die daten ab ok bei ausladen die methode kenne
ich mit strcmp laden aber zum abspeicher ?
Zu dem kannst du dauch tags setzen per Y_INI INI_SetTag oder ausladen mit INI_Int etc..
Um noch was von D0erf|er vllt zu ergänzen es ist besser in solch einem fall case zu benutzen dieses ist schneller als if oder else if
in dem fall könntest du natürlich auch else if verwenden da die ganzen if statements nach dem zugriffen umgangen werden es ist etwas kompliziert gerade ausgedrückt möglicherweiße dazunoch ein kleines beispiel.
if(testjob[playerid] == 1)print("1");
else if(testjob[playerid] == 2)print("2");
else if(testjob[playerid] == 3)print("3");
sollte nun testjob[playerid] 2 sein so bricht er die if statements nach der 2 ab.
Alles anzeigen
Ist dynamisch, bei meinem Admin System (Alle Admin befehle zeigen, im format "%s - %d")
hab ichs dann bei OnDialogResponse so gemacht: (ungetestet)
new cmd[64], string[128];
format(cmd, sizeof cmd, "%s", inputtext);
new found = strfind(cmd, "-", true);
if(found == -1) return 1; //Dialog zeigen mit, Fehler blabla..
strdel(cmd, found-1, strlen(cmd));
new cID = Command_GetID(cmd);
PlayerEditCommand[playerid] = cID;
format(string, sizeof string, "Editiere Befehl: %s\nAktueller Rang: %d", cmd, CommandRank[cID]);
ShowPlayerDialog(playerid, DIALOG_ADMIN_PERM_EDIT, DIALOG_STYLE_INPUT, "Adminbefehl editieren", string, "Setzen", "Zurück");
Hab gelesen das Wenn man im Listdialog etwas anklickt, der text bei inputtext gespeichert wird..
Also wenn es dynamisch ist benutz doch ein array wo du die jeweilige ids speicherst vom index her um die jeweiligen koordinaten aufzurufen
MAX_PORTS die anzahl deiner einträge maximal .
new ValidIndex[MAX_PORTS char];
stock GetValidTeleports()
{
new i,x;
for(; i < MAX_PORTS; ++i){
if(!TeleInfo[i][tCreated]) continue;
ValidIndex[x] = i;
++x;
}
return 1;
}
Bei dem jeweiligen Teleport also bei OnDialogResponse unter dem jeweiligen Dialog die position setzen
SetPlayerPos(playerid,TeleInfo[ValidIndex[listitem]][X],TeleInfo[ValidIndex[listitem]][Y],TeleInfo[ValidIndex[listitem]][Z]);
veränderst du ihrgend was an den teleports löscht oder erstellst einen so lässt du die funktion neu aufrufen.
Zu dem zweiten code was möchtest du genau bewerkstelligen damit also ihrgend ein befehl bearbeiten zu dem kannst du inputtext auch bearbeiten und brauchst kein extra string
Also die Farbmischung passt gar nicht zusammen und es ist eindeutig zu überladen also mir gefällt es ganz und garnicht man wird doch wohl selbst wissen ob etwas gut aussieht oder nicht und wenn es einem selbst nicht gefällt dann sollte man das auch nicht hier präsentieren.