Beiträge von _Flex_
-
-
Moin ich mal wieder
ich habe ein problem beim auslesen der der taschen items.
ich bekomme in der Konsole diese nachricht.
Code[debug] Run time error 4: "Array index out of bounds" [debug] Attempted to read/write array element at index 15 in array of size 15 [debug] AMX backtrace: [debug] #0 0002a3fc in public ocmd_bag (1, 1170828) in LV-LIFE.amx [debug] #1 native CallLocalFunction () in samp-server.exe [debug] #2 0000072c in public OnPlayerCommandText (1, 1170808) in LV-LIFE.amx
mein befehl dazu
Code
Alles anzeigenocmd:bag(playerid) { if(sInfo[playerid][tasche] == 0) return SendClientMessage(playerid,COLOR_RED,"*Du besitzt keine Tasche*"); if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return SendClientMessage(playerid,COLOR_RED,"*Du musst stehen um in deine Tasche zu sehen*"); ApplyAnimation(playerid,"BOMBER","BOM_Plant_Crouch_In",4.1,0,0,0,1,0,1); SetPlayerAttachedObject(playerid, 1, 11745, 9, 0.0119, 0.2389, 0.3939, 114.8000, -91.6000, 0.5999, 1.0000, 1.0000, 1.0000, 0xFFFFFFFF, 0xFFFFFFFF); print("bag aufgerufen"); new string[1000],header[128]; print("string erstellt"); format(header,sizeof(header),"\t\t{FF9FBB}***Tasche von {FFFFFF}%s{FF9FBB}***\t\t",getPlayerName(playerid)); format(string,sizeof(string),"{FF9FBB}DB-INVID: {FFFFFF}%i{FF9FBB}\n______________________\n",tInfo[playerid][db_tid]); for(new i=1; i<sizeof(tInfo[]); i++) { print("schleife gestartet"); if(!tInfo[playerid][item][i]) continue; { printf("Item %s: %i",BagItems[i],tInfo[playerid][item][i]); switch (i) { case 7:{ format(string,sizeof(string),"%s{FF9FBB}%s:\t\t{FFFFFF}vorhanden\n",string,BagItems[i]); } case 8:{ format(string,sizeof(string),"%s{FF9FBB}%s:\t\t{FFFFFF}%s\n",string,BagItems[i],angelnamen[tInfo[playerid][item][i]]); } default:{ format(string,sizeof(string),"%s{FF9FBB}%s:\t{FFFFFF}%i {FF9FBB}%s\n",string,BagItems[i],tInfo[playerid][item][i],BagItemEinheit[i],string); } } format(string,sizeof(string),"%s",string); } } ShowPlayerDialog(playerid,DIALOG_INV,DIALOG_STYLE_MSGBOX,header,string,"close",""); return 1; }
lauf konsole geht er auch alles durch
ingame bekomme ich auch wenn ich den befehl eingebe Unkowen commend obwohl er alles ausführt wie z.B. ApplyAnimation bis halt irgendwas mit dem auslesen
danke
-
Moin wieder mal ne frage ich habe das problem das ich dem spieler eine kettensäge gegeben habe aber wie kann ich nun nur die kettensäge entfernen ohne ihm alle waffen zu nehmen?
-
Moin moin
ich habe diesmal das problem das ich beim auslesen ob ein spieler auf ein objekt schießt nicht so wirklich weiterkommer
er erkennt zwar das ich schieße aber mehr auch nicht bei der abfrage
ist schluss danach gehts nicht weiter benutze auch einen Streamer hängt es damit zusammen oder gehen vielleicht nur bestimmte objekte zu hitten?
Code
Alles anzeigenpublic OnPlayerWeaponShot(playerid, weaponid, hittype, hitid, Float:fX, Float:fY, Float:fZ) { print("Weapon Shot"); new id; if(hittype == BULLET_HIT_TYPE_OBJECT) { print("Object Angegriffen"); if(IsHitidWeedObject(hitid,id)) { printf("Object Angegriffen: id %i",hitid); if(weaponid == 32) { wpInfo[id][weedplant_status] -= 1.0; UpdateWeedPlant(id); if(wpInfo[id][weedplant_status] <= 0.0) { DestroyPlayerWeedplant(id); return 0; } } } } return 1; }
Vielen dank
-
Moin kleine frage wieso wird mir hier nicht die variable angezeigt bei Verdienst??
Code
Alles anzeigenif(IsPlayerAtAnyJob(playerid,jid)) { new jobstring[345]; switch(jid) { case 1: { format(jobstring,sizeof(jobstring),"Hier arbeiten!\nVerdienst:\t%d",sInfo[playerid][paycheck][1]); ShowPlayerDialog(playerid,DIALOG_FISCHERJOB,DIALOG_STYLE_TABLIST,jobnames[jid],jobstring,"ENTER","X"); } case 2: { format(jobstring,sizeof(jobstring),"Hier arbeiten!\nVerdienst:\t%d$",sInfo[playerid][paycheck][2]); ShowPlayerDialog(playerid,DIALOG_CITYJOB,DIALOG_STYLE_TABLIST,jobnames[jid],jobstring,"ENTER","X"); } case 3: { format(jobstring,sizeof(jobstring),"Hier arbeiten!\nVerdienst:\t%d$",sInfo[playerid][paycheck][3]); ShowPlayerDialog(playerid,DIALOG_LOGISTICJOB,DIALOG_STYLE_TABLIST,jobnames[jid],jobstring,"ENTER","X"); } case 4: { format(jobstring,sizeof(jobstring),"Hier arbeiten!\nVerdienst:\t%d $",sInfo[playerid][paycheck][4]); ShowPlayerDialog(playerid,DIALOG_OELJOB,DIALOG_STYLE_TABLIST,jobnames[jid],jobstring,"ENTER","X"); } } SetPVarInt(playerid,"StateChange",1); SetTimerEx("StateChangeTimer",2000,false,"i",playerid); return 1; }
Mein enum sieht so aus
Code
Alles anzeigenenum playerInfo{ skin, dutyskin, level, eingeloggt, db_pid, bargeld, arang, Float:lastpos_x, Float:lastpos_y, Float:lastpos_z, Float:lastpos_r, carkey, khtime, druglevel, fraktion, rang, rangname[35], spawnchange, jobid, p_jobname[35], paycheck[5], noobtut, starvation, tasche, onlinetime }
-
-
Ahh super danke ergeben sich ja gleich ganz neue Möglichkeiten mit dem wissen
-
-
-
Klar gerne
Code
Alles anzeigenocmd:lockhouse(playerid,params[]) { if(!HavePlayerAnyHouse(playerid)) return SendClientMessage(playerid,-1,"Du besitzt kein Haus"); if(!IsPlayerAtAnyHouseEnter(playerid)) return SendClientMessage(playerid,-1,"Du stehst an keinem eingang"); for(new i=0; i<sizeof(hInfo); i++) { if(IsPlayerInRangeOfPoint(playerid,5,hInfo[i][h_outx],hInfo[i][h_outy],hInfo[i][h_outz]) || IsPlayerInRangeOfPoint(playerid,5,hInfo[i][h_inx],hInfo[i][h_iny],hInfo[i][h_inz])) continue; if(!strlen(hInfo[i][h_owner]))continue; if(!strcmp(hInfo[i][h_owner],getPlayerName(playerid),true)) switch(hInfo[i][h_lock]) { case 0:{ hInfo[i][h_lock] = 1; SendClientMessage(playerid,-1,"Haus abgeschlossen"); saveHouse(i); UpdateHouse(i); return 1; } case 1:{ hInfo[i][h_lock] = 0; SendClientMessage(playerid,-1,"Haus aufgeschlossen"); saveHouse(i); UpdateHouse(i); return 1; } } } return 1; }
-
-
Hallo liebe Brotfische
Auf diesem Wege suche ich Teammitglieder die noch mit genauso viel Leidenschaft und Emotionen an SAMP hängen wie ich.
Kurz zu meiner Person
Ich bin Felix 26 Jahre.
Ich bin seit 2010 in der SAMP Szene unterwegs anfangs nur als normaler Spieler später dann auf einem etwas größerem server auch supporter und Mapper.
Kurz zum Projekt & was gesucht wird
Bei dem Projekt welches ich angefangen habe handelt es sich um ein Reallife-Selfmade script welches von mir im August 2021 angefangen wurde.
Ich suche nun für mein Projekt jemanden der sich in Sachen Map Design zuhause fühlt.
Außerdem suche ich jemanden der vielleicht einige Ideen zu Systemen oder Funktionen beisteuern kann.
Bei diesem Projekt handelt es sich um ein Projekt aus Leidenschaft also wenn du dich angesprochen fühlst kannst du mir gerne eine DM schreiben.
Mfg
Flex
-
Indem du Modulo rechnest. Zahl % 10 = 0 wenn diese ein vielfaches von 10 ist.
Das schließ auch die 0 mit ein.
Danke erstmal wie würde eine einfache if Abfrage dann genau aussehen?
-
Moin wie kann ich abfragen
Ob ein Wert immer zb einen vollen 10er Wert also quasi 10..20..30....?
-
Guten Morgen. In Sachen Mapping hab ich nicht so die Ahnung aber ich könnte dir eine Forum Lizenz anbieten. Falls noch kein Forum vorhanden und Interesse besteht.
Danke aber derzeit besteht kein Interesse
-
Wie würdest du es gerne sehen wenn man die Tresore knacken soll
-
Ne das ist alles auf meiner eigenen feder
-
Moin Leute ich bin gerade dabei einen Shopraub zu schreiben
Ich habe bisher es so Mann muß auf den Actor Zielen damit der Raub gestartet wird.
Mann muss dann 60sek in der Nähe bleiben und danach ist der Raub erfolgreich. Das ist mir ein bisschen zu eintönig habt ihr vielleicht Ideen wie man dies ein wenig Abwechslungsreicher gestalten könnte.
Mfg
Flex
-
Moin, ich erstelle ein Account, wenn ich dann Disconnecte werden einfach irgendwelche Daten in die Datenbank eingetragen. Die werden aber erst beim Disconnecten eingetragen, nach dem registrieren sind die auf 0
Codestock SaveUserStats(playerid) { if(!PlayerInfo[playerid][pLoggedIn]) return 1; new query[256]; mysql_format(handle, query, sizeof(query), "UPDATE accounts SET level = '%d', money = '%d', kills = '%d', deaths = '%d', admin = '%d', ip = '%i' WHERE id = '%d'", PlayerInfo[playerid][pLevel], PlayerInfo[playerid][pMoney], PlayerInfo[playerid][pKills], PlayerInfo[playerid][pDeaths], PlayerInfo[playerid][pAdmin], PlayerInfo[playerid][pIp], PlayerInfo[playerid][p_id]); mysql_pquery(handle, query); return 1; }
Erhöhe mal deine query auf 1000 oder so
-
Achso
ja hier bitte
Code
Alles anzeigenocmd:buyhouse(playerid,params[]) { if(HavePlayerAnyHouse(playerid)) return SendClientMessage(playerid,-1,"Du besitzt bereits ein Haus"); for(new i=0; i<sizeof(hInfo); i++) { if(!hInfo[i][h_dbid]) continue; if(!IsPlayerInRangeOfPoint(playerid,5,hInfo[i][h_outx],hInfo[i][h_outy],hInfo[i][h_outz])) continue; if(!strlen(hInfo[i][h_owner])) { if(GetPlayerCash(playerid) < hInfo[i][h_price]) return SendClientMessage(playerid,-1,"Du hast nicht genügend Geld!"); strmid(hInfo[i][h_owner],getPlayerName(playerid),0,MAX_PLAYER_NAME,MAX_PLAYER_NAME); GivePlayerCash(playerid,-hInfo[i][h_price]); saveHouse(i); UpdateHouse(i); return 1; } return SendClientMessage(playerid,-1,"Du kannst dieses Haus nicht Kaufen!"); } return 1; } ocmd:sellhouse(playerid,params[]) { for(new i=0; i<sizeof(hInfo); i++) { if(!hInfo[i][h_dbid]) continue; if(!IsPlayerInRangeOfPoint(playerid,5,hInfo[i][h_outx],hInfo[i][h_outy],hInfo[i][h_outz])) continue; if(!strlen(hInfo[i][h_owner]))continue; if(!strcmp(hInfo[i][h_owner],getPlayerName(playerid),true)) { strmid(hInfo[i][h_owner],"",0,MAX_PLAYER_NAME,MAX_PLAYER_NAME); GivePlayerCash(playerid,hInfo[i][h_price]/2); saveHouse(i); UpdateHouse(i); SendClientMessage(playerid,-1,"Haus erfolgreich verkauft"); return 1; } } return 1; }
Moin nochmal ich habe meine Funktion jetzt mal bisschen angepasst es funktionert jetzt so wie gewollt aber nur wenn man es als erstes beim letzten erstellten haus macht sobald man zu einem vorher erstellten geht ist der alte fehler da er erstellt ein pickup für das gekaufte haus löscht dieses auch aber er löscht das was beim serverstart erstellt wurde nicht. und danach funktioniert es nur noch so.
Code
Alles anzeigenUpdateHouse(id) { new oldpickup; print("============================"); printf("GeupdateteID: %i DBID: %i",id,hInfo[id][h_dbid]); new string[384]; if(hInfo[id][h_mapicon] != -1) { printf("HausID: %i Mapiconalt:%i",id,hInfo[id][h_mapicon]); DestroyDynamicMapIcon(hInfo[id][h_mapicon]); } if(hInfo[id][h_pickup] != -1) { printf("HausID: %i Pickupalt:%i",id,hInfo[id][h_pickup]); oldpickup = hInfo[id][h_pickup]; } DestroyDynamic3DTextLabel(hInfo[id][h_text]); if(strlen(hInfo[id][h_owner])) { hInfo[id][h_pickup] = CreateDynamicPickup(1272,0,hInfo[id][h_outx],hInfo[id][h_outy],hInfo[id][h_outz]-0.25,-1); format(string,sizeof(string),"{FFFFFF}Diese Immobilie gehört:\n{FF9FBB}%s\n{FFFFFF}Hausnr: {FF9FBB}%i",hInfo[id][h_owner],hInfo[id][h_dbid]); hInfo[id][h_text] = CreateDynamic3DTextLabel(string, 0x008080FF,hInfo[id][h_outx],hInfo[id][h_outy],hInfo[id][h_outz]+0.25,10,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0,-1,-1,-1,STREAMER_3D_TEXT_LABEL_SD,STREAMER_TAG_AREA:-1,0); hInfo[id][h_mapicon] = CreateDynamicMapIcon(hInfo[id][h_outx],hInfo[id][h_outy],hInfo[id][h_outz],32,0,-1,-1,-1,50,MAPICON_GLOBAL,-1,0); } if(!strlen(hInfo[id][h_owner])) { hInfo[id][h_pickup] = CreateDynamicPickup(19470,0,hInfo[id][h_outx],hInfo[id][h_outy],hInfo[id][h_outz]-1,-1); format(string,sizeof(string),"{FFFFFF}Diese Immobilie steht zum Verkauf\n{FF9FBB}Kaufpreis: {FFFFFF}%i{FF0000}$\n{FF9FBB}Hausnr: {FFFFFF}%i\n{FF9FBB}~{FFFFFF}/buyhouse{FF9FBB}~",hInfo[id][h_price],hInfo[id][h_dbid]); hInfo[id][h_text] = CreateDynamic3DTextLabel(string, 0x008080FF,hInfo[id][h_outx],hInfo[id][h_outy],hInfo[id][h_outz]+0.25,10,INVALID_PLAYER_ID,INVALID_VEHICLE_ID,0,-1,-1,-1,STREAMER_3D_TEXT_LABEL_SD,STREAMER_TAG_AREA:-1,0); hInfo[id][h_mapicon] = CreateDynamicMapIcon(hInfo[id][h_outx],hInfo[id][h_outy],hInfo[id][h_outz],31,0,-1,-1,-1,50,MAPICON_GLOBAL,-1,0); } printf("HausID: %i PickupNeu:%i",id,hInfo[id][h_pickup]); printf("HausID: %i Text: %s ",id,string); printf("HausID: %i Mapicon: %i ",id,hInfo[id][h_mapicon]); print("============================"); saveHouse(id); DestroyDynamicPickup(oldpickup); return 1; }