Musst vorher abfragen ob killerid != INVALID_PLAYER_ID ist.
Nützt bestimmt viel, wenn die ID 255 ist und nicht 65535
Das liegt am "neuen" killerid System von SAMP in OnVehicleDeath
Musst vorher abfragen ob killerid != INVALID_PLAYER_ID ist.
Nützt bestimmt viel, wenn die ID 255 ist und nicht 65535
Das liegt am "neuen" killerid System von SAMP in OnVehicleDeath
Neu? Klär mich bitte auf.
Dann halt abfragen ob es diese id überhaupt gibt.
Neu? Klär mich bitte auf.
Sagen wir verbessert
0.3x RC2
ZitatIn 0.3x, the final parameter of OnVehicleDeath (killerid) will be the player who reported the vehicle dead. This should be renamed at some point, although, in the interest of keeping the callback compatible with old scripts, the name won't be changed for 0.3x.
Ach das genau
habe ich nie ganz verstanden wie das gemeint ist.
Wie ist das gemeint "who reported the vehicle dead".
habe ein kleines Problem und zwar..
Wenn ich den befehl /makeadmin eingebe kommt Unknown Command doch normal sollte er funktionieren..
hier der Code
dcmd_makeadmin(playerid, params[])
{
new pid,level;
if(sscanf(params,"ud", pid, level))return SendClientMessage(playerid,Blau,"Verwendung: /makeadmin [id] [Level]");
if(IstSpielerAdmin(playerid, 5))
{
if(pid == INVALID_PLAYER_ID)return SendClientMessage(playerid,Rot,"UngültierSpieler");
if(sSpieler[pid][Adminlevel] == level)return SendClientMessage(playerid, Rot,"Der spieler hat schon das angegeben adminlevel");
sSpieler[pid][Adminlevel] = level;
SendClientMessage(pid, Blau,"Du bist nun Admin");
SendClientMessage(playerid,Blau,"Du hast den angegeben Spieler zum Admin gemacht");
}
else
{
SendClientMessage(playerid,Rot,"Du bist kein Admin");
}
return 1;
}
Neu? Klär mich bitte auf.
Dann halt abfragen ob es diese id überhaupt gibt.
if(IsPlayerConnected(id))
DeletePlayer3DTextLabel(playerid,labelduty);
Göht nicht... da kommt: warning 213: tag mismatch
erstellen geht nur löschen nicht -.-
new Text3D:labelduty = Create3DTextLabel("Beamter Onduty", BLAU, 30.0, 40.0, 50.0, 40.0, 0);
}
Attach3DTextLabelToPlayer(labelduty, playerid, 0.0, 0.0, 0.7);
SetPVarInt(playerid,"Duty",1);
SetPlayerColor(playerid,BLAU);
SCM(playerid,HBLAU,"AdmCmd: Du bist nun Onduty.../duty um offduty zu gehen");
}
dann ein paar klammern und dann das:
DeletePlayer3DTextLabel(playerid,labelduty);
weist du überhaupt was der warning bedeutet?
weist du überhaupt was der warning bedeutet?
Natürlich, es warnt mich und sagt dass da in der Zeile in der Klammer etwas fehlt
und das heisst das man im wiki nachschaut...
http://wiki.sa-mp.com/wiki/DeletePlayer3DTextLabel
und dann merken wir das wir ein 3dtext erstellt haben aber ein player3dtext löschen wollen
Und das habe ich getan, aber es fehlt doch nichts...Soweit ich das sehe
und dann merken wir das wir ein 3dtext erstellt haben aber ein player3dtext löschen wollen
Warum zeigt er mir hier nicht den Namen der Firma an?
bcmd:firma(playerid,params[])
{
if(GetPVarInt(playerid,"loggedin")!=1)return SendClientMessage(playerid,cRed,"Du bist nicht eingeloggt!");
if(PlayerInfo[playerid][Gemutet]!=0) return SendClientMessage(playerid,cWarn,"Du bist gemutet!");
new string[256],query[128];
format(query,128,"SELECT `Firmenid` FROM `FirmenUser` WHERE `Name` = '%s'",PlayerInfo[playerid][Name]);
mysql_query(query, (-1), (0), SQL);
mysql_store_result(SQL);
if(mysql_num_rows(SQL) != 0)
{
new id = mysql_fetch_int(SQL);
format(string,256,"%s\n",FirmenInfo[id][FirmenName]);
ShowPlayerDialog(playerid,diaJobVertrag,DIALOG_STYLE_MSGBOX,"Firmen",string,"Ok","");
}
mysql_free_result(SQL);
return 1;
}
Der Dialog ist leer bei den Firmen
erstellen lass ich die so
stock CreateFirma(playerid,nana[])
{
new datei[128];
for(new i = 0; i < MAX_FIRMEN; i++)
{
if(FirmenInfo[i][FirmenErstellt]==0)
{
format(FirmenInfo[i][FirmenName],50,"%s",nana);
FirmenInfo[i][FirmenKasse]=0;
FirmenInfo[i][FirmenErstellt]=1;
FirmenInfo[i][FirmenID]=i+1;
format(datei,128,"INSERT INTO `Firmen` (`id`, `Name`, `Kasse`, `Erstellt`) VALUES ('%d', '%s', '%d', '%d')", i+1, FirmenInfo[i][FirmenName], FirmenInfo[i][FirmenKasse], FirmenInfo[i][FirmenErstellt]);
mysql_query(datei, (-1), (0), SQL);
format(datei,128,"INSERT INTO `FirmenUser` (`Name`, `Firmenid`, `Firmenleader`) VALUES ('%s', '%d', '1')", PlayerInfo[playerid][Name], FirmenInfo[i][FirmenID]);
mysql_query(datei, (-1), (0), SQL);
return format(datei,128,"Du hast erfolgreich die Firma %s (id: %d) gegründet",FirmenInfo[i][FirmenName],FirmenInfo[i][FirmenID]),SendClientMessage(playerid,cGrey,datei);
}
}
return 1;
}
@[DT]Beavis
du speicherst
FirmenInfo[i][FirmenID]=i+1; bei CreateFirma
= Die firma ist im array-Wert i aber du speicherst i+1
heißt du musst bei /firma dein
new id = mysql_fetch_int(SQL);
durch
new id = (mysql_fetch_int(SQL)-1);
ersetzen
quasi die 1 wieder abziehen
oder eben bei CreateFirma das +1 entfernen
Daran liegt es nicht er lädt es richtig aber die Namen kommen nicht
Es wird auch in der Datenbank mit den +1 dazu gerechnet
Aber ich müsste da einfach das id +1 zugeben damit es richtig klappt...
Danke für den hinweis^^
Daran liegt es nicht er lädt es richtig aber die Namen kommen nicht
Es wird auch in der Datenbank mit den +1 dazu gerechnet
Aber ich müsste da einfach das id +1 zugeben damit es richtig klappt...
Danke für den hinweis^^
Naja im array ist die firma an der stelle "i" drin und du speicherst "i+1" in der mysql datenbank und anschließend holst du den wert aus der datenbank und setzt ihn im array wieder ein, also eins zu hoch. Kann dein "Daran liegt es nicht" nicht wirklich verstehen.
Zumindest zeigt er jetzt den Namen
Aber wenn ich in 2 Firmen eingetragen bin, zeigt er nur einen an
so ist es zurzeit:
bcmd:firma(playerid,params[])
{
if(GetPVarInt(playerid,"loggedin")!=1)return SendClientMessage(playerid,cRed,"Du bist nicht eingeloggt!");
if(PlayerInfo[playerid][Gemutet]!=0) return SendClientMessage(playerid,cWarn,"Du bist gemutet!");
new string[256],query[128];
format(query,128,"SELECT `Firmenid` FROM `FirmenUser` WHERE `Name` = '%s'",PlayerInfo[playerid][Name]);
mysql_query(query, (-1), (0), SQL);
mysql_store_result(SQL);
if(mysql_num_rows(SQL) != 0)
{
new id = mysql_fetch_int(SQL)-1;
format(string,256,"%s%s\n",string,FirmenInfo[id][FirmenName]);
ShowPlayerDialog(playerid,diaJobVertrag,DIALOG_STYLE_MSGBOX,"Firmen",string,"Ok","");
}
mysql_free_result(SQL);
return 1;
}
Ich möchte ja das er mir alle Firmen ausgibt wo ich eingetragen bin
@[DT]Beavis
bcmd:firma(playerid,params[])
{
if(GetPVarInt(playerid,"loggedin")!=1)return SendClientMessage(playerid,cRed,"Du bist nicht eingeloggt!");
if(PlayerInfo[playerid][Gemutet]!=0) return SendClientMessage(playerid,cWarn,"Du bist gemutet!");
new string[256],query[128];
format(query,128,"SELECT `Firmenid` FROM `FirmenUser` WHERE `Name` = '%s'",PlayerInfo[playerid][Name]);
mysql_query(query, (-1), (0), SQL);
mysql_store_result(SQL);
while(mysql_retrieve_row(SQL))//lauf durch alle zeilen durch
{
new tmp[12];
mysql_fetch_field_row(tmp, "Firmenid", SQL);
new id = strval(tmp)-1;
format(string,256,"%s%s\n",string,FirmenInfo[id][FirmenName]);
ShowPlayerDialog(playerid,diaJobVertrag,DIALOG_STYLE_MSGBOX,"Firmen",string,"Ok","");
}
mysql_free_result(SQL);
return 1;
}
so, sofern das mit deiner mysql version auch kompatibel ist
Edit: SQL variable hinzugefügt in den funktionen
wie heißt das
mysql_retrieve_row
für das Strickenkid mysql plugin?
Hatte das nie angewendet gehabt^^
new tmp[12];
while(mysql_fetch_row(tmp, "|", SQL))
{
new id = strval(tmp)-1;
format(string,256,"%s%s\n",string,FirmenInfo[id][FirmenName]);
ShowPlayerDialog(playerid,diaJobVertrag,DIALOG_STYLE_MSGBOX,"Firmen",string,"Ok","");
}
könnte so hinhauen, sofern die Funktionen auch das machen was ich vermute