Vllt weil "index" zudem Zeitpunkt den wert 0 besitzt?
Das ist aber genauso mit Errors übersäht
new index = 15;
new indexStr[index];
Vllt weil "index" zudem Zeitpunkt den wert 0 besitzt?
Das ist aber genauso mit Errors übersäht
new index = 15;
new indexStr[index];
Was willst du damit eigendlich anstellen?
Du kannst das auch über defines machen
Warum kann man sowas nicht machen?
Ganz einfach, weil PAWN nicht in der Lage ist, Speicher dynamisch zu generieren.
PAWN ist da leider sehr sehr statisch
Was willst du damit eigendlich anstellen?
Du kannst das auch über defines machen
Naja, durch BlackAce weiß ich nun, dass es so nicht möglich ist.
Ich versuche momentan ein paar eigene Physics in PAWN zu machen - nun muss ich es wohl statisch machen
new index = 15;
new indexStr[index];
Folgendes könntest du tun:
//Das hier:
#define idx 5
//oder auch
const idx = 5;
//und dann verwenden:
new test[idx];
Die werte müssen halt konstant/statisch sein
//Edit: Oder du nutzt dieses Plugin: http://gta-sa-mp.de/forum/3-sa…393-memory-access-plugin/
mfg.
Was ist hier dran Falsch??
ocmd:supcar(playerid,params[])
{
if(!IsPlayerAnAdmin(playerid,1)) return SendClientMessage(playerid,AdmCmd,"AdmCmd: Sie besitzen nicht die nötigen Rechte um diesen Befehl zu nutzen!");
{
if(SupportVeh[playerid] == 1) return SendClientMessage(playerid,WACMD,"Du hast bereits ein Supporter Fahrzeug erstellt! Lösche es bevor du dir ein neues erstellen möchtest.");
new Float:X, Float:Y, Float:Z;
GetPlayerPos(playerid,X,Y,Z);
SupportCar[playerid] = CreateVehicle(560,X,Y,Z,3,165,165,-1);
PutPlayerInVehicle(playerid, SupportCar[playerid], 0);
SupportVeh[playerid] = 1; <---------- Zeile 720
SupportVeh[playerid] = Create3DTextLabel("Supporter im Dienst", AdminCar,0.0, 0.0, 0.0, 50.0, 0, 1 ); <---------- Zeile 721
Attach3DTextLabelToVehicle(SupportVeh[playerid],SupportCar,0.0,0.0,1.0);
return 1;
}
}
C:\Users\User\Desktop\Testscript\gamemodes\Testscript.pwn(720) : warning 213: tag mismatch
C:\Users\User\Desktop\Testscript\gamemodes\Testscript.pwn(721) : warning 213: tag mismatch
C:\Users\User\Desktop\Testscript\gamemodes\Testscript.pwn(721) : error 035: argument type mismatch (argument 2)
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
1 Error.
//Edit : Zeilen Markiert, Slash Zitiert
kannst du bitte die zeilen mal kommentieren wo der fehler ist?
Aso wenn du bei der adminabfrage die Message returnst, brauchst danach keine klammern
/e Eddy:
Warum setzt du die variable auf eins wenn sie dann eh überschrieben wird?
Der Warning kommt weil du sie nicht richtig deklariert.
So söllte es funktionieren.
new Text3D:SupportVeh[MAX_PLAYERS];
Slash™: Habe es mal ein wenig überarbeitet, aber kommen immer noch Warnings!!
ocmd:supcar(playerid,params[])
{
if(!IsPlayerAnAdmin(playerid,1)) return SendClientMessage(playerid,AdmCmd,"AdmCmd: Sie besitzen nicht die nötigen Rechte um diesen Befehl zu nutzen!");
if(SupportVeh[playerid] == 1) return SendClientMessage(playerid,WACMD,"Du hast bereits ein Supporter Fahrzeug erstellt! Lösche es bevor du dir ein neues erstellen möchtest.");
new Float:X, Float:Y, Float:Z;
new Text3D:Support3DText[MAX_PLAYERS];
SetVehicleNumberPlate(SupportCar,"Support"); -------- 716
GetPlayerPos(playerid,X,Y,Z);
SupportCar[playerid] = CreateVehicle(560,X,Y,Z,3,165,165,-1);
PutPlayerInVehicle(playerid, SupportCar[playerid], 0);
Support3DText[playerid] = Create3DTextLabel("Supporter im Dienst", AdminCar,0.0, 0.0, 0.0, 50.0, 0, 1 );
Attach3DTextLabelToVehicle(Support3DText[playerid],SupportVeh,0.0,0.0,1.0); --------- 721
SendClientMessage(playerid,Hellgelb,"Du hast ein Supporter Fahrzeug erstellt! Benutze /delscar um das Fahrzeug zu Entfernen.");
return 1;
}
C:\Users\User\Desktop\Testscript\gamemodes\Testscript.pwn(716) : error 035: argument type mismatch (argument 1)
C:\Users\User\Desktop\Testscript\gamemodes\Testscript.pwn(721) : error 035: argument type mismatch (argument 2)
Pawn compiler 3.2.3664 Copyright (c) 1997-2006, ITB CompuPhase
2 Errors.
//Edit
Hat sich erledigt, hab die Fehler behoben. Hatte die [playerid] hinter SupportCar und SupportVeh vergessen.
Wäre jemand so nett mir kurz über Teamviewer zu helfen. Ich habe ein paar Errors und weiß seit 3 Stunden nicht wo die her kommen.
Wie wäre es, wenn du deine Errors + den Code dazu mal hier postest? Dann können wir dir hier helfen.
Wie wäre es, wenn du deine Errors + den Code dazu mal hier postest? Dann können wir dir hier helfen.
Hab das meiste jetzt gelöst:D
nur noch der Error :
C:\Dokumente und Einstellungen\Cedric\Eigene Dateien\Dropbox\samp03x_svr_R2_win32\gamemodes\reallife.pwn(652) : warning 209: function "ocmdOnPlayerCommandText" should return a value
CODE
if (strcmp("/gotobsn", cmdtext, true, 10) == 0)
{
if(isPlayerAnAdmin(playerid,3))
{
SetPlayerPos(playerid,1189.6290,-924.1056,43.1300);
SendClientMessage(playerid,WEIß,"Erfolgreich teleportiert!");
return 1;
}
else if(isPlayerAnAdmin(playerid,4))
{
SetPlayerPos(playerid,1189.6290,-924.1056,43.1300);
SendClientMessage(playerid,WEIß,"Erfolgreich teleportiert!");
return 1;
}
else if(isPlayerAnAdmin(playerid,5))
{
SetPlayerPos(playerid,1189.6290,-924.1056,43.1300);
SendClientMessage(playerid,WEIß,"Erfolgreich teleportiert!");
return 1;
}
else
{
SendClientMessage(playerid,ROT,"Du bist kein Admin.");
return 1;
}
}
return 0; //Das hier fehlte...
}
//-----------------------------------------------OCMD Befehle------------------------------------------------
ocmd:makeleader(playerid,params[])
{
if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Rang zu Niedrig.");
new pID,fID;
if(sscanf(params,"ui",pID,fID))return SendClientMessage(playerid,BLAU,"/makeleader [playerid] [fraktionsid]");
SetPVarInt(pID,"Fraktion",fID);
SendClientMessage(playerid,BLAU,"Erfolgreich.");
return 1;
}
Alles anzeigenif (strcmp("/gotobsn", cmdtext, true, 10) == 0)
{
if(isPlayerAnAdmin(playerid,3))
{
SetPlayerPos(playerid,1189.6290,-924.1056,43.1300);
SendClientMessage(playerid,WEIß,"Erfolgreich teleportiert!");
return 1;
}
else if(isPlayerAnAdmin(playerid,4))
{
SetPlayerPos(playerid,1189.6290,-924.1056,43.1300);
SendClientMessage(playerid,WEIß,"Erfolgreich teleportiert!");
return 1;
}
else if(isPlayerAnAdmin(playerid,5))
{
SetPlayerPos(playerid,1189.6290,-924.1056,43.1300);
SendClientMessage(playerid,WEIß,"Erfolgreich teleportiert!");
return 1;
}
else
{
SendClientMessage(playerid,ROT,"Du bist kein Admin.");
return 1;
}
}
return 0; //Das hier fehlte...
}
//-----------------------------------------------OCMD Befehle------------------------------------------------
ocmd:makeleader(playerid,params[])
{
if(!isPlayerAnAdmin(playerid,3))return SendClientMessage(playerid,ROT,"Rang zu Niedrig.");
new pID,fID;
if(sscanf(params,"ui",pID,fID))return SendClientMessage(playerid,BLAU,"/makeleader [playerid] [fraktionsid]");
SetPVarInt(pID,"Fraktion",fID);
SendClientMessage(playerid,BLAU,"Erfolgreich.");
return 1;
}
DANKE >3 (Ich stell mich in die ecke dafür das ich das nicht gesehen habe)
Servus,
hab mal ne Frage und zwar möchte ich Random Namen machen, sprich man gibt einen Befehl ein und erhält den Namen: BLUME_2323 ((Beispiel))
Die Zahlen sollen Random sein, doch wie mache ich das?
Kann etwas passieren, wenn ein Spieler einen Random Namen bekommt, den schon jemanden hat? Oder erkennt das Script das automatisch?
Ich habe mal eine Frage die mich gerade beschäftigt. Wann returne ich auf 0 und wann auf 1 bzw. wann ist ein Return überhaupt nötig?
@[4_M]XeNo:
Beispielsweise wenn du eine Adminabfrage machst.
if(IsPlayerAnAdmin(playerid, rang))
{
if(SpielerInfo[playerid][pAdmin] >= rang)return 1; // wenn des spielers admin rang größer oder gleich dem rang ist, wird dem befehl zmb. gesagt, dass es 1 (true in diesem fall) ist, also kann der Befehl weiter ablaufen.
else return 0; // Wenn dem nicht so ist, wird der Befehl zmb. direkt abgebrochen. man kann return auch für andere Dinge verwenden um einfache Zahlen oder sonstiges weiterzugeben.
}
Wenn ich das noch richtig in erinnerung habe brauchst du vor dem return 0 kein else.
Da es, falls der spieler admin ist, nach dem return zuende ist.
Ich habe noch eine Frage. Ich bin gerade dabei mich in die Praxis von MySql einzuarbeiten, wobei ich mich etwas frage. Ich einem Tutorial wird dieser Stock benutzt
stock LoadPlayer(playerid)
{
if(IsPlayerConnected(playerid) && !IsPlayerNPC(playerid))
{
new query[250],str[500];
format(query,sizeof(query),"SELECT * FROM `accounts` WHERE `Name` = '%s'",pInfo[playerid][sname]);
mysql_query(query);
mysql_store_result();
while(mysql_fetch_row(str))
{
sscanf(str, "e<p<|>{i}s[24]s[128]iif>",pInfo[playerid]);
mysql_free_result();
}
}
return 1;
}
gibt es eine möglichkeit, jede spalte in einen String zu packen? Also dann ohne sscanf aber mit einer Querry?
gibt es eine möglichkeit, jede spalte in einen String zu packen? Also dann ohne sscanf aber mit einer Querry?
Du solltest dir das einmal angucken:
http://wiki.sa-mp.com/wiki/MySQL#mysql_fetch_int
http://wiki.sa-mp.com/wiki/MySQL#mysql_fetch_float
http://wiki.sa-mp.com/wiki/MySQL#mysql_fetch_row_format
http://wiki.sa-mp.com/wiki/MySQL#mysql_fetch_field
....
von: http://wiki.sa-mp.com/wiki/MySQL (Sofern du mit R5 arbeitest)
L.G.
Wieso zeigt er mir diesen Fehler?
Zeile (470) : Unbekannte Variable : "Log"
public OnQueryError(errorid, error[], callback[], query[], connectionHandle)
{
new string[900];
format(string,sizeof(string),"Errorid=%i,Error=%s,Query=%s",errorid,error,query);
Log("mysql",string); <------ 470
if(errorid == 1054) CreateTables();
return 1;
}